第九章作业
1. 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年
问题。
2. 写一个函数days,实现第1题的计算。由主函数将年、月、日传递给days函数,
计算后将日子数传回主函数输出。
3. 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,
每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。
4. 在第3题的基础上,编写一个函数input,用来输入5个学生的数据记录。
5. 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10
个学生数据,要求输入3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
6. 有13个人围成一圈,从第1个人开始顺序报号1,2,3。凡报到3者退出圈子。找出
最后留在圈子中的人原来的序号。
7. 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地
址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间,见图 9-24。
图 9-24
8. 写一函数free,将第7题用new函数占用的空间释放。free(p)表示将p(地址)指向
的单元以后的内存释放。
9. 在例9.9的基础上,写一个函数del,用来删除动态链表中指定的结点。 10. 写一个函数insert,用来向一个动态链表插入接点。 11. 综合教材第9章例9.8(建立链表的函数creat)、例9.9(输出链表的函数print)和习题
第9题(删除接点的函数del)。第10题(插入结点的函数insert)组成一个程序,编写一个主程序先后调用这些函数,实现链表的建立、输出、删除和插入,在主程序中指定需要删除和插入的结点。
12. 已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按
学号升序排序。
13. 有两个链表a和b,设接结点中包括学号、姓名。从a链表中删去与b链表中有相
同学号的那些结点。
14. 建立一个链表,每个结点包括:学号、姓名。性别、年龄。输入一个年龄,如果
链表中的结点所包含的年龄等于此年龄,则将此结点删去。