06--09浙江省c语言真题

更新时间:2024-05-13 22:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

说明:⑴ 考生应将所有试题的答案填写在答卷上。其中试题1~试题6,请在

答卷上各小题正确选项的对应位置处填“√”; ⑵ 请将你的准考证号的后五位填写在答卷右下角的指定位置内; ⑶ 考试时间为90分钟; 试题1(每小题3分,共12分)

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

【程序说明】

求 1 + 2/3 + 3/5 + 4/7 + 5/9 + … 的前20项之和。 运行示例: sum = 11.239837 【程序】 #include void main( ) {

int i, b = 1; double s; (1) ;

for(i = 1; i <= 20; i++){ s = s + (2) ; (3) }

printf( (4) , s);

}

【供选择的答案】 (1)

A、s = 0

B、s = 1 D、s = 2

B、double(i)/double(b) D、(double)i/(double)b B、b = 2 * i – 1;

C、s = -1 (2) A、i/b

C、i/2*i-1 (3) A、;

C、b = 1.0 * b; D、b = b + 2;

B、\ D、\

(4) A、\

C、\

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

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

【程序说明】

输入10个整数,将它们从大到小排序后输出。

运行示例:

Enter 10 integers: 1 4 -9 99 100 87 0 6 5 34 After sorted: 100 99 87 34 6 5 4 1 0 -9 【程序】 #include void main( ) { int i, j, t, a[10];

printf(\ for(i = 0; i < 10; i++) scanf( (5) );

for(i = 1; i < 10; i++)

for( (6) ; (7) ; j++)

if( (8) ){

t = a[j]; a[j] = a[j+1]; a[j+1] = t;

}

printf(\ for(i = 0; i < 10; i++) printf(\ printf(\}

【供选择的答案】 (5) A、\

B、\

C、\ D、\(6) A、j = 0 B、j = 1 C、j = i D、j = i - 1 (7) A、j > i

B、j < 9 - i D、j > i - 1

C、j < 10 - i

(8) A、a[i-1] < a[i] B、a[j+1] < a[j+2] C、a[j] < a[j+1]

D、a[i] < a[j]

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

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

【程序说明】

输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。

运行示例1:

Enter a string: 103+895=? Enter an integer: 6 The new string is 103+89 运行示例2:

Enter a string: 103+895=? Enter an integer: 60

The new string is 103+895=? 运行示例3:

Enter a string: 103+895=? Enter an integer: 0 The new string is 【程序】 #include #include < (9) > void main( )

{ char s[80], t[80], i, m;

printf(\ gets(s);

printf(\scanf(\

for(i = 0; (10) ; i++) (11) ;

(12) printf(\puts(t); }

【供选择的答案】 (9) A、ctype.h C、stdio.h (10) A、i < m

B、math.h D、string.h

B、s[i]!= '\\0' D、s[i]!= '\\0' || i < m B、t[i] = s[i]

D、s[i] = t[i]

C、s[i]!= '\\0' && i < m (11) A、*s++ = *t++ C、*t++ = *s++ (12) A、t[i] = '\\0';

B、;

C、*++s = '\\0';

D、*++t = '\\0';

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

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

#include void main( )

{ int s, x1, y1, z1, x2, y2, z2;

printf(\

scanf(\s = f(x2, y2, z2) - f(x1, y1, z1); printf(\

}

f(int x, int y, int z) { int k, n;

int tab[2][13] = {

{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };

n = (x % 4 == 0 && x % 100 != 0 || x % 400 == 0); for(k = 1; k < y; k++) z = z + tab[n][k]; return z; }

(13) 程序运行时,输入1 0 0 0 0 0,输出 A、29

B、28

C、0

(13) 。 D、-1 (14) 。 D、-1

(14) 程序运行时,输入0 0 1 0 0 0,输出 A、29

B、28

C、0

(15) 程序运行时,输入2000 2 1 2000 3 1,输出 (15) 。 A、29

B、28

C、0

D、-1

(16) 程序运行时,输入1981 2 1 1981 3 1,输出 (16) 。 A、29

B、28

C、0

D、-1

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

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

# include

void main ( ) { int a = -1, b = 1;

void f1(int x, int y), f2(int *x, int *y); void f3(int *x, int *y), f4(int x, int y); f1(a, b);

printf(\ a = -1, b = 1; f2(&a, &b);

printf(\ a = -1, b = 1; f3(&a, &b);

printf(\ a = -1, b = 1; f4(a, b);

printf(\}

void f1(int x, int y) { int t;

t = x; x = y; y = t; }

void f2(int *x, int *y) { int t;

t = *x; *x = *y; *y = t; }

void f3(int *x, int *y)

{ int *t;

t = x; x = y; y = t; }

void f4(int x, int y)

{ int *t = malloc(sizeof(t)); *t = x; x = y; y = *t; }

(17) 程序运行时,第1行输出 (17) 。

D、(1,1)

A、(1, -1) B、(-1, 1) C、(-1, -1) (18) 程序运行时,第2行输出 (18) 。

A、(1, -1) B、(-1, 1) C、(-1, -1) (19) 程序运行时,第3行输出 (19) 。

D、(1,1)

A、(1, -1) B、(-1, 1) C、(-1, -1) (20) 程序运行时,第4行输出 (20) 。

D、(1,1)

A、(1, -1) B、(-1, 1) C、(-1, -1) 试题6(每小题3分,共12分) #include struct card{ };

char *face; char *suit;

D、(1,1)

void filldeck(struct card *wdeck, char *wface[],char *wsuit[]) {

int i;

for (i = 0; i < 4; i++){

wdeck[i].face = wface[i%2];

}

wdeck[i].suit = wsuit[i/2]; }

void deal(struct card *wdeck) {

int i;

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

printf(\}

void main() {

struct card deck[4];

char *face[]={\ char *suit[]={\

filldeck(deck,face,suit);

deal(deck); }

(21) 程序运行时,第1行输出 (21) 。

A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club)

(22) 程序运行时,第2行输出 (22) 。

A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (23) 程序运行时,第3行输出

(23) 。

A、(K of Heart) B、(Q of Heart)

C、(K of Club) D、(Q of Club) (24) 程序运行时,第3行输出

(24) 。

A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club)

试题7 (14分)

编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。 运行示例:

Enter scores: 88 71 68 70 59 81 91 42 66 77 83 0 >=85:2 60-84:7 <60 2 试题8 (14分)

编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。 运行示例: Enter n: 5 sum = 1.71667

2006年春浙江省高等学校 计算机等级考试答案(二级C)

试题1~6 试题7 试题8 合计

试题1~6 A B C D (1) √ (2) √ (3) √ (4) √ (5) √ (6) √ (7) √ (8) √ (9) √ (10) √ (11) √ (12) √

A B C D (13) √ (14) √ (15) √ (16) √ (17) √ (18) √ (19) √ (20) √ (21) √ (22) √ (23) √ (24) √ 试题7

#include void main( ) {

int mark, a, p, f; c = p = f = 0; printf(\scanf (\ while (mark >= 0){ if(mark >= 85) a++; else if (mark >= 60) p++; else f++;

scanf (\ }

printf(\printf(\printf(\} 试题8

#include void main( ) { int i, n; double x, sum; double fact(int n);

scanf(\ sum = 0; for(i=1; i<=n; i++)

sum = sum + 1/fact(i); printf(\}

double fact(int n) { int i;

double res = 1; for(i=1; i<=n; i++) res = res*i; return res; }

2006年秋浙江省高等学校

计算机等级考试试卷(二级C)

说明:⑴ 考生应将所有试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小

题选项的对应位置上填“√”。

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

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

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

输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。 运行示例:

Enter characters: f(x,y)=3x+5y-10 letter=5, digit=4, other=6

【程序】

#include void main( )

{ int digit, i, letter, other; (1) ch;

digit = letter = other = 0;

printf(\ while( (2) != '\\n') if( (3) ) letter ++;

(4) (ch >= '0' && ch <= '9') digit ++; else

other ++;

printf(\digit=%d, other=%d\\n\letter, digit, other);

} 【供选择的答案】

(1) A、* B、float C、double D、char (2) A、(ch = getchar())

B、ch = getchar()

C、getchar(ch) D、putchar(ch)

(3) A、(ch >= 'a' && ch <= 'z') && (ch >= 'A' && ch <= 'Z')

B、(ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') C、ch >= 'a' && ch <= 'Z' D、ch >= 'A' && ch <= 'z' (4) A、if

B、else

D、if else

C、else if

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

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

输入一个整数,将它逆序输出。要求定义并调用函数reverse(long number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。

运行示例:

Enter an integer: -123 After reversed: -321 【程序】

#include void main( ) { long in;

long reverse(long number); printf(\ scanf(\

printf(\}

long reverse(long number) { int flag;

(6) ;

flag = number < 0 ? -1 : 1; if( (7) ) number = - number; while(number != 0){ res = (8) ; number /= 10; }

return flag*res; }

【供选择的答案】

(5) A、reverse( ) B、in

C、reverse(in) D、reverse (6) A、res = 0 B、long res C、long res = 0 D、res

(7) A、number > 0 B、number < 0 C、number != 0 D、number == 0

(8) A、number B、res*10 + number C、number/10 D、res*10 + number/10

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

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

输入一个3 行2 列的矩阵,分别输出各行元素之和. 运行示例: Enter an array: 6 3 1 -8 3 12

sum of row 0 is 9 sum of row 1 is -7 sum of row 2 is 15 【程序】

#include void main( )

{ int j, k, sum = 0; int a[3][2];

printf(\ for(j = 0; j < 3; j++) for(k = 0; k < 2; k++)

scanf(\ for(j = 0; j < 3; j++){ (10)

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

sum = (11) ;

printf(\ } }

【供选择的答案】

(9) A、a[j][k] B、a[k][j] C、&a[j][k] D、&a[k][j] (10) A、; B、sum = -1; C、sum = 1; D、sum = 0; (11) A、sum + a[j][k] B、sum + a[j][j] C、sum + a[k][k] D、0 (12) A、k

B、j

C、0 D、1

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

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

#include void main( ) { int k;

for(k = 5; k > 0; k--){ if(k==3)

continue; /* 第6行 */ }

(13) 程序的输出是 (13) 。 A、5 4 3 2 1 B、5 4 2 1 A、5 4 3 2 1 B、5 4 2 1 A、5 4 3 2 1 B、5 4 2 1 A、5 4 3 2 1 B、5 4 2 1

C、5 4 D、3 C、5 4 D、3 C、5 4 D、3 C、5 4 D、3

(14) 将第6行中的continue改为break后,程序的输出是 (14) 。 (15) 将第6行中的continue删除(保留分号)后,程序的输出是 (15) 。 (16) 将第6行全部删除后,程序的输出是 (16) 。

printf(\ }

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

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

# include void main()

{ char c, s[80]= \ int i; void f(char *s, char c); c = getchar(); f(s, c);

puts(s); }

void f(char *s, char c) { int k = 0, j = 0; while(s[k] != '\\0'){

if(s[k] != c){ s[j] = s[k]; j++; }

k++; } }

(17) 程序运行时,输入字母a,输出 (17) 。 A、Happy New Year B、Hppy New Yer

C、Hay New Year

D、Happy Nw Yar

(18) 程序运行时,输入字母e,输出 (18) 。 A、Happy New Year B、Hppy New Yer

C、Hay New Year

D、Happy Nw Yar

(19) 。

(19) 程序运行时,输入字母p,输出

C、Hay New Year s[j] = '\\0';

A、Happy New Year B、Hppy New Yer

D、Happy Nw Yar

(20) 。

(20) 程序运行时,输入字母b,输出

C、Hay New Year

A、Happy New Year B、Hppy New Yer

D、Happy Nw Yar

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

#include struct st{

int x, y, z; };

void f(struct st *t, int n); void main( )

{ int k, n; struct st time;

scanf(\f(&time, n);

printf(\}

void f(struct st *t, int n) {

t->z = t->z + n; if(t->z >= 60){

t->y = t->y + t->z/60; t->z = t->z`;

}

if(t->y >= 60){ }

if(t->x >= 24) t-> x = t->x % 24; }

(21)程序运行时,输入12 12 50 10,输出 (21) 。

A、12:12:0 B、12:12:50 C、12:12:60 D、12:13:0

(22) 程序运行时,输入12 12 30 10,输出 (23) 程序运行时,输入22 59 30 30,输出 (24) 程序运行时,输入23 59 0 300,输出

(22) 。 (23) 。 (24) 。

A、12:12:0 B、12:12:10 C、12:12:30 D、12:12:40 A、23:0:0 B、22:59:60 C、22:59:30 D、22:0:0 A、0:4:0 B、23:59:300 C、23:59:00 D、23:0:0

t->x = t->x + t->y/60; t->y = t->y`;

试题7 (14分)编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以及

不及格学生的人数。

试题8 (14分)编写程序,输入一个正整数n,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+??+1/n,函数返回值的类型是double。

s??k?1n1111?1???...?k23n2006年秋浙江省高等学校

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

试题1~6

1 2 3 4 5 6 7 8 9 10 11 12 D A B C C C B B C D A B 13 14 15 16 17 18 19 20 21 22 23 24 B C A D B D C A D D A A 试题7 (14分) 编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以

及不及格学生的人数。

#include void main( ) {

int count, k, a[100]; double aver;

for(k = 0; k < 100; k++)

scanf (\

aver = 0;

for(k = 0; k < 100; k++)

aver += a[k];

count = 0;

for(k = 0; k<100; k++)

if(a[k]<60)

count++;

printf(\printf(\}

试题8 (14分) 编写程序,输入一个正整数n,计算并输出下列算式的值。要求定义和

调用函数total(n)计算1+1/2+1/3+??+1/n,函数返回值的类型是double。 n1111s???1???...? 23nk?1k

#include void main( ) { int n;

double toatl(int n); scanf(\

printf(\}

double total(int n) { int k;

double sum; sum = 0;

for(k = 1; k <= n; k++)

sum = sum + 1.0/k; return sum; }

2007年春浙江省高校

输入一个正整数,按照从高位到低位输出各位数字。 运行示例:

Enter an integer:1902 the digits are:1 9 02 #include void main()

{ int digit,number,power,t;

printf(\ scanf(\

number=number<0?-number:number; power=1; (1)

while( (2) ) {power*=10; t/=10; };

printf(\ while( (3) )

{ digit=number/power; printf(\ (4) power/=10; } }

【供选择的答案】

(1)A、t=1; B、t=number; C、; D、number=1; (2)A、t>=10 B、power>=100 C、t!=0 D、number!=0 (3)A、power==0 B、digit!=0 C、number!=0 D、power>=1 (4)A、number/=power; B、number%=10; C、number%=power; D、number/=10;

B A D(C) C

试题2(第小题3分,共12分) 【程序说明】

连续输入一批学生的成绩,直到输入成绩的数量超过50或者输入成绩不是有效成绩(有效成绩为0-100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n)在有n个元素的一维数组array中找出并返回最大值。 运行示例:

enter marks:90 80 77 65 –1 max=90

#include #define MAXNUM 50 int getmax( (5) ); {

int k,max;

max=array[0] (6) ; for(k=1;k

if(max

return max; }

void main() { int k,x;

int mark[MAXNUM]; printf(\ k=0;

scanf(\ while( (7) ) ; {mark[k++]=x; scanf(\ }

if(k>0) printf(\ (8) )); else printf(\}

【供选择的答案】 (5)A、int n;int array[] B、void C、int *array D、int array[],int n 答案:D (6)A、max=0; B、; C、max=array[0] D、max=array[n]; 答案:C (7)A、k=0&&x<=100 B、k=0&&x<=100 C、k>MAXNUM&&x>=0||x<=100 D、k>MAXNUM||x>=0||x<=100 答案:B (8)A、mark,k B、mark C、mark[] D、mark,n 答案:A 试题3(第小题3分,共12分) 【程序说明】

输入一个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和sum1,再计算和输出该矩阵主对角线以上(含主结角线)的所有元素之和sum2,主对角线为从矩阵左上角到右下角的连线。 运行示例: enter an array: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sum1=34 sum2=70

#include void main() {int j,k,sum;

int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; printf(\

for(j=0;j<4;j++) for(k=0;k<4;k++)

// scanf(\ sum=0;

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

for(k=0;k<4;k++)

if( (9) ) sum+=a[j][k];

printf(\ (10)

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

for( (11) ; (12) ;k++)

sum+=a[j][k];

printf(\}

【供选择的答案】

(9)A、j!=3&&k!=3&&j!=0&&k!=0 B、j!=3&&k!=3||j!=0&&k!=0 C、j!=3||k!=3&&j!=0||k!=0 D、j!=3&&k!=3||j!=0&&k!=0 答案:A (10)A、sum1=0; B、sum=0; C、sum2=0; D、; 答案:B (11)A、k=0 B、k=j C、k=1 D、k=3 答案:B (12)A、k<=j B、k>0 C、k>j D、k<4 答案:D

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

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

#include void main() {int i,j,k;

scanf(\j=k=0;

if((i/10)>0) //第7行

j=i;

if((i!=0)&&(j==0)) k=i; else

k=-1;//第12行

printf(\

}

(13)程序运行时,输入5,输出 (13) 。 A、j=0,k=5 B、j=5,k=5 C、j=0,k=-1 D、j=5,k=-1 答案:A (14)程序运行时,输入99,输出 (14) 。 A、j=99,k=-1 B、j=0,k=-1 C、j=0,k=99 D、j=99,k=99 答案:A (15)将第12行改为k=-1;j=i/10;,输入99,输出 (15) 。 A、j=99,k=-1 B、j=9,k=99 C、j=99,k=99 D、j=9,k=-1 答案:D

(16)将第7行改为”if((i/10)>0){“第12行改为”k=-1;}”输入5,输出 (16) 。 A、j=0,k=-1 B、j=0,k=0 C、j=5,k=5 D、j=5,k=-1 答案:B 试题5(第小题3分,共12分)

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

#include int k=1; void fun(); void main() { int j;

for(j=0;j<2;j++) fun();

printf(\}

void fun()

{int k=1; //第11行 printf(\ k++; }

(17)程序的输出是 (17) 。 A、k=1,k=2,k=3 B、k=1,k=2,k=1 C、k=1,k=1,k=2 D、k=1,k=1,k=1 答案:D (18)将第11行改为static int k=1; 程序的输出是 (18) 。 A、k=1,k=1,k=1 B、k=1,k=1,k=2 C、k=1,k=2,k=1 D、k=1,k=2,k=3 答案:C (19) 将第11行改为k=1; 程序的输出是 (19) 。 A、k=1,k=2,k=1 B、k=1,k=1,k=1 C、k=1,k=1,k=2 D、k=1,k=2,k=3 答案:C (20) 将第11行改为; 程序的输出是 (20) 。 A、k=1,k=1,k=2 B、k=1,k=2,k=3 C、k=1,k=1,k=1 D、k=1,k=2,k=1 答案:B 试题6(第小题3分,共12分)

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

[程序]

#include struct st

{char c;char *s; };

char *f(struct st t) { int k=0;

while(t.s[k]!='\\0')

{if(t.s[k]==t.c)return t.s+k; k++; }

return t.s; }

void main() {int k;

struct st a[4]={{'1',\ for(k=0;k<4;k++)

printf(\}

(21)程序运行时,第1行输出 (21) 。 A、321 B、21 C、123 D、12 答案:C (22)程序运行时,第1行输出 (22) 。 A、21 B、12 C、3 D、1 答案:A (23)程序运行时,第1行输出 (23) 。 A、3 B、123 C、1 D、321 答案:A (24)、程序运行时,第1行输出 (24) 。 A、123 B、1 C、3 D、321 答案:D 试题7(28分)

某某客户购房办理商业贷款,选择了按月等额本息还款法,在贷款本金loan和月利率rate一定的情况下,住房贷款的月还款额money取决于还款月数month,计算公式如下:

rate(1?rate)month money?loan?month(1?rate)?1(1)定义函数cal_power(x,n)计算x的n次幂(即xn),函数的返回值是double;

(2)定义函数cal_money(loan,rate,month)计算月还款额,函数的返回值是double,要求调用函数cal_power计算x的n次幂;

(3)定义函数main(),输入垡贷款本金loan和月利率rate,输出还款年限-月还款客表,还款年限是5~30,输出时分别精确到年和元。要求调用函数cal_money计算月还款额。 程序:#include

double cal_power(float x,int n) {

int i;

float power=1; for(i=1;i<=n;i++) power*=x; return power; }

double cal_money (double loan,double rate,int month) {double money;

money=loan*cal_power(1+rate,month)/(cal_power(1+rate,month)-1); return money; }

main()

{float loan,rate,money; int month,i;

printf(\请输入贷款本金loan和月利率rate:\ scanf(\

printf(\还款年限 月还款额\\n\ for(i=5;i<=10;i++)

{money= cal_money(loan ,rate,i*12);

printf(\ %f\\n\

} }

2007年秋浙江省高校 计算机等级考试试卷(二级C)

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

程序说明输入2个整数lower和upper,输出一张华氏-摄氏转换表,华氏温度的取值范围[lower,upper],每次增加2F,计算公式:c=5*(f-32)/9;式中c表示摄氏,f表示华氏。

运行示例: Enter lower:30 Enter upper:35 fahr celsius

30 -1.1 32 0.0 34 1.1 程序:

#include main()

{int fahr,lower,upper; double celsius; printf(\ scanf(\ printf(\ scanf(\ printf(\

for(fahr=lower; (1) ; (2) ) {

celsius= (3) ;

printf(\ (4) \\n\ } }

1)A、fahr<=upper

B、

fahr

C、fahr>=upper

D、fahr>upper

答案:A

【供选择的答案】((2)A、fahr++

C、fahr+2

B、fahr=fahr-2 D、fahr=fahr+2

答案:D

(3)A、5*(fahr-32)/9

C、5/9*(fahr-32) (4)A、m

B、(5.0/9.0)*(fahr-32) D、5*fahr-32/9

答案:B

B、%6.2f D、%6.0f

答案:C

C、%6.1f

试题2(每小题3分,共12分) 程序说明

输入2个正数a和n,求a+aa+aaa+??+a(n个a)这和,要求定义并调用函数fn(a,n),这它的功能是返回aa?a(n个a)。例如fn(3,2)的返回是33。 运行示例: Enter a:2 Enter n:3 sum=246 #include main() {int i,n; long a,sn;

long fn(long a,int n); printf(\

scanf(\printf(\scanf(\ (5) for(i=1;i<=n;i++) (6) printf(\}

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;

C、sn=1;

(6)A、sn=sn+fn(a,i); B、; D、sn=a;

答案:

B、sn=sn+fn(a,n);

A C、sn=sn+fn(i,a); (7)A、tn=tn*10

C、sn=tn*10; (8)A、return; C、return a;

D、sn=sn+fn(i,n); B、a=a*10;

答案:A

D、sn=sn+a*10 B、return sn;

答案:B

D、return tn; 答案:D

试题3(每小题3分,共12分) 程序说明

输入一行以回车结束的字符串(少于80个字符),删除其中的英文字母和数字字符以外的其它字符,再判断字符串是否对称(不区分大小写)。 运行示例1:

Enter a string:Madam I'm Adam Yes

运行示例2: Enter a string:elephant No 程序

#include (9) main()

{ int flag,i,k,length; char str[80];

printf(\ gets(str); i=k=0; while(str[i]) {

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-k-1]) {

(12) break; }

if(flag)printf(\

else printf(\}

【供选择的答案】 (9)A、ctype.h

C、stdio.h (10)A、i++;

B、string.h D、math.h B、str[k]=str[i];

D、;

答案:B

答案:A

C、str[i]=str[k]; (11)A、str[i]=’\\0’;

B、str[i-1]=’\\0’;

D、;

答案:C

C、str[k]=’\\0’; (12)A、flag=1;

C、;

B、flag=0;

答案:B

D、continue;

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

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

#include main() {int i,m; scanf(\ for(i=2;i<=m/2;i++) if(m%i==0)

{

printf(\ break;//第8行 }

printf(\}

(13)、程序运行时,输入5,输出 。 A、3

B、3#3

答案:A

C、3#4 D、3#5

(14)、程序运行时,输入9,输出 。 A、3

B、3#3

答案:B

C、3#4 D、3#5

(15)、将程序第8行改为“continue;”程序运行时,输入9,输出 。 A、3 C、3#4

B、3#3 D、3#5

答案:D

(16)、将程序第8行改为“;”程序运行时,输入9,输出 。 A、3

B、3#3

答案:D

C、3#4 D、3#5

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

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

[程序]

#include main() {

int i,j,temp;

int a[3][3]={1,2,3,4,5,6,7,8,9} ; void f(int *x,int *y); for(i=0;i<3;i++) for(j=0;j<3;j++) if(i

f(&a[i][j],&a[j][i]);//第8行 for(i=0;i<3;i++) for(j=0;j<3;j++) printf(\}

void f(int *x,int *y) {int t;

t=*x;*x=*y;*y=t; }

(17)程序的输出是 。

A、3 2 1 6 4 9 8 7 B、7 8 9 4 5 6 1 2 3 C、1 2 3 4 5 6 7 8 9

D、1 4 7 2 5 8 3 6 9 答案:

D

(18)、第8行改为“f(&a[i][j],&a[j][i]);”后,程序的输出 。

A、3 2 1 6 4 9 8 7 C、1 2 3 4 5 6 7 8 9 C

(19)、第8行改为“if(i<2)f(&a[i][j],&a[2-i][j]);”后,程序的输出 。

A、3 2 1 6 4 9 8 7 C、1 2 3 4 5 6 7 8 9 B

(20)、第8行改为“if(j<2)f(&a[i][j],&a[i][2-j]);”后,程序的输出 。

A、3 2 1 6 4 9 8 7 C、1 2 3 4 5 6 7 8 9 A

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

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

#include main()

B、7 8 9 4 5 6 1 2 3 D、1 4 7 2 5 8 3 6 9

答案:

B、7 8 9 4 5 6 1 2 3 D、1 4 7 2 5 8 3 6 9

答案:

B、7 8 9 4 5 6 1 2 3 D、1 4 7 2 5 8 3 6 9

答案:

{

int i,x1,x2; int a[5]={1,2,3,4,5};

void f1(int x,int y),f2(int *x,int *y); x1=x2=0; for(i=0;i<5;i++) {

if(a[i]>a[x1]) x1=i; if(a[i]

f2(&a[x1],&a[0]);

for(i=0;i<5;i++) printf(\ printf(\ f1(a[x2],a[1]);

for(i=0;i<5;i++) printf(\ printf(\ f2(&a[x2],&a[4]);

for(i=0;i<5;i++) printf(\ printf(\ f1(a[x1],a[3]);

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

}

void f2(int *x,int *y) {int t;

t=*x;*x=*y;*y=t; }

void f1(int x,int y) {int t; t=x;x=y;y=t; }

(21)、程序运行时,第A、1 2 3 4 5 C、1 2 3 5 4

(22)、程序运行时,第A、1 2 3 4 5 C、1 2 3 5 4

(23)、程序运行时,第A、1 2 3 4 5 C、1 2 3 5 4

(24)、程序运行时,第A、1 2 3 4 5 C、1 2 3 5 4 试题7(28分)

1行输出 。 B、2 1 3 4 5

D、5 2 3 4 1

答案:D

2行输出 。 B、2 1 3 4 5

D、5 2 3 4 1

答案:D

3行输出 。 B、2 1 3 4 5

D、5 2 3 4 1

答案:A

4行输出 。 B、2 1 3 4 5

D、5 2 3 4 1

答案:A

从n个不同的元素中,每一次取出k个不同的元素,不管其顺序全并面一组,称为组合。 组合种数的计算公式如下:

kcn?n!

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

k2、定义函数cal(k,n)计算组合种数cn,函数的返回值类型是double,

要求调用fact(n)计算n的阶乘。

k3、定义函数main(),输入整数n,计算并输出n的所有组合数cn(1k≤k≤n), 要求调用函数cal(k,n)计算组合种数cn。

#include double fact(int n)//第一题 {int i; double t=1; for(i=1;i<=n;i++) t*=i; return t; }

double cal(int k,int n) //第二题 {double s=0;

s=fact( n)/(fact(n-k)*fact(k)); return s;

}

main()//第三题 {int n,i; double s=0;

printf(\请输入一个正整数:\ while(scanf(\ for(i=1;i<=n;i++) {

s=cal(i,n);; printf(\ } }

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

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

【程序说明】输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列: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(\scanf(\x1=x2=1;

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

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

(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

答案:A 答案:B

(3) A、count/6==0

B、count%6!=0

答案:C

C、count%6==0 (4) A、x=x1+x2 C、x=x2

D、count/6!=0 B、x2=x1 D、x2=x

答案:D

试题2(每小题3分,共12分) 【程序说明】

输入2个正数m和n(1<=m #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) ;

本文来源:https://www.bwwdw.com/article/r2c7.html

Top