C语言 百分网手机站

计算机二级考试C语言预测上机巩固试题

时间:2020-10-28 10:42:08 C语言 我要投稿

计算机二级考试C语言预测上机巩固试题

  距离2017年3月计算机等级考试越来越近了,百分网小编为大家整理了2017年计算机二级考试C语言预测上机巩固试题,希望对各位有所帮助!

计算机二级考试C语言预测上机巩固试题

  一、程序填空题

  请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。

  例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33.35,48,66”。

  注意:部分源程序给出如下。

  请勿改动函数()main和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。

  试题程序:

  #include

  #include

  世define M 10

  void main()

  {

  int i,n=0;

  int arr[M]={40,68,62,33,35,52,48,95,66,73};

  int bb[M];

  system("CLS");

  for(i=0;i<【1】 ;i++)

  if(arr[i]   【2】 ;

  printf("\n***display bb***\n"):

  for(i=0;i   printf("bb[%d]=%2d”,【3】);

  }

  二、程序改错题

  给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。

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

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

  试题程序:

  #include

  #include

  #include

  float m[10];

  //****found****

  int proc(void)

  {

  int j;

  printf(”In subfunc after calling\n”);

  for(j=0;j<10;j++)

  {

  //****found****

  printf("%f",m[j]%5);

  }

  }

  void main()

  {

  int i;

  printf("In main before calling\n");

  for(i=0;i<10;i++)

  {

  m[i]=i+20:

  printf("%f",m[i]);

  }

  proc();

  printf("\nln main after calling\n");

  for(i=0;i<10;i++)

  printf("%f",m[i]/5);

  }

  三、程序设计题

  学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。

  试题程序:

  #include

  #define M l6

  typedef struct

  {

  char num[10];

  int s;

  }

  STREC;

  void proc(STREC a[])

  {

  int i,j;

  STREC t:

  for(i=1;i   排序*/

  for(j=0;j   if(a[j].s   的记录,高分在

  前*/

  {t=a[j];a[j]=a[j+1];a[j+1]=t;)

  )

  void main()

  {

  STREC stu[M]={{"GA005",85),{"GA003",

  76},

  {"GA002",59),{"GA004",85},{"GA001",91),

  {fIGA007”,72),{"GA008",64),("GA006",87),

  {”GAOl5”,"t5},{"GA013",91),{"GA012",64},

  {"GA014",91),{"GAO11",66},{"GA017",64),

  {¨GA018",64),{¨GA016",72));

  int i;

  proc(stu);

  printf("The data after sorted:\n");

  for(i一0;i   {

  if(i%4==O)

  //每行输出4个学生记录

  printf("\n");

  printf("%S%4d",stu[i].mum,stu[i].s);

  }

  printf("\n");

  }

  上机考试试题答案与解析

  一、程序填空题

  【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]

  【解析】由整个for循环可知,变量i为数组art的下标,题目中要求取出前一个元素比后一个元素小的元素,所以只需要判断前M-1个元素即可。因此,【1】处填“M-l”;如果第i个元素比第i+1个元素小,将第i个元素放入数组bb中,因此,【2】处填“bb[n++]=arr[i]”。最后,要输出数组bb中的'每一个元素。因此,【3】处填“i,bb[i]”。

  二、程序改错题

  (1)错误:int proc(void)

  正确:void proc(void)

  (2)错误:printf("%f",m[j]%5);

  正确:printf("%f",m[j]/5);

  【解析】由主函数中的函数调用可知,函数proc()没有返回值。因此,“int proc(void)”应改为“void proc(void)”。题目中要求使数组中元素的值缩小到1/5,而不是对5取余。因此,“printf("%f",m[j]%5);”应改为“printf("%f",m[j]/5);”。

  三、程序设计题

  void proc(STREC a[])

  {

  int i,j;

  STREC t:

  for(i=1;i  排序

  for(j=0;j  if(a[j].s  的记录,高分在前

  {t=a[j];a[j]=a[j+1];a[j+1]=t;}

  }

  【解析】要按分数的高低排列学生的记录,可以使用冒泡排序法。将每一个学生的成绩与其他学生的成绩相比较,对不符合要求的记录交换位置。

【计算机二级考试C语言预测上机巩固试题】相关文章:

1.计算机二级考试C++语言程序设计上机考试试题

2.计算机二级考试C++上机考试试题

3.计算机二级C语言预测试题

4.计算机二级C++上机考试试题

5.2017年9月计算机二级考试C语言巩固试题

6.计算机二级考试C上机考试试题及答案

7.计算机二级C语言上机编程题讲解

8.计算机二级C语言上机模拟题

9.计算机二级考试C++上机试题选择题