C语言各章节练习题最新版.docx
- 文档编号:3487224
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:56
- 大小:59.87KB
C语言各章节练习题最新版.docx
《C语言各章节练习题最新版.docx》由会员分享,可在线阅读,更多相关《C语言各章节练习题最新版.docx(56页珍藏版)》请在冰豆网上搜索。
C语言各章节练习题最新版
第一章C语言概述练习题
1.一个C程序的执行是从( )
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
2.以下叙述正确的是:
( )
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.以下叙述不正确的是:
( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
4.C语言规定:
在一个源程序中,main的位置( )
A.必须在最开始
B.必须在系统调用的库函数后面
C.可以任意
D.必须在最后
5.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成C.若干过程组成D.若干子程序组成
6.C源程序的基本单位是____________
7.一个C源程序中至少包括一个____________
8.在一个C源程序中,注释部分两侧的分界符分别为____________和____________
9.在C语言中,格式输入操作是由库函数____________完成的,格式输出操作是由库函数____________完成的
第二章运算符与表达式练习题
1.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32)
A.4 B.16 C.32 D.52
2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )
A.7 B.8 C.6 D.2
3.下面四个选项中,均是不合法的用户标识符的选项的是:
( )
A.A p_o do
B.float lao _A
C.b-a goto int
D._123 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
B.-0xcdf 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
D.-e3 8e-4 5.e-0
9.下面四个选项中,均是合法转义字符的选项是( )
A.'\"’ ‘\\' ‘\n'
B.‘\' ‘\017' ‘\"'
C.'\018' ‘\f' ‘\xab'
D.'\\0' ‘\101' ‘\x1f'
10.下面四个选项中,均是合法的转义字符的选项是( )
A.'\"' ‘\\' ‘\xf'
B.'\1011' ‘\' ‘\a'
C.'\011' ‘f' ‘\}'
D.'\abc' ‘\101' ‘x1f'
11.下面正确的字符常量是( )
A.‘c" B.'\\" C.'w' D."
12.下面四个选项中,均是正确的数值常量或字符常量的选项的是( )
A.0.0 0f 8.9e ‘&'
B."a" 3.9E-2.5 1e1 ‘\"'
C.'3' 011 0xFF00 0a
D.+001 0xabcd 2e2 50
13.下面不正确的字符串常量是( )
A.'abc' B."12'12" C."0" D." “
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; unsignedlongw=5;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'-'3';后,c2中的值为( )
A.D B.68 C.不确定的值 D.C
21.在C语言中,要求运算数必须是整型的运算符是( )
A./ B.++ C.!
= D.%
22.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum值为( )
A.7 B.8 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 B.float C.double D.不确定
26.在C语言中,char型数据在内存中存储形式是()
A.补码 B.反码 C.原码 D.ASCii码
27.表达式18/4*sqrt(4.0)/8值的数据类型为()
A.float Bchar C.double D.不确定
28.设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()
A.float Bchar 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.若有定义:
charc='\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='a'+'8'-'3'的值为().
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*
*s2=chi□□*
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",&x,&y,&z);
C.scanf(“%x%d*%o",&x,&y);
D.scanf(“%x%o%6.2f",&x,&y,&z);
5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )(注:
□表示空格,
A.10A□20B
C.10□A20B
6.已有定义intx;floaty;且执行scanf(“%3d%f",&x,&y);语句时,从第一列开始输入数据12345□678<回车>,则x的值为
(1)y的值为
(2)
(1)A.12345 B.123 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",&c1,&c2);
A.1020AB
C.10□□20□□AB
8.已有程序段和输入数据的形式,程序中输入语句的正确形式应当为( )
main()
{inta;floatf;printf(“\ninputnumber:
");输入语句printf(“\nf=%f,a=%d\n",f,a);}输入的数据为4.5
A.scanf(“%d,%f",&a,&f);
B.scanf(“%f,%d",&f,&a);
C.scanf(“%d%f,&a,&f);
D.scanf(“%f%d",&f,&a);
9.阅读以下程序,当输入数据形式为:
25,13,10
main()
{intx,y,z;
scanf(“%d%d%d",&x,&y,&z);printf(“x+y+z=%d\n",x+y+z);}
A.x+y+z=48 B.x+y+z=35
C.x+z=35D.不确定值
10.根据题目中已给出的数据的输入和输出形式,程序中输入输出的语句的正确内容是( )
main()
{intx;floaty;printf(“enterx,y:
");输入语句输出语句}输入为:
2□3.4输出为:
x+y=5.40
A.scanf(“%d,%f",&x,&y);printf(“\nx+y=%4.21",x+y);
B.scanf(“%d%f",&x,&y);printf(“\nx+y=%4.2f",x+y);
C.scanf(“%d%f",&x,&y);printf(“\nx+y=%6.1f",x+y);
Dscanf(“%d%3.1f",&x,&y);printf(“\nx+y=%4.2f",x+y);
11.以下说法正确的是()
A.输入项可以为一个实型常量,如scanf(“%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f",&f);
D.当输入数据时,必须指明变量的地址,如scanf(“%f",&f);
12.有输入语句:
scanf(“a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应是( )
A.132
C.a=1□b=3□c=2
13.已知ch是字符变量,下面正确的赋值语句是()
A.ch='123'; B.ch='\xff'; C.ch='\08'; D.ch='\'
14.已知ch是字符变量,下面不正确的赋值语句是()
A.ch='a+b'; B.ch='\0'; C.ch='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.以下程序的输出结果为()
main()
{shorta;
a=-4;
printf("\na:
dec=%d,oct=%o,hex=%x,unsigned=%u\n",a,a,a,a);}
19.以下程序的输出结果为()
main()
{printf("*%f,%4.3f*\n",3.14,3.15);}
20.以下程序的输出结果为()
main()
{
charc='x';
printf("c:
dec=%d,oct=%o,hex=%x,ASCii=%c\n",c,c,c,c);}
21.已有定义intd=-2;执行以下语句后的输出结果是()
printf("*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%o*d(5)=%6o*d(6)=%-7o*\n",d,d,d);
22.以有定义intd=-2;执行以下语句后的输出结果是()
printf("*d
(1)=%d(20=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%6o*d(6)=%-7o*\n",d,d,d);
23.以有定义floatd1=3.5,d2=-3.5;执行以下语句后的输出结果是()
printf("*d
(1)=%e*d
(2)=%.4e*d(3)=%10.4e*\n,d1,d1,d1);
printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2
d2);
24.以下程序输出结果为()
main()
{intx=1,y=2;
printf("x=%dy=%d*sum*=%d\n",x,y,x+y);
printf("10squaredis:
%d\n",10*10);}
25.以下程序的输出结果为()
main()
{intx=10;floatpi=3.1416;
printf("
(1)%d\n",x);
printf("
(2)%6d\n",x);
printf("(3)%f\n",56.1);
printf("(4)%14f\n",pi);
printf("(5)%e\n",568.1);
printf("(6)%14.e\n",pi);
printf("(7)%g\n",pi);
printf("(8)%12g\n",pi);
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",&a1,&a2,&a3);
32.若有以下定义和语句,为使变量c1得到字符'A',变量c2得到字符'B'正确的格式输入形式是()
charc1,c2; scanf("%4c%4c",&c1,&c2);
33.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 各章 练习题 最新版