2011年计算机等级二级C语言填空题练习题及答案解析(4)

发布时间:2011-09-16 共7页

导读:本套试题解析透彻,针对性和实用性很强,非常方便考生复习。

  6. 请补充该fun函数,该函数的功能是:交换数组aa中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组aa中没有相同元素。

  1) void fun(int aa[])

  2) {int i,j,t;

  3) int max=0,min=0;

  4) for(i=0;i

  5) {

  6) if(___1___)

  7) max=i;

  8) if(___2___)

  9) min=i;

  10) }

  11) t=aa[max];

  12) ___3___;

  13) aa[min]=t;

  14) }

  第一处:aa[max]

  第二处:aa[min]>aa[i]

  第三处:aa[max]=aa[min]

  解析:

  算法思想与第19题相似。

  算法思想:假定最大、最小值是同一个元素(第一个);接下来将后面的元素依次开始比较,如果比最大值还大,则修改最大值;如果比最小值还小,则修改最小值。

  此题保存的是最大最小值的下标。

  最后,通过变量t,交换最大最小值。

  第4行:循环变量i的值可以从1开始。

  7. 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。

  #include

  typedef struct{

  char Name[4];

  int age ;

  }STD;

  STD fun(STD std[], int n)

  {STD max;

  int i;

  max= ___1___;

  for(i=1; i

  if(max.age<___2___) max=std[i];

  return max;

  }

  main( )

  {STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15 };

  STD max;

  max=fun(std,5);

  printf("\nThe result: \n");

  printf("\nName : %s, Age : %d\n", ___3___,max.age);

  }

  第一处:*std

  第二处:std[i].age

  第三处:max.name

  解析:

  求最大值。

  搞清结构体变量类型声明、变量声明、初始化、赋值、输入、输出的方法。

  Max=*std 也可以max=std[0] 即结构体变量之间可相互赋值。

  但不能整体输入输出。仅能一个数据项、一个数据项地单独进行。

  

百分百考试网 考试宝典

立即免费试用