全国计算机二级等级考试c语言机试答案(全)
卷一
【答案】
(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n
【答案】
(1)将for(i=2;i
for(i=2;i<=m;i++)
(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);
【答案】
void fun(char *s,char t[])
{
int k,n=0;
for(k=0;k
if(k%2==0 && s[k]%2==0)
t[n++]=s[k];
t[n]= '\0';
}
卷二
【答案】
(1)a[0][i] (2) <=或< (3)x, y
【答案】
(1)将a=Null; 改为:a=NULL;
(2)将if(r==p) 改为:if(*r==*p)
【答案】
float y1=0.0,y0;
do
{
y0=y1;
y1=cos(y0);
}
while(fabs(y0-y1)>=1e-6);
return y1;
卷三
【答案】
(1)feof(fp) (2)==sno (3)sizeof(STU)
【答案】
(1)将long k;改为:long k=1;或long k;k=1;
(2)将num\=10;改为:num/=10;
【答案】
int fun(int a[][N],int n)
{
int j,k;
for(j=0;j
for(k=0;k
a[j][k]*=n;
}
卷四
【答案】
(1)j=2(2)i(3)j
【答案】
(1)将s[j]=s[i]; 改为:s[j++]=s[i]; 【答案】
float fun(float *a,int n)
{
float s=0.0;
int I;
for(i=0; i
s+=a[i];
return s/n;
}
卷五
【答案】
(1)0 (2)n (3)(t*t)
【答案】
(1)将for(i=j+1;i
for(i=j+1;i
(2)将t=i;改为:p=i;
【答案】
unsigned t,s=0,s1=1,p=0;
t=m;
while(t>10)
{
if(t/10)
p=t%10;
s=s+p*s1;
s1=s1*10;
t=t/10;
}
return s;
卷六
【答案】
(1)s[i] (2)k (3)'\0'
【答案】
(1)将i=1;改为:i=0;
(2)将while(temp!=0 && m!=0 && n!=0)改为:while(temp!=0 || m!=0 || n!=0)
【答案】
float fun(int n)
{
float s=0.0;
int t=0, k;
for(k=1; k<=n; k++)
{ t+=k; s+=1.0/t; }
return s;
}
卷七
【答案】
(1)a (2)b.name (3)score[i]
【答案】
(1)将p=h; 改为:p= h->next;
(2)将p=h->next; 改为:p=p->next;
【答案】
int n,k,i;
double sum=0.0;
for(n=3;n<=m;n++)
{
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i>=k+1)
sum+=sqrt(n);
}
return sum;
卷八
【答案】
(1)double (2)f1 (3)f2
【答案】
(1)将for( i=0; i
for( i=0; i<=sl; i ++)或for(i=0;i
(2)将t[sl]= '\0'; 改为: t[sl*2]='\0';或t[i*2]='\0';
【答案】
void fun(int m,int *a,int *n)
{
int k;
*n=0;
for(k=0; k<=m; k++)
if(k%7==0||k%11==0)
a[(*n)++]=k;
}
卷九
【答案】
(1)0 (2)x*10 (3)n/10
【答案】
(1)将for(i=strlen(s);i;i--)改为:
for(i=strlen(s)-1;i;i--)
或:for(i=strlen(s)-1;i>0;i--)
(2)将if(s[j]