一、程序填空题
1、下列给定程序中,函数fun的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如,若a所指数组中的数据为:1, 2, 3, 4, 5, 6, 7, 8, 9, 则调换后为:6, 7, 8, 9, 5, 1, 2, 3, 4。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#define N 9
void fun(int a[], int n)
{
int i, t, P;
P=(n%2==0)? n/2:n/2 ……此处隐藏3616个字…… nbsp; for(i=0; i<N; i ++)
if(max==a[i].s)
b[j++]=a[i];
/*找出成绩与max相等的学生的记录,存入结构体b中*/
return j; /*返回最高成绩的学生人数*/
}
该程序使用两个循环判断语句,第1个循环判断语句的作用是找出最大值;第2个循环判断语句的作用是找出与max相等的成绩(即最高成绩)的学生记录,并存入b中。
本题考查:结构体数组操作,用循环判断结构查找数组中的最大值。
对于如何找出数组中最大值(多个相等)的方法,我们已经不陌生。如何对结构体数组进行类似操作呢?
掌握以下语句:
for(i=0; i<N; i ++)
if(max<a[i].s)max=a[i].s;