第二章 练习题
一、填空题
1、在C语言中的实型变量分为两种类型,它们是float型和( )型。 2、若有定义:char c='\\010';则变量c中包含的字符个数为( )
3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为( )
4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为( )个;一个int型数据在内存中所占的字节数为( )个。 5、在C语言中,表示逻辑“假”值用数字( )表示。
6、C语言中的标识符只能由字母、数字和( )三种字符组成。 7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为( )
8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以( )开头、十六进制整数以( )开关(注:请用小写字母)
9、请将75写成C语言八进制和十六进制表示( ),( )。
10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是( ) 11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为( )。
12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为( ),b值为( ),c值为( )。
13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为( )
14、若a是int型变量,且初值为5,则计算表达式a*=3+2后a的值为() 15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为( ),n的值为( )
16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为( ) a+(int)(b/3*(int)(a+c)/2)%4
17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为() (float)(a+b)/2+(int)x%(int)y
18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为( ) (x+y)%2+(int)a/(int)b
19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为( ) 20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是()
21、若x为int型变量,则执行以下语句后x的值是() x=7; x+=x-=x+x;
1
22、有int k,j;且k=3,j=4,则表达式k+=j,j/=4.0,++j,j+2的值为(),变量k的值为(),变量j的值为()
23、已定义:float x=4.6;表达式:x++=x+1的值是()
24、语句int i=3;k=(i++)+(i++)+(i++);执行过后k的值为(),i的值为()。 25、求表达式y=—i++;中i、y的值为()。其中i的初始值为3
二、选择题
1、下面正确的字符常量是()
A)“C” B) '12' C) 'W' D) ''
2、在C语言中,int、char、short三种类型数据在内存中所占用的字节数() A)由用户自己定义 B)均为2个字节
C)是任意的 D)由所用机器的机器字长决定 3、下面四个选项中,均是合法整型常量的选项是()
A)160 -0xffff 011 B)-0xcdf 01a 0xe C)-01 986,012 0668 D)-0x48a 2e5 0x 4、下面四个选项中,均是不合法的整型常量的选项是()
A)--0f1 -0xffff 0011 B)-0xcdf 017 12,456 C)-018 999 5e2 D)-0x48eg -068 1a 5、下面四个选项中,均不是合法的浮点数的选项是() A)160. 0.12 e3 B)123 2e4.2 e5 C)-.18 123e4 0.0 D)-e3 .234 1e3 6、下面四个选项中,均是合法的浮点数的选项是()
A)+1e+1 5e-9.4 03e2 B)-.60 12e-4 -8e5 C)123e 1.2e-.4 +2e-1 D)-e3 .8e-4 5.e-0 7、下面四个选项中,均是正确的八进制或十六进制数的选项是() A)-10 0x8f -011 B)0abc -017 0xc C)0010 -0x11 0xf1 D)0a12 -0x123 -0xa 8、下面四个选项中,均是正确的数值常量或字符常量的选项是() A)0.0 0f 8.9e '&' B)\ 1e1 \C)'3' 011 0xff00 0a D)+001 0xabcd 2e2 50.
9、已知字母'A'的ASCII码为十进制65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,在内存中c2中的值为()
A) D B) 68 C)不确定 D)C 10、若t已定义为double类型,表达式t=1,t++,t+5的值是() A)1 B)7.0 C)2.0 D)1.0
2
11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
A)int B)float C)double D)不确定 12、下面四个选项中,均是非法常量的选项是()
A)‘as’ -0fff '\\0xa' B) '\\\\' '\\01' 12,456 C) -0x18 01177 0xf D)0xabc '\\0' 'ab'
13、以下正确地定义整型变量a,b和c并为它们赋初值5的语句是() A)int a=b=c=5; B)int a,b,c=5; C)int a=5,b=5,c=5; D)a=b=c=5;
14、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为() x=(i=4,j=16,k=32)
A) 4 B) 16 C)32 D)52
15、假设所有变量均为整型变量,则表达式(a=2,b=5,b++,a+b)的值是( ) A)7 B)8 C)6 D)2
16、若有代数式(3ae)/(bc),则不正确的C语言表达式是() A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 17、已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42;
则以下不符合C语言语法表达式是() A) x%(-3) B) w+=-2
C) k=(a=2,b=3,a+b) D) a==a-=(b=4)*(a=3) 18、已知各变量的类型说明如下:
int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是()
A) a+=a-=(b=4)*(a=3) B) a=a*3=2 C) x%(-3) D) y=float(i)
19、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()
A)2.500000 B) 2.750000 C) 3.500000 D) 0.000000
20、设以下就是均为int类型,则值不等于7的表达式是()
3
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+1,x=y,x+1) 21、已知ch是字符型变量,下面不正确的赋值语句是() A)ch='a+b' B)ch='\\0' C)ch='7'+'9' D)ch=5+9 22、若有以下定义,则正确的语句是() int a,b; float x;
A)a=1,b=2, B)b++; C)a=b=5 D)b=int(x);
23、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是()
A)x=10 y=15 z=10 B)x=10 y=10 z=10 C)x=10 y=10 z=15 D)x=10 y=5 z=10 24、若题中各变量已正确定义并赋值,下列符合C语句的表达式是 A、a%=7.6 B、a++,a=7+b+c C、int(12.3)%4 D、a=c+b=a+7 25、以下关于运算符优先顺序的描述中正确的是() A)关系运算符<算术运算符<赋值运算符<逻辑运算符 B)逻辑运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑运算符
26、已知int a=1,b=3,c=3;float d=4;则以下表达式中不能表示数学式子
a 是()
(b+c)×d
A)a/(b+c)*d B)a/(b+c)*1/d C)a/(b+c)/d D)a/d/(b+c) 27、若有以下程序: int c1=1,c2=2,c3; c3=1.0/c2*c1;
则执行后,c3中的值为()
A)0 B)0.5 C)1 D)2 28、以下不正确的叙述是()
A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
4
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
29、以下符合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
30、下面四个选项中,均是不合法的用户标识符的选项是____。 (A)A P_0 do (B)float la0 _a (C)b-a goto int (D)_123 temp INT
31、下列四个选项中,均是不合法的整型常量的选项是______。 (A)--0f1 -0xffff 0011 (B)-0xcdf 017 12,3456 (C)-018 999 5e2 (D)-0x48eg -068 03f 32、下面四个选项中,均是合法浮点数的选项是______。 (A)1e1 5e-9.4 03e2 (B)-.60 12e-4 -8e5
(C)123e 1.2e-.4 2e-1 (D)-e3 .8e-4 5.e-0 33、下面四个选项中,均是合法字符的选项是______。 (A)?\\?? ?\\\\? ?\\xf? (B)?\\? ?\\017? ?\\n? (C)?\\018? ?\\f? ?xab?(D)?\\0? ?\\101? ?xlf? 34、以下不正确的叙述是______。
(A)在C程序中,逗号运算符的优先级最低。 (B)在C程序中,APH和aph是两个不同的变量
(C)若a和b类型相同,在计算机了赋值表达式a=b后,b的值不变。 (D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据。
35、如果int i=3,int j=4,则k=i+++j执行之后k,i和j的值分别为 。 A)7,3,4
B)8,3,5
C)7,4,4
D)8,4,5
三、判断对错
1、在C语言中,e_2和MAXNUMBER可以作变量名。( ) 2、2e-3和3e+2.3都是非法的C常量。( )
3、在C语言程序设计中,Total与total是同一个变量。( ) 4、以下语句是正确的: ( ) char x='a'; printf(\
5、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为float型。( )
5