C语言上机题库百科园第八章!南信大!(56页).doc
《C语言上机题库百科园第八章!南信大!(56页).doc》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第八章!南信大!(56页).doc(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第八章以下叙述中正确的是()若有以下语句typedefstruct Sint g; char h;T;A.可用T定义结构体变量B.T是struct S类型的变量C.可用S定义结构体变量D.S是struct类型的变量当定义一个结构体变量时,系统分配给它的内存是( )。A.结构体中最后一个成员所需内存量B.成员中占内存量最大的容量C.结构体中第一个成员所需内存量D.各成员所需内存量的总和若有以下定义:struct linkint data;struct link *next;a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构,若指针p指向a,指针q指向c。则能把c插入到a和b之间形
2、成新的链表的语句是( )A.p-next=&c;q-next=p-next;B.p.next=q;q.next=p.next;C.p-next=q; q-next=&b;D.a.next=c; c.next=b;/*N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是85,76,69,91,72,64,87,则平均分应当是78.625。 注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/ #include#incl
3、ude#define N 8struct slist double s; struct slist *next;typedef struct slist STREC;double fun(STREC *h)/*Begin*/*End*/STREC *creat(double *s) /*创建链表*/ STREC *h,*p,*q; int i=0; h=p=( STREC*)malloc(sizeof(STREC); p-s=0; while(is=si;i+;p-next=q;p=q; p-next=0; return h;outlist(STREC *h) STREC *p; p=h-ne
4、xt; printf(head ); do printf(-%4.1f ,p-s); p=p-next; /*输出各成绩*/ while(p!=NULL); printf(nn);void main() FILE *wf; double sN=85,76,69,85,91,72,64,87,ave; STREC *h; h=creat(s); outlist(h); ave=fun(h); printf(ave=%6.3fn ,ave);/*/ wf=fopen(debugout25.dat,w); fprintf(wf,%6.3fn,ave); fclose(wf);/*/【参考代码】 do
5、uble av=0.0; STREC *p=h-next; /*p直接指向头节点的下一个节点,即第一个成绩*/ while(p!=NULL) av=av+p-s; /*求总分数*/ p=p-next; return av/N; /*返回平均值*/ /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */
6、#include # define N 12typedef struct char num10; double s; STREC;double fun (STREC *a,STREC *b, int *n)/*Begin*/*End*/void main() FILE *wf; STREC sN=GA05,85,GA03,76,GA02,69,GA04,85, GA01,91,GA07,72,GA08,64,GA06,87, GA09,60,GA11,79,GA12,73,GA10,90; STREC hN,t; int i,j,n; double ave; ave=fun(s,h,&n);
7、printf(The %d student data which is higher than %7.3f:n,n,ave); for(i=0; in; i+)printf(%s %4.1fn,hi.num,hi.s); printf(n); for(i=0; in-1; i+) for(j=i+1;jn;j+) if(hi.shj.s) t=hi;hi=hj;hj=t; /*分数从高到低排列*/*/ wf=fopen(debugout29.dat,w); fprintf(wf, %d %7.3fn,n,ave); for(i=0; in; i+) fprintf(wf, %s %4.1fn,
8、hi.num,hi.s); fclose(wf);/*/【参考代码】 int i; double av=0.0; *n=0; for(i=0;iN;i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0;iN;i+) if(av=ai.s) b*n=ai;*n=*n+1; /*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ return av; /*返回平均分*/ /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如
9、,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include #define N 16typedef struct char num10; int s ;STREC;int fun (STREC *a, STREC *b, int l, int h )/*Begin*/*End*/void main () FILE *wf; STREC sN= GA005,
10、85,GA003,76,GA002,69,GA004,85, GA001,96,GA007,72,GA008,64,GA006,87, GA015,85,GA013,94,GA012,64,GA014,91, GA011,90,GA017,64,GA018,64,GA016,72; STREC hN,tt; int i, j,n, low, heigh, t; printf(Enter 2 integer number low & heigh: ); scanf(%d%d,&low,&heigh); if(heighlow) t=heigh;heigh=low; low=t; n=fun(s,
11、h,low, heigh); printf(The student s data between %d-%d:n ,low, heigh); for(i=0;in;i+) printf(%s %4dn ,hi.num, hi.s); /*输出指定分数范围内的学生记录*/ printf(n );/*/ n=fun(s,h,80,98); for(i=0;in-1;i+) /*分数在8098之间的学生记录按分数从低到高排列*/ for(j=i+1;jhj.s) tt=hi;hi=hj;hj=tt; wf=fopen(debugout26.dat,w); for(i=0;in;i+) fprintf
12、(wf, %s %4dn,hi.num, hi.s); fclose(wf);/*/【参考代码】 int i,j=0; for(i=0;i=l&ai.s=h) /*将分数高于l,低于h的学生记录存于结构体数组b中*/ bj+=ai; return j; /*返回分数范围内的学生人数*/ /*某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。请编写fun函数,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。 注意:部分源程序
13、给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include #define N 8typedef struct char num10; double sN; double ave; STREC;void fun(STREC *p)/*Begin*/*End*/void main() FILE *wf; STREC s= GA005 ,85.5,76,69.5,85,91,72,64.5,87.5; int i; fun(&s); printf(The %ss student data:n, s.num); /*输出学号*
14、/ for(i=0;iave=0.0; for(i=0;iave=p-ave+p-si; /*求各门成绩的总和*/ p-ave=p-ave/N; /*求平均分*/ /*已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include#include#include#define N 10typedef struc
15、t ss char num10; int s; STU;fun(STU a, STU *s)/*Begin*/*End*/void main() FILE *wf; STU aN= A01,81, A02,89, A03,66, A04,87, A05,77, A06,90, A07,79, A08,61, A09,80, A10,71,m; int i; printf(*The original data*n); for(i=0;iN;i+) printf(No=%s Mark=%dn, ai.num,ai.s); fun(a,&m); printf(*THE RESULT*n); prin
16、tf(The lowest :%s, %dn,m.num,m.s);/*/ wf=fopen(debugout28.dat,w); fprintf(wf,%s %dn,m.num,m.s); fclose(wf);/*/【参考代码】 int i; *s=a0; /*先认为第1个值最小*/ for(i=0;isai.s) *s=ai; /*学生的记录由学生和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把分数最低的学生数据放在h所指的数组中。注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序给出如下。请勿改动main函数和其他函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 题库 百科 第八 南信大 56
限制150内