计算机等级考试试卷(二级C).doc_第1页
计算机等级考试试卷(二级C).doc_第2页
计算机等级考试试卷(二级C).doc_第3页
计算机等级考试试卷(二级C).doc_第4页
计算机等级考试试卷(二级C).doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2008年春浙江省高等学校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个正整数n(n=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。菲波那契(Fibonacci)序列:1,1,2,3,5,8,13,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。运行示例:Enter n :101 1 2 3 5 813 21 34 55【程序】#include main( ) int count, i, n, x1, x2, x; printf(Enter n:);scanf(%d, &n);x1 = x2 = 1;printf(%6d%6d, x1, x2); (1) for ( i = 1; i = n-2; i+ ) (2) ; printf(%6d , x);count+ ; if ( (3) )printf(n);x1 = x2 ; (4) ;【供选择的答案】(1) A、 count = 2 B、count = 0 C、 count = 1 D、count = -1(2) A、x1 = x1 x2 B、x = x1 + x2 C、x = x1 D、x = 2(3) A、count / 6 = 0 B、count % 6 != 0 C、count % 6 = 0 D、count / 6 != 0(4) A、x = x1 + x2 B、x2 = x1;C、x = x2; D、x2 = x;试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入2个正整数m和n(1=mn=500),统计并输出m和n之间的素数的个数以及这些素数的和。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。运行示例:Enter m, n: 1 10count = 4, sum = 17【程序】#include #include int prime(int m) int i, n;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(Enter m, n:); scanf(%d%d, &m, &n);for(i = m; i = n; i+) if( (8) ) sum += i; count+; printf(count=%d, sum=%dn, count, sum);【供选择的答案】(5) A、1 B、m C、m = 1 D、0(6) A、m B、1 C、0 D、n(7) A、m B、1C、0 D、i = n(8) A、prime(i) != 0 B、prime(i) = 0C、i = prime(i) D、!prime(i)试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个2 * 3的二维数组,找出最大值以及它的行下标和列下标,并输出该矩阵。运行示例:Enter a array(2*3):3 2 10 -9 6 -1max = a02 = 103 2 10-9 6 -1【程序】#include main( ) int col, i, j, row; int a23; printf(Enter array(2*3):); for(i = 0; i 2; i+) for(j = 0; j 3; j+) scanf(%d, (9) ); (10) ; for(i = 0; i 2; i+) for(j = 0; j arowcol) (11) ; printf(max = a%d%d = %dn, row, col, arowcol); for(i = 0; i 2; i+) for(j = 0; j 3; j+) printf(%4d, aij); (12) ;【供选择的答案】(9) A、&aij B、&ajiC、aij D、aji(10) A、row = col = 2; B、row = col = 0; C、arowcol = 0; D、arowcol = -1;(11) A、row = j; col = i; B、arowcol = aij C、row = i; col = j; D、arowcol = aji(12) A、printf(“n”) B、printf(“n”);C、; D、printf(“n”); 试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include void main( ) int op1, op2, res;char operater;scanf(%d, &op1);operater=getchar();while (operater != = ) scanf(%d, &op2);switch(operater) 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; operater = getchar();printf(%dn, res); (13) 程序运行时,输入2*3-2=,输出 (13) 。 A、6 B、2C、0 D、4(14) 程序运行时,输入15+2/3=,输出 (14) 。 A、16 B、15C、6 D、5(15)程序运行时,输入1+2*10-10/2=,输出 (15) 。 A、10 B、16C、15 D、25(16)程序运行时,输入1+3*5/2-7=,输出 (16) 。 A、3 B、1C、-2 D、-3试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include #define MAXLEN 80main() int k = 0, number = 0; char strMAXLEN; while(strk = getchar() != #) k+; strk = 0; for (k=0; strk != 0; k+)if (strk = 0&strk = 0&strk = 9) number = number * 12 + strk 0; else if (strk = A|strk = B) number = number * 12 + strk A + 10;else ; /* 第15行 */ else break; /* 第16行 */printf(%d, number);(17)程序运行时,输入10#,输出 (17) 。 A、16 B、10 C、12 D、1(18) 程序运行时,输入1a0#,输出 (18) 。 A、264 B、10 C、1 D、12 (19) 将第16行改为“;”后,程序运行时,输入A*0#,输出 (19) 。 A、0 B、120 C、10 D、12 (20) 将第16行改为“else break;”后,删除第15行,程序运行时,输入1b0#,输出 (20) 。 A、10 B、12 C、276 D、1试题6(每小题3分,共12分)#include main( ) char *s2 = ”*”, ”*”; while (*s1 != 0) printf(%sn, s0+strlen(s1)-1); s1+;(21) 程序运行时,第1行输出 (21) 。A、* B、*C、* D、* (22) 程序运行时,第2行输出 (22) 。A、* B、*C、* D、* (23) 程序运行时,第3行输出 (23) 。A、* B、*C、* D、* (24) 程序运行时,第4行输出 (24) 。A、* B、*C、* D、*试题7 (28分)(1) 定义函数fact(n)计算n的阶乘:n!=1*2*n,函数返回值类型是double。(2) 定义函数cal(m, n)计算累加和:,函数返回值类型是double。(3) 定义函数main(),输入正整数n,计算并输出下列算式的值。该算式中,每一项的分子是累加和,要求调用函数cal(m,n)计算;每一项的分母是阶乘,要求调用函数fact(n)计算n!。参考答案:#include double fact(int n)int i;double mult=1.0;for(i=1;i=n;i+)mult=mult*i;return mult;double cal(int m,int n)double sum=0.0;int i;for(i=m;i=n;i+)sum=sum+i;return sum;void main( ) int n,i;double sum1=0.0;scanf(%d,&n);for(i=1;i=n;i+)sum1=sum1+cal(1,i)/fact(i);printf(%fn,sum1);注意:原试卷第四题有问题,已经改过。2008年秋浙江省高等学校计算机等级考试试卷(二级C)说明: 考生应将所有试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小题选项的对应位置上填“”。 请将你的准考证号的后五位填写在答卷右下角的指定位置内; 考试时间为90分钟。试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一批学生的成绩,遇负数表示输入结束,要求统计并输出各等级成绩的学生个数。成绩等级分为三级,分别为A(90100)、P(6089)和F(059)。运行示例:Enter scores :88 71 68 70 59 81 91 0 60 77 83 -10A:1;P:8;F:2;【程序】#include main( ) int mark, a, p, f; a = p = f = 0; printf(Enter scores:);scanf(%d, &mark);while ( (1) ) if ( mark = 90 ) a+; (2) p+; (3) f+; (4) printf(A:%d; P:%d; F:%d;n, a, p, f);【供选择的答案】(1) A、 mark = 0B、mark 0 C、 mark = 0D、mark = 60 )B、if (mark = 60)C、else ( mark = 60 )D、if (mark 90)(3) A、else ( mark 0)D、else if ( mark = 60 )(4) A、scanf(%d, mark);B、scanf(%d, &mark);C、;D、mark = getchar();试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】求1999之间所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是13+53+33=153。运行示例:1 153 370 371 407【程序】#include main( ) int digit, j, sum, x;for(j = 1; j 1000; j+) (5) (6) do (7) sum = sum + digit * digit * digit;x = x / 10; while ( (8) ) ;if ( sum = j )printf(%d , sum);【供选择的答案】(5) A、sum = 0;B、sum = 1;C、sum = j;D、;(6) A、x = 1;B、x = j;C、;D、x = sum;(7) A、digit = x / 10;B、;C、digit = x % 10;D、digit = x;(8) A、x = 0B、j != 0C、j = 0D、x != 0试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入10整数,将它们从大到小排序后输出。运行示例:Enter 10 integers:10 98 -9 3 6 9 100 -1 0 2After sorted: 100 98 10 9 6 3 2 0 -1 -9【程序】#include (9) void sort ( (10) ) int i, index, k;for ( k = 0; k n-1; k+) index = k ;for ( i = k+1; i aindex) index = i; (11) ;void swap ( int *x, int *y ) int t;t = *x; *x = *y; *y = t;main( ) int i, a10; printf(Enter 10 integers:); for(i = 0; i 10; i+) scanf(%d, &ai ); (12) ; printf(After sorted:”); for(i = 0; i 10; i+) printf(%d , ai);printf(n);【供选择的答案】(9) A、void swap(int *x, int *y)B、;C、void swap(int *x, int *y);D、void swap(int *x, *y)(10)A、int &a, int nB、int *a, int *nC、int *a, int nD、int a, int *n(11)A、swap(*aindex, *ak)B、swap(aindex, ak)C、swap(index, k)D、swap(&aindex, &ak)(12)A、sort(a)B、sort(a10)C、sort(a, 10)D、sort(a, 10)试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include main( ) int j, k, s1, s2;s1 = s2 = 0;for (j = 1; j = 5; j+) s1+;for (k = 1; k = j; k+) s2+;printf(%d %d, s1, s2);程序2#include main( ) int j, k, s1, s2;s1 = 0;for (j = 1; j = 5; j+) s1+;for (k = 1, s2 = 0; k = j; k+) s2+;printf(%d %d, s1, s2);程序3#include main( ) int j, k, s1, s2;s1 = 0;for (j = 1; j = 5; j+) s1+;for (k = 1; k = j; k+, s2 = 0) s2+;printf(%d %d, s1, s2);程序4#include main( ) int j, k, s1, s2;s1 = s2 = 0;for (j = 1; j = 5; j+, s1 = 0) s1+;for (k = 1; k = j; k+) s2+;printf(%d %d, s1, s2);(13) 程序1运行时,输出 (13) 。A、0 15B、5 0C、5 5D、5 15(14) 程序2运行时,输出 (14) 。A、0 15B、5 0C、5 5D、5 15(15)程序3运行时,输出 (15) 。A、0 15B、5 0C、5 5D、5 15(16)程序4运行时,输出 (16) 。A、0 15B、5 0C、5 5D、5 15试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include main() int i, m = 15, y = -1; for (i = 2; i = m/2; i+)if (m % i = 0) y = 0; else y = 1;printf(%d, y);程序2#include main() int i, m = 15, y = -1; for (i = 2; i = m/2; i+)if (m % i = 0) y = 0; break; printf(%d, y);程序3#include main() int i, m = 15, y = -1; for (i = 2; i m/2) y = 1;else y = 0;printf(%d, y);程序4#include main() int i, m = 15, y = -1; for (i = 2; i = m/2; i+)if (m % i = 0) break; y = 0; printf(%d, y);(17)程序1运行时,输出 (17) 。A、1B、0C、15D、-1(18) 程序2运行时,输出 (18) 。A、15B、0C、-1D、1(19)程序3运行时,输出 (19) 。A、-1B、1C、0D、15(20)程序4运行时,输出 (20) 。A、0B、15C、1D、-1试题6(每小题3分,共12分)#include main( ) int k;char ch, a10, *s10 = ”one”, ”two”, ”three”, ”four”; k = 0;while (ch = getchar()!=# & k =5 & ch=8) ak+ = ch;ak = 0;for (k = 0; ak!=0; k+) printf(%s , s(9-ak)-1);(21) 程序运行时,输入5678#,输出 (21) 。A、two threeB、twoC、one four threeD、four three two one (22) 程序运行时,输入8561#,输出 (22) 。A、two threeB、twoC、one four threeD、four three two one (23) 程序运行时,输入7902#,输出 (23) 。A、tow threeB、twoC、one four threeD、four three two one (24) 程序运行时,输入7633#,输出 (24) 。A、two threeB、twoC、one four threeD、four three two one试题7 (28分)(1) 定义函数fact(n)计算n的阶乘:n!=1*2*n,函数返回值类型是double。(2) 定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小于e,函数返回值类型是double。(3) 定义函数main(),输入正整数n,当精度e分别取值为10-1、10-2、10-3、10-n时,分别计算并输出下列算式的值,直到最后一项的绝对值小于精度e,以比较不同精度下算出的结果。要求调用函数cal(e)计算下列算式的值。2008年秋浙江省高等学校计算机等级考试参考答案(二级C)试题1A A B B试题2A B C D试题3C C D D 试题4D C B A试题5A B C D试题6D C B A试题7 ( 本题 28 分 )(1) 参考解法一double fact(int n) int k ; double t=1;for(k=1;k=e;k+)t=1/fact(k);s=s+t;return s ;参考解法二double cal(double e ) int k=1 ; double s=1;do k+;s=s+1/fact(k); while(1/fact(k)=e);return s ;(3)#includevoid main() int k,n ; double t=1;while ( scanf(“%d”,&n), n=0);for(k=1;k=n;k+)t=t/10;printf(%fn, cal(t);2009年春浙江省高等学校计算机等级考试试卷 (二级C)说明: 考生应将所有试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小题选项的对应位置上填“”。 请将你的准考证号的后五位填写在答卷右下角的指定位置内; 考试时间为90分钟。试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个正整数 n,计算下列算式的前n项之和。S=.运行示例:Enter n:2Sum=0.67【程序】#include main() int denominator,flag,i,n;double item,sum;printf(Enter n: );scanf(%d,&n);denominator=1; (1) ;sum=0;for(i=1; (2) ;i+) (3) ;sum=sum+item; (4) ;denominator=denominator+2;printf(Sum = %.2fn,sum);【供选择的答案】(1) A、flag = 0B、flag = -1C、 flag = nD、flag = 1(2) A、i = nB、i nD、i = n(3) A、item = flag/denominatorB、item = 1/denominatorC、item = flag*1.0/denominatorD、item = 1.0/denominator(4) A、flag = -1B、flag = 0C、flag = - flagD、flag = flag试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,18=5+13。将620之间的偶数表示成两个素数之和,打印是一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数,返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。运行示例:6=3+3 8=3+5 10=3+7 12=5+7 14=3+1116=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(%d=%d+%d ,number,i,number-i);count+;if( (7) ) printf(n); (8) 【供选择的答案】(5) A、;B、return 1;C、return 0;D、else return 1;(6) A、prime(i) != 0 | prime(number-i) != 0B、prime(i) != 0 & prime(number-i) != 0C、prime(i) = 0 | prime(number-i) = 0D、prime(i) = 0 & prime(number-i) = 0(7) A、count % 5 = 0B、count % 5 != 0C、(count + 1) % 5 = 0D、(count + 1) % 5 != 0(8) A、break;B、else break;C、countinue;D、;试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一行字符,统计并输出其中数字字符,英文字母和其它字符的个数。要求并调用函数count(s,digit,letter,other)分类统计字符串s中数字字符,英文字符和其它字符的个数,函数形参s的类型是字符指针,形参digit,letter,other类型是整型指针,函数类型是void。运行示例:Enter characters:f(x,y)=5x2y-6Digit=3 letter=5 other=5【程序】#include void count(char * s,int *digit,int *letter,int *other) (9) while( (10) )if(*s=0 & *s=a&*s=A&*s=Z)(*letter)+;else (*other)+;s+;main() int i=0,digit,letter,other;char ch,str80;printf(Engter characters: );ch=getchar();while( (11) ) stri=ch;i+;ch=getchar();stri=0; (12) ;printf(Digit=%d letter=%d other=%dn,digit,letter,other);【供选择的答案】(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;(10)A、*s+ != 0B、*s+ != nC、*s != 0D、*s != n(11)A、ch != 0B、ch != nC、ch = 0D、ch = n(12)A、count(str,&digit,&letter,&other)B、count(&str,&digit,&letter,&other)C、count(*str,digit,letter,other)D、count(*str,*digit,*letter,*other)试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include void main( ) int flag=0,i;int a7=8,9,7,9,8,9,7;for(i=0;i=0;i-)if(ai=8) break;flag=1;printf(%dn,flag);flag=0;for(i=0;i7;i+)if(ai=9) printf(%d ,i);printf(n);flag=0;for(i=0;i7;i+)if(ai=7) flag=i;printf(%dn,flag);(13) 程序运行时,第1行输出 (13) 。A、2B、0C、3D、6(14) 程序运行时,第2行输出 (14) 。A、4B、-1C、0D、5(15) 程序运行时,第3行输出 (15) 。A、2 4 6B、4C、1 3 5D、6(16) 程序运行时,第4行输出 (16) 。A、2 4 6B、2C、1 3 5D、6试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include int f1(int n) if(n=1) return 1;else return f1(n-1)+n;int f2(int n) switch(n) case 1: case 2:return 1;default:return f2(n-1) +f2(n-2);void f3(int n) printf(%d,n%10);if(n/10!=0) f3(n/10);void f4(int n) if(n/10!=0) f4(n/10);printf(%d,n%10);#include main() printf(%dn,f1(4);printf(%dn,f2(4);f3(123);printf(n);f4(123);printf(n);(17)程序运行时,第1行输出 (17) 。A、10B、24C、6D、1(18)程序运行时,第1行输出 (18) 。A、1B、3C、2D、4(19)程序运行时,第1行输出 (19) 。A、123B、3C、321D、1(20)程序运行时,第1行输出 (20) 。A、1B、123C、3D、321试题6(每小题3分,共12分)#include struct num int a,b;void f(struct num s,int n) int index,j,k; struct num temp; for(k=0;kn-1;k+) index=k;for(j=k+1;jn;j+)if(sj.bsindex.b) index=j;temp=sindex;sindex=sk;sk=temp;main() int count,i,k,m,n,no;struct num s100,*p;scanf(%d%d%d,&n,&m,&k);for(i=0;in;i+) si.a=i+1;si.b=0;p=s;count=no=0;while(nob=0) count+;if(count=m) no+;p-b=no;count=0;p+;if(p=s+n)p=s;f(s,n);printf(%d: %dn,sk-1.b,sk-1.a);(21) 程序运行时,输入5 4 3 ,输出 (21) 。A、3: 5B、2: 3C、1: 2D、4: 1(22) 程序运行时,输入5 3 4 ,输出 (22) 。A、3: 5B、1: 2C、4: 3D、4: 2(23) 程序运行时,输入7 5 2 ,输出 (23) 。A、1: 5B、6: 1C、2: 3D、2: 4(24) 程序运行时,输入4 2 4 ,输出 (24) 。A、3: 3B、4: 2C、2: 4D、4: 1试题7 (28分)(1) 定义函数fact(n)计算n的阶乘:n!=1*2*n,函数形参n的类型是int,函数返回值类型是double。(2) 定义函数cal(x,e)计算下列算式的值,直到最后一项的值小于e,函数形参x和e的类型都是double,函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论