C语言按章节习题带答案Word文件下载.docx
- 文档编号:22273251
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:25.33KB
C语言按章节习题带答案Word文件下载.docx
《C语言按章节习题带答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言按章节习题带答案Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
22、请指出以下C程序的错误所在
#includestdio.h
main/*mainfunction*/
{floata,b,c,v;
/*a,b,caresides,visvolumeofcube*/
a=2.0;
b=3.0;
c=4.0
v=a*b*c;
printf(“%f\n”,v)
}
第三章
23、若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是。
A)a=b=c=d=100;
B)d++;
C)c+b;
D)d=(c=22)-(b++);
24、以下选项中不是C语句的是。
A){inti;
i++;
printf(“%d\n”,i);
}B);
C)a=5,c=10D){;
}
25、以下合法的C语言赋值语句是。
A)a=b=58B)k=int(a+b);
C)a=58,b=58D)--i;
26、以下程序的输出结果是。
A)0 B)1 C)3 D)不确定的值
main()
{intx=10,y=3;
printf(“%d\n”,y=x/y);
27、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是。
A) read(a,b,c);
B) scanf(“%d%d%d”,a,b,c);
C) scanf(“%D%D%D”,&
a,%b,%c);
D) scanf(“%d%d%d”,&
a,&
b,&
c);
28、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是 。
A) a=a+b, b=a-b, a=a-b;
B) t=a, a=b, b=t;
C) a=t;
t=b;
b=a;
D) t=b;
a=t;
29、若有以下程序段,c3中的值是。
A)0B)1/2C)0.5D)1
intc1=1,c2=2,c3;
c3=c1/c2;
30、若有以下程序段,其输出结果是 。
A) 0,0,-10B) 0,0,5C) -10,3,-10D) 3,0,-10
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
31、当运行以下程序时,在键盘上从第一列开始输入9876543210<
CR>
(此处<
代表Enter),则程序的输出结果是 。
A) a=98,b=765,c=4321
B) a=10,b=432,c=8765
C) a=98,b=765.000000,c=4321.000000
D) a=98,b=765.0,c=4321.0
main( )
{inta;
floatb,c;
scanf(“%2d%3f%4f”,&
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
32、以下程序的输出结果是 。
A) a=%2,b=%5 B) a=2,b=5
C) a=%%d,b=%%d D) a=%d,b=%d
main()
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
33、以下程序段的输出是 。
A)*496*B)*496*C)*000496*D)输出格式符不合法
intx=496;
Printf(“*%-06d*\n”,x);
34、以下程序段的输出是 。
A)|3.1415|B)|3.0|C)|3|D)|3.|
floata=3.1415;
Printf(“|%6.0f|\n”,a);
35、以下程序段的输出是 。
A)|2345.67800|B)|12345.6780|
C)|12345.67800|D)|12345.678|
printf(“|%10.5f|\n”,12345.678);
36、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是 。
A)scanf(“%f”,&
B)scanf(“%8.4f”,&
C)scanf(“%6.2f”,&
D)scanf(“%8”,&
283.1900<
37、以下程序的输出结果是 。
A)98B)89C)66D)以上三个都不对
#include“math.h”
{doublea=-3.0,b=2;
printf(“%3.0f%3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));
38、若有以下定义,请写出以下程序段中输出语句执行后的输出结果。
(1)___________
(2) (3)___________
inti=-200,j=2500;
printf(“
(1)%d%d”,i,j);
printf(“
(2)i=%d,j=%d\n”,i,j);
printf(“(3)i=%d\nj=%d\n”,i,j);
39、变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时:
scanf(“%d”,&
i);
scanf(“%d”,&
j);
scanf(“%d”,&
k);
当执行第一个输入语句,从键盘输入:
12.3<
<
表示Enter键
则变量i、j、k的值分别是________、_______、_______。
40、复合语句在语法上被认为是_______。
空语句的形式是 。
41、C语句的最后用_______结束。
42、以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 、_____、_____。
intk;
floata;
doublex;
scanf(“%d%f%lf”,&
k,&
x);
pirntf(“k=%d,a=%f,x=%f\n”,k,a,x);
43、以下程序段的输出结果是。
doublea=513.789215;
printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n”,a,a,a,a);
44、以下程序多处有错。
要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。
main
{doublea,b,c,s,v;
printf(inputa,b,c:
\n);
scanf(“%d%d%d”,a,b,c);
s=a*b;
/*计算长方形面积*/
/*计算长方体体积*/
printf(“%d%d%d”,a,b,c);
printf(“s=%f\n”,s,”v=%d\n”,v);
当程序执行时,屏幕的显示和要求输入形式如下:
inputa,b,c:
2.02.03.0此处的2.02.03.0是用户输入的数据
a=2.000000,b=2.000000,c=3.000000此处是要求的输出形式
s=4.000000,v=12.000000
45、编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
46、编写程序,输入两个整数:
1500和350,求出它们的商数和余数并进行输出。
47、编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
48、编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。
49、下列运算符中优先级最高的运算符是 。
A)!
B)%C)==D)&
&
50、下列运算符中优先级最低的运算符是 。
A) ||B) !
=C)<
=D)+
51、为表示关系x>
=y>
=z,应使用的C语言表达式是 。
A)(x>
=y)&
(y>
=z)B)(x>
=y)AND(y>
=z)
C)(x>
=z)D)(x>
52、设a、b和c都是int型变量,且a=3,b=4,c=5;
则以下的表达式中,值为0的表达式是 。
A)a&
bB)a<
=bC)a||b+c&
b-cD)!
((a<
b)&
!
c||1)
53、以下程序的输出结果是:
。
A)0B)1C)2D)3
main()
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec+=1;
printf(“%d\n”,c);
54、以下程序的输出结果是:
。
A)1B)2C)3D)4
main()
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w<
x?
w:
z<
y?
z:
x));
55、若执行以下程序时从键盘上输入3和4,则输出结果是 。
A)14B)16C)18D)20
main()
{inta,b,s;
scanf(“%d%d”,&
b);
s=a;
b)s=b;
s*=s;
printf(“%d\n”,s);
56、下面的程序片段所表示的数学函数关系是。
-1(x<
0) 1(x<
0)
y=-1;
if(x!
=0) y=1;
if(x>
0)y=1;
elsey=0;
A)y=0(x=0) B)y= -1(x=0)
1(x>
0) 0(x>
0)
0(x<
0) -1(x<
C)y=0(x=0)D)y=1(x=0)
0) 0(x>
57、运行以下程序后,输出 。
A)####B)&
C)####&
D)有语法错误不能通过编译
main()
{intk=-3;
if(k<
=0)printf(“****\n”)
elseprintf(“&
\n”);
}
58、若a和b均是正整数型变量,以下正确的switch语句是 。
A)switch(pow(a,2)+pow(b,2))(注:
调用求幂的数学函数)
{case1:
case3:
y=a+b;
break;
case0:
case5:
y=a-b;
}
B)switch(a*a+b*b);
{case3:
case1:
y=b-a;
break;
C)switcha
{default:
x=a+b;
case10:
break;
case11:
y=a*d;
D)switch(a+b)
{case10:
case11:
59、C语言中用____表示逻辑值“真”,用____表示逻辑值
60、C语言中的关系运算符按优先级别是 、______。
61、C语言中的逻辑运算符按优先级别是 、 、 。
62、C语言中的关系运算符和逻辑运算符的优先级别是 、 、 、 、 。
63、C语言中逻辑运算符______的优先级高于算术运算符。
64、将下列数学式改写成C语言的关系表达式或逻辑表达式 和__________ A)a=b或a<
cB)|x|>
4
65、请写出以下程序的输出结果___。
main( ){inta=100;
if(a>
100)printf(“%d\n”,a>
100);
elseprintf(“%d\n”,a<
=100);
66、请写出与以下表达式等价的表达式
A)_________B)__________.
A)!
(x>
0)B)!
67、当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为___、___、___.
if(a>
c)
b=a;
a=c;
c=b;
68、若变量巳正确定义,以下语句段的输出结果是_______。
x=0;
y=2;
z=3;
switch(x)
{case0:
switch(y=2)
{case1:
printf(“*”);
case2:
printf(“%”);
switch(z)
printf(“$”);
default:
printf(“#”);
}}
69、请将以下语句改写成switch语句。
if(a<
30)m=1;
elseif(a<
40)m=2;
elseif(a<
50)m=3;
elseif(a<
60)m=4;
elsem=5;
70、有一函数:
x(-5<
x<
y=x-1(x=0)
x+1(0<
10)
编写一程序,要求输入x的值,输出y的值。
分别用
(1)不嵌套的if语句
(2)嵌套的if语句(3)if-else语句(4)switch语句
第四章
71、以下程序段的输出结果是 。
A) 9B) 1C) 11D) 10
intk,j,s;
for(k=2;
k<
6;
k++,k++)
{s=1;
for(j=k;
j<
j++)s+=j;
printf(“%d\n”,s);
72、以下程序段的输出结果是 。
A)12B)15C)20D)25
inti,j,m=0;
for(i=1;
i<
=15;
i+=4)
for(j=3;
j<
=19;
j+=4)m++;
printf(“%d\n”,m);
73、以下程序段的输出结果是 。
A)10B)9C)10D)9
9898
8787
76
intn=10;
while(n>
7)
{n--;
printf(“%d\n”,n);
74、以下程序段的输出结果是 。
A)1B)30C)1–2D)死循环
intx=3;
do
{printf(“%3d”,x-=2);
while(!
(--x));
75、以下程序的输出结果是 。
A) 15 B) 14 C) 不确定 D) 0
main()
{inti,sum;
for(i=1;
i++)sum+=sum;
printf(“%d\n”,sum);
76、以下程序的输出结果是 。
A)741B)852C)963D)875421
{inty=10;
for(;
y>
0;
y--)
if(y%3==0)
{printf(“%d”,--y);
continue}
77、若x是int型变量,以下程序段的输出结果是 。
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
for(x=3;
x++)
printf((x%2)?
(“**%d”):
(“##%d\n”),x);
78、以下程序的输出结果是 。
A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
{inti;
=5;
i++)
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
printf(“$\n”);
79、以下程序的输出结果是 。
A)3981B)4284C)2668D)2870
{intx,i;
=100;
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
printf(“\n”);
80、当执行以下程序段后,i的值是___、j的值是___、k的值是___。
inta,b,c,d,i,j,k;
a=10;
b=c=d=5;
i=j=k=0;
for(;
a>
b;
++b)i++;
while(a>
++c)j++;
dok++;
while(a>
d++);
81、以下程序段的输出结果是 。
。
intk,n,m;
n=10;
m=1;
k=1;
while(k<
=n)m*=2;
printf(“%d\n”,m);
82、以下程序段的输出结果是____.
main( )
{intx=2;
while(x--);
printf(“%d\n”,x);
83、以下程序段的输出结果是____.
inti=0,sum=1;
do{sum+=i++;
}while(i<
5);
84、有以下程序段:
s=1.0;
for(k=1;
=n;
k++)s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面的程序段的功能完全与之等同。
s=0.0;
_______;
k=0;
do
{s=s+d;
________;
d=1.0/(k*(k+1));
while(________);
printf(“%f\n”,s);
85、以下程序的功能是:
从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
{floatx,amax,amin;
scanf(“%f”,&
amax=x;
amin=x;
while(________)
{if(x>
amax)amax=x;
if(_______)amin=x;
scanf(“%f”,&
}
printf(“\namax=%f\namin=%f\n”,amax,amin);
86、编写程序,求1-3+5-7+…-99+101的值。
87、编写程序,求e的值。
e1+1/1!
+1/2!
+1/3!
+..+1/n!
(1)用for循环,计算前50项。
(2)用while循环,要求直至最后一项的值小于10-4
88、编写程序,输入从公元1000年至2000年所有闰年的年号。
每输出3个年号换一行。
判断公元年是否为闰年的条件是:
公元年数如能被4整除,而不能被100整除,则是闰年;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 章节 习题 答案