电1C语言实验报告(9)
《计算方法与程序设计实验》
main()
{ struct student *p; for(p=stu;p printf(\} Key: 运行结果:10101,Li Lin,M,18 10102,Zhang Fun,M,19 10104,Wang Min,F,20 分析:本程序定义了具有3个元素的全局结构体数组stu,每个元素由num,name,sex,age四 个成员组成,使用结构体指针变量控制循环,结构体指针变量引用对应的结构体成员 的形式是:指针变量->成员 (2) #include\struct data { int a,b,c; }; void func(struct data y); main() { struct data x; x.a=27; x.b=3; x.c=x.a+x.b; printf(\printf(\…\\n\func(x); printf(\} void func(struct data y) { printf(\printf(\…\\n\ y.a=18; y.b=5; y.c=y.a*y.b; printf(\printf(\} Key: 运行结果:x.a=27 x.b=3 x.c=30 Call Func()… y.a=27 y.b=3 y.c=30 Process… y.a=18 y.b=5 y.c=90 Return... x.a=27 x.b=3 x.c=30 分析:本程序使用结构体变量作实参调用func()函数,由于C语言中的函数调用是实参到形 参的单向传递,因此主函数调用func()函数时,虽然在func()函数中改变了形参y的 值,但返回主函数时,实参的值并不改变。另外,要改变结构体变量的值,只能逐个 改变它的成员值。引用结构体成员的形式是:结构体变量.成员。 2.程序设计 (1)有5 个学生,每个学生的数据包括学号、姓名、3 门课的成绩,从键盘输入5 个学 生数据,要求输出3 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课 的成绩、平均分数)。 要求:用一个 input 函数输入5 个学生数据;用一个output 函数输出5 个学生数据;用 一个average 函数求总平均分;用max 函数找出最高分学生数据;总平均分和最高分的学生 的数据都在主函数中输出。 【程序框架】 #include\ 26 《计算方法与程序设计实验》 struct student { int num; char name[20]; float score[3]; float avg; }; /**********函数声明**********/ void input(struct student stu[5]); void output(struct student stu[5]); float average(struct student stu[5]); struct student *max(struct student stu[5]); /**********主函数**********/ void main() {struct student stu[5], *pmax; float avg; printf(\input(stu); /*输入学生数据*/ output(stu); /*输出学生数据*/ avg=average(stu); /*求总平均分*/ printf(\pmax=max(stu); /*查找最高分学生,用指针pmax 指向*/ printf(\ printf(\pmax->score[0], pmax->score[1], pmax->score[2], pmax->avg); /*输出最高分学生数据*/ } /**********子函数**********/ void input(struct student stu[5]) { } void output(struct student stu[5]) { } float average(struct student stu[5]) /*求3 门课总平均分,并作为函数值返回*/ { } struct student *max(struct student stu[5]) /*查找最高分学生,函数返回最高分学生的地址*/ { } Key: /**********子函数**********/ void input(struct student stu[5]) {int i,j; for(i=0;i<5;i++) { printf(\ scanf(\ getchar(); printf(\ gets(stu[i].name); for(j=0;j<3;j++) { printf(\ scanf(\} 27 《计算方法与程序设计实验》 void output(struct student stu[5]) {int i,j; printf(\ for(i=0;i<5;i++) { printf(\ for(j=0;j<3;j++) printf(\ printf(\ float average(struct student stu[5]) /*求3 门课总平均分,并作为函数值返回*/ {int i,j; float aver=0; for(i=0;i<5;i++) { stu[i].avg=0; for(j=0;j<3;j++) stu[i].avg+=stu[i].score[j]/3; aver+=stu[i].avg/5;} return aver;} struct student *max(struct student stu[5]) /*查找最高分学生,函数返回最高分学生的地址*/ {struct student *p=stu,*q; for(q=&stu[1];q 28 《计算方法与程序设计实验》 (2)建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 要求:用一个create 函数创建链表,输入若干学生的信息存入链表中,以学号为0 作为结束标志;用一个output 函数输出链表中存放的学生信息;用一个delete 函数删除链表中其年龄等于输入年龄的结点。 【程序框架】 #include\#include\struct node { int num; char name[20]; char sex; int age; struct node *next; /*next 指向下一个结点*/ }; /*链表结点类型定义*/ /**********函数声明**********/ struct node *create( ); void output(struct node *head); struct node *delete(struct node *head, int age); /**********主函数**********/ void main() {struct node *head; int age; printf(\head=create(); /*创建链表*/ printf(\output(head); /*输出链表*/ printf(\scanf(\ head=delete(head,age); /*删除链表中其年龄等于输入年龄age 的结点*/ printf(\output(head); /*输出删除后的链表*/ } /**********子函数**********/ struct node *create( ) /*输入若干学生信息存入链表中,以学号为0 作为结束标志,从而 创建一个链表,函数返回链表的头指针*/ { } void output(struct node *head) /*输出head 所指链表中的学生信息*/ { } struct node *delete(struct node *head, int age) /*删除head 所指链表中其年龄等于给定值 age 的结点,函数返回删除后的链表头指针*/ { } Key: /**********子函数**********/ struct node *create( ) /*输入若干学生信息存入链表中,以学号为0 作为结束标志,从而 创建一个链表,函数返回链表的头指针*/ {int num,age,n=1;char name[20],sex; struct node *h=malloc(sizeof(struct node)),*s,*r=h; printf(\ 29 《计算方法与程序设计实验》 scanf(\ while(num) { getchar(); printf(\ printf(\ printf(\ s=malloc(sizeof(struct node)); s->num=num; strcpy(s->name,name); s->sex=sex; s->age=age; r=r->next=s; n++; printf(\ scanf(\ r->next=0; return h; } void output(s
…… 此处隐藏:2381字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




