第一套
(一)程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
(1) struct student (2)n-1 3 a[i].name,a[j].name (二)给定程序MODI1.C中函数fun 的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
1 q=p+i;
2 while(q>p) (三)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int i,j=0;
for(i=0;i if(a[i].s>=l&&a[i].s<=h) b[j++]=a[i]; return j; 第二套 (一)给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 1q 2 next 3 next (二)给定程序MODI1.C中函数fun 的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 1 p=j; 2 p=i; (三)请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a 中,通过n返回这些数的个数。 int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; 第三套 (一)函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 1 n/ 2 2 i 3 a[n-i-1] (二)给定程序MODI1.C中函数fun 的功能是:将一个由八进制数字字符串组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 1 n=*p-'0'; 2 n=n*8+*p-'0'; (三)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。 STREC c; int i; c.num[0]='\0'; c.s=-1; for(i=0;i if(strcmp(a[i].num,b)==0) {strcpy(c.num,a[i].num); c.s=a[i].s;break;} return c; 第四套 (一)给定程序中,函数fun的功 能是:在带有头结点的单向链表中, 查找数据域中值为ch的结点。找到 后通过函数值返回该结点在链表中 所处的顺序号:若不存在值为ch的 结点,函数值返回0. 1 NULL 2 n 3 head,ch (二) 给定程序MODI1.C中函数fun 的功能是:删除p所指字符串的所有 空白字符(包括制表符、回车符及换 行符)。输入字符串时用‘#’结束输 入。 1. for(i=0,t=0;p[i];i++) 2. c[t]='\0'; (三)请编写一个函数fun,它的功 能是:将ss所指字符串中所有下标 为奇数位置上的字母转换为大写(若 该位置上不是字母,则不转换)。 int i;