for(i=0; str[i] !=?\\0?; i++) if (str[i]>=?a? && str[i]<=?z?) putchar(str[i] - ?a? + ?A?); else if (str[i]>=?A? && str[i]<=?Z?)
putchar(str[i] - ?A? + ?a?);
putchar(?\\n?); } 【问题】
(17) 程序1运行时,第1行输出 (17)
[A]0 [C] 8 (18) 程序1运行时,第2行输出 (18) [A]9 [C] 5 (19) 程序2运行时,第1行输出 (19) [A]AeE [B]a
[B] 1
[D] 9 [B] 7 [D]1 [C] ae
[D] e
(20) 程序2运行时,第2行输出 (20)
[A] 4Ae2E [B]42 [C]AeE [D] aEe
6. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】
#include
{ int i , j;
char str [10], *s[10]={“SQL”,”hello”,”bear”,”zone”}; gets (str);
for (i=0; i<4; i++){ }
if (i= =4) s[4]=str; for (i=0; i<5; i++) printf(“%s ”, s[i]); putchar(?\\n?);
if (strcmp(str, s[i]) > 0) continue; j =3;.
while ( j >= i){ s[j+1] = s[j]; j--; }
s[i] = str; break;
11
} 【问题】
(21) 程序运行时,输入apple , 输出 (21) [A]SQL apple hello bear zone [B] apple SQL hello bear zone [C] SQL hello bear zone apple [D] SQL hello apple bear zone (22) 程序运行时,输入I , 输出 (22) [A]SQL hello bear I zone [B] I SQL hello bear zone [C] SQL I hello bear zone [D]SQL hello bear zone I (23) 程序运行时,输入zoo , 输出 (23)
[A]zoo SQL hello bear zone [B] SQL hello bear zoo zone [C] SQL hello bear zone zoo [D] SQL hello zoo bear zone
(24) 程序运行时,输入orange , 输出 (24) [A] SQL orange hello bear zone [B] SQL hello orange bear zone [C]orange SQL hello bear zone [D] SQL hello bear orange zone
二、程序编写(每小题14分,共28分)
1. 编写程序,输入100个整数,将它们存入数组a中,查找并输出数组a中的最小值。
2.按下面要求编写程序:
(1)定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double.
(2)定义函数main(),输入浮点数x和正整数n,计算并输出下列算式的值。要求调用函数cal_power(x, n)计算x的n次幂。
s?1x?1x2?1x3????1xn
C模拟试卷29参考答案
一、程序阅读与填空(24小题,每小题3分,共72分)
题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) 答案 D A C B B C A D D C B A A A B B C C D D A B C D
二、程序编写(2小题,每小题14分,共28分)
12
1.
#include
int a[100],i;
int min;
for(i=0;i<100;i++)
scanf(\ min=a[0]; for(i=1;i<100;i++) if(a[i] #include double cal_power(double x,int n) { double p = x; int i; for(i=1;i void main() { double x, s=0; int i,n; scanf(\ for(i=1;i<=n;i++) s=s+1/cal_power(x,i); printf(\} 2009年春浙江省高等学校 计算机等级考试试卷(二级C) 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入1个正整数n,计算下列算式的前n项之和。 S=1-1/3+1/5-1/7+? 13 运行示例: Enter n:2 Sum=0.67 【程序】 #include { 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=%.2f\\n”,sum); } 【供选择的答案】 (1) A、flag=0 B、flag=-1 C、flag=n D、flag=1 (2) A、i>=n B、i C、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=-1 B、flag=0 C、flag=-flag D、flag=flag 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=7+11。将6~20之间的偶数表示成两个素数之和,打印时一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例: 6=3+3,8=3+5,10=3+7,12=5+7,14=3+11 16=3+13 18=5+13 20=3+17 18=7+11 【程序】 #include 14 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)!=0 B、prime(i)!=0 && prime(number – i)!=0 C、prime(i)==0 || prime(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!=0 (8) A、break; B、else break; C、continue; D、; 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一行字符,统计并输出其中数字字符、英文字母和其他字符的个数。要求定义并调用函数count(s, digit,letter,other)分类统计字符串s中数字字符、英文字母和其它字符的个数,函数形参s的类型是字符指针,形参digit,letter,other的类型是整形指针,函数类型是void。 运行示例: Enter characters:f(x,y)=5x+2y-6 Digit=3 letter=5 other=6 【程序】 #include void count (char *s, int * digit, int * letter, int * other) { _____(9)___ while(_____(10)___){ if (*s>=?0? && *s<=?9?) (*digit)++; else if ((*s>=?a? && *s<=?z?)||(*s>=?A? && *s<=?z?)) (*letter)++; 15