春浙江省计算机等级考试二级C试卷及答案 下载本文

春浙江省高等学校 计算机等级考试试卷

试题1(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

输入一个正整数n,计算下列式的前n项之和。 运行示例: Enter n:2 Sum=0.67 【程序】

#include main()

{ int denomiator,flag,i,n; double item,sum; printf(\ scanf(\ denomiator=1; (1) ; sum=0;

for(i=1; (2) ;i++) {

(3) ; sum=sum+item; (4) ;

denomiator=denomiator+2; }

printf(\}

【供选择的答案】

(1)A.flag=0 B.flag=-1;

C.flag=n D.flag=1 //答案D (2)A.i>=n B.i

C.i>n D.i<=n //答案D (3)A.item=flag/ denomiator B.item=1/ denomiator C.item=flag*1.0/ denomiator D.item=1.0/ denomiator//答案C (4)A.flag==-1 B.flag=0

C.flag=-flag D.flag=flag //答案C 试题2(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5……,18=7+11。将6-20之间的偶数表示成两个素数之和,打印时一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素

数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例:

6=3+3 8=3+5 10=3+7 12=5+7 14=3+11 16=3+13 18=5+13 20=3+17 【程序】

#include #include int prime(int m) {

int i,n;

if(m==1)return 0; n=sqrt(m);

for(i=2;i<=n;i++) if(m%i==0)return 0; (5) }

main()

{ int count,i,number; count=0;

for(number=6;number<=20;number=number+2) {for(i=3;i<=number/2;i=i+2) if( (6) )

{printf(\ count++;

if( (7) )printf(\ (8) } } }

【供选择的答案】

(5)A.; B.return 1;

C.return 0 ; D.else return 1; //答案B (6)A.prime(i)!=0||prime(number-i)!=0 B.prime(i)!=0&&prime(number-i)!=0 C.prime(i)==0||prime(number-i)==0

D.prime(i)==0||prime(number-i)==0 //答案B (7)A.count%5==0 B.count%5!=0

C.(count+1)%5==0 D.(count+1)%5!=0 //答案A (8)A.break; B.else break;

C.continue; D.; //答案A 试题3(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。要求定义并调用函

数count(s,digit,letter,other)分类统计字符串s中数字字符、英文字符和其它字符的个数,函数形参s是字符指针,形参digit,letter,other的类型是整型指针,函数类型是void.。 运行示例:

Enter charaters:f(x,y)=5x+2y-6 Digit=3 Letter=5 Other=6 【程序】

#include

void count(char *s,int *digit,int *letter,int *other) { (9)

while( (10) ) {if(*s>='0'&&*s<='9') (*digit)++;

else if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z') (*letter)++; else

(*other)++; s++; } }

main()

{int i=0,digit,letter,other; char ch,str[80];

printf(\ch=getchar();

while( (11) ) {str[i]=ch; i++;

ch=getchar(); }

str[i]='\\0'; (12) ;

printf(\}

【供选择的答案】

(9)A.int digit=0,letter=0,other=0; B.int *digit=0,*letter=0,*other=0; C.digit=letter=other=0;

D.*digit=*letter=*other=0; //答案D (10)A.*s++!='\\0' B.*s++!='\\n'

C.*s!='\\0' D.*s!='\\n' //答案C (11)A.ch!= '\\0' B.ch!= '\\n' C.ch== '\\0' D.ch== '\\n' //答案B

(12)A.count(str,&digit,&letter,&other) B.count(&str,&digit,&letter,&other)