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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。