2.2.3 同步自测
一、选择题
1.如a为int型,则与表达式a等价的C语言关系表达式是(B)。
(A)a>0 (B)a!=0 (C)a==0 (D)a<0 2.运行完下列程序后,在屏幕上的内容是(D)。
void main () { int a=0; a+=(a=12); printf (\ }
(A)0 (B)6 (C)12 (D)24
3.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式( D)。
(A)x==y (B)x-y==0 (C) fabs(x-y)<1e-8 (D)labs(x-y)<1e-8 4.执行下面程序中输出语句后,a的值是(C)。 #include<> main( ) { int a;
printf(\ }
(A)65 (B)20 (C)15 (D)10 5.若变量t为double类型,表达式(t=1,t+5,t)的值是(C)。
(A)1 (B) (C) (D)6 6.下述程序的输出结果是(B)。
#include <> void main() { int a,b,c=241; a=c/100%9; b=-1&&-1;
printf(\ }
(A)2,0 (B)2,1 (C)6,1 (D)0,-1
7.设有C语句:int x=3, y=4,z=5;,则下面表达式中值为0的是(D)。
(A)x&&y (B)x<=y
(C)x||y+z&&y-z (D)!((x 8.位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于(A)。 (A)操作数乘以2 (B)操作数除以2 (C)操作数除以4 (D)操作数乘以4 9.下面程序运行后,变量m的值为(C)。 #include<> void main() { int m,n,k; m=(n=4)+(k=10-7); printf(〞m=%d\\n〞,m); } (A)4 (B) 3 (C)7 (D)14 10.有定义int a=3,b=4,c=5;执行完表达式a++>--b&&b++>c--&&++c后, a,b,c的值分别为(B)。 (A)3 4 5 (B) 4 3 5 (C) 4 4 4 (D) 4 4 5 11.在下列选项中,不正确的赋值语句是(D)。 (A)t/=5; (B)n1=(n2=(n3=0)); (C) k=i==j; (D) a=b+c=1; 12.在以下的四个运算符中,优先级最低的运算符是(D)。 (A)<= (B)/ (C)!= (D)&& 13.设x,y分别为单精度和双精度类型变量,则下列选项(D)可将表达式x+y的运算结果强制转换为整型数据。 (A) (int)x+y (B)int(x)+y (C)int(x+y) (D)(int)(x+y) 14.执行下面C语言序列后,变量b的值是(D)。 int a,b,c; a=b=c=1; ++a||++b&&++c; (A)错误 (B)0 (C)2 (D)1 15.设有整型变量a, 实型变量f,双精度型变量x,则表达式a+′b′+x*f值 的类型为(C)。 (A)int (B)float (C)double (D)不能确定 语言用(D)表示逻辑真值。 (A)true (B)T (C)整型值0 (D)非0整型值 17.已知:int x=1,y=2,z=0,则执行z=x>y(10+x,10-x):(20+y,20-y)后, z的值为(C)。 (A)11 (B)9 (C) 18 (D) 22 18.若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是(C)。 (A)2 (B)4 (C) (D) 19.设有定义int m=1,n=-1;则执行语句printf(〞%d\\n〞,(m--&&++n));后的 输出结果是(B)。 (A)-1 (B)0 (C) 1 (D) 2 20.假设有int x=11;,则表达式(x++*1/3)的值是(A)。 (A)3 (B)12 (C)11 (D)0 21.在C语言中,要求运算数必须是整型的运算符是(D)。 (A)/ (B)++ (C)!= (D)% 22.若程序中需要表示关系x≥y≥z,应使用C语言表达式为(A)。 (A)(x>=y)&&(y>=z) (B)(x>=y)and(y>=z) (C)(x>=y>=z) (D)(x>=y)&(y>=z) 23.若有C语句int k=5;float x=;,则表达式(int)(x+k) 的值是(D)。 (A)5 (B) (C) 7 (D) 6 24. 在执行语句if((x=y=2)>=x&&(x=5)) y*=x;后变量x,y的值应分别为(C)。 (A)2、2 (B)5、2 (C)5、10 (D) 执行时报错 25.下面程序的输出结果为(A)。 #include<> void main() { int x=1,y=1,z; z=1||++x&&y--; printf(〞\\n%d,%d,%d〞,x,y,z); } (A)1,1,1 (B)2,0,1 (C)2,1,1 (D)2,0,0 26.设有int i=3,j=9;则表达式k=i++*--j的值为(B)。 (A)32 (B)24 (C)27 (D)36 27.表达式k=(12<10)4:12:3的值为(B)。 (A)1 (B)2 (C) 3 (D) 4 28.设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是(D)。 (A)3 (B)0 (C)9 (D)-12 29.若有 float x=,y=;int a=7; 则表达式x+a%3*(int)(x+y)%2/4的值为(D)。 (A) (B) (C) (D) 30.设有int a=3,b=10,k=0;则表达式k=a++/--b执行后,k的值为(D)。 (A)3 (B)5 (C) (D)0 31.字符串〞\\101\\102\\x43\\x44〞的长度为(A)。 (A)4 (B)1 (C)16 (D)17 32.已知:int x=1,y=2,z=0;则执行:z=x>y10:20,z的值为(B)。 (A)10 (B)20 (C)1 (D)2 33.表达式11&10的结果用二进制表达为(D)。 (A)11 (B)3 (C)1 (D)10 34.执行下面的程序段后,b的值为(B)。 int x=35; char z=′A′; int b; b=((x&5)&&(z<′a′)); (A)0 (B)1 (C)2 (D)3 35.设有以下语句:int a=3, b=6,c; c=a^b<<2; 执行后c的低8位二进制值是(A)。 (A)00011011 (B)00010100 (C)00011100 (D)00011000