《计算机二级C语言上机考试——结构体与链表》由会员分享,可在线阅读,更多相关《计算机二级C语言上机考试——结构体与链表(3页珍藏版)》请在金锄头文库上搜索。
1、1:某学生的记录由学号、8 门课程成绩和平均分组成,学号和 8 门课程的成绩已在主函数中给出,请编写函数fun ,其功能是:求出该学生的平均分,并放入记录的ave 成员中。void fun(STREC *a) int i;aave0.0 ;for(i0;iave a avea si; aaveaave/N ; 2:N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数 fun , 其功能是: 求出平均分, 并由函数值返回。double fun(STREC *h) double av0.0 ;STREC *phnext ;while(p ! NULL) avavp
2、s;ppnext ;return av/N ; 3:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数 fun ,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个, 函数返回分数最高的学生的人数。int fun (STREC *a, STREC *b) int i,j 0,max a0 s;for(i0;iN ;i )if(maxais) max ais;for(i0;iN ;i )if(max ai s) bj ai;return j; 4:学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数
3、fun ,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置1,作为函数值返回。 。 STREC fun(STREC *a, char *b) int i ;STREC str 0,1 ;if(strcmp(ainum ,b) 0) str ai;return str ; 5:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数 fun ,其功能是: 按分数降序排列学生的记录,高分在前, 低分在后。void fun (STREC a) int i , j ; STREC t ; for(i1; i
4、N; i ) /for(j0; jN 1; j ) if(aj saj1 s) t aj;aj aj 1 ;aj 1 t ; 6:学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数 fun ,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参 n传回,平均分通过函数值返回。double fun (STREC *a,STREC *b, int *n) int i;double av 0.0 ;*n0;for(i0;iN ;i ) av avais;avav/N ;for(i0; iN;i ) if(avs;while(h !
5、 NULL) if(maxs) max hs; h hnext ;return max; 8:学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数 fun ,其功能是:把分数最低的学生数据放入b所指的数组中,int fun(STREC *a,STREC *b) int i,j 0,n0,min;mina0 s;for(i0;iN ;i ) if(aismin)min ais; for(i0; iN;i ) if(ais min) *(bj) ai;j ; n; return n; 9:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编写fu
6、n ,功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参 n传回,平均分通过函数值返回。 double fun(STREC *a, STREC *b, int *n) int i ,j 0;double av 0.0 ; for(i0;iN ;i ) av avais;avav/N;for(i0;iN;i ) if(aisav) bj ai;*n j ;return av; 10:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数 fun ,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回in
7、t fun (STREC *a, STREC *b, int l, int h ) int i ,j 0;for(i0;il&aish) bj ai;return j; 11:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun ,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数fun(STU a, STU *s)int i ;*s a0 ;for(i0;isais) *s ai; 12已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun ,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数fun(ST
8、U a, STU *s) int i ;*s a0 ;for(i0;is=eps) s1=s1*n/(2*n+1); s=s+s1; n+;return 2*s; 2请编写函数 fun ,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从 0-p 的数组元素平移到数组的最后。int x,j,ch; for(x=0;x=p;x+)ch=w0;for(j=1;jn;j+) w j-1 =wj ;w n-1 =ch; 3请编写函数 fun ,该函数的功能是:移动字符串中的内容,移动的规则是把第1m 个字符,平移到字符串的最后,把第m+1 到最后的字符移到字符串的前部。int i,j
9、; char t; for(i=1;i=m;i+) t=w0; for(j=1;wj!=0;j+) wj-1=wj;wj-1=t; 4请编写函数 fun ,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按从小到大的顺序排列,函数返回删除后数组中数据的个数。int i,j=1; for(i=1;in;i+)if(aj-1!=ai) aj+=ai;return j; 5请编写函数 fun ,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)long n=0;int flag=1;if(*p=-) p+;flag= -1;else if(
10、*p=+) p+; while(*p!=0) n=n*10+*p-0; p+; return n*flag; 6请编写函数 fun ,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。int i,j=0; for(i=0;si!=0;i+) if(si!= &(si+1= |si+1=0) j+; return j 7请编写函数 fun ,其功能是:计算并输出当x0.97 时,如下多项式的值,直到|Sn Sn1| 1e6) ;return sum; 8请编写函数 fun ,其功能是:计
11、算并输出给定数组(长度为9)中相邻两个元素的平均值的平方根之和。 double sum=0.0;int i,j=1; for(i=0;i9;i+)if(j=8)sum+=sqrt(xi+xi+1)/2.0);j+; return sum; 9请编一个函数float fun,该函数的功能是对变量h中的值保留 2位小数,并对第三位进行四舍五入long t; t=(h*1000+5)/10; return (float)t/100 10. 请编写函数 fun ,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出 YES,否则返回 0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL 是回文,而字符串123312就不是回文。int fun(char *str) int i,n0,fg 1;char *p str ;while(*p) n ; p; for(i0;i=2)的整数,则函数求出w的后 n-1 位的数作为函数值返回。int n=1,j,s=1;unsigned t; t=w; while(t=10)t=t/10;n+;for(j=1;jn;j+) s=s*10; return w%s;