1
C 语言单元测试一(1-4章)
一、选择题:(每题2分,共66分)
1.若有定义语句int b=2; 则表达式 (b<<2)/(3||b)的值是 A )4 B )8 C )0 D )2 2.有以下程序
#include main()
{ char a='H';
a=(a>='A'&&a<='Z') ? (a-'A'+'a'):a; printf("%c\n",a); }
程序运行后的输出结果是
A )A
B )a
C )H
D )h
3.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是
4.在C 语言中,字符型数据在内存中以( )形式存放。 A
)原码 B )ASCII 码 C )反码 D )BCD 码 5.下列关系表达式中,结果为“假”的是
A )(3+4)>6
B )(3!=4)>2
C )3<=4||3
D )(3<4)==1 6.C 语言中char 类型数据占字节数为 A )3 B )4 C )1 D )2 7.若有定义和语句:int a,b;scanf("%d,%d",&a,&b);以下选项中的输入数据,不能把值3赋给变量a 、5赋给变量b 的是(说明:符号□表示空格)
A )3,5,
B )3,5,4
C )3□,5
D )3,5 8.在C 语言中,要求运算数必须是整型的运算符是 A )/ B )++ C )!= D )% 9.已知各变量的类型说明如下:
int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下正确的表达式是
A )a + = a -= (b=4) * (a=3)
B )a = a * 3=2
C )x % (-3)
D )y = float(i) 10.以下叙述中错误的是
A )非零的数值型常量有正值和负值的区分
B )常量是在程序运行过程中值不能被改变的量
C )定义符号常量必须用类型名来设定常量的类型
D )用符号名表示的常量叫符号常量 11.以下选项中表示一个合法的常量是(说明:符号□表示空格) A )9□9□9 B )0Xab C )123E0.2 D )2.7e 12.变量a 中的数据用二进制表示的形式是01011101,变量b 中的数据用二进制表示的形式是11110000。若要求将a 的高4位取反,低4位不变,所要执行的运算是
A )a^b
B )a|b
C )a&b
D )a<<4 13.当变量c 的值不为2、4、6时,值也为“真”的表达式是
A )(c==2)||(c==4)||(c==6)
B )(c>=2 && c<=6) || (c!=3)||(c!=5)
C )(c>=2 && c<=6) && !(c%2)
D )(c>=2 && c<=6) && (c%2!=1) 14.有以下程序段
char ch; int k; ch='a'; k=12;
printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);
已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A )因变量类型与格式描述符的类型不匹配输出无定值 B )输出项与格式描述符个数不符,输出为零值或不定值 C )a,97,12k=12 D )a,97,k=12 15.int a=123,b=12345;
printf(“%4d,%4d ”,a,b);的输出结果为(说明:符号□表示空格)
A )□123,1234
B )123,12345
C )□123,12345
D )123□,1234 16.以下程序的运行结果是 void main() { int m=5;
if (m++ > 5) printf ("%d\n", m); else printf ("%d\n", m-- ); }
A )4
B )5
C )6
D )7
17.设以下变量均为int 类型,则值不等于7的表达式是
A )(x= y= 6, x+y,x+1)
B )(x= y= 6,x+y,y+1)
C )(x= 6,x+1,y= 6,x+y)
D )(y=6,y+l,x = y,x+1) 18.以下关于运算符优先顺序的描述中正确的是
A )关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B )逻辑运算符< 关系运算符< 算术运算符< 赋值运算符
C )赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D )算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 19.以下选项中可作为C 语言合法常量的是
A )-80
B )-080
C )-8e1.0
D )-80.0e 20.下列可用于C 语言用户标识符的一组是
A )void, define, WORD
B )a3_3,_123,Car
C )For, -abc, IF Case
D )2a, DO, sizeof 21.有以下程序
#include main()
{ int a=24,b;
b=a>>2;printf("%d\n",b); }
程序运行后的输出结果是
D )switch(a*a+b*b) { default : break;
case 3 : y=a+b;break; case 2 : y=a-b;break; }
C )switch(a+b)
{ case1 : case3 : y=a+b;break; case0 : case4 : y=a-b; }
B )switch a*b
{ case 10 : x=a+b; Default : y=a-b; }
A )switch(a+9)
{ case c1 : y=a-b; case c2 : y=a+b; }