春浙江省高校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
程序说明
输入一个正整数,按照从高位到低位输出各位数字。
运行示例:
Enter an integer:1902
the digits are:1 9 02
#include
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;答案:B
(2)A、t>=10B、power>=100
C、t!=0D、number!=0答案:A
(3)A、power==0B、digit!=0
C、number!=0D、power>=1答案:D
(4)A、number/=power;B、number%=10;
C、number%=power;D、number/=10;答案: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;
(6)
for(k=1;k
if(max
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 *arrayD、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,kB、mark
C、mark[]D、mark,n答案:A
试题3(第小题3分,共12分)
【程序说明】
输入一个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和sum1,再计算和输出该矩阵主对角线以上(含主结角线)的所有元素之和sum2,主对角线为从矩阵左上角到右下角的连线。
运行示例:
enter an array:
2 3 4
5 6 7 8
10 11 12
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("enter an array:\n");
fo