C语言第三章数据类型和运算符及表达式复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型、运算符和表达式复习题一.选择题
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的值,能正确表示代数式
c
b a ⋅⋅1的C 语言表达式是( )
a) 1/(float)a*b*c b) 1/(a*b*c)
c) 1.0/a/b/c d) 1/a/b/(float)c 20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式
z
y x ⨯的C 语言表达式是( )
a) x/y*z b) x*(1/(y*z))
c) x/y*1/z d) x/y/z 21. 不能正确表示代数式d c b
a ⋅⋅的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=%6d\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=%07o*\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(“%5e%5e”,&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);