




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第2章 数据类型、运算符和表达式一. 选择题(1)以下选项中,能用作用户标识符的是( )。A)voidB) 8_8C)_0_D)unsigned(2)以下选项中合法的标识符是( )。A)1_1B)1_1C)_11D)1_ _(3)以下选项中不合法的标识符是( )。A)printB)FORC)&aD)_00(4)可在C程序中用作用户标识符的一组标识符是(
2、160; )。A)and _2007B)Date y-m-dC)Hi Dr.TomD)case Bigl(5)可用作C语言用户标识符的是( )。A)void,define,WORDB)a3_b3,_123,IFC)FOR,-abc,CaseD)2a,Do,Sizeof(6)下面四个选项中,均是不合法的用户标识符的选项是( &
3、#160; )。A)A P_0 doB)float la0 _AC)b-a goto intD)_123 temp int(7)下面各选项中,均是C语言合法标识符的选项组是( )。A)33 we autoB)_23 me _3ew C)_43 3e_ else D)ER -DF
4、 32(8)以下不合法的用户标识符是( )。A)j2_KEYB)DoubleC)4dD)_8_(9)下列是用户自定义标识符的是( )。A)_w1B)3_xyC)intD)LINE-3(10)以下选项中可用作C程序合法实数的是( )。A).1e0B)3.0e0.2C)E9D)9.12E (11)以下选项中能表示合法常量的是(
5、0; )。A)1,200B)1.5E2.0C)''D)"007"(12)以下关于C语言的叙述中正确的是( )。A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13) 以下选项中,能用作数据常量的是( )。A)o115B)0118C)15
6、e15D)115L(14)以下选项中不能作为C语言合法常量的是( )。A) 'cd'B)0.1e+6C) "a"D) '011'(15)C源程序中不能表示的数制是( )。A)二进制B)八进制C)十进制D)十六进制(16)以下选项中不属于字符常量的是( )。A) 'C'B)"C"C) 'xCC&
7、#39;D) '072'(17)以下选项中,合法的一组C语言数值常量是( )。A)028 .5e-3 .0xfB)12. 0Xa23 4.5e0C).177 4e1.5 0abcD)0x8A 10,000 3.e5(18) 以下正确的字符串常
8、量是( )。A)""B) 'abc'C)Olympic GamesD)""(19)以下关于字符串的叙述中正确的是( )。A)C语言中有字符串类型的常量和变量B)两个字符串中的字符个数相同时才能进行字符串大小的比较C)可以用关系运算符对字符串的大小进行比较D)空串一定比空格打头的字符串小(20)以下选项中,不能作为合法常量的是( )。
9、A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(21)下列选项可以正确表示字符型常量的是( )。A) 'r'B)"a"C)"897"D)296(22)以下合法的字符型常量是( )。A) 'x13'B) '081'C) '65'D)"n"(23)下面四个选项中,均是不正确的八进制数或十六进制数的选项是(
10、 )。A)016 0x8f 018B)0abc 017 0xaC)010 -0x11 0x16D)0a12 7ff -123(24)下列选项中C语言中不合法的字符串常量的是(
11、0;)。A)"121"B) 'y'C)"nn"D)"ABCDx6d"(25)以下合法的十六进制数是( )。A)0xB)0x4deC)0x1hD)oX77(26)有以下程序:#include<stdio.h> main() int s,t,A=10;double B=6; s=sizeof(A); t=
12、sizeof(B); printf("%d,%dn",s,t);在VC6平台上编译运行,程序运行后的输出结果是( )。A)2,4B)4,4C)4,8D)10,6(27)以下关于C语言数据类型使用的叙述中错误的是( )。A)若要准确无误差地表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如"人员信息"等含有不同类
13、型的相关数据,应自定义结构体类型D)若只处理"真"和"假"两种逻辑值,应使用逻辑类型(28)阅读以下程序:#include<stdioh>main() int case;float printf; printf("请输入两个数:"); scanf("%d%f",&case,&printf); &
14、#160; printf("%d%fn",case,printf);该程序在编译时产生错误,其出错原因是( )。A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printf不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(29) 若函数中有定义语句:int k;,则( )。A)系统将自动给k赋初值0B
15、)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(30)以下选项中正确的定义语句是( )。A)double a;b;B)double a=b=7;C)double a=7,b=7;D)double,a,b;(31) 以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )。A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(32)以下不正确的叙述是(
16、60; )。A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(33)以下不能正确表示代数式2ab/cd的C语言表达式是( )。A)2*a*bcdB)a*bcd*2C)acd*b*2D)2*a*bc*d(34)在C语言中,运算对象必须是整型数的运算符是(
17、0; )。A)%B)C)%和D)*(35)现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为( )。A)intB)double C)float D)char(36)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是( )。A)c=(c-'A')26+'a'B)c=c+3
18、2C)c=c-'A'+'a'D)c=('A'+c)26-'a'(37)设变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f值的数据类型为( )。A)intB)floatC)doubleD)不确定(38)表达式:(int)(double)9/2)-(9)%2的值是( )。A)0B)3C)4D)5(39)若有定义语句:int a=3,b=2,c=1
19、;,以下选项中错误的赋值表达式是( )。A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(40)有以下定义:int a;long b;double x,y;,则以下选项中正确的表达式是( )。A)a(int)(x-y)B)a=x!=y;C)(a*y)bD)y=x+y=x(41)表达式a+=a-=a=9的值是( )。A)9B)-9C)18D)
20、0(42)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )。A)a=a+,i+;B)i=(a+k) <=(i+k);C)i=a11;D)i=!a;(43)若有定义语句:int x=10;,则表达式x-=x+x的值为( )。A)-20B)-10C)0D)10(44)设变量已正确定义并赋值,以下正确的表达式是( )。A)x=y*5=x+
21、zB)int(15.85)C)x=y+z+5,+yD)x=25%5.0(45) 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。A)x=y=5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;(46)若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b (47)在执行下述程序时,若从键盘输入6和8,则结果为(
22、60; )。main() int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s*=s;printf("%d",s); A)36B)64C)48D)以上都不对(48)下列程序的输出结果是( )。main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/ 5.0; pri
23、ntf("%dn", d*y); A)3B)3.2C)0D)3.07(49)有以下程序,其中k的初值为八进制数:#include<stdio.h>main()int k=011; printf("%dn",k+);程序运行后的输出结果是( )。A)12B)11C)10D)9(50)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是( )。A)
24、if(a>b)c=a,a=b,b=c;B)if(a>b)c=a,a=b,b=c;C)if(a>b)c=a;a=b;b=c;D)if(a>b)c=a;a=b;b=c;(51) 设有定义:int x=2;,以下表达式中值不为6的是( )。A)x*=x+1B)x+,2*x C)x*=(1+x)D)2*x,x+=2二. 填空题(1)以下程序运行后的输出结果是_【1】_。#include<stdio.h>main()int a;
25、a=(int)(double)(3/ 2)+0.5+(int)1.99*2); printf("%d",a);(2)表达式(int)(double)(5/2)+2.5)的值是_【2】_。 (3)设变量a和b已正确定义并赋初值,请写出与a-=a+b等价的赋值表达式_【3】_。(4)若有定义语句:int a=5;,则表达式a+的值是_【4】_。(5)设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为_【5】_。(6)执行以下程序后的输出结果是_【6】_。main()
26、;int a=10; a=(3*5,a+4);printf("a=dn",a);(7)定义int a=5,b;,则执行表达式b=+a*-a之后,变量b的值为_【7】_。参考答案及解析一. 选择题1. 答案:C【解析】 C语言的标识符命名规则为:只能由字母、数值和下划线3种字符组成;第一个字符必须是字母或下划线;不能与C语言中的关键字或保留字相同。2. 答案:C【解析】
27、 标识符命名规则:标识符必须由字母(az或AZ)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(09)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。因此,本题正确答案为C)。3. 答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。因为选项C)中的标识符的第一个字符为"&"
28、;,所以选项C)为本题的正确答案。4. 答案:A【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字,故本题答案为A)。5. 答案:B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允
29、许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。6. 答案:C【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项C)中goto和int是关键字,b-a中"-"不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。7. 答案:B【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必
30、须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。8. 答案:C【解析】C语言规定,标志符由字母、数字或下划线组成,它的第一个字符必须是字母或下划线。9. 答案:A【解析】C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B)、D)是错的;此外,C语言不允许用户将关键字作为标识符,而选
31、项C)中的int是C语言的关键字。10. 答案:A【解析】C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,所以选项A)为正确答案。11. 答案:D【解析】A)选项中1,200不能表示整数1200。B)选项中应表示为1.5E2。在C语言中,反斜杠是转义符,其后必须跟有其他字符,所以选项C)也是错误的。D)选项正确。12.
32、60; 答案:A【解析】C语言中注释可以放在任何位置,但不能夹在变量名或关键字中间,选项A)正确;C语言中的变量要在使用之前定义,C标准规定定义位置在相关程序块的首部,选项B)错误;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C)错误;C语言数值常量中不允许存在空格,选项D)错误。13. 答案:D【解析】 整型常量和实型常量统称为数值型常量。本题中A)项是数字和字符的组合,不能构成数值型常量。B)项以0开头代表该常量是一个8进制数,但其后面的数字中又出现了&quo
33、t;8",因此不正确。C)项用指数形式表示实型常量,但e后面必须为整数,不正确。D)项中一个常量后面加字母L表示长整型数据。因此,本题答案为D)。14. 答案:A【解析】选项B)是实型常量,选项C)是字符串常量,选项D)是转义字符常量,都是合法的常量。15. 答案:A【解析】C语言中整型常量可用十进制、八进制和十六进制3种形式表示。16. 答案:B【解析】在C语言程序中,用单引
34、号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量;而选项B)是用双引号括起来的字符,表示一个字符串常量,所以正确答案为选项B)。17. 答案:B【解析】本题考查的是各个进制数值常量的表示方法,八进制数据是以0开头的常量,其数字包括,选项A)错误。浮点数据的指数表示中,e的右侧必须为整数,选项C)错误。在选项D)中,10,000显然是错误的。故本题的答案为B)。18. 答案:D【解析】字符串常量是一对双引号括
35、起来的字符序列。选项A)中第二个双引号"""被编译系统解释为转义字符,选项A)错误,选项B)和C)显然也不是字符串常量。故本题答案为D)。19. 答案:D【解析】C语言中没有字符串类型,选项A)错误。比较任意两个字符串的大小要通过字符串操作函数strcmp( )来进行,而不能直接用关系运算符进行比较。选项B)和C)错误。空串是最小的字符串。故本题答案为D)。20.
36、160;答案:B【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项B)中,e(E)后面的指数是小数,所以不合法。21. 答案:A【解析】C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的的范围是0127。由于字符常量用单引号括起来,所以选项B)、C)错误,选项D)超过了字符常量的表示范围。22. 答案:A【解析】C语言的字符常量是用单引号(即撇号)括起来的一个字符
37、。除此之外,在C语言中还允许用一个""开头的字符序列来表示字符常量。其中,形式"ddd"表示13位八进制数所代表的字符;形式"xhh"表示12位十六进制数所代表的字符。在本题中,'x13'表示回车符,是一个字符常量;'081'用八进制数所代表的字符,但形式不正确,因为八进制数所代表的字符中不会出现数字"8";'65'不是一个字符,而是一个十进制数字;"n"是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。23.
38、160; 答案:D【解析】八进制中,不可能包括8以上的数字,它的范围只在07之间,以0开头。同样,十六进制是以0x开头,数字在09和AF之间。24. 答案:B【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是合法的字符串常量,而选项B)是一个字符常量。25. 答案:B【解析】十六进制数以0x开头,后面跟着若干位1f的数,所以正确答案为B)。26. &
39、#160; 答案:C【解析】sizeof的作用就是返回一个对象或者类型所占的内存字节数。在VC6中整型占4个字节,双精度实型占8个字节,所以选C)。27. 答案:D【解析】C语言中没有逻辑类型,若只处理"真"或"假"两种逻辑值,可以使用整型数"1"或"0"表示,故选D)。28. 答案:A【解析】 标识符不能与C编译系统已经预定义的、具有特殊用途
40、的保留标识符(即关键字)同名,否则程序在编译时会出现错误。题目源程序中使用了已经预定义的关键字case,所以将出现错误。29. 答案:B【解析】 用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中存放任何值,此时变量中的值是无确定的,称变量值"无意义"。因此,本题正确答案为B)。30. 答案:C【解析】定义变量a和变量b为double类型,并对其赋初值。变量之间应以"," 分隔,定义关键字与变量名
41、之间应以空格分隔,语句应以";"结尾。31. 答案:D【解析】在ANSI标准中,long、int和short分别占用4、2和2个字节。但实际上对于某些C编译系统,int和short却都实际占用4个字节。所以说各种类型数据占用内存大小是由选择何种C编译系统决定的。故本题答案为D)。32. 答案:D【解析】在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给
42、a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。33. 答案:D【解析】C语言中算术运算符的结合性均为自左向右。选项D)中表达式计算结果是2*a*b*d/c,和题目要求的代数式不一致,因此选项D)不能正确表示题目所给的代数式内容。34. 答案:A【解析】在C语言中,"%"运算符两侧的运算数必须是整型。35.
43、 答案:B【解析】为了满足运算,表达式需要转化类型,此表达式的转化结果是double型。36. 答案:D【解析】C语言中,字符数据参加运算时,实际上是其ASCII码参与运算。大写字母的ASCII码比其对应的小写字母的ASCII码小32。因此大写字母转化为小写字母只需将其加上32即可。所以选项B)、C)都符合条件,因为变量c中存储的是大写字母,所以"c-'A'"的值一定小于26,故选项A)与选项C)的含义相同。37.
44、60; 答案:C【解析】根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。38. 答案:B【解析】 (int)(double)9/2)的值为4,(9)%2的值为1,因此(int)(double)9/2)(9)%2的值为3。39. 答案:A【解析】这道题目主要考查赋值表达式,对于赋值表达式来说,赋值号"=&
45、quot;的左边一定为变量名,右边为一个C语言合法的表达式。40. 答案:B【解析】A)选项中如果x与y的值相等那么取余时就会有除数为0的情况。C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。D)选项表达式本身就错误,不能给表达式赋值。所以,本题答案为B)。41. 答案:D【解析】题干中的表达式可以分解为以下表达式: a=9; a=a-a 即a=9-9,此时a的值为0; a=a+a 即a=0+0,此时a的值为0。故
46、本题的答案为D)。42. 答案:C【解析】C语言中取余运算符两侧的操作数只能是整型(若为char型,则会自动转换成整型)。43. 答案:B【解析】 x-=x+x可化为:x=x-(x+x),由于x初始值为10,所以计算后,x=10-20=-10,因此选B)。44. 答案:C【解析】求余运算符"%"两边的运算对象必须是整型,而选项B)和D)中 "%"两
47、边的运算对象有浮点整数据,所以选项B)和D)是错误的表达式;在选项A)中赋值表达式的两边出现相同的变量x,也是错误的;选项C)是一个逗号表达式,所以正确答案为C)。45. 答案:A【解析】赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C)和D)错误。"%"运算符两侧都应当是整型数据,选项B)错误。故本题答案为A)。46. 答案:B【解析】选项A)中包含一个不合法的运算符":=";选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。47. 答案:B【解析】本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于ss*s。48. 答案:C【解析】本题中,程序先执行语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤炭基础知识试题及答案
- 室内设计中家具选择的影响因素分析试题及答案
- 教育科学试题及答案
- 大学物理考前心理建设方法试题及答案
- 注册土木工程师考试考试期间心态调整试题及答案
- 聚焦2025:职业培训学校建设方案初步设计评估与建议报告
- 屋面防水考试题及答案
- 2025护士考试题及答案
- 2025国企会计岗位面试题目及答案
- 家居产品的功能与审美考试题及答案
- (四调)武汉市2025届高中毕业生四月调研考试 地理试卷(含答案)
- 2024年探放水工技能大赛理论考试题库500题(供参考)
- XX道路危险运输企业安全管理台账标准化表格
- 坚持以人民为中心发展思想
- 球形网架屋面板安装专项施工方案
- 三新背景下高中化学高效课堂构建策略研究
- 新高考高中物理竞赛专题1力学50题竞赛真题强化训练解析版
- GB/T 6184-20001型全金属六角锁紧螺母
- GB/T 13025.7-2012制盐工业通用试验方法碘的测定
- 全文《中国式现代化》PPT
- 行政执法讲座课件
评论
0/150
提交评论