题目内容 (请给出正确答案)
[主观题]

实验十二 C程序的结构体 一、实验目的 1. 掌握结构体的...

实验十二 C程序的结构体 一、实验目的 1. 掌握结构体的概念和特点。 2. 熟练定义结构体数据类型,掌握结构体变量的定义及使用方法。 3. 了解结构体数组的特点,能使用结构体数组解决简单问题。 4. 掌握结构体指针的特点,能使用结构体指针作函数的参数。 二、实验内容及实验步骤 1. 用结构体类型实现“日期问题”。日期问题:已知一个日期(包括年、月、日),编写程序,计算这一天是这一年的第几天。 参考程序 /* 用结构体类型实现的日期问题程序 */ #include "stdio.h" struct date /* 定义结构体数据类型 */ { int year; int month; int day; }; main() { struct date d; int sum=0; printf("请输入日期(年、月、日之间用空格分隔):\n"); scanf("%d%d%d",&d.year,&d.month,&d.day); switch(d.month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=31+28;break; case 4:sum=31+28+31;break; case 5:sum=31+28+31+30;break; case 6:sum=31+28+31+30+31;break; case 7:sum=31+28+31+30+31+30;break; case 8:sum=31+28+31+30+31+30+31;break; case 9:sum=31+28+31+30+31+30+31+31;break; case 10:sum=31+28+31+30+31+30+31+31+30;break; case 11:sum=31+28+31+30+31+30+31+31+30+31;break; case 12:sum=31+28+31+30+31+30+31+31+30+31+30;break; } sum+=d.day; /* 天数累加 */ if(d.month>2) /* 闰年处理 */ if(d.year%400==0||d.year%100!=0&&d.year%4==0) sum+=1; printf("Total: %d\n",sum); } 程序调试: ① 运行程序,输入一个合法日期数据,察看并分析程序结果。 ② 运行程序,输入一个月份非法的日期数据,察看并分析程序结果。 ③ 运行程序,输入一个日子非法的日期数据,察看并分析程序结果。 ④ 完善程序,使得在任何情况下,都能输出一个合理的结果。 ⑤ 用结构体指针改写上面的程序。 2. 学生成绩问题。有10个学生,每个学生的数据包括学号、姓名、3门课的成绩。从键盘输入10个学生数据,要求打印出每门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 参考程序 /* 学生成绩问题程序 */ #include "stdio.h" #define N 10 struct student /* 定义结构体数据类型 */ { char num[5]; /* 学号(不超过4位) */ char name[10]; /* 姓名(不超过9位) */ int score1; /* 成绩1 */ int score2; /* 成绩2 */ int score3; /* 成绩3 */ }; main() { struct student stu[N]; /* 定义结构体数组 */ int max=0,sum1=0,sum2=0,sum3=0; int i,k=0,total,ave1,ave2,ave3,average; for(i=0;i<n;i++) * 输入学生数据,并进行成绩统计 { printf("no.%d: \n",i+1); printf("enter num:"); gets(stu[i].num); name:"); gets(stu[i].name); score1,score2,score3:"); scanf("%d,%d,%d",&stu[i].score1,&stu[i].score2, &stu[i].score3); getchar(); total="stu[i].score1+stu[i].score2+stu[i].score3;" sum1+="stu[i].score1;" sum2+="stu[i].score2;" sum3+="stu[i].score3;" if(total>max) { max=total; k=i; } /* 第k个结构体元素为最高分学生数据 */ } ave1=sum1/N; ave2=sum2/N; ave3=sum3/N; average=(stu[k].score1+stu[k].score2+stu[k].score3)/3; printf("The average score of this class are:\n"); printf("score1=%d, score2=%d, score3=%d\n",ave1,ave2,ave3); printf("The student of maxscore is:\n"); printf("num:%s,name:%s,score1:%d,score2:%d,score3:%d,average:%d\n", stu[k].num,stu[k].name,stu[k].score1,stu[k].score2,stu[k].score3,average); } 程序调试: 先用三个学生的数据调试程序(将程序中符号常量N定义为3): ① 运行程序,输入三个学生的数据:学号不超过4字符,以回车键结束;姓名不超过9字符,以回车键结束;成绩数据之间用逗号分隔,以回车键结束。察看并分析程序结果。 ② 运行程序,输入的学号或姓名信息超过规定长度,察看并分析程序结果。用三个学生的数据调试通过后,再用10个学生数据进行测试。 三、实验报告要求 写明: 1. 实验目的 2. 实验内容与步骤 3. 编写的程序(题目,经调试、运行后正确的程序) 4. 思考题的解决方法。 5. 总结讨论本次实验的结果和收获。

提问人:网友ayalala 发布时间:2022-01-06
参考答案
  抱歉!暂无答案,正在努力更新中……
如搜索结果不匹配,请 联系老师 获取答案
更多“实验十二 C程序的结构体 一、实验目的 1. 掌握结构体的.…”相关的问题
第1题
结构体和共用体 1.实验目的 ①掌握结构体型变量的定义和使用。 ②掌握结构体型数组的概念和使用。 ③掌握链

结构体和共用体

1.实验目的

①掌握结构体型变量的定义和使用。

②掌握结构体型数组的概念和使用。

③掌握链表的概念,初步学会对链表进行操作。

④掌握共用体的概念与使用。

2.实验内容

编程序,然后上机调试运行。

①输入和运行以下程序

union data

{int i[2];

float a;

long b;

char c[4];

}u;

main()

{ scanf("%d,%d",&u.i[0],&u.i[1]);

printf("i[0]=%d,i[1]=%d,a=%f,b=%ld,c[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c",u i[0],u i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);

输入两个整数10000、20000给u.i[0]和u.i[1],分析运行结果。

然后将scanf语句改为:

scanf(”%ld",&u.b);

输入60000给b,分析运行结果。

②从键盘输入一个人的姓名、年龄、性别和身高,然后将它们打印出来。

③在某个选举区中共有500个选民,有6个候选人,要求编写一个程序来统计并显示每一个候选人的得票数量。

④在一个盒子中有红、绿、蓝、白四种颜色的球各若干。现在需要依次从盒子中取出两个球,问取出的两个球颜色不同的可能取法共有多少?编程打印出可能的取法。

点击查看答案
第2题
一、实验名称 Java Servlet技术。 二、实验目的 1. 理解Servlet工作原理,掌握通过JSP页面调用Servle
t。 2. 掌握共享变量、doget方法、dopost方法、重定向与转发及会话管理技术。 三、实验内容和实验步骤 1. 输入并运行10.1节的程序,开发简单的Servlet应用 (1)查看运行效果 2. 输入并运行10.2节的程序,熟悉Servlet常见用法 (1)查看运行效果 3. 10.3 节项目实训:实现留言板系统 (1)按照图10-9的文件结构搭建项目的整体架构 (2)编写程序实现相应JSP页面及后台数据库,查看运行效果 四、实验数据及结果分析 1.10.2.1节的程序 (1)运行结果和结果分析 2.10.2.2节的程序 (1)运行结果和结果分析 五、实验结论 总结及心得体会

点击查看答案
第3题
串 实验目的: (1)掌握串的顺序和链接存储结构的实现方法。 (2)掌握串的模式匹配算法。 (3)掌握和理解本实

实验目的:

(1)掌握串的顺序和链接存储结构的实现方法。

(2)掌握串的模式匹配算法。

(3)掌握和理解本实验中出现的一些基本的C语言语句。

(4)体会算法在程序设计中的重要性。

实验内容:

(1)设计串的模式匹配算法(子串定位)。

(2)若s和t是两个采用顺序结构存储的串,编写一个比较两个串大小的算法,若s>t,则返回1,若s<t,则返回-1,否则返回0。

点击查看答案
第4题
根据实验的直接目的可分为定性实验、定量实验和结构分析实验。()

根据实验的直接目的可分为定性实验、定量实验和结构分析实验。()

点击查看答案
第5题
栈和队列 实验目的: (1)掌握栈和队列的数据结构的特点。 (2)熟练掌握在两种存储结构上实现栈和队列的基本

栈和队列

实验目的:

(1)掌握栈和队列的数据结构的特点。

(2)熟练掌握在两种存储结构上实现栈和队列的基本运算。

(3)学会利用栈和队列解决一些实际问题。

(4)掌握和理解本实验中出现的一些基本的C语言语句。

(5)体会算法在程序设计中的重要性。

实验内容:

(1)写一算法将一顺序栈中的元素依次取出,并打印元素值。

(2)写一算法将一链栈中的元素依次取出,并打印元素值。

(3)写一算法将一顺序队列中的元素依次取出,并打印元素值。

(4)写一算法将一链队列中的元素依次取出,并打印元素值。

点击查看答案
第6题
一、实验名称 JSP与JavaBean。 二、实验目的 1. 掌握JavaBean的编写和使用。 2. 能在JSP中获取和修改
Bean的属性。 三、实验内容和实验步骤 1. 输入并运行9.2节的程序,实现简单的JavaBean组件 (1)查看运行效果 2. 2. 输入并运行9.3-9.4节的程序,实现访问数据库及猜字游戏 (1)查看运行效果 (2)修改数据库中相关的字段,重新运行程序并查看结果 3. 9.5 节项目实训:实现简单注册系统 (1)按照图9-11的文件结构搭建项目的整体架构 (2)编写程序实现相应JSP页面及后台数据库,查看运行效果 四、实验数据及结果分析 1.例子9-3的程序 (1)运行结果和结果分析 2.例子9-6程序的程序 (1)运行结果和结果分析 五、实验结论 总结及心得体会

点击查看答案
第7题
图 实验目的: (1)掌握图的两种存储结构的实现方法。 (2)掌握遍历图的递归和非递归算法。 (3)掌握和理解本

实验目的:

(1)掌握图的两种存储结构的实现方法。

(2)掌握遍历图的递归和非递归算法。

(3)掌握和理解本实验中出现的一些基本的C语言语句。

(4)体会算法在程序设计中的重要性。

实验内容:

(1)设计算法,构造无向图的邻接链表,并递归地实现基于邻接链表的图的深度优先搜索遍历。

(2)设计算法,构造无向图的邻接矩阵,并递归地实现基于邻接矩阵的图的深度优先搜索遍历。

点击查看答案
第8题
单链表 实验目的: (1)熟练掌握线性表的单链式存储结构及在其上实现线性表的各种基本运算的方法。 (2)掌握

单链表

实验目的:

(1)熟练掌握线性表的单链式存储结构及在其上实现线性表的各种基本运算的方法。

(2)掌握和理解本实验中出现的一些基本的C语言语句。

(3)体会算法在程序设计中的重要性。

实验内容:

(1)设计一算法,逆置带头结点的动态单链表head。要求利用原表的结点空间,并要求用尽可能少的时间完成。

(2)设有两个按元素值递增有序的单链表A和B,编一程序将A表和B表归并成一个新的递增有序的单链表C(值相同的元素均保留在C表中),并要求利用原表的空间存放C。

点击查看答案
第9题
函数的使用 一、实验目的 1. 掌握计算公式和函数的使用。 2. 掌握公式的复制。

函数的使用

一、实验目的

1. 掌握计算公式和函数的使用。

2. 掌握公式的复制。

点击查看答案
第10题
二叉树 实验目的: (1)熟悉二叉树的各种存储结构及适用范围。 (2)掌握建立二叉树的存储结构的方法。 (3)熟

二叉树

实验目的:

(1)熟悉二叉树的各种存储结构及适用范围。

(2)掌握建立二叉树的存储结构的方法。

(3)熟练掌握二叉树的先序、中序、后序遍历的递归算法和非递归算法。

(4)灵活运用递归的遍历算法实现二叉树的其他各种运算。

(5)掌握和理解本实验中出现的一些基本的C语言语句。

(6)体会算法在程序设计中的重要性。

实验内容:

(1)以二叉链表作存储结构,设计求二叉树高度的算法。

(2)以二叉链表作存储结构,编写递归的中序遍历算法。

(3)以二叉链表作存储结构,编写非递归的中序遍历算法。

(4)以二叉链表作存储结构,编写求二叉树中叶子结点的个数算法。

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信