2017年上半年全国高等学校计算机水平二级C笔试试卷及参考 答案
2017年上半年全国高等学校计算机水平考试试卷
(二级 C程序设计)
一、程序填空题(每题12分,共36分)
1.以下程序从键盘输入一个整数,输出其对应的英文星期单词。若输入的整数在1到7之外,则输出“Error!”,请填空。
#include
void main()
{
int n;
printf("Input n:");
scanf("%d",___________&n___);
switch(n)
{
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n");break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");_____break_________;
____default__________:printf("Error!\n");break;
}
}
2.以下程序输出一维数组中的最大元素及其下标值,请填空。
#include
int search(int a[],int n) /* 求最大元素的下标 */
{
int i,max;
max=__ _a[max]______;
for(i=1;i
{
if(a[i]>a[max])
max=__a[i]________;
}
return max;
}
void main()
{
int a[10]={13,1,-5,4,9,100,-8,7,-6,2};
int max;
__max________=search(a,10);
printf("最大值:%d,下标:%d\n",a[max],max);
}
3.以下程序定义求n!的递归函数f(),并调用函数f()求2!+3!+4!+5!+6!的值,请填空。
(说明:n!=1*2*3*…*n)
#include
int f(int n)
{
if(n==1 || n==0)
return _____f(n)=1_____;
else
return n*f(n-1);
}
void main()
{
int i,s;
s=__f(i-1)________;
for(i=2;i<=6;i++)
s+=f(i);
printf("2!+3!+4!+5!+6!=%d\n",__n________);
}
二、阅读程序题(每题8分,共32分)
1. 以下程序的运行结果是_-1.6,-3,3_______。
#include
void main()
{
int a=3,b=-3,c;
if(a
c=0;
else
c=-1;
printf("c=%d\n",c);
c=3;
if(a
{
if(3==c)
a=a+b;
else
a=a-b;
}
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
2. 以下程序的运行结果是___52_______。
#include
void main()
{
int i,j;
int s=0;
for(i=1;i<5;i++)
{
j=i*10+6;
printf("%d",j);
if(0==j%4)
s=s+j;
}
printf("\ns=%d\n",s);
}
3. 以下程序的运行结果是____45
16______。
#include
void main()
{
int sum1=0,sum2=0;
int a[3][3]={{1,2,3},{4,5,6},{7,8