一、选择题1. 可用作C语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A. 0B. ‘0’C. “0”D. 0.03. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。
A. 12B. 144C. 156D. 2885. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。
A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。
A. 15B. 26,15C. 15,26D. 267. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。
A. 1B. 0C. 与x值相同D. 与x值相反8. x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==510. 下面的哪个保留字不能作为函数的返回类型?( C ) 。
A. voidB. intC. newD. long11. 假定a为一个整型数组名,则元素a[4]的字节地址为(B) 。
A. a+4B. a+8C. a+16D. a+3212. 字符串”a+b=12\n”的长度为(B )。
A. 6B. 7C. 8D. 913. 假定下列x和y均为int型变量,则不正确的赋值为( B )。
A. x+=y++B. x++=y++C. x=++yD. ++x=++y14. 设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是( D )A.a++;B. b++C. c++;D.d++;15. 设x和y均为bool量,则x&&y为真的条件是( A) 。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个16.以下叙述中正确的是(A)A. C程序中注释部分可以出现在程序中任意合适的地方B.花括号"{"和"}"只能作为函数体的定界符C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分17.以下不能定义为用户标识符的是(D)A scanfB V oidC _3com_D int18. 若有定义:int*p[3];,则以下叙述中正确的是(B)A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C.定义了一个名为*p的整型数组,该数组含有三个int类型元素D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素19.已定义c为字符型变量,则下列语句中正确的是(C)A. c='97';B. c="97";C. c=97;D. c="a";20.以下选项中非法的表达式是( D )A .0<=x<100B .i=j==0C. (char)(65+3) D x+1=x+121. 如有int a=11;则表达式(a/1)的值是(D)A.0B.3C.4 D1122. 以下叙述中正确的是( B )A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D. C语言中的函数不可以单独进行编译23. 若以下选项中的变量已正确定义,则正确的赋值语句是( C )A. x1=26.8%3B. 1+2=x2C.x3=0x12D.x4=1+2=3;24. 在int a=3,int *p=&a;中,*p的值是( D)A.变量a的地址值B.无意义C.变量p的地址值D.325. 合法的常量是——(A)A.‘program’ B. –e8 C.03x D.0xfl26. C语言中的变量只能由字母。
数字和下划线组成,且第一个字符---(C)A.必须是字母 B.必须是下划线C.必须是下划线和字母 D.可以是字母.数字或下划线中任一一种27.已知A=10,B=20,下类表达式正确的是(C)A.C=(A++)*(——B)=200B. A—=30C.C=(A++)+(B——)=30D.C=(++A)*(——B)=21028.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是(D)A.A%2==1 B。
!(A%2==0)C. A%2D.!(A%2)29. 下面不正确的字符赋值或赋初值的方式为——(C)A.char s[10]=”hello!”B.char s[10]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’}C.char s[10];s=”hello”D.char[ ]=”hello!”30. 字符组a[20]和b[20],下面正确的输出语句是——(D)A.put(a,b)B.prinf(“%s,%s,a[ ],b[ ]C.putchar(a,b)D.puts(a); puts(b)31. C语言中,要求参加运算的数必须是整数的运算符是(C)A./B.!C.%D.==32. 以下符号中不能作为标识符的是:(D)A_256 Bvoid C.vanf D4Struct33. 按照标识符的要求,(D)符号不能组成标识符。
A.连接符B.下划线C.大小写字母D.数字字符34. C语言中的基本数据类型所占存储空间长度的顺序是( A )A . char<=int<=float<=double<=longB . int<=char<=float<=long<=doubleC . int<=long<=float<=double<=charD. char<=int<=float<=long<=double35. 若x,i,j和k都是int型变量,则执行下面表达式后x的值为( C )x=(i=4,j=16,k=32)A.4B.16C.32D.5236. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B ):A.7B.8C.6D.237. 已知各变量的类型说明如下:int k,a,b;unsigned long w= 5;double x=1.42;则以下不符合C语言语法的表达式是( A ):A. x%(一3)B. w+=-2C.k=(a=2,b=3,a十b)D.a十= a一=(b=4)*(a=3)38. 已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( A )A. a十=a一=(b= 4)*(a=3)B.a=a*3=2C .x%(一3) D.y=f1oat(i)39. 以下不正确的叙述是( D )A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D.当从键盘输入数据时,对整型变量只能输入整型数值,对实型变量只能输入实型数值。
40. 以下正确的叙述是:( D )A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符41. 以下符合C语言语法的赋值表达式是( B )Ad=9+e+f=d+9 B d=9+e,f=d+9Cd=9十e,e++,d十9 Dd=9十e++=d十742. 在C语言中,要求运算数必须是整型的运算符是。
( B )A./ B .++ C. != D.%43. 若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum 的值为( A )A.7 B .8 C. 9 D .1044. 在C语言中,int、char和short种类型数据在内存中所占用的字节数( D )A.由用户自己定义B.均为2个字节C.是任意的D.由所用机器的机器字长决定45. 若有说明语句:char c='\72'则变量c ( A )A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定46. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A )A. 2.500000B.2.7500OOC. 3.500000D. 0.000000。
47. sizeof(float)是: ( B )A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式48. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( C )A.intB. floatC.doubleD.不确定49. 在C语言中, char型数据在内存中的存储形式是( D )A.补码B.反码C.原码D.ASCII码50. 设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是( B )A. n=(n*100+0.5)/100.0B.m=n*100+0.5 ,n= m/100.0C. n=n*100+0.5/100.0D.n=(n/100+0.5)*100.051. 表达式18/4*sqrt(4.0)/8值的数据类型为( C )A. intB.floatC.doubleD.不确定52. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为:(C )A.0~255B. 0~32767C. 0~65535D.0~214748364752. 设有说明: char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为( D )A.floatB.charC.intD.double54. 设以下变量均为int类型,则值不等于7的表达式是( C )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+l,x = y,x+1)55. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。