2007年第1次重庆计算机二级C语言上机考试试题及答案(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2007年第一次全国高等学校(重庆考区)

非计算机专业计算机等级考试

C语言上机考试题

(第一套)

(共100分)

1.(35分)求出100-999之间能够被3整除,且至少有一位数字是5的所有整数。源程序存入test11.c 2.(35分)下列函数功能是求n个学生成绩的平均分和最高分,并将这些数据从该函数返回到调用函数。请输入程序并填空,源程序存入test12.c。

#include

float average(float array[],int n, float *max①)

{ int i;

float sum=array[0];

*max=array[0];②;

for(i=1;i

{ if(array[i]>*max)

*max=array[i];

sum=sum+array[i];

}

return sum/n ③;

}

void main()

{ float a[]={13,21,35,47,52,67,74,86,99,10},max,aver;

aver=average(a,10,&max);

printf("%f,%f\n",max,aver);

}

3.(30分)以下程序是求a数组中偶数的个数和偶数的平均值。请输入程序并改正程序中带"*"的行中的错误,使它能够正确地输出结果。源程序存入test13.c。

#include

void main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10},k,i;

float s=0,ave;

for(k=i=0;i<10;i++)

{ if (a[i]%2!=0)

* break; (continue;//错误:break;)

s+=a[i],k++;

}

* if(k=0) (if(k!=0)//错误:if(k=0))

{ ave=s/k;

* printf("%f,%d\n",k,ave); printf("%d,%f\n",k,ave);// 错误

}

}

(第一套答案)

1.参考程序及评分标准

#include

void main()

{ int a,b,c,k; //5分

for(a=1;a<10;a++) //5分

for(b=0;b<10;b++) //5分

for(c=0;c<10;c++) //5分

{ k=a*100+b*10+c; //5分

if((a==5||b==5||c==5)&&(k%3==0)) //10分

printf("%4d",k);

}

printf("\n");

}

2007年第一次全国高等学校(重庆考区)

非计算机专业计算机等级考试

C语言上机考试题(第二套)

(共100分)

1.(35分)编写一个程序计算下式之和。

1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+4+5+6+7+8+9+10)。源程序存入test21.c

2.(35分)下面的程序通过average计算数组中各元素的平均值。请输入程序并填空,源程序存入test22.c。

#include

float average( int *pa ① ,int n)

{ int x;

①float avg =0.0 ② ;

avg=avg+ *(pa+x) ③ ;

avg=avg/n;

return avg;

}

void main()

{ int a[5]={2,4,6,8,10};

float mean;

mean=average(a,5);

printf("mean=%f\n",mean);

}

3.(30分)以下程序是求取矩阵A的两条对角线上元素之和。请输入程序并改正程序中带"*"的行中的错误,使它能够正确地输出结果;源程序存入test23.c。

#include

void main ( )

{ int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;

* int sum1=0; int sum1=0,sum2=0;//错误:int sum1=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i==j)

sum1=sum1+a[i][j];

for(i=0;i<3;i++)

* for(j=2;j>=0;j++) for(j=2;j>=0;j--) //错误:for(j=2;j>=0;j++) * if(i==j) if(i+j==2) //错误:if(i==j)

sum2=sum2+a[i][j];

printf("sum1=%d,sum2=%d\n",sum1,sum2);

}

(第二套参考答案)

1.参考程序及评分标准

#include

void main()

{ int i,k=0,s=0; //10分

for (i=1;i<=10;i++) //10分

{ k=k+i; //5分

s=s+k; //5分

}

printf("s=%d\n",s); //5分

}

2007年第一次全国高等学校(重庆考区)非计算机专业计算机等级考C语言上机考试题(第三套)(共100分)

1.(35分)Fibonacci数列是这样一个数列,最前面的两个数分别是1和1,从第3个数开始,数列中每个数是其前面的两个数之和。请编写程序求该数列中前20个数且要求每一行输出10个数。源程序存入test31.c。2.(35分)下面程序的功能是将字符串中的数字字符删除后输出。请输入程序并填空,源程序存入test32.c。

#include

①void delnum(char *s①)

{ int i,j ;

for(i=0,j=0;s[i]!='\0';i++)

②if( s[i]< '0'||s[i]>'9'②)

{

j++;

}

③s[j]='\0'③;

}

void main()

{ char s[80];

gets(s);

delnum(s);

printf("\n%s\n",s);

}

相关文档
最新文档