ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:23.49KB ,
资源ID:23843634      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23843634.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(春答案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

春答案.docx

1、春答案2009年春浙江省高校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个正整数n,计算下列算式的前n项之和。 运行示例: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

2、 = sum + item; (4) ; denominator = denominator + 2; printf (Sum = %.2fn, sum); 【供选择的答案】(1) A. flag = 0 B. flag = -1 C. flag = n D. flag = 1(2) A. i = n B. i n D. i = n(3) A. item = flag / denominator B. item = 1 / denominator C. item = flag * 1.0 / denominator D. item = 1.0 / denominator(4) A. flag

3、= -1 B. flag = 0C. flag = -flag D. flag = flag试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,18=7+11。将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+1

4、3 18=5+13 20=3+17【程序】#include #include int prime(int m) int i, n; if(m = 1) return 0;/*注意:返回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)

5、) printf(%d=%d+%d , number, i, number - i); count+; if( (7) ) printf(n); (8) 在本题中,函数prime(i)用来判断是不是素数。返回0,不是素数,返回1,是素数。【供选择的答案】(5) A. ; B. return 1; C. return 0; D. else return 1;(6) A. prime(i) != 0 | prime(number - i) != 0 B. prime(i) != 0 & prime(number - i) != 0/*表示两个都是素数*/ C. prime(i) = 0 | pri

6、me(number - i) = 0 D. prime(i) = 0 & prime(number - i) = 0(7) A. count % 5 = 0 B. count % 5 != 0 C. (count+1) % 5 = 0 D. (count+1) % 5 != 05个就换行。(8) A. break; B. else break; C. continue; D. ;退出内层循环。试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一行字符,统计并输出其中数字字符、英文字母和其它字符的个数。 要求定义并调用函数cou

7、nt(s, digit, letter, other)分类统计字符串s中数字字符、英文字母和其它字符的个数,函数形参s的类型是字符指针,形参digit, letter, other的类型是整型指针,函数类型是void。运行示例:Enter characters: f(x,y)=5x+2y-6Digit=3 letter=5 other=6【程序】#include void count (char * s, int * digit, int * letter, int * other) (9) while( (10) ) if(*s =0 & *s = a & *s = A & *s = Z)

8、(*letter) +; /*等于letter+*/ else (*other) +; /*等于other+*/ s+; main( ) int i = 0, digit, letter, other; char ch, str80; printf(Enter characters: ); ch = getchar(); while( (11) ) stri = ch; i+; ch = getchar(); stri = 0; (12) ; printf(Digit=%d letter=%d other=%dn, digit, letter, other);本题的思想很简单,只不过使用了指针

9、而已。(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;内容赋值为0.不是指针赋值为0.(10) A. *s+ != 0 B. *s+ != n C. *s != 0 D. *s != n只能在A和C中选择。但因为A在结束循环后还要移动指针S,此时已经指向了0,再移动指针会出错,所以选择C。(11) A. ch != 0 B. ch != n C.

10、 ch = 0 D. 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)传地址,注意str就是字符串的首地址。由此判断其他几个选项都是错误的。试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include main() int flag = 0, i;

11、 int a7 = 8, 9, 7, 9, 8, 9, 7; for(i = 0; i = 0; i-) if(ai = 8) break; /*注意1,跳出循环,下一句没有执行,所以flag还是-1*/ flag = i; printf( %dn, flag); flag = 0; for(i = 0; i 7; i+) if(ai = 9) printf( %d , i); printf( n); flag = 0; for(i = 0; i 7; i+) if(ai = 7) flag = i; printf( %dn, flag); (13) 程序运行时,第1行输出 (13) 。 A.

12、 2 B. 0 C. 3 D. 6 因为第2个元素等于7,所以flag=i=2 (14) 程序运行时,第2行输出 (14) 。 A. 4 B. -1 C. 0 D. 5 看注意1 (15) 程序运行时,第3行输出 (15) 。 A. 2 4 6 B. 4 C. 1 3 5 D. 6 a1=9,a3=9.a5=9,所以答案是C。 (16) 程序运行时,第4行输出 (16) 。 A. 2 4 6 B. 2 C. 1 3 5 D. 6 最后一个7是第7个元素,即a6=7,此时i=6,所以:flag=i=6.试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正

13、确答案。【程序】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); pr

14、intf(%dn, f2(4); f3(123); printf(n); f4(123); printf(n);(17) 程序运行时,第1行输出 (17) 。 A. 10 B. 24 C. 6 D. 1 f1(4)=4+f1(3)=4+(3+f1(2)= 4+(3+(2+f1(1)=4+3+2+1=10(18) 程序运行时,第2行输出 (18) 。 A. 1 B. 3 C. 2 D. 4f2(4)=f2(2)+f2(3)=1+(f2(1)+f2(2)=1+1+1=3(19) 程序运行时,第3行输出 (19) 。 A. 123 B. 3 C. 321 D. 1第1次输出3,(123%10=3)第

15、2次输出2,(12%10=2)第3次输出2,(1%10=1)(20) 程序运行时,第4行输出 (20) 。 A. 1 B. 123 C. 3 D. 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; k n-1; k+) index = k; for(j = k + 1; j n; j+) if(sj.b sindex.b) in

16、dex = 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; i n; i+) si.a = i + 1; si.b = 0; p = s; count = no = 0; while(no b = 0) count+; if(count = m) no+; p-b = no; count = 0; p+; if(p = s + n) p = s; f(s, n); print

17、f(%d: %dn, sk-1.b, sk-1.a);(21) 程序运行时,输入5 4 3,输出 (21) 。A. 3: 5 B. 2: 3C. 1: 2 D. 4: 1 (22) 程序运行时,输入5 3 4,输出 (22) 。A. 3: 5 B. 1: 2C. 4: 3 D. 4: 2 (23) 程序运行时,输入7 5 2,输出 (23) 。A. 1: 5 B. 6: 1C. 2: 3 D. 2: 4 (24) 程序运行时,输入4 2 4#,输出 (24) 。A. 3: 3 B. 4: 2C. 2: 4 D. 4: 1 一、通过分析以下一段程序,for(i = 0; i n; i+) si.

18、a = i + 1; si.b = 0; 我们知道:结构体s的最初情况是:S0.a=1,s0.b=0S1.a=2,s1.b=0S2.a=3,s2.b=0S3.a=4,s4.b=0S4.a=5,s0.b=0二、通过分析以下一段程序,void f(struct num s, int n) int index, j, k; struct num temp; for(k = 0; k n-1; k+) index = k; for(j = k + 1; j n; j+) if(sj.b sindex.b) index = j; temp = sindex; sindex = sk; sk = temp

19、; 我们知道,函数f是按照sj.b的大小排序,小的在前、大的在后。注意,排序时sj.a也相应改变。三、分析以下程序: count = no = 0; /*赋初值,为0*/ while(no b = 0) count+; /*2*/ if(count = m) /*3*/ no+; /*4*/ p-b = no; /*5*/ count = 0; /*6*/ p+; /*7,指针向后移动一次*/ if(p = s + n) /*8这两句的意思是,如果指到头,再返回起点*/ p = s; 当循环进行了4次时,语句3的条件得到满足,所以语句4得到执行,no=1此时,指针指向s3.b,所以s3.b=1

20、;注意,此后语句7继续执行,但语句8的条件不满足,所以继续,但因为语句6已经执行,所以count=0然后,语句2再执行一次,语句8条件满足,又指向s0.这样,当下次语句3的条件满足时,no=2,而指针指向s2,所以,s2.b=2依次类推,我们得到结构体s的最后结果:S0.a=1,s0.b=5S1.a=2,s1.b=4S2.a=3,s2.b=2S3.a=4,s4.b=1S4.a=5,s5.b=3特别应该注意的是,这里m的次数是4,而n=5,所以不匹配。四,调用函数f对以上结构体排序后,结果如下:S0.a=4,s0.b=1(注意是原来的s4.b,所以S0.a=4)S1.a=3,s1.b=2S2.a

21、=5,s2.b=3S3.a=2,s4.b=4S4.a=1,s0.b=5五Sk-1.b=s3-1.b=s2.b=3Sk-1.a=s3-1.a=s2.a=5所以,(21)题的答案是A.其余各题类似。试题7 (28分)(1) 定义函数fact(n)计算n的阶乘: n! = 1 * 2 * * n,函数形参n的类型是int,函数类型是double。(2) 定义函数cal(x, e) 计算下列算式的值,直到最后一项的值小于e,函数形参x和e的类型都是double,函数类型是double。要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x, n)计算x的n次幂。(3) 定义函数main()

22、,输入两个浮点数x和e,计算并输出下列算式的值,直到最后一项的值小于精度e。要求调用自定义函数cal(x,e)计算下列算式的值。#include double fact(int n)int k;double result=1;for (k=1;k=n;k+)result*=k;return result;double pow(double x, int n)int k;double result=1;for (k=1;k=e;k+) t=pow(x,k)/fact(k); s=s+t;return s;void main() int t=1; double s=0.0; double x,e; scanf(%lf,%lf,&x,&e); printf(s=%lfn,cal(x,e);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1