和山论坛
标题:
(坐上版主,发个有用的东西吧)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
、
;
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;
试题
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) A
、
int n; int array[]
B
、
void
C
、
int *array
D
、
int array[],int n
(6) A
、
max = 0;
B
、
;
C
、
max = array[0];
D
、
max = array[n];
(7) A
、
k < MAXNUM || x >=0 && x <= 100
B
、
k < MAXNUM && x >=0 && x <= 100
C
、
k > MAXNUM && x >=0 || x <= 100
D
、
k > MAXNUM || x >=0 || x <= 100
(8) A
、
mark, k
B
、
mark
C
、
mark[]
D
、
mark, 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)
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
(10) A
、
sum1 = 0;
B
、
sum = 0;
C
、
sum2 = 0;
D
、
;
(11) A
、
k = 0
B
、
k = j
C
、
k = 1
D
、
k = 3
(12) A
、
k <= 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)
。
A
、
j=0, k=5
B
、
j=5,k=5
C
、
j=0,k=-1
D
、
j=5,k=-1
(14)
程序运行时,输入
99
,输出
(14)
。
A
、
j=99, k=-1
B
、
j=0, k=-1
C
、
j=0, k=99
D
、
j=99, k=99
(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
(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
试题
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)
。
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
(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
(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
(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
试题
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)
。
A
、
321
B
、
21
C
、
123
D
、
12
(22)
程序运行时,第
2
行输出
(22)
。
A
、
21
B
、
12
C
、
3
D
、
1
(23)
程序运行时,第
3
行输出
(23)
。
A
、
3
B
、
123
C
、
1
D
、
321
(24)
程序运行时,第
4
行输出
(24)
。
A
、
123
B
、
1
C
、
3
D
、
321
试题
7 (28
分
)
某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(
loan
)和月利率(
rate
)一定的情况下,住房贷款的月还款额(
money
)取决于还款月数(
month
),计算公式如下。客户打算在
5
~
30
年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。
(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
2007-11-6 21:45 上传
点击文件名下载附件
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
),计算公式如下。客户打算在
5
~
30
年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。
(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