2012年上半年浙江省高等学校计算机等级考试
二级C程序设计试卷
说明:
⑴本试卷共6页,满分100分;考试时间为90分钟;
⑵考生应将所有试题的答案填写在答卷上;
⑶程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“√”;
⑷请将你的准考证号的后五位填写在答卷右下角的指定位置内。
一、程序阅读与填空(24小题,每小题3分,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个正整数m,判断它是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
运行示例:
Enter m:9
9 is not a prime.
Enter m:79
79 is a prime.
【程序】
#include
#include
void main()
{ int j,k,m;
printf("Enter m:");
scanf("%d",&m);
k=sqrt(m);
for(j=2; (1) ;j++)
if( (2) ) (3) ;
if(j>k && (4) )
printf("%d is a prime.\n",m);
else
printf("%d is not a prime.\n",m);
}
【供选择的答案】
(1)A、j>k B、j<=k C、j>m D、j
(2)A、m%j==0 B、m%j=0
C、m%j!=1 D、m%j==1
(3)A、return B、break;
C、go D、continue
(5)A、m==1 B、m!=2
C、m!=1 D、m==2
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输一个正整数n1,再输入第一组n1个数,这些数已按从小到大的顺序排列,然后输入一正整数n2,随即输入第二组n2个数,它们也按从小到大的顺序排列,要求将这两组数合并,合并后的数应按从小到大的顺序排列。要求定义和调用函数merge(list1,n1,list2,n2,list,n),其功能是将数组list1的前n1个数和数组list2的前n2个数共n个数合并存入数组list,其中list1的前n1个数和list2的前n2个数分别按从小到大的顺序排列,合并后的数组list的前n个数也按从小到大的顺序排列。
运行示例:
Enter n1:6
Ente 6 integers:2 6 12 39 50 99
Enter n1:5
Ente 5 integers:1 3 6 10 35
Merged:1 2 3 6 6 10 12 35 39 50 99
【程序】
#include
void merge(int list1[],int n1,int list2[],int n2,int list[], (5) )
{
int i,j,k;
(6)
while(i
if( (7) ) list[k]=list1[i++];
else list[k]=list2[j++];
k++;
}
while(i
while(i
(8) ;
}
void main()
{ int i,n1,n2,n,list1[100],list2[100],list[100];
printf("Enter n1:");
scanf("%d",&n1);
printf(“Ente %d integers:”,n1);
for(i=0;i
scanf("%d",&list1[i]);
printf("Enter n2:");
scanf("%d",&n2);
printf(“Ente