9.请选出可用作C语言用户标识符的一组标识符() A、Void -define WORD B、a3_b3 _123 IF C、For -abc Case D、2a Do sizeof 10.C语言提供的合法的数据类型关键字是: () A、Double B、short C、integer D、Char
11. 若有以下定义: char a; int b; float c;double d; 则表达式a*b+d-c值的类型为() A、float B、int C、char D、double
12.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为() A、char < int < long int < =float < double B、char=int < long int<=float < double C、char < int < long int=float=double D、char=int=long int<=float < double 13.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是() A、7 B、8 C、6 D、2
14.下列四组选项中,均不是C语言关键字的选项是() A、define IF type B、 getc char printf C、include scanf case D、while go pow 15.
C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 ()
A、 必须为字母 B、必须为下划线
C、必须为字母或下划线 D、可以是字母,数字和下划线中任一字符 16.下面四个选项中,均是合法整型常量的选项是 () A、 160 -0xffff 011 B、-0xcdf 01a 0xe C、-0x46a 2e5 0x D、 -0x48a 2e5 0x
17.下面四个选项中,均是不合法的整型常量的选项是() A、--0f1 -0xffff 0011 B、-0xcdf 017 12,456 C、-018 999 5e2 D、-0x48eg -068 03f 18.下面四个选项中,均是不合法的浮点数的选项是() A、 160. 0.12 e3 B、 123 2e4.2 .e5 C、-.18 123e4 0.0 D、-e3 .234 1e3 下面正确的字符常量是()
A、 \、'\\\\'' C、 'W' D、 ''
20.下面四个选项中,均是正确的八进制数或十六进制数的选项是() A、-10 0x8f -011 B、0abc -017 0xc C、0010 -0x11 0xf1 D、0a12 -0x123 -0xa 21.以下正确的叙述是 ()
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C、在C程序中,无论是整数还是实数,都能被准确无误地表示 D、在C程序中,%是只能用于整数运算的运算符
22.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为() A、float B、char C、int D、 double
23.字符型常量在内存中存放的是该字符对应的()
A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值 24.以下关于字符串的不正确说法是( ) A、字符串长度就是字符串中字符的个数
B、字符串的尾部会自动追加一个\字符串结束标志\
C、字符串的长度为字符个数加1 D、在C语言中常用字符型数组来存放字符串 25.C语言中,double类型数据占( )个字节,char类型数据占( )个字节 A、1 B、2 C、4 D、8和1
26.C语言中最简单的数据类型是____________、____________、 ______________
27. 设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为____________
28.在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_______;一个int型数据在内存中所占的字节数为_______
29.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为________
30.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为______ 31.表达式pow(2.8,sqrt(double(x)))值的数据类型为_______
32.设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为_______
习题答案:1.D 2.A 3.D 4.A 5.D 6.C 7.A 8.D 9.B 10.B 11.D 12.A 13.B 14.A 15.C 16.A 17.D 18.B19.C 20.C 21.D 22.D 23.A 24 A 25.D 26.整型 实型 字符型
27.double 28.1,2 29.4,8 30.int 31.double 32. -32768至32767
位运算
1.表达式 0x13|0x17的值是 (B) A、0x13 B、0x17 C、0xE8 D、0xc8 2.表达式 0x13^0x17的值是(A) A、0x04 B、0x13 C、0xE8 D、0x17 3.表达式~0x13的值是(A)
A、0xFFEC B、 0xFF71 C、0xFF68 D、0xFF17 4.表达式0x13^0x17的值是(A) A、0x04 B、 0x13 C、0xE8 D、0x17 5.表达式 0x13&0x17的值是 (B) A、0x17 B、0x13 C、0xf8 D、0xec 6.若a=1,b=2则 a|b的值是(D) A、0 B、1 C、2 D、3
7.若有以下程序段: int x=1,y=2; x=x^y; y=y^x; x=x^y; 则执行以上语句后x和y的值分别是(C) A、x=1,b=2 B、 x=2,y=2 C、x=2,y=1 D、x=1,y=1
8.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是(B) A、sizeof,&=,<<,^ B、sizeof,<<,^,&= C、^,<<,sizeof,&= D、<<,^,&=,sizeof 9.若x=2,y=3则x&y的结果是(B) A、0 B、2 C、3 D、5
10. 请读程序片段: unsigned t=129; t=t^00; printf(\以上程序片段的输出结果是(B)
A、0,0 B、129,201 C、126,176 D、101,145
11.请读程序片段: int x=20; printf(\上面程序片段的输出结果是(C) A、02 B、-20 C、-21 D、-11
12.请读程序片段: char x=56; x=x&056; printf(\以上程序片段的输出结果是(C) A、56,70 B、 0,0 C、40,50 D、62,76
26. 在C语言中,要求运算数必须是整型或字符型的运算符是(B) A、 && B、 & C、 ! D、||
14.在执行完以下C语句后,B的值是 char Z='A'; int B; B=((241&15)&&(Z|'A')); (B) A、0 B、1 C、TRUE D、FALSE
15.设有以下语句int a=1,b=2,c;c=a^(b<<2);执行后,C的值为(D) A、6 B、7 C、8 D、9
16.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是(A) A、c1^c2 B、c1&c2 C、~c2 D、c1|c2 17.
设 int b=2;表达式(b>>2)/(b>>1)的值是(D)
A、0 B、2 C、4 D、8
18. 以下程序的功能是进行位运算main(){ unsigned char a, b;a=7^3; b= ~4 & 3; ??printf(\??程序运行后的输出结果是(A) A、4 3 B、7 3 C、7 0 D、4 0 19.有以下程序main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\\n”,d); } 程序运行后的输出结果是( B) A、3 B、4 C、5 D、6 20.
有以下程序 main( ) { unsigned char a,b; a=4|3; b=4&3; printf(“%d %d\\n”,a,b(; } 执行后输出结果是(A)
A、7 0 B、0 7 C、1 1 D、43 0
21.设c为一个字符,且(C<<3==C>>3)&&C>0为真,则C的字符代码是01000001。 22.八位二进制补码能表示的最大十进制数为+127或-128
23.设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2位和第8位(右起为第1位),则b的二进制是
10000010
运算符和表达式
1.假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4;
m=(w Z; 则该程序运行后,m的值是: A、4 B、3 C、2 D、1 2.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 A、A%2==1 B、!(A%2==0) C、!(A%2) D、 A%2 3.若变量已正确说明为float类型,要通过语句scanf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: A) 10<回车> B) 10.0,22.0,33.0<回车> 22<回车> 33<回车> C) 10.0<回车> D) 10 22<回车> 22.0 33.0<回车> 33<回车> A、A B、B 4.C语言中运算对象必须是整型的运算符是 A、 %= B、/ C、= D、〈= 5.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 A、1 B、2 C、2.0 D、2.5 6.下列程序执行后的输出结果是(小数点后只写一位) main() { double d; float f; long l; int i; i=f=1=d=20/3; printf(\d %f %f \\n\} A、6 6 6.0 6.0 B、6 6 6.7 6.7 C、6 6 6.0 6.7 D、6 6 6.7 6.0 7.设有以下定义: int x=10,y=3,z; 则语句 printf(\的输出结果是_____ A、1 B、0 C、4 D、3 8.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是______ A、1 B、2 C、2.0 D、2.5 9.设 int b=2;表达式b/(b*2)的值是________ A、0 B、0.5 C、0.500000 D、0.000000 10.设int x=5,y=4,(--x==y++)? --x::++y的值是: A、5 B、3 C、4 D、6 11.下面的表达式中____满足:当x为偶数时值为“真”,为奇数时值为“假” A、x%2==0 B、!x%2!=0 C、2*x/2-x==0 D、!(x%2) 12.设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=ad)后,m的值为_____ A、1 B、2 C、3 D、0 13.设x、y、z和k都是int型变量,则执行表达式: x=(y=4,z=16,k=32)后,x的值为_____ A、4 B、16 C、32 D、52 14.设有a=b=c=2,求表达式a+++b+++c+++的结果是_______ A、6 B、9 C、8 D、表达式出错 15.以下定义和语句: char cl='b',c2='e'; printf(″%d,%c\\n″,c2-c1,c2-'a'+'A'); 则输出结果是:_______ A、2,M B、3,E C、2,E D、输出项与对应的格式控制不一致,输出结果不确定 16.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是______ A、把x和y按从大到小排列 B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 17.设A=3,B=4,执行 printf(\的输出是______. A、3,4 B、4,3 C、3,3 D、4,4 18.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 x=(i=4,j=16.k=32) A、4 B、16 C、32 D、52 19.以下符合C语言语法的赋值表达式是 A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、d=9+e++=d+7 20.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为 A、D B、68 C、不确定的值 D、C 21.表达式18/4*sqrt(4.0)/8值的数据类型为 A、int B、float C、double D、不确定 22.若有以下定义,则能使值为3的表达式是 int k=7,x=12; A、x%=(k%=5) B、x%=(k-k%5)