当前位置:文档之家› 2012年_春_浙江省高等学校(C语言)

2012年_春_浙江省高等学校(C语言)

2012年上半年浙江省高等学校计算机等级考试二级C程序设计试卷说明:⑴本试卷共6页,满分100分;考试时间为90分钟;⑵考生应将所有试题的答案填写在答卷上;⑶程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“√”;⑷请将你的准考证号的后五位填写在答卷右下角的指定位置内。

一、程序阅读与填空(24小题,每小题3分,共72分)1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入一个正整数m,判断它是否为素数。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

运行示例:Enter m:99 is not a prime.Enter m:7979 is a prime.【程序】#include <stdio.h>#include <math.h>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);elseprintf("%d is not a prime.\n",m);}【供选择的答案】(1)A、j>k B、j<=k C、j>m D、j<n(2)A、m%j==0 B、m%j=0C、m%j!=1D、m%j==1(3)A、return B、break;C、goD、continue(5)A、m==1 B、m!=2C、m!=1D、m==22.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输一个正整数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:6Ente 6 integers:2 6 12 39 50 99Enter n1:5Ente 5 integers:1 3 6 10 35Merged:1 2 3 6 6 10 12 35 39 50 99【程序】#include <stdio.h>void merge(int list1[],int n1,int list2[],int n2,int list[], (5)){int i,j,k;(6)while(i<n1&&j<n2){if( (7)) list[k]=list1[i++];else list[k]=list2[j++];k++;}while(i<n1) list[k++]=list1[i++];while(i<n2) list[k++]=list1[j++];(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<n1;i++)scanf("%d",&list1[i]);printf("Enter n2:");scanf("%d",&n2);printf("Ente %d integers:",n2);for(i=0;i<n2;i++)scanf("%d",&list2[i]);merge(list1,n1,list2,n2,list,&n);printf("Merged:");for(i=0;i<n;i++)printf("%d ",list[i]);printf("\n");}【供选择的答案】(5)A、int &n B、int n C、n D、int *n(6)A、i=j=0; B、i=j=k=1; C、i=j=k=0; D、k=0;(7)A、list1[k]<list2[j] B、list1[i]<list2[j]C、list1[i]<list2[k]D、list1[i]>list2[j](8)A、*n=k B、return n1+n2 C、n=k D、return k3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成密文。

变换规则如下:小写字母z变换成为a,其他字符变换成为该字符ASCII码顺序后1位的字符,比如o 变换成p。

输入一个字符串(少于80个字符),输出相应的密文。

要求定义和调用函数encrypt(s),该函数将字符串s变换为密文。

运行示例:Input the string:hello hangzhouAfter being encrypted:ifmmp!ibohaipv【程序】#include <stdio.h>#include <string.h>void encrypt(char *);void main(){ char line[80];printf("Input the string:");gets(line);(9);printf("After being encrypted:%s\n",line);}void encrypt(char s[]){int i;for(i=0; (10);i++)if(s[i]=='z') (11)else (12)}【供选择的答案】(9)A、encrypt(line[]) B、encrypt(line)C、encrypt(&line)D、encrypt(*line)(10)A、s[i]=='\0' B、i<80C、s[i]!='\0'D、i<=80(11)A、s[i]='A'; B、s[i]='b';C、s[i]=s[i]+1;D、s[i]='a';(12)A、s[i]=s[i]-1; B、s[i]='p';C、s[i]=s[i]+1;D、s[i]='a';4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】#include <stdio.h>void main(){ int a=5,i=0;char s[10]="abcd";printf("%d %d\n",1<a<3,!!a);printf("%d %d\n",a<<2,a & 1);while(s[i++]!='\0')putchar(s[i]);printf("\n%d\n",i);}【问题】(13)程序运行时,第1行输出(13)。

A、1 1B、0 0C、0 1D、1 0(14)程序运行时,第2行输出(14)。

A、20 1B、20 5C、10 1D、10 5(15)程序运行时,第3行输出(15)。

A、abcdB、abcC、Abcd\0D、bcd(16)程序运行时,第4行输出(16)。

A、4B、6C、0D、55.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】程序1#include <stdio.h>void main(){ int n,s=1;scanf("%d",&n);while(n!=0){s*=n%10;n/=10;}printf("%d\n",s);}程序2#include <stdio.h>void main(){ char c;while((c=getchar())!='0'){switch(c){case '1':case '9':continue;case 'A':putchar('a');continue;default:putchar(c);}}}【问题】(17)程序1运行时,输入1234,输出(17)。

A、0B、1C、24D、10(18)程序1运行时,输入0,输出(18)。

A、0B、1C、24D、10(19)程序2运行时,输入A1290,输出(19)。

A、a2B、aA129C、A129D、A1290(20)程序2运行时,输入B1340,输出(20)。

A、B340B、B34C、B1340D、B1346.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】#include <stdio.h>void main(){ int i,j;static int a[4][4];for(i=0;i<4;i++){for(j=0;j<4;j++){if(j>=i)a[i][j]=i+1;printf("%d ",a[i][j]);}printf("\n");}}【问题】(21)程序运行时,第1行输出(21)。

A 、0 0 0 0B 、0 1 1 1C 、1 1 1 1D 、0 0 1 1(22)程序运行时,第2行输出 (22) 。

A 、2 2 2 2B 、1 1 1 1C 、0 1 1 1D 、0 2 2 2(23)程序运行时,第3行输出 (23) 。

A 、0 02 2B 、2 2 0 0C 、1 2 3 4D 、0 0 3 3(24)程序运行时,第4行输出 (24) 。

相关主题