年秋浙江省计算机等级考试二级C试卷及答案
2010年下半年浙江省高等学校计算机等级考试 二级C程序设计试卷 说明:⑴ 本试卷共6页,满分100分;考试时间为90分钟; ⑵ 考生应将全部试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小题选项的对应位置上填“Ö”。 ⑶ 考生应将全部试题的答案填写在答卷上。 一、 程序阅读与填空(24小题,每小题3分,共72分) 1.阅读下列程序说明和程序,在每小题供应的若干可选答案中,选择一个正确答案 【程序说明】 输入5个整数,将它们从小到大排序后输出。 运行示例: Enter an integer: 9 -9 3 6 0 After sorted: -9 0 3 6 9 【程序】 #include main() { int i, j, n, t, a[10]; printf(”Enter 5 integers:”); for(i = 0; i < 5 ; i++) scanf(”%d”, (1) ); for(i = 1; (2) ; i++) for(j = 0; (3) ; j++) if( (4) ) { t = a[j], a[j] = a[j+1], a[j+1] = t; } printf(”After sorted:”); for(i = 0; i < 5 ; i++) printf(“=“, a[i]); } 【供选择的答案】 (1) A、 int is(int n); for(i = 80; i <= 120; i++) if( (5) ) printf(“%d “, i); printf(“\n“); } int is(int n) { int old, digit; old = n % 10; do{ digit = n % 10; if( (6) ) return 0 ; (7) n = n / 10; }while( n != 0 ); (8) } 【供选择的答案】 (5) A、is(n) == 0 B、is(i) == 0 C、is(n) != 0 D、is(i) != 0 (6)A、digit != n % 10 B、digit == old C、old == n % 10 D、digit != old (7) A、digit = old; B、; C、old = digit; D、old = digit / 10; (8) A、return; B、return 1; C、return 0; D、return digit != old; 3.阅读下列程序说明和程序,在每小题供应的若干可选答案中,选择一个正确答案 【程序说明】 输入一个以回车结束的字符串(少于80个字符),将其逆序输出。要求定义和调用函数reverse(a),该函数将字符串s逆序存放。 运行示例: Enter a string: 1+2=3 After reversed: 3=2+1 【程序】 #include void reverse(char *str) { int i, j, n = 0; char t; while(str[n] != ’\0’) n++; for(i = 0, (9) ; i < j; (10) ) { t = str[i], str[i] = str[j], str[j] = t; } } main() { int i = 0 ; char s[80]; printf(”Enter a string:”); while( (11) ) i++; s[i] = ’\0’; (12) ; printf(“After reversed:“); puts(s); } 【供选择的答案】 (9) A、j = n – 1 B、j = n C、j = n - 2 D、j = n + 1 (10)A、i++, j-- B、i++, j++ C、i--, j++ D、i--, j-- (11)A、s[i] = getchar() B、(s[i] = getchar()) != ’\n’ C、s[i] != ’\0’ D、(s[i] = getchar() != ’\n’) (12)A、reverse(*s) B、reverse(s) C、reverse( n--) { if(n % 2 != 0) continue; printf(”%d ”, n); } printf(”\n”); } double f2(double x, int n) { if(n == 1) return x; else return x * f2(x, n-1); } main( ) { int a = 9; printf(“%d %d\n“, a, S(a)); f1(4); printf(“%.1f\n“, f2(2.0, 3)); printf(“%d %d\n“, n, S(n));