在C语言中的实型变量分为两种类型
第二章 练习题
一、填空题
1、在C 语言中的实型变量分为两种类型,它们是f loa t 型和( )型。
2、若有定义:c h ar c='\010'; 则变量c 中包含的字符个数为( )
3、已知字母a 的AS CII 码为十进制数97,且设c h 为整型变量,则表达式c h='a'+'8'-'3' 的值为( )
4、在C 语言中(以16位P C 机为例),一个f lo at 型数据在内存中所占的字节数为( )个;一个int 型数据在内存中所占的字节数为( )个。
5、在C 语言中,表示逻辑“假”值用数字( )表示。
6、C 语言中的标识符只能由字母、数字和( )三种字符组成。
7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为( )
8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以( )开头、十六进制整数以( )开关(注:请用小写字母)
9、请将75写成C 语言八进制和十六进制表示( ),( )。
10、若有定义:in t 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 是in t 型变量,则计算表达式a=25/3%3 后a 的值为()
15、若x 和n 均是int 型变量,且x 和n 的初值均为5,则计算表达式x+=n++后x 的值为( ),n 的值为( )
16、若有定义:in t b=7;flo at a=2.5,c =4.7;则下面表达式的值为( ) a+(in t)(b/3*(in t)(a+c)/2)%4
17、若有以下定义:int a=2,b=3;flo at x=3.5,y=2.5; 则下面表达式的值为() (float)(a+b)/2+(int)x%(int)y
18、若有定义:in t x=3,y=2;floa t a=2.5,b=3.5; 则下面表达式的值为( ) (x+y )%2+(in t)a/(int) b
19、所有变量均为整型,则表达式(a =2,b=5,a++,b++,a+b)的值为( )
20、若有定义:int e=1,f=4,g=2;f loat 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;
22、当a=3,b=2,c=1时,表达式f=a>b>c的值是( )
23、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB 的值是( )
24、若a=6,b=4,c=2,则表达式!(a-b )+c-1&&b-c*2的值是( )
25、若a=1,b=4,c=3,则表达式!(a
26、若a=6,b=4,c=3,则表达式a&&b-c-1||!(c-3) 的值是( )
27、设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是( )
28、当m=2,n=1,a=1,b=2,c=3时, 执行完d=(m=a!=b)&&(n=b>c) 后,n 的值为
( ),m 的值为( )
29、有int x,y,z; 且x=3,y=-4,z=5,则表达式x-3&&y==(!x-3||z-5) 的值为()
30、以下程序的运行结果是()
ma in()
{
if (2*2==5
printf("T ");
els e
prinft("F ");
}
31、若a=1,b=2,c=3,d=4, 则表达式a>b? a :c>d?c :d的值为()
32、以下程序的运行结果是()
#inc lu e
ma in( )
{ int x=1,y,z :
x*=3+2; prin tf("%d,",x);
x*=y=z=5; printf("%d,",x) ;
x=y==z; prin tf("%d\n ",x);
}
33、若运行时输入:100时,则以下程序的运行结果是()
ma in()
{ int a;
sc anf("%d",&a);
pr intf("%s",(a%2!=0)? "n o ":"yes ");
}
34、已有定义int i, j;f loa t x; 为将-10赋给i,12赋给j,410.34赋给x; 则对应以下
sc anf 函数调用语句的数据输入形式是( )
sc anf("%d,%d,%f",&i,&j,&x);
35、在pr intf 函数中,以八进制形式输出整数用%()格式,以十六形式输出整数用%()格式。(注:请用小写字母)
36、在pr intf 函数中,输出长整型数据用%()格式,输出字符串用%()格式。(注:请用小写字母)
37、在pr intf 函数中,以小数形式输出实型数据用%()格式,以指数形式输出实型数据用%()格式。(注:请用小写字母)
38、有以下语句:
int i=79; printf("%o", i);
实际输出( )。
float x=333.1234567890; prin tf("%.2f",x);
实际输出( )。
39、有以下语句:
int i=79; printf("%x", i) ;
实际输出( )。
doub le y=333.1234567890; pr intf("%2.5f ",y);
实际输出( )。
40、有以下语句:
int i=7900; printf("%2d ", i);
实际输出域宽为( )。
float x=1.23456789; printf("%.5f",x) ;
实际输出为( )。
二、选择题
1、下面正确的字符常量是()
A )“C ” B ) '12' C ) 'W' D ) ''
2、在C 语言中,int 、c har 、shor t 三种类型数据在内存中所占用的字节数()
A )由用户自己定义 B )均为2个字节
C )是任意的 D )由所用机器的机器字长决定
3、下面四个选项中,均是合法整型常量的选项是()
A )160 -0xffff 011 B )-0xc df 01a 0xe
C )-01 986,012 0668 D )-0x48a 2e 5 0x
4、下面四个选项中,均是不合法的整型常量的选项是()
A )--0f 1 -0xffff 0011 B )-0xc df 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 )"a " 3.9e-2.5 1e1 "\'"
C )' 3' 011 0xff00 0a D )+001 0xa bc d 2e2 50.
9、已知字母' A' 的AS CII 码为十进制65,且c 2为字符型,则执行语句c 2='A'+'6'-'3';后,在内存中c 2中的值为()
A ) D B ) 68 C )不确定 D )C
10、s ize of(flo at) 是()
A )一个双精度型表达式 B )一个整型表达式
C )一种函数调用 D )一个不合法的表达式
11、设变量a 是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的数据类型为()
A )int B )f loat C )do ub le D )不确定
12、下面四个选项中,均是非法常量的选项是()
A )‘as ’ -0fff ' \0xa' B ) '\\' '\01' 12,456
C ) -0x18 01177 0xf D )0xa bc ' \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 都是in t 型变量,则计算下面表达式后,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、若有代数式(3a e )/(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;
uns ign ed long w =5;
doub le 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; uns ign ed long w=5; dou b le x=1.42,y=5.2;
则以下符合C 语言语法的表达式是()
A ) a +=a-=(b=4)*(a=3) B ) a=a*3=2
C ) x%(-3) D ) y=flo at(i)
19、若有定义:in t a=7;floa t 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的表达式是()
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、已知c h 是字符型变量,下面不正确的赋值语句是()
A )c h='a+b' B )c h='\0'
C )c h='7'+'9' D )c h=5+9
22、若有以下定义,则正确的语句是()
int a,b; flo at x;
A)a=1,b=2, B)b++;
C)a=b=5 D)b=in t(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、逻辑运算符两侧运算对象的数据类型()
A)只能是0或1 B)只能是0或非0正数
C)只能是整型或字符型数据 D)可以是任何类型的数据
25、以下关于运算符优先顺序的描述中正确的是()
A)关系运算符
B)逻辑运算符
C)赋值运算符
D)算术运算符
26、已知x=43,c h='A',y =0;则表达式(x>=y&&ch
27、设有:in t a=1,b=2,c =3,d=4,m=2,n=2; 执行(m=a>b)&&(n=d>c) 后n 的值为()
A)1 B)2 C)3 D)0
28、判断c har 型变量c 1是否为小写字母的正确表达式为()
A)' a'=a)&&(c1
C)('a'>=c1)||('z'='a')&&(c1
29、执行以下语句后b 的值为()
int a,b,c;
a=b=c=0;
++a||++b&&++c;
A)1 B) 2 C)错误 D) 0
30、执行以下语句后b 的值为()
int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z)
A) 6 B) 0 C) 1 D) 4
31、若w 、x 、y 、z 、m 均为int 型变量,则执行下面语句后的m 值是() w =1;x=2;y=3;z=4;
m=(w
m=(m
m=(m
A)1 B)2 C)3 D)4
32、以下不正确的叙述是()
A )在C 程序中,逗号运算符的优先级最低
B )在C 程序中,AP H 和a ph 是两个不同的变量
C )若a 和b 类型相同,在计算了赋值表达式a=b 后b 中的值将放入a 中,而b
中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
33、以下符合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
34、执行以下程序段后的输出结果是()
int w=3,z=7,x=10;
pr intf("%d,", x>10?x +100:x-10);
pr intf("%d,",w ++||z++);
pr intf("%d,",!w >z);
pr intf("%d\n",w &&z);
}
A )0, 1,1,1 B )1,1,1, 1 C )0,1,0,1 D )0,1, 0,0
35、若x, y 均定义为int 型,z 定义为do ub le 型,以下不合法的sc an f 函数调用语句是()
A )sc anf("%d%lx,%le ",&x,&y,&z);
B )sc a nf("%2d*%d%lf ",&x,&y,&z);
C )sc a nf("%x%*d%o",&x,&y);
D )sc anf("%x%o%6.2f ",&x,&y,&z);
36、已有程序段和输出数据的形式,f 为4.5,a 为2。程序中输入语句的正确形式应当为()(注:表示回车)
ma in()
{ int a;floa t f;
printf("\ninpu t number :");
输入语句
pr intf("\nf=%f,a=%d\n",f, a);
}
input num ber :4.5,2
A )sc anf("%d,%f",&a,&f); B )sc anf("%f,%d",&f,&a);
C )sc a nf("%d%f",&a,&f); D )sc anf("%f%d",&f,&a);
37、以下说法正确的是()
A )输入项可以为一个实型常量,如sc anf("%f",3.5) ;
B )只有格式控制,没有输入项,也能进行正确输入,如sc anf("a=%d,b=%d");
C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如sc anf("%4.2f ",&f);
D) 当输入数据时,必须指明变量的地址,如sc anf("%f",&f);
38、有输入语句:sc a nf("a=%d,b=%d,c =%d",&a,&b,&c);
为使变量a 的值为1,b 为3,c 为2,从键盘输入数据正确形式应当是()
A )132 B )1,3,2
C )a=1 b=3 c=2 D )a=1,b=3,c=2
39、阅读以下程序,当输入数据的形式为:25,13, 10,正确的输出结果为() ma in()
{
int x,y,z;
sc anf("%d%d%d",&x,&y,&z);
pr intf("x+y+z=%d\n",x+y+z);
}
A) x+y+z=48
B)x+y+z=35
C)x+z=35
D) 其它情况
40、根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()
ma in()
{
int x;f lo at y;
printf("e nt er x,y:");
输入语句
输出语句
}
输入形式 ent er x,y:2 3.4
输出形式 x+y=5.40
A)sc a nf("%d,%f",&x,&y);
printf("\nx+y=%4.2f ",x+y)
B)sc anf("%d%f",&x,&y);
printf("\nx+y=%4.2f ",x+y)
C)sc anf("%d%f",&x,&y);
printf("\nx+y=%6.1f ",x+y);
D)sc anf("%d%3.1f ",&x,&y);
printf("\nx+y=%4.2f ",x+y);
41、下面四个选项中,均是不合法的用户标识符的选项是____。
(A )A P_0 do (B )f loat la 0 _a
(C )b-a goto in t (D )_123 temp INT
42、下列四个选项中,均是不合法的整型常量的选项是______。
(A )--0f1 -0xffff 0011 (B )-0xc df 017 12,3456
(C )-018 999 5e2 (D )-0x 48eg -068 03f
43、下面四个选项中,均是合法浮点数的选项是______。
(A )1e1 5e-9.4 03e 2 (B )-.60 12e-4 -8e 5
(C )123e 1.2e-.4 2e-1 (D )-e 3 .8e-4 5.e-0
44、下面四个选项中,均是合法字符的选项是______。
(A )’\’’ ‘\\’ ‘\xf ’ (B )’\’ ‘\017’ ‘\n’
(C )’\018’ ‘\f ’ ‘xab’(D )’\0’ ‘\101’ ‘xlf ’
45、以下不正确的叙述是______。
(A )在C 程序中,逗号运算符的优先级最低。
(B )在C 程序中,AP H 和ap h 是两个不同的变量
(C )若a 和b 类型相同,在计算机了赋值表达式a=b 后,b 的值不变。
(D )当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据。
三、判断对错
1、在C 语言中,e_2和MAX N UMBER 可以作变量名。( )
2、2e-310和3e+2.3都是非法的C 常量。( )
3、在C 语言程序设计中,To ta l 与tot a l 是同一个变量。( )
4、以下语句是正确的: ( )
c har x='a';
pr intf("%5o ",x);
5、设有说明:c h ar w ;in t x;f lo at y;d oub le z; 则表达式w *x+z-y 值的数据类型为floa t 型。( )
6、下列是正确的语句:( )
int i=2;
i+=3+i*=2;
7、逻辑运算符两侧运算对象的数据类型只能是0或1。( )
8、有以下语句,输出结果是:0 ( )
int x=40,y=4,z=4;
x=x==(y=z); prin tf("%d\n", x);
9、执行以下语句输出结果为:3, 2 ( )
int x,y; x=y=2; y=x++-1; pr in tf("%d,%d",x,y) ;
10、下列是正确的语句: ( ) int i; (i+3)++;
11、执行以下语句后,输出结果是:1 ( ) int x=3; in t y=z=4;
pr intf("%d\n",(x>=y>=x)?1:0);
12、pr int f 函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出错误信息。 ( )
13、下列是正确的语句: ( ) int i; sc anf("%d", i);
14、pr int f 函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度小于5,则输出按右对齐输出该字串,左补空格。( )
15、有以下语句: ( ) int a,b,c;
sc anf("%d,%d,%d",&a,&b,&c); 为使a=3,b=4,c=5
正确的输入形式是:3 4 5
附寻:答案
一、填空题
1、double 2、 1 3、102 4、4 2 5、0
6、下划线 7、0 8、0 0x 9、0113 0x4B 10、-16
11、26 12、6 4 2 13、-60 14、2 15、10 6 16、5.5 17、3.5 18、1 19、9 20、5.7
21、-14 22、0 23、0 24、0 25、1
26、1 27、1 28、0 1 29、0 30、F
31、4 32、5,25,1 33、yes 34、-10,12,410.34 35、o x
36、ld s 37、f e 38、117 333.12 39、4F 333.12346 40、7900 1.234567
二、选择题
1--5 CDADB 6--10 BCDBB 11--15 CACCB 16--20 CAAAC 21--25 ABADC 26--30 CBDDA 31--35 ADCCD 36--40 BDDDB 41--45 CDBAD
三、判断对错题
1--5 对对错对错 6--10 错错对错错 11--15 错错错对错
11