{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
printf(“\\ninput a integer<1000--9999>:”); scanf(“%d”,x); y=x0; printf(“%d\\n”,y); }
错误语句:scanf(“%d”,x); 正确语句:scanf(“%d”,&x);
3.输入三个整数,输出其中最大的数。
#include
scanf(“%d,%d,%d”,&a,&b,&c); temp=(a>b)?a:b ;
max=(temp printf(“max=%d\\n”, max); } 错误语句:max=(temp 4.下面程序判断输入的一个整数是否能被5和7同时整除,若能整除,输出“YES”,否则,输出“NO”。 #include 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 if(i%3= =0) num++; printf(\ } 错误语句:int i,num; 正确语句:int i,num=0; 6、用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10为止。 #include 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 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 2.输入一个整数,判断是奇数还是偶数。 #include scanf (“%d”,&i); if (i%2= =0) printf(“%d 是一个偶数”,i); else printf(“%d 是一个奇数 ”,i); } 3.从键盘输入一个三角形的边长,输出三角形面积,取2位小数。当三角形不成立时输出“它不是一个三角形”。 #include 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 { 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 { 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 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 float f2=2,f1=1,sum=0; for(i=1;i<=20;i++) {sum=sum+f2/f1; temp=f2; f2=f2+f1;