1、c语言-数据类型与运算符(含答案)详解

一、选择题

1. 可用作C语言用户标识符的一组标识符是( B )。

A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 2. 存储以下数据,占用存储字节最多的是(D )。 A. 0 B. ‘0’ C. “0” D. 0.0

3. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。

A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288

5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数 式1/abc的表达式是( A)。

A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。 A. 15 B. 26,15 C. 15,26 D. 26

7. 设x是一个int型的,y的值为10,则表达式 x && y的值为(C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 8. x>0 && x<=10的相反表达式为( A )。 A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 9. x>0 || y==5的相反表达式为( B )。 A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5

10. 下面的哪个保留字不能作为函数的返回类型? ( C ) 。 A. void B. int C. new D. long

11. 假定a为一个整型数组名,则元素a[4]的字节地址为 (B) 。 A. a+4 B. a+8 C. a+16 D. a+32 12. 字符串”a+b=12\\n”的长度为( B )。 A. 6 B. 7 C. 8 D. 9

13. 假定下列x和y均为int型变量,则不正确的赋值为( B )。 A. x+=y++ B. x++=y++ C. x=++y D. ++x=++y 14. 设有以下定义

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 scanf B Void C _3com_ D int 18. 若有定义:int

*p[3];,则以下叙述中正确的是(B)

A.定义了一个基类型为int的指针变量p,该变量具有三个指针

B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 19.已定义c为字符型变量,则下列语句中正确的是(C) A. c='97'; B. c=\C. c=97; D. c=\

20.以下选项中非法的表达式是 ( D ) A .0<=x<100 B .i=j==0 C. (char)(65+3) D x+1=x+1 21. 如有int a=11;则表达式(a/1)的值是(D) A.0 B.3 C.4 D11 22. 以下叙述中正确的是( B )

A.C语言的源程序不必通过编译就可以直接运行

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C源程序经编译形成的二进制代码可以直接运行 D. C语言中的函数不可以单独进行编译

23. 若以下选项中的变量已正确定义,则正确的赋值语句是( C )

A. x1=26.8%3 B. 1+2=x2 C.x3=0x12 D.x4=1+2=3; 24. 在int a=3,int *p=&a;中,*p的值是( D) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 25. 合法的常量是——(A) A.‘program’ B. –e8 C.03x D.0xfl

26. C语言中的变量只能由字母。数字和下划线组成,且第一个字符---(C) A.必须是字母 B.必须是下划线

C.必须是下划线和字母 D.可以是字母.数字或下划线中任一一种 27.已知A=10,B=20,下类表达式正确的是(C) A.C=(A++)*(——B)=200 B. A—=30

C.C=(A++)+(B——)=30 D.C=(++A)*(——B)=210 28.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是(D)

A.A%2==1 B。!(A%2==0) C. A%2 D.!(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 D4Struct 33. 按照标识符的要求,(D)符号不能组成标识符。

A.连接符 B.下划线 C.大小写字母 D.数字字符 34. C语言中的基本数据类型所占存储空间长度的顺序是( A ) A . char<=int<=float<=double<=long B . int<=char<=float<=long<=double C . int<=long<=float<=double<=char D. char<=int<=float<=long<=double

35. 若x,i,j和k都是int型变量,则执行下面表达式后x的值为( C ) x=(i=4,j=16,k=32)

A.4 B.16 C.32 D.52

36. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B ): A.7 B.8 C.6 D.2 37. 已知各变量的类型说明如下: int k,a,b;

unsigned long w= 5; double x=1.42;

则以下不符合C语言语法的表达式是( A ): A. x%(一3) B. w+=-2

C.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=2 C .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+9 Cd=9十e,e++,d十9 Dd=9十e++=d十7 42. 在C语言中,要求运算数必须是整型的运算符是。( B ) A./ B .++ C. != D.%

43. 若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为( A )

A.7 B .8 C. 9 D .10

44. 在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.500000 B.2.7500OO C. 3.500000 D. 0.000000。 47. sizeof(float)是: ( B )

A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式

48. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( C ) A.int B. float C.double D.不确定 49. 在C语言中, char型数据在内存中的存储形式是( D )

A.补码 B.反码 C.原码 D.ASCII码

50. 设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是 ( B )

A. n=(n*100+0.5)/100.0 B.m=n*100+0.5 ,n= m/100.0 C. n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0 51. 表达式18/4*sqrt(4.0)/8值的数据类型为( C )

A. int B.float C.double D.不确定

52. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为:( C )

A.0~255 B. 0~32767 C. 0~65535 D.0~2147483647

52. 设有说明: char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为( D ) A.float B.char C.int D.double 54. 设以下变量均为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列。如果字符串长度大于5,则输出按方式 ( B )

A.从左起输出该字串,右补空格 B.按原字符长从左向右全部输出 C.右对齐输出该字串,左补空格 D.输出错误信息

56. 若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:( D )

A .scanf(\ B .scanf(\C .scanf(\ D. scanf(\57. 语句中,( C)是错误的。

A. x=x+1 ; B .x=x+y ; C..x+y=x ; D .x=4;

58.以下符号中不能作为标识符的是:(B)

A._256 B.void C.scanf D.Struct 59. 按照标识符的要求,(A )符号不能组成标识符。

A.连接符 B下划线 C.大小写字母 D.数字字符 60. 下面不能正确表示a*b/(c*d)的表达式是:(A)

A.(a*b)/c*d B.a*b/(c*d) C.a/c/d*b D.a*b/c/d 61. 下列运算符中,运算对象必须是整型的是:(B)

A./ B.%= C.= D&

62. 若x,y,z均被定义为整数,则下列表达式能正确表达代数式1/(x*y*z)的是:(B) A.1/x*y*z B.1.0/(x*y*z) C.1/(x*y*z) D1/x/y/(float)z 63. 已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为:(D) A.1 B.3 C.3.0 D.3.5

64. 如有int a=11;则表达式(a++*1/3)的值是(B) A.0 B.3 C.4 D.12 65. 在下列运算符中,优先级最低的是:(A)

A.|| B!= C.< D.+ 66. 表达式9!=10的值为: (D)

A.非零值 B.true C.0 D.1

67. 能正确表示x>=3或者x<1的关系表达式是:(C)

A.x>=3 or x<1 B.x>=3|x<1 C..x>=3||x<1 D.x> =3||x<1 68. 下列运算符中优先级最高的是:(A)

A.! B.% C.-= D.&& 69. 下列给字符数组初始化中,(A )是正确的。

A.char s2[3]=\; B. char s1[ ]=\;

C. char s3[ ][3]={'a','x','y'}; D. char s4[2][3]={\,\; 70. 对于int * pa[5];的描述,(A )是正确的。

A .pa是一个指向数组的指针,所指向的数组是5个int型元素 B .pa是一个指向某数组中第5个元素的指针,该元素是int型变量 C .pa是一个具有5个元素的指针数组,每个元素是一个int型指针 D .pa[5]表示某数组的第5个元素的值

71. 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是( B A. (a+B) *h/2 B. (1/2)*(a+B) *h C. (a+B) *h*1/2 D. h/2*(a+B) 72. 以下符号中不能作为标识符的是:C

A._256 B.r32 C.int D.e231

73. 已知a,b均被定义为double型,则表达式:a=5/2的值为:(D) A.1 B.3 C.3.0 D.2.5 74.下面程序的输出是 B. #include

)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4