和山论坛

标题: (坐上版主,发个有用的东西吧)2007年秋浙江省高校二级C语言考试试卷和答案 [打印本页]

作者: 木犊的凹哩    时间: 2007-11-6 21:45
标题: (坐上版主,发个有用的东西吧)2007年秋浙江省高校二级C语言考试试卷和答案
就是上次考试的


试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个正整数,按照从高位到低位的顺序输出各位数字。

运行示例:
Enter an integer: 1902
The digits are: 1 9 0 2
【程序】
#include <stdio.h>
void main( )
{
int digit, number, power, t;


printf("Enter an integer:");

scanf("%d", &number);
number = number < 0 ? -number : number;

power = 1;



(1)



while(
(2)
){


power *= 10;


t /= 10;

};

printf("The digits are:");


while(
(3)
){


digit = number / power;


printf("%d " , digit);



(4)


power /= 10;


}

}
【供选择的答案】
(1) A
t = 1;

B
t = number;



C ;

Dnumber = 1;

(2) At >= 10

B
power >= 100


Ct != 0
D
number != 0

(3) A power == 0
B
digit != 0


Cnumber != 0
Dpower >= 1

(4) Anumber /= power;
B
number %= 10;

Cnumber %= power;
D
number /= 10;

试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
连续输入一批学生的成绩,直到输入成绩的数量超过50个或者输入的成绩不是有效成绩(有效成绩为0~100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n)在有n个元素的一维数组array中找出并返回最大值。
运行示例:
Enter marks: 90 80 77 65 -1
Max = 90
【程序】
#include <stdio.h>
#define MAXNUM 50
int getmax(
(5)
)

{
int k, max;



(6)


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

if(max < array[k])
max = array[k];



return max;

}
void main( )
{
int k, x;


int mark[MAXNUM];


printf("Enter marks:");


k = 0;


scanf("%d", &x);


while(
(7)
){


mark[k++] = x;


scanf("%d", &x);


}


if(k > 0)
printf("Max = %d\n", getmax(
(8)
));


else
printf("No marks!\n");

}
【供选择的答案】
(5) Aint n; int array[]
B
void



Cint *array
D
int array[],int n

(6) Amax = 0;

B
;



Cmax = array[0];
D
max = array[n];

(7) Ak < MAXNUM || x >=0 && x <= 100

Bk < MAXNUM && x >=0 && x <= 100




Ck > MAXNUM && x >=0 || x <= 100



Dk > MAXNUM || x >=0 || x <= 100

(8) Amark, k
B
mark




Cmark[]

Dmark, n

试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个4 行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 <stdio.h>
void main( )
{
int j, k, sum;


int a[4][4];


printf("Enter an array:\n");


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


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




scanf("%d", &a[j][k]);


sum = 0;


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


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


if(
(9)
)


sum += a[j][k];


printf("sum1 =
%d\n", sum);


(10)


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


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


sum += a[j][k];


printf("sum2 =
%d\n", sum);

}
【供选择的答案】
(9)
Aj != 3 && k != 3 && j != 0 && k !=0


Bj != 3 && k != 3 || j != 0 && k !=0



Cj != 3 || k != 3 && j != 0 || k !=0


Dj == 3 && k == 3 || j == 0 && k ==0

(10) Asum1 = 0;
B
sum = 0;



Csum2 = 0;
D
;

(11) Ak = 0
B
k = j



Ck = 1
D
k = 3

(12) Ak <= j

B
k > 0



C
k > j
D
k < 4

试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include <stdio.h>
void main( )
{
int i, j, k;

scanf("%d", &i);
j = k = 0;
if((i/10) > 0)
/* 7 */


j = i;

if((i != 0) && (j == 0))

k = i;

else

k = -1;
/* 12 */

printf("j=%d, k=%d\n", j, k);
}
(13) 程序运行时,输入5,输出

(13)




Aj=0, k=5

Bj=5,k=5



C
j=0,k=-1

Dj=5,k=-1

(14) 程序运行时,输入99,输出

(14)




Aj=99, k=-1

Bj=0, k=-1


Cj=0, k=99

Dj=99, k=99

(15) 将第12行改为k = -1;j=i/10;后,程序运行时,输入99,输出

(15)




Aj=99, k=-1

Bj=9, k=99



Cj=99, k=99
Dj=9, k=-1

(16) 将第7行改为“if((i/10) > 0){”,第12行改为“k = -1;}”后,程序运行时,输入5,输出

(16)




Aj=0, k=-1

Bj=0,k=0


Cj=5,k=5

Dj=5,k=-1

试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include <stdio.h>
int k = 1;

void Fun();
void main()
{ 
int j;


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



Fun();


printf("k=%d", k);

}
void Fun()
{ 
int k = 1;

/* 11 */


printf("k=%d,", k);


 k++;

}

(17)程序的输出是

(17)




Ak=1,k=2,k=3
Bk=1,k=2,k=1




Ck=1,k=1,k=2

Dk=1,k=1,k=1

(18)将第11行改为static int
k=1;后,程序的输出是

(18)




Ak=1,k=1,k=1
Bk=1,k=1,k=2




C
k=1,k=2,k=1

Dk=1,k=2,k=3


(19) 将第11行改为k=1;后,程序的输出是

(19)



Ak=1,k=2,k=1
Bk=1,k=1,k=1




Ck=1,k=1,k=2

Dk=1,k=2,k=3


(20) 将第11行改为;后,程序的输出是

(20)




Ak=1,k=1,k=2
Bk=1,k=2,k=3




Ck=1,k=1,k=1

Dk=1,k=2,k=1

试题6(每小题3分,共12分)
#include <stdio.h>
struct st{
char c; char s[80];
};
char * f(struct st t);
void main( )
{
int k;


struct
st a[4] =

{{'1',"123"}, {'2',"321"}, {'3',"123"}, {'4',"321"}};
for(k = 0; k < 4; k++)


printf("%s\n", f(a[k]));

}
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;
}
(21) 程序运行时,第1行输出


(21)



A321
B21

C123

D12

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

(22)



A21
B12

C3

D1

(23) 程序运行时,第3行输出

(23)



A3
B123

C1


D321

(24) 程序运行时,第4行输出

(24)



A123
B1

C3

D321

试题7 (28)
某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month),计算公式如下。客户打算在530年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。


(1)
定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double

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

(3)
定义函数main(),输入贷款本金 loan(元)和月利率 rate,输出“还款年限-月还款额表”,还款年限的范围是5~30年,输出时分别精确到年和元。要求调用函数cal_money(loan,rate,month)计算月还款额

c.rar

23.19 KB, 下载次数: 994


作者: 木犊的凹哩    时间: 2007-11-6 21:46
答案如下:


2007年春浙江省高等学校
计算机等级考试试卷(二级C)
试题1~6
1
2
3
4
5
6
7
8
9
10
11
12
B
A
D
C
D
C
B
A
A
B
B
D
13
14
15
16
17
18
19
20
21
22
23
24
A
A
D
B
D
C
C
B
C
A
A
D

试题7 (28)
某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month),计算公式如下。客户打算在530年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。

(1)
定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double

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

(3)
定义函数main(),输入贷款本金 loan(元)和月利率 rate,输出“还款年限-月还款额表”,还款年限的范围是5~30年,输出时分别精确到年和元。要求调用函数cal_money(loan,rate,month)计算月还款额

#include <stdio.h>
double cal_power(double x, int n)
{
int k;


double result = 1;


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


result *= x;


return result;

}

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

double result = cal_power(1+rate, month);

result = loan * rate * result/(result - 1);

return result;

}

void main( )
{
int k, year;

double loan, monry, rate;

scanf ("%lf%lf%d", &loan, &rate, &month);
for(year = 5; year <= 30; year++){

money = cal_money(loan, rate, 12 * year);

printf("year=%d, money=%.0f\n", year, money);
}
}
作者: 小熊寶寶    时间: 2007-11-6 21:46
捧场%@10
作者: 木犊的凹哩    时间: 2007-11-6 22:04
呵呵。。。来的很及时么
作者: yuanji21    时间: 2007-11-9 12:25
标题: 汗`
汗 这个是上半年考的呀.... 不是这次我们要考的
作者: 木犊的凹哩    时间: 2007-11-10 13:04
这次要考的我如果发的出来的话我也不用在格里混看




欢迎光临 和山论坛 (http://www.hsbbs.com/) Powered by Discuz! X3.2