好文档 - 专业文书写作范文服务资料分享网站

C语言第三章数据类型和运算符及表达式复习题

天下 分享 时间: 加入收藏 我要投稿 点赞

数据类型、运算符和表达式复习题

一.选择题

1. 以下不合法的用户标识符是:( )

a) f2_G3 b) If c) 4d d) _8 2. 以下选项中合法的用户标识符是:( )

a) long b) _2Test c) 3Dmax d) A.dat 3. 以下可用作用户标识符的是:( )

a) 12_a b) signed c) t-o d) _if 4. 以下不是关键字的标识符是:( )

a) continue b) char c) If d) default 5. C语言提供的合法的关键字是:( )

a) swicth b) cher c) Case d) void 6. 以下选项中不合法的int整型常数是( )

a) 32768 b) -56 c) 03 d) 0xAF 7. 以下合法的长整型常量是( )

a) 2L b) 49627 c) d) 213& 8. 以下正确的实型常量是( )

a) 1.2E b) . c) 1.2e0.6 d) 8 9. 以下选项中合法的实型常数是( )

a) 5E2.0 b) E-3 c) .2E0 d) 1.3E 10. 以下合法的八进制数是( )

a) 0135 b) 068 c) 013.54 d) o7 11. 以下合法的十六进制数是( )

a) 0x b) 0x4de c) 0x1h d) ox77 12. 以下选项中非法的数值常量是( )

a) 019 b) 0L c) 0xff d) 1e1

13. 若变量已正确定义,以下合法的赋值表达式是( ) a) a=1/b=2 b) ++(a+b) c) a=a/(b=5) d) y=int(a)+b

14. 若变量已正确定义,以下非法的表达式是( ) a) a/=b+c b) a%(4.0) c) a=1/2*(x=y=20,x*3) d) a=b=c

15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是: a) 3 b) 4 c) 11 d) 12

16.设a,b均为double型,且a=5.5;b=2.5;则表达式 (int)a+b/b的值是( )

a) 6. b) 6 c) 5. d) 6.

17.若a为int型,且其值为3,则执行完表达式: a+=a-=a*a后,a的值是( )

a) -3 b) 9 c) -12 d) 6

18.设k和x均为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)

19. 若a,b,c均被定义成整型并已赋大于1的值,能正确表示代数式是( )

a) 1/(float)a*b*c b) 1/(a*b*c) c) 1.0/a/b/c d) 1/a/b/(float)c

1的C语言表达式

a?b?c20. 以下变量x,y,z均为double型且已正确赋值,不能正确表示代数式式是( )

a) x/y*z b) x*(1/(y*z)) c) x/y*1/z d) x/y/z

x的C语言表达y?za?b21. 不能正确表示代数式c?d的C语言表达式是( )

a) a/(c*d)*b b) a*b/c/d c) a*b/c*d d) a*b/(c*d)

22.若题中变量已正确定义并赋值,下面符合C语法的表达式是( ) a) a%=7.6 b) a++,a=7+b+c c) int(12.3)%4 d) a=c+d=a+7

23. 若t已定义为double型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.0

24. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x; 25. 有以下程序:

main()

{ int y=1111;

printf(“y=m\\n”,y); printf(“y=%+06d\\n”,y); }

程序运行的结果是:( )

a) y= 1111 b) y= 1111 c) y=1111 d) y= 1111 y= y=+01111 y=+01111 y=1111 26. 有以下程序:

main()

{ int y=456;

printf(“*y=%7o*\\n”,y); printf(“*y=%-7o*\\n”,y); printf(“*y=o*\\n”,y); }

程序运行的结果是:( )

a) *y= 710* b) *y= 456* *y=710 * *y=456 * *y=* *y=*

c) *y=710* d) *y=456*

*y=-710* *y=-456* *y=0710* *y=0456* 27. 有以下程序:

main()

{ float y=3.667;

printf(“*%f*\\n”,y); printf(“*%7.2f*\\n”,y); printf(“*%8.0f*\\n”,y); }

程序运行的结果是:( ) a) *3.* b) *3.*

* 3.67* *3.667 * * 4* *4.*

c) *3.667* d) *3.* *3.* *3.67* *3.* *4.*

28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格) **1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是( ) a) scanf(“%f%f”,&a,&b);

b) scanf(“%5.1lf%5.1lf”,&a,&b); c) scanf(“%lf%lf”,&a,&b); d) scanf(“^^”,&a,&b); 29. 以下合法的定义语句是( ) a) short _auto_=100-1; b) double b=1+5e2.5; c) long do=1l;

d) float 2_and=1e-3;

30. 以下选项中不是C语句的是( )

a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;} 31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是( ) a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;

32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是( ) a) 把x和y从小到大排列 b) 把x和y从大到小排列 c) 无确定结果 d) 交换x和y中的值

33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是( ) a) a=20000+20000; b) a=4000*10; c) k=400;a=k*100; d) a=4000;a=a*10;

34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是( ) a) 1.4 b) 1 c) 2.0 d) 2 35. 有以下程序:

main()

{ int k=2,i=2,m; m=(k+=i*=k++);

printf(“y=%d,%d\\n”,m,i);

}

程序运行的结果是:( )

a) 8,6 b) 8,3 c) 6,4 d) 7,4 36. 有以下程序:

main()

{ int y=3,x=3,z=1;

printf(“%d %d\\n”,(++x,y++),z+2); }

程序运行的结果是:( )

a) 3 4 b) 4 2 c) 4 3 d) 3 3 37. 有以下程序:

main()

{ int i; long l ; float f ; double d ; i=f=l=d=20/3;

printf(“%d %ld %3.1f %3.1f\\n”,i,l,f,d); }

程序运行的结果是:( )

a) 6 6 6.0 6.0 b) 6 6 6.7 6.7 c) 6 6 6.0 6.7 d) 6 6 6.7 6.0 38. 有以下程序:

main()

{ unsigned a=32768; int b ; b=a ;

printf(“b=%d\\n”,b); }

程序运行的结果是:( )

a) b=32768 b) b=32767 c) b=-32768 d) b=-1

39.有以下语句printf(“%d,%d,%u\\n”,016,16,-16);其输出结果是( ) a) 16,16,65520 b) 14,16,65520 c) 16,16,-16 d) 14,16,-16

40.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是( ) a) 23 b) 24 c) 25 d) 22 41.有以下程序:

main()

{ int x=0xffff;

printf(“%d\\n”,x--); }

程序运行的结果是:( )

a) 32767 b) FFFE c) -1 d) -32768

二.填空题

1.已有定义:float f=13.8;,则表达式:(int)f%3的值是______.

2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是______.

3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_____.

4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是_______.

5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为______.

6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是___,变量x的值是___,变量y的值是____.

7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是_____,变量y的值是_______。

8. 若已有定义语句:int k=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是_____,变量k的值是_____,变量j的值是______.

9.已有定义:int x,y;,执行以下语句后的输出结果是______. x=11/3; y=5; printf(“%%d,%%%d\\n”,x,y);

10. 已有定义:int y;,执行以下语句后的输出结果是______. y=26; printf(“%d,%#o,%#x”,y,y,y); 11. 执行以下语句后的输出结果是_____.

printf(“7/8=%d”,7/8); printf(“%%%d”,7%2); 12. 以下程序的运行结果是_______. main()

{ float a;int b; b=a=24.5/5;

printf(“%f,%d”,a,b);

}

13. 以下程序的运行结果是_______. main()

{ float a;int b; a=b=24.5/5;

printf(“%f,%d”,a,b);

}

14. 以下程序的运行结果是_______. #include

main() { int a=252;

printf(“a=%-5o**a=%x\\n”,a,a); printf(“a=%#o**a=%#x\\n”,a,a);

}

15. 若有定义:int t1; double t2;,执行下列语句后,t1的值是_______。 t1=(t2=1.9,t2+5,t2++);

16. 若有下列定义和语句,输出结果是______. float x=34213.6894; printf(“2.2f”,x);

17. int类型变量占两个字节,以下语句的输出结果是______. int a=-1; printf(“%d,%o,%x,%u”,a,a,a,a);

三.操作题

C语言第三章数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题1.以下不合法的用户标识符是:()a)f2_G3b)Ifc)4dd)_82.以下选项中合法的用户标识符是:()a)longb)_2Testc)3Dmaxd)A.dat3.以下可
推荐度:
点击下载文档文档为doc格式
0yt7f30wci2i4cx3q5al1oirv327pb00plg
领取福利

微信扫码领取福利

微信扫码分享