c语言程序设计习题答案(5)

2018-12-12 23:03

{int year, leap; scanf(“%d”,&year); if (year%4==0) {if (year0==0) {if (year@0!=0)

leap=1; else leap=0; } else leap=1; }

else leap=0; if (leap)

printf(“%d is ”,year); else

printf(“%d is not ”,year); printf(“a leap year.\\n”); }

错误语句:if (year@0!=0) 正确语句:if (year@0= =0)

2.下面的功能是输出一个4位整数的后两位数值,例如输入1234,输出34。

#include void main() { int x,y;

printf(“\\ninput a integer<1000--9999>:”); scanf(“%d”,x); y=x0; printf(“%d\\n”,y); }

错误语句:scanf(“%d”,x); 正确语句:scanf(“%d”,&x);

3.输入三个整数,输出其中最大的数。

#include void main() {int a,b,c,temp,max;

scanf(“%d,%d,%d”,&a,&b,&c); temp=(a>b)?a:b ;

max=(temp

printf(“max=%d\\n”, max); }

错误语句:max=(tempc)?temp:c ;

4.下面程序判断输入的一个整数是否能被5和7同时整除,若能整除,输出“YES”,否则,输出“NO”。

#include void main() {int x;

scanf(“%d”,&x); if( x%5= =0||x%7= =0 ) printf(“YES”); else

printf(“NO”); }

错误语句:if( x%5= =0||x%7= =0 )

正确语句:if( x%5= =0&&x%7= =0 )

5、求10到100之间能被3整除的数的个数。

#include void main( ) { int i,num; for(i=10;i<100;i++)

if(i%3= =0) num++;

printf(\ }

错误语句:int i,num; 正确语句:int i,num=0;

6、用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10为止。

#include #include void main() { int s;

float n,t,pi; t=1;

pi=0; n=1.0; s=1;

while (fabs(t)>10-6) {pi=pi+t;

n=n+2;

s=-s; t=s/n;

-6

} pi=pi*4;

printf(\\n\,pi);

}

错误语句:while (fabs(t)>10-6)

正确语句:while (fabs(t)>1e-6)

7、求Fibonacci数列前40个数。 这个数列有如下特点:第1,2两个数为1,1。从

第3个数开始,该数是其前面两个数之和。 #include void main() {int f1,f2; int i;

f1=1;f2=1;

for(i=1; i<=40; i++)

{ printf(\,f1,f2); if(i%2= =0) printf(\\n\ f1=f1+f2; f2=f2+f1;

}

}

错误语句:for(i=1; i<=40; i++) 正确语句:for(i=1; i<=20; i++)

四.编程题

1.从键盘输入一个圆的半径,输出圆的面积。输出时要有文字说明,取小数点后2位。 #include void main() { float r,s; scanf(“%f”,&r); s=3.14*r*r; printf(“s=%.2f”,s);}

2.输入一个整数,判断是奇数还是偶数。 #include void main() {int i;

scanf (“%d”,&i);

if (i%2= =0)

printf(“%d 是一个偶数”,i); else

printf(“%d 是一个奇数 ”,i); }

3.从键盘输入一个三角形的边长,输出三角形面积,取2位小数。当三角形不成立时输出“它不是一个三角形”。 #include #include void main() { float a,b,c,s,area;

scanf (“%f,%f,%f”,&a,&b,&c); if (a+b>c && b+c>a && c+a>b) {s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%.2f\\n”,area);} else

printf(“它不是一个三角形”);

}

4.从键盘输入一个字符,判断其是否是大写字母,如果是大写字母,则转换为小写字母,否则不转换。 #include void main()

{ char c;

c=getchar( ); if ( c>=?A?&&c<=?Z?) c=c+32; printf(“%c”,c);

}

5.从键盘输入一个百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。其中‘A’对应的是90分(含90分)以上的成绩,‘B’对应的是80~89分的成绩,‘C’对应的是70~79的成绩分,‘D’对应的是60~69分的成绩,‘E’对应的是小于60分的成绩。如果输入的数值小于0或大于100要有“输入成绩错误”的信息显示。 #include void main()

{ int score,c;

scanf (“%d”,&score); c=score/10; switch (c) { case 0: case 1: case 2: case 3: case 4:

case 5: printf(“E”);break; case 6: printf(“D”); break; case 7: printf(“C”); break; case 8: printf(“B”); break; case 9:

case 10: printf(“A”); break; default: printf(“error”); }

}

6、编写程序,求1+2+3+?+200。 #include void main( ) {

int i, s; i=1;

s=1;

for(i=1;i<=200;i++)

s=s+i;

printf(\+?+200=%d\\n\

}

运行结果:20101

7、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。 #include void main() {int i,temp;

float f2=2,f1=1,sum=0; for(i=1;i<=20;i++) {sum=sum+f2/f1; temp=f2;

f2=f2+f1;


c语言程序设计习题答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生命安全与救援 网络公选课 答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: