练习2-1 答案选择题
1. C语言中的简单数据类型包括(B ) o
A.整型、实型、逻辑型
B.整型、实型、字符型
C?整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型
2. 在C语言中,错误的short类型的常数是(A )。
A. 32768
B. 0
C. 037
D. 0Xaf
3. 下列常数中不能作为C的常量的是(D ) o
A. 0x45
B. -2
C. 3e2
D. 0582
4. short 类型的数据长度为2个字节,则unsigned short 类型数据的取值范围是( B)
A. 0 至255
B. 0~65535
C. -32768~32767
D. -256~255
5. 下面4 个选项中,均是合法转义字符的选项是( A ) o
A. '\'' ,'\\' ,'\n'
B. '\' ,'\017' ,'\'
C. '\018' ,'\f' ,'xab'
D. '\\0 ,'101' ,'x1f
6. 在C语言中,数字029是一个(D ) o
A.八进制数B?十六进制数C.十进制数 D.非法数
7.下列可以正确表示字符型常数的是( B ) o
A."a" B.'\t' C."\n" D.297
8. 以下(C)是错误的转义字符。
9. C语言中short类型的变量a的值为-8,则a在内存中的存储形式是(A )
10. 将字符g赋给字符变量c,正确的表达式是(C) o
A.c="g" B.c=101 C.c='\ 1 47'
11.字符串"\\\22a,0\n" 的长度是( C ) o
A.8 B.7 C.6
12.为求出s=10!的值,则变量s的类型应当为(C) o
A.short B.unsigned short C.long
13.已知:unsigned short x=65535; ,则执行以下语句输出是( D) o printf("%d\n", x) ;
A. 65535
B. 1
C.无定值
D. -1
14.下面4个选项中,均是合法整型常量的选项是( A ) o
A.160,-0xffff ,011 B.-0xcdf ,01a,0xe
C.-01 ,986,012,0668 D.-0x48a,2e5,0x
15.下面4个选项中,均是不合法的整型常量的选项是( D ) o
A .--0f1 ,-0xffff ,0011 B.-0Xcdf ,01a,0xe
C .-018,999,5e2 D.-0x48eg ,-068 ,
03f
16.下面4个选项中,均是合法浮点数的选项是( B )
A.+1e+1,,03e2 B.,12e-4 ,-8e5 A.'\\' B.'\'' C.'\81' D.'\0' A.1111 1111 1111 1000 B.1000
C.000000000000 1000 D.1111 1111 1111 0111
D.c='0147'
D.5
D.以上三种类型均
C.123e,,+2e-
D.-e3 ,.8e-4 ,1
练习 2-2 答案
选择题 已知: char a; int b; float c; double d; 的数据类型是 ( C ) A .int 已知 int j, i=1; A .1 已知 int i, a; A .6 已知 int i=5; A .10 已知: A .9 已知: A. 1 已知: 1. 2. 3. 4. 5. 6. 7. 8. 9.
,执行语句 c=a+b+c+d;后,变量 c o
B . char ,执行语句 j=-i++; B . 2 ,执行语句 i=(a=2*3, a*5), a+6;
C .float 后, j 的值是 ( C) C .-1
D .double B . 12 C . 30 ,执行语句 i+=++i; , i 的值是 ( C ) 。 B . 11 C . 12 D . float x=1, y; ,则表达式 y=++x*++x 的结果为 ( B . 6 int y; float x=-3; B . -1 char w; int x; float B . O D .-2 后,变量 i 的值是( C) 。
D . 36 A 、 B ) D .
B 、
C 答案都不对
o 表达式是错误的 ,
执行语句:y=x%2;,则变量y 的结果是(D)。 C. 0 D.语句本身是错误的
y; double z; ,则表达式 w*x+z-y 结果的类型是 ( D) 。
char C .int D . dou ble ,则下列语句的输出结果是 ( D ) 。 C .1 A .float 已知: int x=10, y=3, z; printf("%d\n", z=(x%y, x/y)); A .1 B .0 C . 4 已知: int i=6, j; ,则执行语句 j=(++i)+(i++);
A .4
B .14
C . 13 10. 已知:int x=1, y=-1;,则语句 printf("%d\n",
A . 1
B .0
C .-1
11. 设a=2, b=3,计算表达式c=b*=a-1后,变量 A . 5 12. 若定义了 int x; A . (double)x
13. 下述程序的输出是 ( A ) main() { int x=023;
printf("%f", +1*7%2/4); } A . B . 14. 若有定义: ( A ) 。 A .
D .3 后的 j 的值是( B ) 。 D .15 (x--&++y)); 的输出结果是 ( B) 。
D .2
B )。
D .4
( A ) 。
D .(x)double
c 的值是 ( B .3 C .2
,则将 x 强制转化成双精度类型应该写成
B .x(double) 。
C .double(x)
2.750000 C . int a=7; float x=, y=;
B .2.750000
C .
D . 则表达式 x+a%3*(int)(x+y)%2/4 的值是 D . 15.设变量n 为float 类型,m 为int 类型,则以下能实现将n 中的数值保留小数点 后两位,第 3 位进行四舍五入运算的表达式是 ( B ) 。 A .n=(n*100+/ B .m=n*100+, n=m/ C .n=n*100+ D .n=(n/100+* 16.已知 ch 是字符型变量,下面不正确的赋值语句是 ( A ) 。
A.ch='a+b'; B.ch='\0'; C.ch='7'+'9'; D.ch=5+9;