《浙江省高等学校二级C语言(笔试部分真题2008-2010年)》由会员分享,可在线阅读,更多相关《浙江省高等学校二级C语言(笔试部分真题2008-2010年)(37页珍藏版)》请在金锄头文库上搜索。
1、浙江省高等学校计算机等级考试试卷(二级C)2010-2008笔试部分真题2010年春浙江省高等学校计算机等级考试试卷(二级C)一、程序阅读与填空(24小题,每小题3分,共72分)1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个整数,求它的各位数字之和位数。例如,17的各位数字之和是8,位数是2。运行示例:Enter an integer:-153sum = 8, count = 3【程序】#include main() int count = 0, in, sum = 0; printf(Enter an integer:); scanf(%d
2、, &in); if( D ) in = -in; do sum = sum + (2) C ; (3)C ; count+; while( (4)B ); printf(sum = %d, count = %dn, sum, count);【供选择的答案】(1) A、in = 0B、in 0 C、in != 0 D、in 0 (2) A、in /10 B、in mod 10 C、in % 10 D、in(3) A、in = in % 10B、in /10 C、in = in /10D、in % 10(4) A、in % 10 != 0B、in != 0 C、!in D、in / 10 !=
3、0 2. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输出50到70之间的所有素数。要求定义和调用函数isprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。运行示例:53 59 61 67【程序】#include #include main()int i; int isprime(int m); for(i = 50; i = 70; i+) if( (5) B ) printf(%d , i);int isprime(int m) int i, k; (6)B k = (int)
4、sqrt(double)m); for(i = 2; i = k; i+) if(m % i = 0) (7) A ; (8)A ;【供选择的答案】(5) A、isprime (m) != 0B、isprime (i) != 0 C、isprime (m) = 0 D、isprime (i) = 0(6) A、if(m != 1) return 1;B、if(m = 1) return 0; C、;D、if(m = 1) return 1;(7) A、return 0B、return 1 C、return i = k D、return (8) A、return 1B、return 0 C、re
5、turn D、return i = k3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。要求定义和调用函数swap(x, y),该函数交换指针x和y所指向单元的内容。运行示例:Enter 6 integers: 6 1 8 2 10 97After swaped: 6 97 8 2 10 1【程序】void s *x, int *y) int t; (9) ;main() int i, index, a10; for(i = 0; i 6; i+) scanf(%d, &ai); (
6、10) ; for(i = 1; i ai) (11) ; (12) ; printf(After swaped:); for(i = 0; i 6; i+) printf(%d , ai); printf(n);【供选择的答案】(9) A、t = *x, *x = *y, *y = t B、t = x, x = y, y = t C、*t = *x, *x = *y, *y = *t D、&t = x, x = y, y = &t(10)A、index = 0B、index = 5 C、index = index D、index = 1(11)A、aindex = aiB、i = index
7、 C、ai = aindexD、index = i(12)A、swap(aindex, a5) B、swap(*aindex, *a5) C、swap(a*index, a*5) D、sindex, &a5)4. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include #define T(c) (c) = 0) & (c) = 9) ? (c) - 0 : -1)void f1(char ch) switch(ch) case 0: printf(0); case 1: printf(1); case 2: printf(2);break; case
8、3: printf(3); default: printf(9); printf(n);double f2() return (double)(5/2);double f3(int n) if(n = 1) return 1.0; else return 1.0 + 1.0/f3(n-1);main() printf(%d %dn, T(7), T(a); f1(1); printf(%.1fn, f2(); printf(%.3fn, f3(4);【问题】(13) 程序运行时,第1行输出 (13) 。 A、7 -1B、-1 7C、7 aD、-1 -1(14) 程序运行时,第2行输出 (14)
9、 。 A、1239B、12C、1 D、9(15) 程序运行时,第3行输出 (15) 。 A、2.5B、2C、2.0 D、3(16) 程序运行时,第4行输出 (16) 。 A、1.000B、2.000C、1.500D、1.6675. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include main() int i, j, t, a34 = 1,2,3,4,5,6,7,8,9,10,11,12; for(i = 0; i 3; i+) for(j = 0; j = i/2; j+) t = aij, aij = ai3-j, ai3-j = t; p
10、rintf(%dn, a01); printf(%dn, a22);程序2#include main() char str10 = 27; int i, number = 0; for(i = 0; stri != 0; i+) if(stri = 0 & stri = 0 & stri = 5) number = number * 6 + stri -0; printf(%dn, number);【问题】(17) 程序1运行时,第1行输出 (17) 。 A、3B、4 C、1 D、2(18) 程序1运行时,第2行输出 (18) 。 A、12 B、11 C、10 D、9(19) 程序2运行时,第1行输出 (19) 。 A、2 B、27 C、23 D、16(20) 程序2运行时,第2行输出 (20) 。 A、19 B、140 C、147 D、26阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include main() int i, j; char ch, *p1, *p2, *s4=four,hello,peak,apple; for(i = 0; i 4; i+) p1 = p2 = si; ch = *(p1 + i); while(*p1 != 0) if(*p1 != ch) *p2 = *p1; p2+; p1+; *p2 = 0