C语言各章节练习题最新版Word格式文档下载.docx
《C语言各章节练习题最新版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言各章节练习题最新版Word格式文档下载.docx(56页珍藏版)》请在冰豆网上搜索。
temp
iNT
4.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中的任意一种
5.下面四个选项中均是合法整型常量的选项是(
A.160
-0xffff
011
B.-0xcdf
01a
0xe
C.-01
986,012
0668
D.-0x48a
2e5
0x
6.下面四个选项中均是不合法整型常量的选项是(
A.-0f1
-0xffff
0011
017
12,456
C.-018
999
5e2
D.-0x48eg
-068
03f
7.下面四个选项中,均是不合法的浮点数的选项是(
A.160
0.12
e3
B.123
2e4.2
e5
C.-18
123e4
0.0
D.-e3
234
1e3
8.下面四个选项中,均是合法的浮点数的选项是(
A.+1e+1
5e-9.4
03e2
B.-.60
12e-4
-8e5
C.123e
1.2e-4
-8e5
8e-4
5.e-0
9.下面四个选项中,均是合法转义字符的选项是(
A.'
\"
’
‘\\'
‘\n'
B.‘\'
‘\017'
‘\"
'
C.'
\018'
‘\f'
‘\xab'
D.'
\\0'
‘\101'
‘\x1f'
10.下面四个选项中,均是合法的转义字符的选项是(
‘\xf'
B.'
\1011'
‘\'
‘\a'
\011'
‘f'
‘\}'
\abc'
‘x1f'
11.下面正确的字符常量是(
A.‘c"
\\"
w'
D."
12.下面四个选项中,均是正确的数值常量或字符常量的选项的是(
A.0.0
0f
8.9e
‘&
B."
a"
3.9E-2.5
1e1
3'
011
0xFF00
0a
D.+001
0xabcd
2e2
50
13.下面不正确的字符串常量是(
abc'
12'
12"
C."
0"
“
14.若有代数式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
15.已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式是(
A.x%(-3)
B.w+=-2
C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
16.已知各变量的类型说明如下:
inti=8,k,a,b;
doublex=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)
17.以下不正确的叙述是(
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
18.以下正确的叙述是(
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C语程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
19.以下符合C语言语法的赋值表达式是(
A.d=9+e+f=d+9B.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'
-'
;
后,c2中的值为(
A.D
B.68
C.不确定的值
D.C
21.在C语言中,要求运算数必须是整型的运算符是(
A./
B.++
C.!
=
D.%
22.若以下变量均是整型,且num=sum=7;
则计算表达式sum=num++,sum++,++num后sum值为(
C.9
D.10
23.若有说明语句:
charc='
\72'
则变量c(
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
24.若有定义:
inta=7;
floatx=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
25.设变量a是整型,f是实型,i是双精度型,则表达式10+'
a'
+i*f值的数据类型为(
A.int
C.double
D.不确定
26.在C语言中,char型数据在内存中存储形式是()
A.补码
B.反码
C.原码
D.ASCii码
27.表达式18/4*sqrt(4.0)/8值的数据类型为()
A.float
Bchar
28.设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型为()
C.int
D.double
29.若有以下定义,则能使值为3的表达式是()
int
k=7,x=12;
A.x%=(k%=5)
B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
30.设以下变量均为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)
31.在c语言中(以16位pc机为例),一个char型数据在内存中所占的字节数为(),一个int型数据在内存中所占的字节数为(),一个float型数据在内存中所占的字节数为(),一个double型数据在内存中所占的字节数为().
32.有以下定义,则计算表达式y+=y-=m*=y后的y值是()。
intm=5,y=2;
33.若s是int型变量,s=6;
则下面表达式的值为()
s%2+(s+1)%2
34.若a是int型变量,则下面表达式的值为()
(a=4*5,a*2),a+6
35。
若x和a均是int型变量,则计算式
(1)后的x的值为(),计算表达式
(2)后的x的值为()。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
36.若a.b和c均是int型变量,则计算表达式后,a值为(),b值为(),c值为().a=(b=4)+(c=2)
37.若a是int型变量,且a的初值为6,则计算表达式后a的值为()。
a+=a-=a*a
38.若a是int型变量,则计算表达式后a的值为()。
a=25/3%3
39.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为(),n值为()。
x+=n++
40.若有定义:
intb=7;
floata=2.5,c=4.7;
则下面表达式的值为()。
a+(int)(b/3*(int)(a+c)/2)%4
41.若定义:
inta=2,b=3;
floatx=3.5,y=2.5;
则下面表达式的值()。
(float)(a+b)/2+(int)x%(int)y
42.若有定义:
\010'
则变量c中包含的字符个数为().
43.若有定义:
intx=3,y=2;
floata=2.5,b=3.5;
则下面表达式的值()(x+y)%2+(int)a/(int)b
44.若x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为()x%=(n%=2)
45.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()
46.C语言中的标识符只能由三种字符组成,它们是(),()和().
47.已知字母a的ASCii码为十进制数97,且设ch为字符型变量,则表达式ch='
8'
的值为().
48.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为(
49.若有定义:
inte=1,f=4,g=2;
floatm=10.5,n=4.0,k;
则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是(
50.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为(
51.表达式pow(2.8,sqrt(double)(x)))值的数据类型为(
52.假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是(
第三章顺序结构程序设计练习题
1.putchar函数可以向终端输出一个(
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符变量值
2.以下程序的输出结果是(
)(注:
□代表空格)
main()
{printf(“\n*s1=%15s*'
“chinabeijing"
);
printf(“\n*s2=%-5s*"
“chi"
}
A.*s1=chinabeijing□□□*
*s2=**chi*
B.*s1=chinabeijing□□□*
*s2=chi□□*
C.*s1=*□□chinabeijing*
*s2=□□chi*
D.*s1=□□□chinabeijing*
3.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列.如果字符串长度以大于5,则输出按方式(
如果字符串长度小于5,则输出按方式(
A.从左起输出该字串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
4.x和y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是(
A.scanf(“%d%d,%1e"
&
x,&
y,&
z);
B.scanf(“%2d*%d%f"
C.scanf(“%x%d*%o"
y);
D.scanf(“%x%o%6.2f"
5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(
)(注:
□表示空格,<
CR>
表示回车)inta1,a2;
charc1;
c2;
scanf(“%d%c%d%c"
a,&
c1,&
a2,&
c2);
A.10A□20B<
B.10□A□20□B<
C.10□A20B<
D.10A20□B<
6.已有定义intx;
且执行scanf(“%3d%f"
语句时,从第一列开始输入数据12345□678<
回车>
则x的值为
(1)y的值为
(2)
(1)A.12345
C.45
D.345
(2)A不确定B.45.000000
C.678.000000
D.123.000000
7.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(
表示回车)
inta1,a2;
charc1,c2;
scanf(“%d%d"
a1,&
a2);
scanf(“%c%c"
A.1020AB<
B.10□20<
AB<
C.10□□20□□AB<
D.10□20AB<
8.已有程序段和输入数据的形式,程序中输入语句的正确形式应当为(
{inta;
floatf;
printf(“\ninputnumber:
"
输入语句printf(“\nf=%f,a=%d\n"
f,a);
}输入的数据为4.5<
2<
A.scanf(“%d,%f"
f);
B.scanf(“%f,%d"
f,&
a);
C.scanf(“%d%f,&
D.scanf(“%f%d"
9.阅读以下程序,当输入数据形式为:
25,13,10<
正确的输入结果为()
{intx,y,z;
scanf(“%d%d%d"
printf(“x+y+z=%d\n"
x+y+z);
A.x+y+z=48
B.x+y+z=35
C.x+z=35D.不确定值
10.根据题目中已给出的数据的输入和输出形式,程序中输入输出的语句的正确内容是(
{intx;
printf(“enterx,y:
输入语句输出语句}输入为:
2□3.4输出为:
x+y=5.40
printf(“\nx+y=%4.21"
x+y);
B.scanf(“%d%f"
printf(“\nx+y=%4.2f"
C.scanf(“%d%f"
printf(“\nx+y=%6.1f"
Dscanf(“%d%3.1f"
11.以下说法正确的是()
A.输入项可以为一个实型常量,如scanf(“%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f"
D.当输入数据时,必须指明变量的地址,如scanf(“%f"
12.有输入语句:
scanf(“a=%d,b=%d,c=%d"
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<
13.已知ch是字符变量,下面正确的赋值语句是()
A.ch='
123'
B.ch='
\xff'
C.ch='
\08'
D.ch='
\'
14.已知ch是字符变量,下面不正确的赋值语句是()
a+b'
B.ch='
\0'
7'
9'
D.ch=5+9;
15.若有以下定义,且各变量均有初值,则正确的赋值语句是()inta,b;
floatx;
A.a=1,b=2;
B.b++;
C.a=b=5
D.b=int(x);
16.设x,y均为float型变量,则以下不合法的赋值语句是()
A.++a;
B.y=(x%2)/10;
C.x*=y+8;
D.x=y=0;
17.设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;
后x,y,z的值是:
()
A.x=10y=15z=10
B.x=10y=10z=10
C.x=10y=15z=15D.x=10y=5
z=10
18.以下程序的输出结果为()
{shorta;
a=-4;
printf("
\na:
dec=%d,oct=%o,hex=%x,unsigned=%u\n"
a,a,a,a);
19.以下程序的输出结果为()
{printf("
*%f,%4.3f*\n"
3.14,3.15);
20.以下程序的输出结果为()
{
x'
c:
dec=%d,oct=%o,hex=%x,ASCii=%c\n"
c,c,c,c);
21.已有定义intd=-2;
执行以下语句后的输出结果是()
*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n"
d,d,d);
*d(4)=%o*d(5)=%6o*d(6)=%-7o*\n"
22.以有定义intd=-2;
*d
(1)=%d(20=%3d*d(3)=%-3d*\n"
*d(4)=%6o*d(6)=%-7o*\n"
23.以有定义floatd1=3.5,d2=-3.5;
*d
(1)=%e*d
(2)=%.4e*d(3)=%10.4e*\n,d1,d1,d1);
*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n"
d2,d2
d2);
24.以下程序输出结果为()
{intx=1,y=2;
x=%dy=%d*sum*=%d\n"
x,y,x+y);
10squaredis:
%d\n"
10*10);
25.以下程序的输出结果为()
{intx=10;
floatpi=3.1416;
(1)%d\n"
x);
(2)%6d\n"
(3)%f\n"
56.1);
(4)%14f\n"
pi);
printf("
(5)%e\n"
568.1);
(6)%14.e\n"
printf("
(7)%g\n"
(8)%12g\n"
26.假设变量a和b均为整型,以下语句可以不借助任何变量把a,b中的值进行交换,请填空.
a+=()
b=a-();
a-=();
27.设变量a,b,c均为整型,以下语句借助中间变量t把a,b,c中的值进行交换,即:
把b中的值给a,把c中的值给b,把a中的值给c.例如:
交换前a=10,b=20,c=30,交换后a=20,b=30,c=10,请填空.
();
a=b;
b=c;
28.设x,y,z均为int型变量,m为long型变量,则在16位机上执行下面赋值语句后,y=(),z=(),m=().
y=(x=32767,x-1);
z=m=0xffff;
29.如有intx;
则执行下面语句后x值是()
x=7;
x+=x-=x+x;
30.若有inta,b;
则以下语句的功能是()
a+=b;
b=a-b;
a-=b;
31.在scanf函数调用语句中,可以在格式字符和%之间加一星号,它的作用是();
当输入以下数据:
10__20__30__40<
承认>
下面语句的执行结果是()
inta1,a2,a3;
scanf("
%d%d%*d%d"
a3);
32.若有以下定义和语句,为使变量c1得到字符'
变量c2得到字符'
B'
正确的格式输入形式是()
%4c%4c"
33.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c