2009年秋浙江省高等学校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
计算并输出下列式值,要求精确到最后一项的绝对值小于10-3(保留4伴小数)。
运行示例:
sum=-0.8361
【程序】
#include
#include
main()
{
int denomintor=1,flag=1;
double item,sum=0;
(1)
while( (2) )
{
(3)
denomintor=denomintor+3;
flag=-flag;
}
printf("sum= (4)
",sum);
}
【供选择的答案】
(1)A.item =0; B.f item =0.0001;
C.; D.item=2; //答案D
(2)A.fabs(item)>=1E-3 B.fabs(item)<1E-3
C.fabs(item)>=0.0001 D.fabs(item)<0.001 //答案A
(3)A.sum=sum+item;item=flag*1.0/denominator;
B.sum=sum+ flag*1.0/denominator;
C.item=flag*1.0/denominator;sum=sum+item;
D. item=item+flag*1.0/denominator; //答案C
(4)A.%.0f B.%.4f
C.%f D.%4.f //答案B
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输出1到100之间的所有完数,要求定义和调用函数is(n)判断n是否为完数,若n为完数返回1,否则返回0。完数是因子和与它本身相等的数,1不是完数。
运行示例:
6 28
【程序】
#include
main()
{
int i;int is(int n);
for(i=1;i<=100;i++)
if( (5) )
printf("%d ",i);
}
int is(int n)
{
int i,sum;
(6)
sum=0;
for(i=1;i<=n/2;i++)
if( (7) )
sum=sum+i;
if( (8) )return 1;
else return 0;
}【供选择的答案】
(5)A.is(i)==0 B.is(i)!=0
C.!is(i) D.is(n) //答案B
(6)A.is(n!=1)return 1;
B.is(n!=1)return 0;
C.is(n==1)return 0;
D.is(n==1)return 1; //答案C
(7)A.n%i==0 B.n%i!=0
C.i%n==0 D.i%n!=0 //答案A
(8)A.n==0 B.sum!=n
C.i>n/2 D.sum==n //答案D
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
计算并输出Fibonacci序列前10项之和。要求定义和调用函数fun(fib,n),该函数将Fibonacci序列前n项的存放在一维数组fib中。Fibonacci序列:1,2,3,5,8,13,21,34,55,……,该序列的第一个数和第二数据是1,从第三个开始,每个数是前两数之和。
运行示例:
sum = 143
【程序】
#include
main()
{int i,sum,a[10];
(9)
(10)
sum=0;
for(i=0;i<10;i++)
sum+= (11) ;
printf("sum=%d",sum);
}
void fun(int fib[],int n)
{int i;
fib[0]=fib[1]=1;
for(i=2;i
#define S(a,b) (a)>(b)?(a):(b)
int f1(char ch)
{int grade;
switch(ch)
{
case 'A':grade=95;break;
case 'B':grade=85;break;
case 'C':grade=75;
case 'D':grade=65;break;
default:grade=0;
}
return grade;
}
int f2()
{
static int k=1,s;
s=s+k;
k++;
return s;
}
int f3(int n)
{
if(n==1)return 2;
else return f3(n-1);
}
main()
{
int i;
printf("%d
",f1('C'));
for(i=1;i<=3;i++)
f2();
printf("%d
",f2());
printf("%d
",f3(4));
printf("%d
",S(3,2+2));
}
(13)程序运行时,第1行输出 (13) 。
A.65 B.0
C.75 D.95 //答案A
(14)程序运行时,第2行输出 (14) 。
A.10 B.1
C.6 D.2 //答案A
(15)程序运行时,第3行输出 (15) 。
A.24 B.2
C.10 D.1 //答案B
(16)程序运行时,第4行输出 (16) 。
A.3 B.4
C. 5 D.1 //答案B
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
程序1
#include
main()
{
int i,j,a[3][3]={1,0,0,4,5,0,7,8,9};
int flag=1;
for(i=0;i<3;i++)
for(j=0;j",flag);
for(j=2;j>0;j--)
for(i=2;i>=j;i--)
flag=a[i][j];
printf("%d
",flag);
}
程序2
#include
main()
{
char str[10]="4Ae2E";
int i;
for(i=0;str[i];i++)
if(str[i]>='a'&&str[i]<='z')
putchar(str[i]);
putchar('
');
for(i=0;str[i];i++)
if(str[i]>='a'&&str[i]<='z')
putchar(str[i]-'a'+'A');
else if(str[i]>='A'&&str[i]<='Z')
putchar(str[i]-'A'+'a');
putchar('
');
}
(17)程序运行时,第1行输出 (17) 。
A.0 B.1
C.8 D.9 //答案C
(18)程序运行时,第2行输出 (18) 。
A.9 B.7
C.5 D.1 //答案C
(19)程序运行时,第3行输出 (19) 。
A.AeE B.a
C.ae D.e //答案D
(20)程序运行时,第4行输出 (20) 。
A.4Ae2E B.42
C.AeE D.aEe //答案D
试题6(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
#include
main()
{
int i,j;
char str[10],*s[10]={"SQL","hello","bear","zone"};
gets(str);
for(i=0;i<4;i++){
if(strcmp(str,s[i])>0)continue;
j=3;
while(j>=i){
s[j+1]= s[j];
j--;
}
s[i]=str;
break;
}
if(i==4)s[4]=str;
for(i=0;i<5;i++)
printf("%s ",s[i]);
putchar('
');
}
(21)程序运行时,输入apple,输出 (21) 。
A.SQL apple hello bear zone
B.apple SQL hello bear zone
C.SQL hello bear zone apple
D.SQL hello apple bear zone //答案A
(22)程序运行时,输入I,输出 (22) 。
A.SQL hello bear I zone
B.I SQL hello bear zone
C.SQL I hello bear zone
D.SQL hello bear zone I //答案B
(23)程序运行时, 输入zoo,输出 (23) 。
A.zoo SQL hello bear zone
B.SQL hello bear zoo zone
C.SQL hello bear zone zoo
D.SQL hello bear zoo zone //答案C
(24)程序运行时,输入orange,输出 (24) 。
A.SQL orange hello bear zone
B.SQL hello orange bear zone
C.orange SQL hello bear zone
D.SQL hello bear orange zone //答案D
试题7(28分)
1.编写程序,编写程序输入100个整数,将它们存入数组a中,查找并输出数组a中最小值。
参考程序:
#include
#define N 100
main()
{
int a[N], i,min;
printf("请输入%d个整数:",N);
for(i=0;ia[i])min=a[i]; //求最小值
printf("最小值是%d
",min); //输出最小值
}
2.按下面要求编写程序:
(1)定义函数cal_power(x,n)计算x的n次幂(xn),函数的返回值勤类型是double。
(2)定义函数main(),输入两个浮点数x和整数n,计算并输出下列算式的值。要求调用函数cal _power(x,n)计算x的n次幂。
EMBED Equation.3
参考程序:
#include
double cal_power(double x,int n) //第(1)题
{int i;
double t=1;
for(i=1;i<=n;i++)
t=t*x;
return t;
}
mai