欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言上机题库百科园第八章!南信大!(56页).doc

    • 资源ID:34798626       资源大小:112KB        全文页数:59页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言上机题库百科园第八章!南信大!(56页).doc

    -第八章以下叙述中正确的是()若有以下语句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之间形成新的链表的语句是( )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<stdlib.h>#include<stdio.h>#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(i<N) q=( STREC*)malloc(sizeof(STREC); q->s=si;i+;p->next=q;p=q; p->next=0; return h;outlist(STREC *h) STREC *p; p=h->next; 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);/*/【参考代码】 double 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的花括号中填入所编写的若干语句。试题程序: */#include <stdio.h># 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); printf("The %d student data which is higher than %7.3f:n",n,ave); for(i=0; i<n; i+)printf("%s %4.1fn",hi.num,hi.s); printf("n"); for(i=0; i<n-1; i+) for(j=i+1;j<n;j+) if(hi.s<hj.s) t=hi;hi=hj;hj=t; /*分数从高到低排列*/*/ wf=fopen("debugout29.dat","w"); fprintf(wf, "%d %7.3fn",n,ave); for(i=0; i<n; i+) fprintf(wf, "%s %4.1fn",hi.num,hi.s); fclose(wf);/*/【参考代码】 int i; double av=0.0; *n=0; for(i=0;i<N;i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0;i<N;i+) if(av<=ai.s) b*n=ai;*n=*n+1; /*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ return av; /*返回平均分*/ /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include <stdio.h>#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",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(heigh<low) t=heigh;heigh=low; low=t; n=fun(s,h,low, heigh); printf("The student 's data between %d-%d:n ",low, heigh); for(i=0;i<n;i+) printf("%s %4dn ",hi.num, hi.s); /*输出指定分数范围内的学生记录*/ printf("n ");/*/ n=fun(s,h,80,98); for(i=0;i<n-1;i+) /*分数在8098之间的学生记录按分数从低到高排列*/ for(j=i+1;j<n;j+) if(hi.s>hj.s) tt=hi;hi=hj;hj=tt; wf=fopen("debugout26.dat","w"); for(i=0;i<n;i+) fprintf(wf, "%s %4dn",hi.num, hi.s); fclose(wf);/*/【参考代码】 int i,j=0; for(i=0;i<N;i+) if(ai.s>=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。 注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include <stdio.h>#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 %s's student data:n", s.num); /*输出学号*/ for(i=0;i<N;i+) printf("%4.1fn",s.si); /*输出各科成绩*/ printf("nave=%7.3fn", s.ave); /*输出平均分*/*/ wf=fopen("debugout24.dat","w"); fprintf(wf,"ave=%7.3fn", s.ave); fclose(wf);/*/【参考代码】int i; p->ave=0.0; for(i=0;i<N;i+) p->ave=p->ave+p->si; /*求各门成绩的总和*/ p->ave=p->ave/N; /*求平均分*/ /*已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 10typedef struct 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;i<N;i+) printf("No=%s Mark=%dn", ai.num,ai.s); fun(a,&m); printf("*THE RESULT*n"); printf("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;i<N;i+) /*如果在循环的过程中,发现比第1个值更小的则赋给*s*/ if(s->s>ai.s) *s=ai; /*学生的记录由学生和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把分数最低的学生数据放在h所指的数组中。注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include <stdio.h># define N 16typedef struct char num10; int s; STREC;int fun (STREC *a,STREC *b)/*Begin*/*End*/void main() STREC sN="GA05",85,"GA03",76,"GA02",69,"GA04",85,"GA01",91,"GA07",72,"GA08",64, "GA06",87,"GA015",85,"GA013",91,"GA012",64,"GA014",91,"GA011",91,"GA017",64,"GA018",64,"GA016",72; STREC hN; int i,n; FILE *out; n=fun(s,h); printf("The %d lowest score:n",n); for(i=0;i<n;i+) printf("%s %4dn",hi.num,hi.s); printf("n"); /*/ out=fopen("debugout22.dat","w"); fprintf(out,"%dn",n); for(i=0;i<n;i+) fprintf(out,"%4dn",hi.s); fclose(out); /*/【参考代码】 int i,j=0,n=0,min; min=a0.s; for(i=0;i<N;i+) if(ai.s<min) min=ai.s; for(i=0;i<N;i+) if(ai.s=min) *(b+j)=ai;j+;n+; return n; /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include<stdio.h>#define N 8typedef 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; STREC hN; int i,n; double ave; ave=fun(s,h,&n); printf("The %d student data which is lower than %7.3f:n ", n,ave); for(i=0;i<n;i+) /*输出成绩低于平均值的学生记录*/ printf("%s %4.1fn ",hi.num,hi.s); printf("n ");/*/ wf=fopen("debugout30.dat","w"); fprintf(wf, "%d %7.3fn",n,ave); for(i=0;i<n;i+) fprintf(wf, "%s %4.1fn",hi.num,hi.s); fclose(wf);/*/【参考代码】 int i,j=0; double av=0.0; for(i=0;i<N;i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0;i<N;i+) if(ai.s<av) bj+=ai; /*将低于平均值的学生记录存入结构体b中*/ *n=j; /*指针传回低于平均值的学生人数*/ return av; /*返回平均值*/ /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: */#include <stdio.h> #define N 16 typedef struct char num10; int s; STREC; int fun( STREC *a, STREC *b ) /*Begin*/ /*End*/ int main() STREC sN="GA05",85,"GA03",76,"GA02",69,"GA04",85, "GA01",91,"GA07",72,"GA08",64,"GA06",87, "GA015",85,"GA013",91,"GA012",64,"GA014",91, "GA011",77,"GA017",64,"GA018",64,"GA016",72; STREC hN; int i,n;FILE *out ; n=fun(s,h); printf("The %d highest score :n",n); for(i=0;i<n; i+) printf("%s %4dn",hi.num,hi.s); printf("n"); out = fopen("debugout.dat","w"); for(i=0;i<n; i+) fprintf(out, "%s %dn",hi.num,hi.s); fclose(out);return 0; /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include <stdio.h>#define N 16typedef struct char num10; int s ;STREC;void fun (STREC a)/*Begin*/*End*/void main () FILE *wf; STREC sN= "GA005",85,"GA003",76,"GA002",69,"GA004",85, "GA001",91,"GA007",72,"GA008",64,"GA006",87, "GA015",85,"GA013",91,"GA012",64,"GA014",91, "GA011",66,"GA017",64,"GA018",64,"GA016",72; int i; fun(s); printf("The data after sorted :n"); for (i=0; i<N; i+) printf("%s %4dn",si.num,si.s); /*/ wf=fopen("debugout23.dat","w"); for (i=0; i<N; i+) fprintf(wf,"%s %4dn",si.num,si.s); fclose(wf);/*/【参考代码】 int i,j; STREC t; for(i=1;i<N;i+) for(j=0;j<N-1;j+) if(aj.s<aj+1.s) t=aj;aj=aj+1;aj+1=t; /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include <stdio.h>#define N 16typedef struct char num10; int s ;STREC;int fun (STREC *a, STREC *b)/*Begin*/*End*/void main () FILE *wf; STREC sN="GA005",85,"GA003",76,"GA002",69,"GA004",85, "GA001",91,"GA007",72,"GA008",64,"GA006",87, "GA015",85,"GA013",91,"GA012",64,"GA014",91, "GA011",66,"GA017",64,"GA018",64,"GA016",72; STREC hN; int i, n; n=fun(s,h); printf("The %d highest score :n",n); for (i=0; i<n; i+) printf("%s %4dn ",hi.num,hi.s); /*输出最高分学生的学号和成绩*/ printf("n");/*/ wf=fopen("debugout27.dat","w"); fprintf(wf, "%dn",n); for (i=0; i<n; i+) fprintf(wf,"%s %4dn",hi.num,hi.s); fclose(wf);/*/【参考代码】 int i,j=0,max=a0.s; for(i=0;i<N;i+) if(max<ai.s) max=ai.s;/*找出最大值*/ for(i=0;i<N;i+) if(max=ai.s) bj+=ai; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/ /*下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m<=10)名学生,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:*/ #include <stdlib.h>#include <string.h>#include <stdio.h>#include <malloc.h>#define N 10typedef struct ss char num10; int s; STU;STU *fun(STU a, int m) STU bN,*t; int i, j,k;/*ERROR*/ *t=calloc(m,sizeof(STU); for(i=0;i<N;i+) bi=ai; for(k=0;k<m;k+) for (i=j=0;i<N;i+) if(bi.s>bj.s) j=i;/*ERROR*/ tk.num=bj.num; tk.s=bj.s; bj.s=0; return t;outresult(STU a,FILE *pf) int i; for(i=0;i<N;i+) fprintf(pf, "No=%s Mark=%dn ",ai.num, ai.s); fprintf(pf, "nn ");void main() STU aN= "A01 ",81, "A02 ",89, "A03 ",66, "A04 ",87, "A05 ",77, "A06 ",90, "A07 ",79, "A08 ",61, "A09 ",80, "A10 ",71; STU *pOrder; int i, m; printf("*THE RESULT*n"); outresult(a,stdout); printf("nGive the number of the students who have better score: "); scanf("%d",&m); while(m>10) printf("nGive the number of the students who have better score: "); scanf("%d",&m); pOrder=fun(a,m); printf("* THE RESULT*n"); printf("The top :n"); for(i=0;i<m;i+) printf("%s %dn",pOrderi.num, pOrderi.s); free(pOrder); 【参考答案】t=calloc(m,sizeof(STU);【参考答案】tk=bj;/*下列给定程序的功能是:建立一个带头节点的单向链表,并用随机函数为各节点数据域赋值。函数fun的作用是求出单向链表节点(不包括头节点)数据域中的最大值,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */#include <stdio.h>#include <stdlib.h>typedef struct aa int data; struct aa *next; NODE;fun (NODE *h) int max=-1; NODE *p;/*ERROR*/ p=h; while(p) if(p->data>max)

    注意事项

    本文(C语言上机题库百科园第八章!南信大!(56页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开