计算机二级C语言改错题答案
第1题
void fun (char *s, char *t)
{ int i, sl;
sl = strlen(s);
/************found************/
for( i=0; i<=s1; i ++)
t[i] = s[i];
for (i=0; i
t[sl+i] = s[sl-i-1];
/************found************/
t[sl] = '\0';
}
答案:(1)for( i=0; i<=sl-1; i ++) (2)t[sl+i] = '\0';
第2题
/************found************/
void fun (long s, long t)
{ long sl=10;
*t = s % 10;
while ( s > 0)
{ s = s/100;
*t = s%10 * sl + *t;
/************found************/
sl = sl*100;
}
}
main()
{ long s, t;
printf("\nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
答案:(1)void fun (long s, long *t) (2)sl = sl*10;
第3题
void fun ( int n, int *a )
{ int i, j, p, t;
for ( j = 0; j
{ p = j;
/************found************/
for ( i=j+1; i
if ( a[p]>a[i] )
/************found************/
t=i;
if ( p!=j )
{ t = a[j]; a[j] = a[p]; a[p] = t; }
}
}
答案:(1)for ( i=j+1; i
第4题
void fun (long s, long *t)
{ int d;
long sl=1;
*t = 0;
while ( s > 0)
{ d = s%10;
/************found************/
if (d%2=0)
{ *t=d* sl+ *t;
sl *= 10;
}
/************found************/
s \= 10;
}
}
答案:(1)if (d%2 = = 0) (2)s /= 10;
第5题
long fun (long num)
{
/************found************/
long k;
do
{ k*=num%10 ;
/************found************/
num\=10 ;
} while(num) ;
return (k) ;
}
答案:(1)long k=1; (2)num /=10 ;
第6题
/************found************/
fun (char a)
{ if ( *a )
{ fun(a+1) ;
/************found************/
printf("%c" *a) ;
}
}
main( )
{ char s[10]="abcd";
printf("处理前字符串=%s\n处理后字符串=", s);
fun(s); printf("\n") ;
}
答案:(1)fun (char *a) (2)printf("%c", *a) ;
第7题
void fun(int a[], int n)
{ int i, j, t, p;
for (j = 0 ;j < n-1 ;j++) {
/************found************/
p = j
for (i = j+1;i < n; i++)
if(a[i] < a[p])
/************fo