!!!最新2009年12月C语言大题参考答案

2009年12月C语言程序设计等级考试大题参考答案

一、改错题

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

/**/ int f; /**/ 改为:float f; clrscr();

printf(\

scanf(\ 改为:&a, &b

f=/**/ a/b; /**/ 改为:(float)a/b; 或1.0*a/b; c=(int)((f-(int)f)*10);

printf(\ %d\\n\ getch(); }

#include

void find(/**/ n /**/) 改为:int n { int a1,a2;

a1=m; a2=m/10;

if(m%3==0 &&(/**/ a1==4 && a2==4 /**/)) 改为:a1= = 4 || a2= = 4 printf(\}

void main() { int k;

for(k=10;k<=99;k++)

/**/ fun( k ) /**/; 改为:find( k ) getch(); }

#include

void main()

{ /**/ int a,Tag; /**/ 改为:int a,tag; int num1=0,num2=0; clrscr();

printf(\

scanf(\ 改为:&a tag=a;

while(a)

{ scanf(\

/**/ if(a) /**/ continue; 改为:if (a==0) else if(atag) num2++; }

printf(\ getch(); }

#include long int fsum(int n) {

long int k;

if(n==1)

/**/ k=0 /**/; 改为:k=1 else

k=n*fsum(n-1);

return (/**/ 1 /**/); 改为:k }

void main() { int i;

long int sum; sum=0;

for(i=1;i<=9;/**/ i++;i++ /**/) 改为:i++,i++ 或i=i+2 sum+=fsum(i);

printf(\ getch(); }

#include void main()

{ int i,a=0;

/**/ c1,c2; /**/ 改为:char c1,c2; clrscr();

printf(\ c2=getchar();

/**/ for(i=1,i<=7;i++) /**/ 改为:for(i=1;i<=7;i++) { c1=getchar(); a=a*2+c1-'0'; }

/**/ If (c2) /**/ a=(-1)*a; 改为:if (c2) printf(\ getch(); }

#include

void main( ) { int i,n;

/**/ n = 1; /**/ 改为:n=0 for(i=10;i<=100;i++) if(i/10==i) {printf(\

n++;

if(/**/ n%9=0 /**/) 改为:n%9==0 printf(\ }

for(i=100;i<=999;i++)

if(/**/ i/100==i/10 /**/) 改为:i/100==i {printf(\ n++;

if(n%9==0) printf(\ } getch(); }

#include void main()

{ /**/ int a(10); /**/ 改为:int a[10]; int i,j,k,x;

printf(\

scanf(\ 改为:&x a[0]=x;

for(k=1;k<=9;k++) { scanf(\ for(i=0;ix) break;

if(i

for(j=k;j>i;j--) a[j]=a[j-1]; a[i]=x; }

/**/ for(i=1;i<=10;i++) /**/ 改为:for(i=0;i<=9;i++) printf(\ \ printf(\ getch(); }

#include

#include

int fun( /**/ float a, b, c /**/) 改为:float a, float b, float c { float t; int mk = 0; if(c

{ t = a; a = c; c = t; } if(c

{ t = b; b = c; c = t; }

if( fabs( c*c - (a*a+b*b)) < 1.0e-8) mk = 1;

/**/ return (1); /**/ 改为:return (mk); }

main() {

float a,b,c;

printf(\ scanf(\

if(/**/ fun(a b c) /**/== 1) 改为:fun(a, b, c) printf(\es\\n\ else

printf(\ getch(); }

#include void main()

{ int a[10]={0};

/**/ int i, j, k,temp, /**/ 改为: int i, j, k,temp; printf(\

/**/ for(k=1;k<10;k++) /**/ 改为:for(k=0;k<10;k++) scanf(\ for(i=0;i<9;i++) { k=i;

for(j=i+1;j<10;j++) { if(a[k]>a[j]) k=j; } if(k!=i)

/**/ {temp=a[i];a[k]=a[i];a[i]=temp;} /**/ 改为:{temp=a[k];a[k]=a[i];a[i]=temp;} }

for(i=0;i<10;i++) printf(\ \ printf(\ getch();

}

#include void main() {

float a,b,c,max;

float fmax(float,float,float); printf(\

scanf(\

max=/**/ fmax(a;b;c) /**/; 改为:fmax(a, b, c) printf(\ getch(); }

/**/float fmax(float x, y, z) /**/ 改为:float fmax(float x, float y, float z) {

float m1,m2; m1=(y>z)?y:z;

m2=/**/ (x>y)?x:y; /**/ 改为:(x>m1)?x:m1; return(m2); }

#include

void main()

{ int a[20]={1,3,7,9,12,14,23,26,34,43,45,47,49,56,58,59,78,79,87,89}; int left,right,mid,q,count; left=0 ;

/**/ right = 19 /**/ 改为:right = 19; printf(\

scanf(\ 改为:&q count=1; while(left<=right) { mid= ( left + right)/2 ; if(q==a[mid]) break;

else if(q

/**/ count--; /**/ 改为:count++; }

if(left<=right)

printf(\ %d\\n\ else

printf(\ \\n\ getch();

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