C程序设计实验指导书 下载本文

实验十——结构体与共用体

实验名称 姓 名 实验地点 实验目的 实 验 内 容 与 步 骤 学号 成绩 班级 完成日期 1) 掌握结构体类型变量的定义和使用; 2) 掌握结构体类型数组的概念和使用; 3) 掌握链表的概念,初步学会对链表进行操作; 4) 掌握共用体的概念与使用。 编程序,然后上机调试运行程序 (1). 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。 (2). 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。本题要求用链表实现。 36

实 验 内 容 与 步 骤 (3). 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 37

实 验 内 容 与 步 骤 (4). 输入和运行以下程序: union data { int i[2]; float a; long b; char c[4]; }u; main ( ) { scanf(\printf(“i[0]=%d,i[1]=ú=?=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[l],分析运行结果。 然后将scanf语句改为: scanf(\%ld\; 输入60000给b,分析运行结果 实验心得 38

实验十一——位运算

实验名称 姓 名 实验地点 实验目的 实 验 内 容 与 步 骤 位运算 学号 班级 完成日期 成绩 1) 掌握按位运算的概念和方法,学会使用位运算符; 2) 学会通过位运算实现对某些位的操作。 编程序,然后上机调试运行程序 (1). 编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。如果是逻辑右移,请编一个函数实现算术右移;如果是算术右移,请编一个函数实现逻辑右移。 (2). 编一个函数getbits,从一个16位的单元中取出某几 39