C语言程序设计 习题集
第六章 结构与联合类型
6.1 编程实现两个复数的加法和减法运算。
6.2 定义一个结构类型表示日期,编程输入今天的日期,输出明天的日期。
6.3 定义一个结构类型表示日期,输入年号和该年的第几天的天数,输出该天的日期。
6.4 定义一个结构类型表示日期,输入一个日期,输出该天是当年的第几天。
6.5 有10个学生,每个学生的数据包括:学号、姓名、3门课程的成绩,输入10个学生的数据,求每个学生的平均成绩,并按平均成绩由高到低输出学生的姓名、学号和平均成绩。
6.6 有10个学生,每个学生的数据包括:学号、姓名、3门课程的成绩,输入10个学生的数据,求每个学生的平均成绩计算平均成绩在85分以上的人数。
6.7 编程,输入10个用户的姓名和电话号码,并按照姓名的字典顺序输出用户的姓名和电话号码。
6.8 建立一个10个人的学生情况登记表,每个学生的信息包括:学号、姓名、性别、出生日期(结构类型)、政治面貌,政治面貌可以是党员、团员或群众;对于党员,要求填写入党时间(结构类型)、入党地点和入党介绍人姓名;对于团员,要求填写入团时间和入团介绍人;对于群众,不需要填写其它附加内容。编程输入这些学生的信息,并输出指定学号的学生的姓名、政治面貌和入党(团)时间。
6.9 分配房间问题,按房间容量从小到大的次序输入20各房间号和房间容量组成结构数组。在然后输入若干班号和各班人数,以输入班号为0周围输入结束的标志。对于每个班,按照输入的次序按人数分配最合适的房间。输出班号、人数、有无房间分配、及分配的房间号、容量。注意一个班只能分配一个房间,一个房间只能分配给一个班。
〈Previous Menu Next〉
C语言程序设计 习题集
第七章 其他数据类型和预处理
7.1 输入一个日期,计算当天是该年的第几天?要求其中月份设计成枚举类型数据。
7.2 输入某单位每个职工的职工号和工资(以元为单位,不含小数位)编程求发工资时,每位职工工资所需的不同人民币的张数。并计算该单位职工的工资总和,以及累计所需要的不同人民币的张数。
7.3 编写一个程序,求三个数中的最大数,要求用带参数的宏实现。
7.4 编程将用户输入的一个字符串中的大小写字母互换,即大写字母转换为小写字母,小写字母转换为大写字母。要求定义判断是大写、小写字母的宏以及大小写相互转换的宏。
7.5 编程求三角形的面积,三角形的面积计算公式为 其中,a、b、c为三角形的边长。定义两个带参数的宏,一个用于求s,另一个求area。
7.6 分析下列变量a、b、c分别占用多少字节的空间,并编程计算它们各自占据的字节数。
struct {
int i:5;
int :6;
unsigned j:7;
}a;
struct {
int i:5;
int:0;
unsigned j:7;
}b;
struct {
int i:5;
unsigned int j;
int k:7;
}c;
〈Previous Menu Next〉
C语言程序设计 习题集
第八章 函数
8.1 编写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘
输入。
8.2 编写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。
8.3 编写一个程序,已知一个圆筒的半径、外径和高,要求调用函数计算该圆筒的体积。
8.4 编写一个求水仙花数的函数,求100到999之间的全部水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方的和
等于该数。例如:153就是一个水仙花数:
153=1*1*1+5*5*5+3*3*3
8.5 编写一个函数,将给定的一个二维数组(3×4)转置,即行列互换。
8.6 编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
8.7 求方程ax2+bx+c=0的根,从主函数输入a、b、c的值,并用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输
出结果。
8.8 一只球从100米高度自由落下,每次落地后反跳回到原高度的一半再落下。求它在第10次落地时共经过多少米?第10次反
跳多高?
8.9 编写一个函数,将两个字符串连接起来。
8.10
编写一个函数,输入一个4位正整数,输出该4位数的4个数字的字符,要求数字之间空一个空格。如输入1990,应输出“
1 9 9 0”。
8.11 编写一个函数,输入一行字符,将此字符串中最长的单词输出。
8.12 编写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列。
8.13 编写一个函数,输入一个十进制数,输出相应的十六进制数。
8.14 使用指针,编写一个求串长的递归函数。
8.15 使用指针,输入一个字符串,要求用递归方法实现以相反的顺序输出该字符串。
8.16 编写一个函数,将一个链表按逆序排列,即将链头当链尾,链尾当链头。
8.17 设有两个链表,每个链表的结点都包括姓名、学号、住址、专业等信息,要求编写一个函数把两个链表合并成一个链表
,按学号升序排列。
8.18 编写一个函数,创建一个学生信息的双向循环链表;链表中每个结点包括学号、姓名、成绩等信息。
8.19 有两个链表a和b,设结点中包括学号、姓名等信息。编程从链表a中删除与链表b中学号相同的那些结点。
8.20 编程,实现任意长度的两个正整数的加法运算。
8.21 编写一个函数,创建一个一个学生信息的单向有序链表;链表中每个结点包括学号、姓名、成绩等信息,链表中结点按
照学号从小到大排列。
〈Previous Menu Next〉