精品文档
2010年下半年浙江省高等学校计算机等级考试二级C程序设计试卷 一、 程序阅读与填空(24小题,每小题3分,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案
【程序说明】
输入5个整数,将它们从小到大排序后输出。 运行示例:
Enter an integer: 9 -9 3 6 0 After sorted: -9 0 3 6 9 【程序】
#include
{ 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(\}
【供选择的答案】
(1) A、&a[i] B、a[i] C、*a[i] D、a[n]
(2) A、i < 5 B、i < 4 C、i >= 0 D、i > 4
(3) A、j < 5–i–1 B、j < 5–i C、j < 5 D、j <= 5
(4) A、a[j] < a[j+1] B、a[j] > a[j-1] C、a[j] > a[j+1] D、a[j-1] > a[j+1]
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案
【程序说明】
输出80到120之间的满足给定条件的所有整数,条件为构成该整数的每位数字都相同。要求定义和调用函数is(n)判断整数n的每位数字是否都相同,若相同则返回1,否则返回0。 运行示例: 88 99 111 【程序】
#include
精品文档
精品文档
main()
{ int i; int is(int n); for(i = 80; i <= 120; i++) if( (5) ) printf(\printf(\}
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(&s) D、reverse(str) 4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案
【程序】
#include
#define S(x) 3 < (x) < 5 int n, a;
void f1(int n)
{ for(; n >= 0; 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(\f1(4);
printf(\printf(\}
精品文档
精品文档
【问题】
(13) 程序运行时,第1行输出 (13) 。
A、0 1 B、9 1 C、0 0 D、9 0 (14) 程序运行时,第2行输出 (14) 。
A、3 1 B、4 2 0 C、4 3 2 1 D、0 (15) 程序运行时,第3行输出 (15) 。
A、8.0 B、2.0 C、4.0 D、3.0 (16) 程序运行时,第4行输出 (16) 。
A、0 1 B、3 1 C、0 0 D、3 0
5.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案
【程序】 程序1
#include
{ int i, j; static a[4][4];
for(i = 0; i < 4; i++) for(j = 0; j <= i; j++) {
if(j == 0 || j == i) a[i][j] = 1;
else a[i][j] = a[i-1][j-1] + a[i-1][j]; }
for(i = 2; i < 4; i++) { for(j = 0; j <= i; j++) printf(“%d ”, a[i][j]); printf(”\\n”); } }
程序2
#include
{ char str[80]; int i;
gets(str);
for(i = 0; str[i] != ’\\0’; i++) if(str[i] == ’z’) str[i] = ’a’; else str[i] = str[i] + 1; puts(str); }
【问题】
(17)程序1运行时,第1行输出 (17) 。
A、1 B、1 1 C、1 2 1 D、1 3 3 1
精品文档
精品文档
(18)程序1运行时,第2行输出 (18) 。
A、1 B、1 1 C、1 2 1 D、1 3 3 1 (19)程序2运行时,输入123,输出 (19) 。
A、123 B、012 C、231 D、234 (20)程序2运行时,输入sz,输出 (20) 。
A、sz B、ty C、ta D、tz
6.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案
【程序】
#include
{ int i,j;
char ch, *p1, *p2, *s[4]={”tree”,”flower”,”grass”,”garden”}; for(i = 0; i < 4; i++) { p2 = s[i]; p1 = p2 + i;
while(*p1 != ’\\0’){ *p2 = *p1; p1++, p2++; }
*p2 = ’\\0’; }
for(i = 0; i < 4; i++) printf(\ }
【问题】
(21) 程序运行时,第1行输出 (21) 。
A、ree B、ss C、tree D、e (22) 程序运行时,第2行输出 (22) 。
A、flower B、ower C、wer D、lower
(23) 程序运行时,第3行输出 (23) 。
A、grass B、ss C、rass D、ass (24) 程序运行时,第4行输出 (24) 。
A、en B、arden C、den D、garden
精品文档