结构体共用体与枚举课后习题

更新时间:2024-04-12 17:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.定义一结构体,成员项包括一个字符型、一个整型。编程实现结构体变量成员项的输入、输出,并通过说明指针引用该变量。 #include void main() { struct a { char b; int c; }d,*p; p=&d; printf(\输入:\\n\ scanf(\ scanf(\ printf(\输出:\\n\ printf(\ printf(\}

2.建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的同学的姓名、性别、年龄和课程的成绩。

#include void main() { int i,b,n; float a; printf(\请输入班级的人数:\ scanf(\ getchar(); struct person { char name[20]; char sex[10]; int year; float score; }stu[45]; for(i=0;i

getchar(); } for(b=0,a=stu[0].score,i=0;i

3.已知一个班有45人,本学期有两门课程的成绩,求:

●所有课程中的最高成绩,以及对应的姓名、学号和课程编号。

●课程1、2的平均成绩,并求出两门课程都低于平均成绩的学生姓名和学号。 ●对编号1的课程从高分到低分排序(注意其他成员项应保持对应关系)。

说明:要求定义结构体,第一成员项为学生姓名,第二成员项为学号,另外两个成员项为两门课成绩,并要求分别用函数完成。 (本人注:由于人数太多,故改为4人) #include #define N 4 struct person { char name[20]; long int number; float score1; float score2; };

void shuru(struct person stu[N]) { int i; for(i=0;i

void zuigao(struct person stu[N]) {

int b,i; float a; for(b=0,a=stu[0].score1,i=0;i

void pingjun(struct person stu[N]) { int i; float s1,s2,p1,p2; for(s1=0,s2=0,i=0;i

void paixu(struct person stu[N])

{ int i,j; struct person t; for(i=0;i

void main() { struct person stu[N]; shuru(stu); printf(\ zuigao(stu); pingjun(stu); paixu(stu); }

4.输入一字符串,用链表形式储存,每个结点的数据域存放一个字符,最后输出链表中的全部字符。

5.设有一个单向链表(设表长大于2),现欲将其倒置排序,试编写一函数实现此功能。

6.已知一无符号的整数占用了4个字节的内存空间,现欲从低位存储地址开始,将其每个字节作为单独的一个ASCII码字符输出,试用共同体实现上述转换。

7.已知一长度为2个字节的整数,现欲将其高位字节与低位字节相互交换后输出,试用共同体类型实现这一功能。

8.请定义枚举类型score,用枚举元素代表成绩的等级,如:90分以上为优(excellent),80—89分之间为良(good),60-79分之间为中(general),60分以下为差(fail),通过键盘输入一个学生的成绩,然后输出该生成绩的等级。 #include void main() { float a; enum score{fail,general=6,good=8,excellent}a; printf(\请输入该学生的成绩:\ scanf(\ switch(b); { case excellent:printf(\ case good:printf(\ case general:printf(\ case fail:printf(\ } }

本文来源:https://www.bwwdw.com/article/3gzp.html

Top