2008年春浙江省高校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分) 【程序说明】
输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,??,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。
运行示例: Enter n:10
1 1 2 3 5 8 13 21 34 55 #include
{int count,i,n,x1,x2,x; printf(\scanf(\x1=x2=1;
printf(\(1);
for(i=1;i<=n-2;i++) {(2);
printf(\count++;
if((3))printf(\x1=x2; (4); } }
【供选择的答案】 (1)A、count=2 B、count=0 C、count=1 D、count=-1 答案:A (2) A、x=x1-x2 B、x=x1+x2 C、x=x1 D、x=2 答案:B (3) A、count/6==0 B、count%6!=0 C、count%6==0 D、count/6!=0 答案:C (4) A、x=x1+x2 B、x2=x1 C、x=x2 D、x2=x 答案:D 试题2(每小题3分,共12分) 【程序说明】
输入2个正数m和n(1<=m count=4,sum=17 【程序】 #include if(m==1)return (5); n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0)return (6); return (7); } main() {int count=0,i,m,n,sum=0; printf(\scanf(\for(i=m;i<=n;i++) if((8)){ sum+=i; count++; } printf(\} 【供选择的答案】 (5)A、1 B、m C、m==1 D、0 答案:D (6) A、m B、1 C、0 D、n 答案:C (7) A、m B、1 C、0 D、i==n 答案:B (8) A、prime(i)!=0 B、prime(i)==0 C、1=prime(i) D、!prime(i) 答案:A 试题3(每小题3分,共12分) 【程序说明】 输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该结果。 运行示例: Enter array(2*3):3 2 10 -9 6 -1 max=a[0][2]=10 3 2 10 -9 6 -1 #include {int col,row,i,j; int a[2][3]; printf(\for(i=0;i<2;i++) for(j=0;j<3;j++) scanf(\(9)); (10); for(i=0;i<2;i++) for(j=0;j<3;j++) if(a[i][j]>a[row][col]) {(11) } printf(\for(i=0;i<2;i++) { for(j=0;j<3;j++) printf(\(12) } 【供选择的答案】 (9)A、&a[i][j] B、&a[j][i] C、a[i][j] D、a[j][i] 答案:A (10) A、row=col=2; B、row=col=0; C、a[row][col]=0; D、a[row][col]=-1; 答案:B (11) A、row=j;col=i; B、a[row][col]=a[i][j]; C、row=i;col=j; D、a[row][col]=a[j][i]; 答案:C (12) A、printf(“\\n”)}; B、}printf(“\\n”); C、; D、printf(“\\n”);} 答案:D 试题4(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 【程序】 #include {int op1,op2,res; char opertor; scanf (\opertor=getchar(); while(opertor!='=') { scanf (\switch(opertor) { case '+':res=op1+op2;break; case '-':res=op1-op2;break; case '*':res=op1*op2;break; case '/':res=op1/op2;break; default:res=0; } op1=res; opertor=getchar(); } printf(\} (13)程序运行时,输入2*3-2=,输出(13)。 A、6 B、2 C、0 D、4 答案:D (14)、程序运行时,输入15+2/3=,输出(14)。 A、16 B、15 C、6 D、5 答案:D (15)、程序运行时,输入1+2*10-10/2=,输出(15)。 A、10 B、16 C、15 D、25 答案:A 4、程序运行时,输入1+3*5/2-7=,输出(16)。 A、3 B、1 C、-2 D、-3 答案:A 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 【程序】 #include {int k=0,number=0; char str[MAXLEN]; while((str[k]=getchar())!='#') k++; str[k]='\\0'; for(k=0;str[k]!='\\0';k++) if(str[k]>='0'&& str[k]<='9'||str[k]=='A'||str[k]=='B') if(str[k]>='0'&& str[k]<='9') number=number*12+str[k]-'0'; else if(str[k]=='A'||str[k]=='B') number=number*12+str[k]-'A'+10; else ;//第15行 else break; //第16行 printf(\} (17)、程序运行时,输入10#,输出(17)。 A、16 B、10 C、12 D、1 答案:A (18)、程序运行时,输入1a0#,输出(18)。 A、264 B、10 C、1 D、12 答案:C (19)、第16行改为“;”后,程序运行时,输入A*0#,输出(19)。 A、0 B、120 C、10 D、12 答案:B (20)、第16行改为“else break;”删除第15行后,程序运行时,输入1b0#,输出(20)。 A、10 B、12 C、276 D、1 答案:B 试题6(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 【程序】 #include { char *s[2]={\while(*s[1]!='\\0') {printf(\s[1]++; } } (21)、程序运行时,第1行输出(19)。 A、**** B、*** C、** D、* 答案:D (22)、程序运行时,第2行输出(19)。 A、**** B、*** C、** D、* 答案:C (23)、程序运行时,第3行输出(19)。 A、**** B、*** C、** D、* 答案:B (24)、程序运行时,第4行输出(19)。 A、**** B、*** C、** D、* 答案:A 试题7(28分) 1、定义函数fact(n)计算n的阶乘:n!=1*2*3*??*n,函数的返回值类型是double。 2、定义函数cal(m,n)计算累加和:s=m+(m+1)+(m+2) ??+n,函数的返回值类型是double。 3、定义函数main(),输入整数n,计算并输出下列算式的值。该算式中,每一项的分子是累加和,要求调用函数cal(m,n)计算累加和;每一项的分母是阶乘,要求调用函数fact(n)计算n!。y=1+(1+2)/2!+(1+2+3)/3!+??+(1+2+3+??n)/n! #include double fact(int n)//第一题 {int i; double t=1; for(i=1;i<=n;i++) t*=i;