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
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
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
{ 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
{ 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
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
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
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
{ 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
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
{ 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
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
{ 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
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
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
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
{ 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
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 输入一个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 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 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 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 {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 {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 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 { 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 { 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 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 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 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 {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 if(m==1)return (5) ; n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0)return (6) ;
正在阅读:
06--09浙江省c语言真题05-13
研磨知识学习资料04-05
《光纤通信(第三版)》Gerd Keiser著交大第三次作业T - 602311-16
2017年教育学复习资料教师资格证03-08
谦辞敬辞整理11-09
移动电子商务期末考试复习题204-21
中国房地产开发行业运营报告01-14
国家安全生产监督管理总局令26号令08-14
绿色食品特色工业园区建设项目可行性研究报告(优秀甲级资质设计院编制)11-28
语文教学课堂的讨论策略07-24
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 浙江省
- 真题
- 语言
- 06
- 09
- 实时荧光定量PCR技术
- 冀教版(新)八年级上5--8单元重点单词、短语、句型练习
- 21世纪大学英语第一册教案
- 领导干部培训班工作总结2000字
- 2012最新证据学期末模拟试题、答案
- 11临床康复医学生理学复习题
- 深圳中考历史复习提纲九下:世界现代史 - 图文
- 2012年 公务员面试社会热点问题
- (桃巴十标)T梁安装方案
- 2年中考1年模拟,备战2014精品资料全国各地中考试题分类汇编:阅
- 新概念英语第一册41-50课课堂练习
- 小班泥工请客人吃点心教案-范文word版(3页)
- 2017-2018北京市大兴区高三第一学期期末考试生物试卷(含答案)
- 毕业论文网上选题管理系统毕业论文
- RKC温控器CH-102主要结构及功能 - 图文
- 吉大11春学期《机械设计基础》主观模拟题页码标注
- ACL
- 变流技术试题
- 地下室施工技术方案
- 行政管理规则制度导读讲义(含:行政管理-规章制度-公文管理-档