模拟试题

3773考试网计算机等级考试模拟试题正文

2014年3月全国计算机二级C语言上机模拟试题十七之3

来源:2exam.com 2013-10-30 19:57:02

解题思路: 

  第一处:在语句后缺少分号,所应改为:q=p+i;。 

  第二处:保留字while写错,所应改为:while(q>p)。 

  *************************************************** 

  学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组 s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 

  例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出, 包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。 

  注意: 部分源程序在文件PROG1.C文件中。 

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 

  给定源程序: 

  #include  

  #define N 16 

  typedef struct 

  { char num[10]; 

  int s; 

  } STREC; 

  int fun( STREC *a,STREC *b,int l, int h ) 

  { 

  } 

  main() 

  { STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, 

  {"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87}, 

  {"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91}, 

  {"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; 

  STREC h[N],tt;FILE *out ; 

  int i,j,n,low,heigh,t; 

  printf("Enter 2 integer number low & heigh : "); 

  scanf("%d%d", &low,&heigh); 

  if ( heigh< low ){ t=heigh;heigh=low;low=t; } 

  n=fun( s,h,low,heigh ); 

  printf("The student’s data between %d--%d :\n",low,heigh); 

  for(i=0;i  printf("%s M\n",h[i].num,h[i].s); 

  printf("\n"); 

  out = fopen("c:\\test\\out.dat","w") ; 

  n=fun( s,h,80,98 ); 

  fprintf(out,"%d\n",n); 

  for(i=0;i  for(j=i+1;j  if(h[i].s>h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;} 

  for(i=0;i  fprintf(out,"M\n",h[i].s); 

  fprintf(out,"\n"); 

  fclose(out); 

  } 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1