浙江省二级C语言笔试真题(2007-2010年)(6)

2019-03-27 18:28

(1)定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数返回值类型是double。

(2)定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小于e,函数返回值类型是double。 s=1+

12!?1?14!?......

-1

-2

-3

-n

(3)定义函数main(),输入正整数n,当精度e分别取值为10、10、10、??、10时,分别计算并输出下列算式的值,直到最后一项的绝对值小于精度e,以比较不同精度下算出的3!结果,要求调用函数cal(e)计算下列算式的值。

计算机等级考试参考答案(二级C)

试题1~6 (每小题3分)

⑴ A ⑵ A ⑶ B ⑷ B ⑸ A ⑹ B ⑺ C ⑼ C ⑽ C ⑾ D ⑿ D ⒀ D ⒁ C ⒂ B ⒄ A ⒅ B ⒆ C ⒇ D (21)D (22)C (23)B (24)A

试题7 (28分)

#include #include double fact(int n); double cal(double e); void main() {

int i,n;

double e=1;

printf(\

while(scanf(\ for(i=1;i<=n;i++) {

e=e*1.0/10;

printf(\ } }

double fact(int n) {

double y=1; int i;

for(i=1;i<=n;i++) y=y*i; return y;

26

⑻ D ⒃ A

}

double cal(double e) {

double s=0,t=1; int i=1; while(t>=e) {

s=s+t;

t=1/fact(++i); }

return s; }

2008年春浙江省高等学校计算机等级考试试卷(二级C)

说明:(1) 考生应将所有试题的答案填写在答卷上。其中试题1到试题6请在答卷上各小题正

确选项的对应位置处填“√”;

(2) 请将你的准考证号的后五位填写在答卷右下角的指定位置内; (3) 考试时间为90分钟。

试题1(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

输入1个正整数n(n>=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。菲波那契(Fibonacci)序列:1,1,2,3,5,8,13,??,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。

运行示例: Enter n:10

1 1 2 3 5 8 13 21 34 55 【程序】

#include main( ) {

int count, i, n, x1, x2, x; printf(”Enter n:”); scanf(”%d”,&n); x1 = x2 = 1;

printf(”mm”,x1, x2); (1) ;

for(i = 1; i <= n-2; i++){ (2) ;

printf(”m”, x); count++;

if( (3) ) printf(”\\n”); x1 = x2;

27

(4) ; } }

【供选择的答案】

(1) A、count = 2 B、count = 0

C、count = 1 D、count = -1

(2) A、x = x1 – x2 B、x = x1 + x2

C、x = x1 D、x = 2

(3) A、count / 6 == 0 B、count % 6 != 0

C、count % 6 == 0 D、count / 6 != 0

(4) A、x = x1 +x2 B、x2 = x1

C、x = x2 D、x2 = x

试题2(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

输入2个正整数m和n(1<=m

Enter m, n: 1 10 count = 4, sum = 17 【程序】

#include #include int prime(int m) { int i, n;

if(m == 1) return (5) ; n = sqrt(m);

for(i = 2; i <= n; i++)

if(m % i == 0) return (6) ; return (7) ;

}

main()

{ int count = 0, i, m, n, sum = 0; printf(”Enter m, n:”); scanf(”%d%d”,&m, &n); for(i = m; i <= n; i++) if( (8) ){ sum += i; count++; }

printf(\}

【供选择的答案】

(5) A、1 B、m

C、m == 1 D、0 (6) A、m B、1 C、0 D、n (7) A、m B、1

28

C、0 D、i == n (8) A、prime(i) != 0 B、prime(i) == 0 C、i == prime(i) D、!prime(i)

试题3(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】

输入一个2 * 3的二维数组,找到最大值以及它的行下标和列下标,并输出该矩阵。 运行示例:

Enter a array(2*3):3 2 10 -9 6 -1 max = a[0][2] = 10 3 2 10 -9 6 -1

【程序】

#include main( ) { int col, i, j, row; int a[2][3];

printf(\ for(i = 0; i <2; i++)

for(j = 0; j < 3; j++)

scanf(\

(10) ;

for(i = 0; i < 2; i++)

for(j = 0; j < 3; j++)

if(a[i][j] > a[row][col]){ (11) ; }

printf(”max = a[%d][%d] = %d\\n”, row, col, a[row][col]); for(i = 0; i < 2; i++){ for(j = 0; j < 3; j++)

printf(”M”, a[i][j]);

(12)

}

【供选择的答案】

(9) A、&a[i][j] B、&a[j][i] C、a[i][j] D、a[j][i]

(10) A、row = col = 2; B、row = col = 0; C、a[row][col] = 0; D、a[row][col] = -1; (11) A、row = j; col = i; B、a[row][col] = a[i][j]; C、row = i; col = j; D、a[row][col] = a[j][i]; (12) A、printf(”\\n”)}; B、}printf(”\\n”); C、; D、printf(”\\n”);}

试题4(每小题3分,共12分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】

#include main()

{ int op1, op2, res;

29

char operator;

scanf(”%d”, &op1); operator = getchar(); while(operator != ?=?){ scanf(”%d”, &op2); switch(operator){

case ?+?: res = op1+op2; break; case ?-?: res = op1-op2; break; case ?*?: res = op1*op2; break; case ?/?: res = op1/op2; break; default: res = 0; }

op1 = res;

operator = getchar(); }

printf(”%d\\n”, res); }

(13) 程序运行时,输入2*3-2=,输出 (13) 。

A、6 B、2 C、0 D、4 (14) 程序运行时,输入15+2/3=,输出 (14) 。

A、16 B、15 C、6 D、5 (15) 程序运行时,输入1+2*10-10/2=,输出 (15) 。 A、10 B、16 C、15 D、25 (16) 程序运行时,输入1+3*5/2-7=,输出 (16) 。 A、3 B、1 C、-2 D、-3

试题5(每小题3分,共12分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】

#include #define MAXLEN 80 main ()

{ int k = 0, number = 0; char str[MAXLEN];

while((str[k] = getchar()) != ?#?) k++;

str[k] = ?\\0?;

for(k = 0; str[k] != ?\\0?; k++)

if(str[k]>=?0?&&str[k]<=?9?||str[k]==?A?||str[k]==?B?) if(str[k] >= ?0?&&str[k] <= ?9?)

number = number * 12 + str[k] – ?0?; else if(str[k] == ?A?||str[k] == ?B?)

number = number * 12 + str[k] –?A? + 10; else; /*第15行*/ else break; /*第16行*/ printf(”%d\\n”,number); }

(17) 程序运行时,输入10#,输出 (17) 。

A、16 B、10 C、12 D、1 (18) 程序运行时,输入1a0#,输出 (18) 。 A、264 B、10 C、1 D、12

30


浙江省二级C语言笔试真题(2007-2010年)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:24大小调音阶及其键盘位置与首调唱名法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: