第三章 数据类型、运算符与表达式
- 格式:doc
- 大小:76.00 KB
- 文档页数:6
第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。
用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。
另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。
根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。
(2) 双目(二元)运算符:带有两个操作数的运算符。
(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。
C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。
(2) 带有运算符的表达式。
(3) 函数调用。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。
所以运算对象、运算符和运算结果是运算的三大要素。
3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。
2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。
简单算术表达式的基本形式:data1 op data2。
data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。
假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。
3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。
当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。
例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。
设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是(D)。
A.12B.18C.16D.21下列数据中,为字符的是(D)。
A.‘AB’B."A"C.HowD.‘A'以下符号中,合法的用户标识符是(D)。
A. -pB. intC. 3abD. _xt_以下实型常量中,符合C语言语法的是(A)。
A. .5E-3B. 1.2E0.5C. E15D. 3.14.159E若有说明和语句:int a=5,b=6;b*=a+1;则b的值为(D)A. 5B. 6C. 31D. 36设C 语言中,int 类型数据占4个字节,则short 类型数据占(C)。
A.1个字节B.2个字节C.4个字节D.8个字节若x=3.5,a=2,y=2.5,b=3则表达式(float)(a+b)/2+(int)x%(int)y的值是()。
A.1.5B.2.5C.3.5D.2以下选项中不属于C语言的类型的是(D)。
A.signed short intB.unsigned long intC.unsigned intD.long short关于C语言数据类型的叙述,正确的是(C)。
A. 整型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型若a=12,则表达式a-=a的值为(A)。
A. 0B.12C.1D. 24若x=3.5,a=2,y=2.5,b=3则表达式(int)(a+b)/2+(int)x%(int)y的值是(D)。
A. 1.5B. 2.5C. 3D. 3.5若a是数值类型,则逻辑表达式(a==1)&&(a!=1)的值是(C)。
A.1B. 2C. 0D. 不知道a的值,不能确定若char x=97,则变量x对应(A)字符。
A. ‘a’B. ‘A’C. ‘9’D. ‘7’设C语言中,int类型数据占2个字节,则float类型数据占(C)字节。
第三章数据类型、运算符与表达式一单项选择题1.下面四个选项中,均不是c语言关键字的选项是()。
A) define IF Type B) getc char printfC) include scanf case D) while go pow3.下列四个选项中,均是C语言关键字的选项是()。
A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type4.下面四个选项中,均是不合法的用户标识符的选项是()。
A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int5.以下有4组用户标识符,其中合法的一组是()。
A) For -sub Case B) 4d DO SizeC) f2_G3 IF abc D) WORD void define7.下面四个选项中,均是合法整型常量的选项是()。
A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) –01986 012 0668 D) -0x48a 2e5 0xe8.下面四个选项中,均是正确的八进制数或十六进制数的选项是()。
A) -10 0x8f -011 B) 0abc -017 0xcC) 010 -0x11 0xf1 D) 0a12 -0x123 -0xa9.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为()。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 10.在C语言中,不正确的int类型的常数是()。
A)32768 B)0 C)037 D)0xAF13.下面四个选项中,均是合法的浮点数的选项是()。
A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-015.以下选项中合法的字符常量是()。
第三章习题参考答案一、单项选择题1、C语言中字符型(char)在内存中的形式存储是()。
A)源码 B)补码 C)反码D)ASCII码2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。
A)逻辑运算符高于算术运算符,算术运算符高于关系运算符B)算术运算符高于关系运算符,关系运算符高于赋值运算符C)算术运算符高于逻辑运算符,关系运算符高于关系运算符D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符3、C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是()。
A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4、以下选项中属于C语言的数据类型是()。
A)复数型 B)逻辑型C)双精度型 D)集合型5、在C语言中,int、char和short三种类型数据所占的内存()。
A)均为2个字节 B)由用户自己定义C)由所用机器的字长决定 D)是任意的6、下列常数中不能作为C语言的数据类型是()。
A)0xa5 B)2.5e-2 C)3e2 D)05827、设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是()。
A)0至255 B)0至65535 C)-256至255 D)-32768至327678、在C语言中,数字029是一个()。
A)八进制数 B)十六进制数 C)十进制D)非法数9、下列可以正确表示字符型常数的是()。
A)”a”B)'\t’ C)”\n” D)29710、以下错误的转义字符是()。
A)'\\’ B)'\'’ C)'\81’ D)'\0’11、C语言中整数-8在内存中的存储形式是()。
A)1111 1111 1111 1000 B)1000 0000 0000 0000C)0000 0000 0000 1000 D)1111 1111 1111 011112、已知 int i; float f; 正确的语句是()。
第三章 数据类型及其运算知识点提示1.C 的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C 的运算符种类、运算优选级和结合性。
3.不同类型数据间的转换与运算。
4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
知识点一.C 的数据类型1.数据类型的概念数据类型在高级语言中的实质是为解决数据在程序中的表示(常量)、内存单元的分配(变量)及其加工的描述(算符和表达式)这三个基本问题。
在高级语言中,任何数据都是有类型的,即不同类型的数据有不同的存储属性及操作属性,将数据按其操作属性和存储属性进行分类,就是数据类型的概念。
2.C 的数据类型在C 语言中,数据类型分为基本类型、导出类型(构造类型)、空类型、指针类型。
基本类型有:整型、实型、字符型、枚举类型。
数据有常量与变量之分,它们分别属于这些类型。
3.常量在程序运行过程中,其值不发生变化的量,也就是在程序中直接给出的数据,在词法记号中属于文字。
常量分为字面常量(直接常量)和符号常量。
在C 语言中,符号常量是用无参数的宏定义实现的,即用标识符代表某一字面常量,其定义形式为:#define 标识符(宏名) 字面常量4.变量在程序运行过程中,其值可以改变的量。
变量实质在C 中是为解决不同类型数据在计算机中存储时内存单元的分配问题。
一个变量对应相应的内存单元,且变量有对应的变量名,变量名实际上是内存单元的符号地址。
将变量对应内存单元所存放的当前值,称为变量的值,对变量的访问是按地址进行的,即通过变量名找到相应内存单元的地址,对其存储单元进行读、写操作。
记住:变量的类型、变量名、变量的值是其三大基本属性。
5.整型数据·整型常量的表示方法十进制整数:如123,-456等。
八进制整数:以0为前导的八进制整数。
如0123、-03467,而0879非法。
十六进制数:以0x 为前导的十六进制整数。
第三章数据类型、运算符与表达式一、选择题1.以下选项中合法的c语言标识符是。
A) long B) _2Test C)3Dmax D)A.dat2.以下不能定义为C语言标识符的是。
A) scanf B) V oid C)int D)_3com_3.在以下各组标识符中,合法的c语言标识符是①;②;③。
①A)B0l B) table_l C) 0_t D) k%int t*.1 W10 point②A)Fast_ B) void C)pb1 D) <book>Fast+Big Abs fabs beep③A)xy_ B) longdouble C)*p D)CHAR变量l signed history Flaut4.在以下各组标识符中,合法的c语言标识是①;②。
①A)print B) i’am C)Pxg D)Cppoodb one-half line# powaBc 3pai His.age while②A)_maln B)If C)txt D)intenclude _max REAL k_2sln turbo 3COM _0015.以下不能定义为c语言标识符的是。
A)_1234_ B)2_int_ C)int_2_ D)_1_26.以下不能定义为c语言标识符的是。
A) Main B) _0 C)_int D)sizeof7.以下叙述中错误的是。
A) c语言的标识符允许使用保留字B) c语言的标识符应尽量做到“见其名知其意”c) c语言的标识符必须以字母或下划线开头D) c语言的标识符中,大、小写字母代表不同标识8.以下叙述中正确的是。
A) 可以把define和if定义为C语言标识符B) 可以把define定义为C语言标识符,但不能把if定义为c语言标识符C) 可以把if定义为c语言标识符,但不能把define定义为c语言标识符D) define和if都不能定义为c语言标识符9.下面不属于c语言保留字的是。
A) char B) while C)typedef D)look10.下面属于c语言保留字的是。
A) define B) include C)main D)enum11. 是c语言的数据类型说明保留字。
A) Float B) signed C)integer D)Char12.不合法的C语言字符常量是。
A) '\2' B) " " C) ' ' D) "\483"13.合法的c语言长整型常量是。
A) 5876 B) 0L C)2.0E10 D)(long)5876214.下列选项中,均是合法的c语言整型常量的是。
A) 160 B) -0xcdf C)-01 D) -0x48a-0xffff 0la 986,012 2e50011 0xe 0668 0x15.十进制数8的C语言八进制数常量是。
A) 10 B) 010 C)8 D) 0816.在C语言中,029是一个。
A) 八进制数B) 十六进制数C)十进制数D) 非法数17.以下选项中可作为c语言整数的是。
A) 10110B B) 0386 C)0xffaa D) x2a218.c语言中将-8赋值给无符号字符型,则它的内存数据形式为。
A) 11111000 B) 10001000 C) 00001000 D) 1111011119. 下列选项中,均是合法的c语言实型常量的是。
A) +1le+1 B) -.60 C) l 23e D)-e35e-9.4 12e-4 1.2e-.4 .8e-403e2 -8e5 +2e-l 5.e-020.以下选项中正确的c语言实型常量是。
A) 0 B) -10 C)1.9×102D)0.1921.以下选项中正确的c语言实型常量是。
A) 1.2e0.5 B) 3.14159E C).5E-3 D)E1522.以下选项中可作为c语言数值常量的是。
A) -80. B) -080 C)-8e1.0 D)-80.0e23.在c语言中,以下不合法的数值常量是。
A) 011 B) 1e1 C)8.0e0.5 D)00024. 是非法的c语言转义字符。
A) '\b' B) '\0xf' C) '\037' D) '\''25.下面转义字符中错误的是。
A) '\000' D) '\14' C) '\x111' D) '\2'26.下面转义字符中错误的是。
A) '\\' D) '\"' C) '\86' D) '\0'27.以下选项中不是c语言常量。
A) e-2 B) 012 C) "a" D) '\n'28.以下选项中不是合法c语言数据类型。
A) signed short int B) unsigned long intC) unsigned int D) long short29.设char a='\70';则变量a 。
A) 包含1个字符B) 包含2个字符c) 包含3个字符D)说明不合法30.对于char cx='\039';正确的判断是。
A) 不合法B) cx的值是'\03' c) cx的值为四个字符D) cx的值为三个字符31. 已知short x=0xabcde;则x的结果是。
A) 赋值非法B) 不确定C) abcd D) bcde32.下列变量定义及赋初值中,合法的是。
A) short _a=1-.1e-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=l-e-3;33.假设某表达式中包含int,long,unsigned,char类型的数据,则表达式最后的运算结果是____________类型。
A) int B) long C) uns igned D) char34.在c语言中,要求参加运算的数必须是整数的运算符是。
A) /B) * C) %D) =35.下列运算符中,优先级最高的是。
A) ( ) B) %C)++ D) ,36.若int k=7, x=12;则值为3的表达式是。
A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)37.设有int x=11;则表达式(x++*1/3)的值是。
A) 3 B)4C) 11 D)1238.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A) 语法错误B) f为5.0 C) f为0.0 D) f为2.039.设变量n为float类型,m为int型,则以下表达式能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算。
A) n=(n*100+0.5)/l00.0 B) m=n*100+0.5, n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.040.设以下变量均为int类型,则值不等于7的表达式是。
A) (x=y=6, x+y, x+1) B) (x=y=6, x+y, y+1)C) (x=6, x+1, y=6, x+y) D) (y=6, y+1, x=y, x+1)41.假定有变量定义:int k=6, x=12;则能使x、k值为5、6的表达式是。
A) x%=++k%l0 B) x%=k+k%5 C) x-=++k%5 D) x-=k++%542.在Turbo C 2.0中,若定义long a;则能给变量a赋值40000的正确语句是。
A) a=20000+20000; B) a=4000*10; C) a=30000+10000; D) a=4000L*10;43.设float m=4.0,n=4.0;使变量m值为10.0的表达式是。
A ) m-=n*2.5 B) m/=n+9 C) m*=n-6 D)m+=n+244.设int i=0,j=0;以下使变量i值为4的表达式是。
A) i=3, (j++)+i, i=j+1 B) j=i=(i=2)*2 C) i*=j%=(j=6)+(i=4) D)j+=i+=j+=245.若变量a为int类型,且其值为3,则执行表达式a+=a-=a*a后,a的值是。
A) -3 B) 9 C) -12 D) 646.表达式3.6-5/241.2+5%2的值是。
A) 4.3 B) 4.8 C) 3.3 D) 3.847.若已定义x和y为double类型,则表达式x=l, y=x+3/2的值是。
A) l B) 2 C) 2.0 D) 2.548.有以下程序段:int c1=1, c2=2, c3;c3=1/c2*c1;执行后c3的值是。
A) 0 B) 0.5 C) l D) 249.设int n=20, i=4; 则赋值运算n%=i+l执行后,n的值是。
A) 0 B) l C) 2 D) 350.有以下程序段:int m=3, n=4, x;x=-m++;x=x+8/++n;执行后x 的值是 。
A) 3 B) 5 C) -1 D) -251. sizeof(long)的值 。
A) 1 B) 2 C) 3 D)452.设char c=20;则sizeof (c)的结果是 。
A) 1 B) 12 C) l 20 D)2053.表达式x*=y+2还可以写为 。
A) x=x*y+2 B) x=2+y*x C) x=x*(y+2 ) D) x=y+2*x54.若变量已正确定义并贼值,下面符合c 语言语法的表达式是 。
A) a:=b+l B) a=b=c+2 C) int(18.5%3) D) a=a+7=c+b55.以下变量定义和赋初值错误的是 。
A) int n1=n2=l 0; B) char c=32;C) float f=3*100+2.2; D) double x=12.3E2;56.已定义ch 为字符型变量,以下赋值表达式中错误的是 。
A) ch='\' B) ch=62+3 C) ch=NULL D) ch='\xaa'57.已定义c 为字符型变量,以下赋值表达式中正确的是 。
A) c='97' B) c="97" C) c=97 D) c='\97'58.以下选项中,与k=n++完全等价的表达式是 。
A) k=n, n=n+1 B) n=n+1, k=n C) k=++n D) k+=n+l59.若有以下定义;int a=0; double b=1.25; char c='A';#define d 2则下面表达式中错误的是 。