2001年秋浙江省高校计算机等级考试试卷 (二级C)及答案 下载本文

{ FILE *f1,*f2; char ch,filename[46]; (44) if((f1=fopen(filename,\ printf(\不能打开!\\n\ }

f2=fopen(\

while((ch=(char)fgetc(f1))!=EOF) if(ch!=' ') (45) fclose(f1); fclose(f2);

(46) rename(\ }

(44) A、 gets(&filename); B、 fgets(filename); C、fgets(&filename); D、 gets(filename); (45) A、 fputc(f2,ch); B、 fputc(ch,f2); C、 fputc(f2,&ch); D、 fputc(&ch,f2); (46) A、 remove(\ B、 delete \

C、 remove(filename); D、 free filename; 程序3、 [程序说明]

下列程序运行时,输入n个学生的姓名和3门功课成绩,然后根据3门功课的平均成绩从高分到低分显示每个学生的姓名、3门功课成绩以及平均成绩。 [程序]

#include (47) void main()

{ struct student { char name[9]; int a[3]; float v; } temp,*s; int i,j,k;

scanf(\ for( (48) ) { scanf(\

for(j=0;j<3;j++) { scanf(\ (49) ; } }

for(i=0;i

for( (50) ) if(s[j].v>s[k].v) k=j;

6

temp=s[i]; s[i]=s[k]; s[k]=temp; }

for(i=0;i

(47) A、 #include B、 #include

C、. #include D、 #include (48) A、 i=1;i<=n;i++ B、 i=1;i

C、 i=0;i0;--i (49) A、 s[i].v=s[i].v+s[i].a[j] B、 s[i].v+=s[i].a[j]/3

C、 s+i->v=s+i->v+s+i->a[j]/3 D、 s+i->v+=s+i->a[j]/3 (50) A、 j=i-1;j

C、 j=i+1;j

试题四、程序阅读题(本题共20分,第1、3小题6分,第2小题8分) 说明:阅读下列程序段,写出题目要求的运行结果。 程序1

#include

#include void main()

{ char c,*a=\ for(i=0;i

a[strlen(a)]=c; a[strlen(a)+1]='\\0'; puts(a); } }

2、程序2 #include void main()

{ float a[4][3]={{3,2,5},{-3,2,1},{4,3,2},{5,1,3}}; int i,j; float v; for(i=0;i<4;i++) {

v=a[i][0]; for(j=1;j<3;j++) v+=a[i][j];

7

v/=3; for(j=0;j<3;j++) a[i][j]-=v; }

for(i=0;i<4;i++) {

for(j=0;j<3;j++) printf(\ printf(\ } }

3、程序3

#include

#include void main()

{ struct node { int x; node *next; } *p1,*p2=NULL; int a[5]={7,6,-5,28,1},i,j,s; for(i=0;i<5;i++) {

s=0; for(j=1;j<=a[i]/2;j++) if(a[i]%j==0)s+=j; if(a[i]!=s) {

p1=(node*) malloc(sizeof(node)); //或 p1=new node; p1->x=a[i]; p1->next=p2; p2=p1; } }

while(p1!=NULL) { printf(\ }

试题五、程序设计题(本题共20分,每题10分)

1、 编程,输入n后:输入n个数,根据下式计算并输出y值。

?x2?sinx?y??2x?x?x2?x?1?x??2?2?x?2x?2

2、 编制函数,其功能是在float类型1维数组中查找最大值、最小值并将它们返回到调用程序。

2001年秋浙江省高校非计算机专业学生

8

计算机等级考试参考答案(二级C)

试题一、计算机基础(本题共15分) (一) 单选题(本题10分) 题号 A B C D 题号 (1) - (5) (2) - (6) (3) - (7) (4) - (8) (二) 双选题(本题5分) 题 (11) (12)

A B - C - D - A B C D - - - - 题号 (9) (10) A B - C D - 题 A (14) (15)

B C - D - (13) - - - - - 试题二、语言基础题(本题共25分) ㈠ 判断题(每题1分,共10分)

(16)× (17)× (18)√ (19)√ (20)√ (21)× (22)√ (23)× (24)× (25)√

㈡ 单选题(每题1分,共15分)

(26) A (27) D (28) A (29) B (30)D (31) D (32) C (33) B (34) B (35) C

(36) B (37) A (38) A (39) A (40) B 试题三、程序填空题(每空2分,共20分)

程序1. (41) B (42) A (43) A 程序2. (44) D (45) B (46) C

程序2. (47) D (48) C (49) B (50) C 试题四、程序阅读题(每空2分,共20分)

程序1. fficeO 程序2. -0.3, -1.3, 1.7 程序3. 1 ficeOf -3.0, 2.0, 1.0 -5 iceOff 1.0, 0.0, -1.0 7 2.0, -2.0, 0.0 试题五、编程题(20分)

1. 编程,输入n后:输入n个数,根据下式计算并输出y值。

9

#include #include void main()

{ int i,n; float x,y; scanf(\ for(i=1;i<=n;i++) { scanf(\

if(x<-2) y=x*x-sin(x);

else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(\ } }

2. 编制函数,其功能是在float类型1维数组中查找最大值、最小值并将它们返回到调用程序。

#include

void f(float *a, int n,float *max,float *min) { int i; *max=*min=*a for(i=1;i

if(a[i]>*max) *max=a[i]; if(a[i]<*min) *min=a[i]; } }

10