等级考试 百分网手机站

计算机等级考试C语言冲刺题程序改错题

时间:2020-11-14 14:04:39 等级考试 我要投稿

2014年计算机等级考试C语言冲刺题(程序改错题)

  试题一

2014年计算机等级考试C语言冲刺题(程序改错题)

  下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。

  例如,排序前的数据为:11 32 -5 2 14则排序后的数据为:-5 2 11 14 32

  请修改程序中的错误,使它能得到正确结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include

  #define M 20

  void proc(int a[],int n)

  {

  int i,j,t,P;

  //****found****

  for(j=0;j {

  P=j;

  for(i=j;i if(a[i] p=i;

  t=a[p]];

  a[p]=a[j];

  //****found****

  a[p]=t:

  }

  }

  void main()

  {

  int arr[M]={11,32,-5,2,14).i,m=5;

  printf(”排序前的数据:”);

  for(i=0;i printf(”%d”,arr[i]):

  printf(”\n”);

  proc(arr,m):

  printf(”排序后的顺序:”);

  for(i=0;i printf(”%d”,arr[i]);

  printf(”\n”);

  }

  }

  试题二

  下列给定程序中,函数proe()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m<10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

  请修改程序中的错误,使它能得出正确的结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include%stdlib.h>

  #include

  #include

  #include

  #include%malloe.h>

  #define M 10

  typedef struct ss

  {

  char num[10];

  int s;

  }

  STU;

  STU *proc(STU a[],int m)

  {

  STU b[-M],*t;

  int i,j,k;

  //****found****

  *t=calloc(m,sizeof(STU));

  for(i=0;i for(k=0;k {

  for(i=j=0;i if(b[i].s>b[j].s)j=i;

  //****found****

  t[k].num=b[j].num;

  t[k].s=b[j].S;

  b[j].s=0;

  }

  return t:

  }

  void outresuh(STU a[],FILE *pf)

  f

  int i;

  for(i=0;i fprintf(pf,”No=%s Mark=%d\n”,

  a[i] mum,a[i].s);

  fprintf(pf,”\n\n”);

  )

  void main()

  {STU stu[M]={{¨A01”,81},{¨A02”,89},

  {¨A03”,66},{”A04”,87),{”A05”,77),

  {”A06”,90),{"A07”,79),{”A08”,61),

  {”A09”,80},{”A10”,71));

  STU+pOrder;

  int i,m;

  system(”CLS”);

  printf(”****THE RESULT****\n”);

  outresuh(stu,stdout);

  print{(”\nGive the number of the students

  who have better score:”);

  scanf(”%d”,&m);

  while(m>10)

  printf(”\nGive the number of the

  students who have better score:”);

  scanf(”%d”,&m);

  }

  p()rder=proc(stu,m);

  printf(”****THE RESULT****\n”);

  printf(”The lop:\n”);

  for(i=0:i printf(”%s%d\n”,pOrder[i].hum,

  pOrder[i].s);

  free(pOrder);

  )

  试题三

  下列给定程序中,函数proc()的功能是:根据整型形參n的值,计算如下公式的值。

  t=i-1/(2*2)-1/(3*3)-…-1/(n*n)

  例如.当n=7时。t=0.188203。

  请修改函数proc()中的错误,使它能得出正确的结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include

  #include

  #include

  double proc(int n)

  {double y=1.0;

  inl i;

  //****found****

  for(i=2;i //****found****

  y-=1/(i*i):

  telurn(y);

  }

  void main()

  { int n=7:

  system(”CLS”):

  print[(”\nThe result is%lf\n”,proe(n))。

  }

  试题四

  下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的`数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include

  #include