(19) 将第16行改为“;”后,程序运行时,输入A*0#,输出 (19) 。 A、0 B、120 C、10 D、12
(20) 将第16行改为“else break;”后,删除第15行,程序运行时,输入1b0#,输出 (20) 。
A、10 B、12 C、276 D、1
试题6(每小题3分,共12分)
#include
{ char *s[2] = {”****”, ”****”}; while(*s[1] != ?\\0?){
printf(”%s\\n”, s[0]+strlen(s[1])-1); s[1]++; } }
(21) 程序运行时,第1行输出 (21) 。
A、**** B、*** C、** D、*
(22) 程序运行时,第2行输出 (22) 。
A、**** B、***
C、** D、*
(23) 程序运行时,第3行输出 (23) 。
A、**** B、***
C、** D、*
(24) 程序运行时,第3行输出 (24) 。
A、**** B、***
C、** D、*
试题7 (28分)
(5) 定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数返回值类型是double。
n(6) 定义函数cal(m, n)计算累加和:s??k?m?(m?1)?......?n,函数返回
k?m值类型是double。
(7) 定义函数main(),输入正整数n,计算并输出下列算式的值。该算式中,每一项
n的分子是累加和,要求调用函数cal(m,n)计算?k;每一项的分母是阶乘,要
k?m求调用函数fact(n)计算n!。
(8) y=1+
1?22!?1?2?33!?......?1?2?......?nn!
计算机等级考试参考答案(二级C)
试题1~6 (每小题3分)
⑴ A ⑵ B ⑶ C ⑷ D ⑸ D ⑹ C ⑺ B ⑻ A ⑼ A ⑽ B ⑾ C ⑿ D ⒀ D ⒁ D ⒂ A ⒃ A ⒄ C ⒅ C ⒆ B ⒇ B (21)D (22)C (23)B (24)A
31
试题7 (28分)
#include
int i;
double p=1;
for(i=1;i<=n;i++) p*=i; return(p); }
double cal(int m,int n) {
int i;
double s=0; for(i=m;i<=n;i++) s+=i; return(s); }
void main() {
int i,n;
double y=0;
printf(\ scanf(\ for(i=1;i<=n;i++)
y+=cal(1,i)/fact(i);
printf(\}
2007年秋浙江省高等学校计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
输入2个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加2℉。计算公式如下,式中:c表示摄氏温度,f表示华氏温度。
C=
5??f?32?9
运行示例:
32
Enter lower: 30 Enter upper: 35 fahr celsius 30 -1.1 32 0.0 34 1.1
【程序】
# include
{ int fahr,lower,upper; double celsius;
printf(“Enter lower:”); scanf(“%d”, &lower) ; printf(“Enter upper:”); scanf(“%d”, &upper) ; printf(“fahr celsius\\n”);
for (fahr = lower; (1) ; (2) ){ celsius = (3) ;
printf(“%d (4) \\n”,fahr,celsius); }
}
【供选择的答案】
(1) A、 fahr <= upper B、 fahr < upper C、 fahr >= upper D、 fahr > upper (2) A、 fahr++ B、 fahr = fahr -2
C、 fahr + 2 D、 fahr = fahr + 2
(3) A、 5 * (fahr - 32)/9 B、 (5.0/9.0) * (fahr - 32) C、 5 / 9* (fahr - 32) D、 5 * fahr – 32/9
(4) A、 m B、 %6.2f C、 %6.1f D、 %6.0f
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
输入2个正整数a和n,求a+aa+aaa+aa?a(n个a)之和,要求定义并调用函数fn(a,n),它的功能是返回aa?a(n个a)。例如,fn(3,2)的返回值是33。
运行示例:
Enter a: 2 Enter n: 3 sum = 246 【程序】
33
# include
{ int i,n; long a, sn;
long fn(long a, int n); printf(“Enter a:”); scanf(“%ld”, &a); printf(“Enter n:”); scanf(“%d”, &n); (5)
for(i=1; i<=n; i++) (6)
printf(“sum=%ld\\n”,sn); }
long fn(long a, int n) { int i;
Long tn=0;
for(i=1; i<=n; i++){ tn=tn+a; (7) }
(8) }
【供选择的答案】
(5) A、sn=0; B、 ;
C、sn=1; D、sn=a;
(6) A、sn=sn+fn(a,i); B、sn=sn+fn(a,n); C、sn=sn+fn(i,a); D、sn=sn+fn(i,n); (7) A、tn=tn*10; B、a=a*10; C、sn=tn*10; D、sn=sn+a*10; (8) A、return; B、return sn; C、return a; D、return tn;
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
输入一个以回车结束的字符串(少于80个字符),删除其中除英文字母和数字字符以外的其他字符,再判断新字符串是否对称(不区分大小写字母)。
运行示例1:
Enter a string: Madam I’m Adam
34
Yes
运行示例2:
Enter a string: elephant No 【程序】
# include
# include< (9) > main( )
{ int flag, i, k, length; char str[80];
printf(“Enter a string: ”); gets(str); i = k = 0;
while(str[i] != '\\0'){
if(isupper(str[i]))str[i]=tolower(str[i]); if(isdigit(str[i])||isalpha(str[i])){ (10)
k++;
} i++;
}
(11) length = k;
flag = 1;
for(k = 0; k <= length/2; k++) if(str[k] != str[length-1-k]){
(12) break;
}
if(flag) printf(“Yes\\n”); else printf(“No\\n”);
}
【供选择的答案】
(9) A、ctype.h B、string.h
C、stdlib.h D、math.h
(10) A、i++; B、str[k] = str[i]; C、str[i]=str[k] D、;
(11) A、str[i] = ‘\\0’; D、str[i-1] = ‘\\0’; C、str[k] = ‘\\0’; D、;
(12) A、flag = 1; B、flag = 0;
35