C语言章节习题集(全)

—break—;

default:area=P*r*r; length=2*P*r;

printf(\%d,length=%f\,area,length); 9.以下程序的功能是:从键盘上接受三个十进制整型数据,对这三个数据进行从小到大的排序,输出排序后的数据。请完成该程序。 #include main() {intx,y,z,i; scanf(\%d,%d,%d\,&x,&y,&z); if(_x>y___){i=x;x=y;y=i;} if(_y>z___){i=y;y=z;z=i;} if(__x>z__){i=x;x=z;z=i;} printf(\%d,%d,%d\\n\,x,y,z);} 10.以下程序的功能是:从键盘输入一年份数据,判断此年份是否为闰年。其中判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。请填空完成该程序。 #include main() {intx,i;

seanf(\%d\,&x); if(x%400==0)i=1;

21

elseif(_x%4==0 &&x0!=0___)i=1; else__i=0__;

if(i==1)printf(\; if(i==0)printf(\;}

11.现要根据学生的成绩,将学生划分为A,B,C,D,E五个等级,其对应的关系已用if语句写出如下(其中整型变量result存放学生成绩,字符型变量grade存放学生等级): if(result<60)grade='E'; elseif(result<70)grade='D'; elseif(result<80)grade='C'; 22

elseif(result<90)grade='B'; elseif(result<=100)grade='A'; 现要将上述关系写成switch语句如下,请在下划线处填入正确内容. switch() {case6:grade='D’;break; case7:grade='C';break; case8:grade='B';break; case9:

case10:grade='A';break; ____:grade='E';}

12.假设公民交纳个人所得税的税率如下(a代表个人收入,r代表

税率):

r=0(a<1000) r=5%(1000<=a<2000)

r=10%(2000<=a<3000) r=15%(3000<=a<4000) r=20%(a>=4000) 以下程序要求从键盘上输入个人收入,根据以上的税率计算出应付的税金并输出。请 完成该程序。 #include main() {floata,b;. inti; scanf(\%f\,a); if(a>=4000)i=4; elsei=____; switch(i) {case0:b=a*0.0;break; case1:b=a*0.05;break; case2:b=a*0.10;break; case3:b=a*0.15;break; case4:b=a*0.20;break;} printf(\%f\,b);}

23

第六章循环控制 单项选择题

1.有以下程序片段,请问执行后的输出结果是 inti;

for(i=1;;i++); printf(“%d”,i++); A)1B)2 C)3D)陷入死循环,无输出结果 2.下面有关for语句的说法中,正确的是 A)任何情况下,for语句的三个表达式一个都不能少 B)for语句中的循环体至少会被执行一次 C)for语句只能用于循环次数已经确定的情况下 24

D)for语句中的循环体可以是复合语句 main() {inty=9; for(;y>0;y--) if(y%3==0) {printf(“%d”,--y);continue;}} A)741B)852 C)963D)875421

3.下面程序的输出是 4.请读程序:

#include main() {inta,b;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4