当前位置:首页 > C语言程序设计实验指导
实验五 指 针
一、 目的和要求
1. 掌握指针的概念,会定义和使用指针变量; 2. 学会使用数组的指针和指向数组的指针变量; 3. 学会使用字符串的指针和指向字符串的指针变量; 4. 学会使用指向函数的指针变量;
5. 了解指向指针的指针的概念及其使用方法。 6. 熟悉指针与数组之间的关系。
二、 学时数
课内: 4学时 课外:4学时
三、 实验内容
编程序并上机调试运行(都要求用指针或数组处理)。
1. 输入3个整数,按大小顺序输出,要求使用swap函数,它用于交换两
个整数。
2. 定义一个大小为10的整型数组,从键盘中输入各元素的值,计算并输出
它们的最大值、最小值和平均值。
3. 定义一个大小为1000的整型数组,利用随机函数生成各元素的值(1~
100之间),计算并输出在90~100范围内的数出现的次数。
4. 将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。
要求改为1,4,5,6,8。
5. 用冒泡排序法对10个整数按由大到小的排序并输出排序结果。
- 12 -
6. 将6个字符串,按由小到大顺序输出。
7. 现给出3个学生,每个学生4门课程的成绩,求其中的最高成绩、各门
课程的平均成绩和总平均成绩。
8. 输入某年的年份及某月的月份(1~12),输出该年该月的天数(用三种
方法编程:(1)不用数组;(2)用一维数组;(3)用二维数组)。 9. 定义二维字符数组用来存放星期日到星期六的英文单词,并依次输出它
们。
10. 输入某年的年份及某月的月份(1~12),输出该年该月的月历。 11. 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英
文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数。
12. 打印出杨辉三角形(要求打印出10行)。
13. 编写一个求字符串的函数,在主函数中输入字符串,并输出其长度。 14. 找出一个二维数组的”鞍点”,即该位置上的元素在该行上最大,在该列
上最小。也可能没有鞍点。此二维数组可以设定如下:
9 80 205 401 90 -60 96 1 210 -3 101 89
15. 函数day_of_year和month_day中没有进行错误检查,请纠正之。 16. 写一个用矩形法求定积分的通用函数,分别求:
?sinxdx , ?cosxdx , ?exdx
0?11120 - 13 -
实验六 结 构
一、 目的和要求
1. 掌握结构体类型变量的定义和使用; 2. 掌握结构体类型数组的概念和应用; 3. 掌握共用体的概念与使用;
4. 掌握链表的概念,初步学会对链表进行操作的方法;
二、 学时数
课内: 2学时 课外:2学时
三、 实验内容
1. 输入并运行以下程序:
1.
#include
int main(void) {
union { int a;
char b[2]; } c;
c.a = 65; puts(c.b);
printf(\, sizeof(c));
return 0; } 2.
#include
- 14 -
int main(void) {
union {
struct {
int x, y; } in;
int a, b; } e;
e.a = 1; e.b = 2;
e.in.x = e.a * e.b; e.in.y = e.a + e.b;
printf(\, e.in.x, e.in.y);
return 0; }
编程序,然后上机调试运行。
3. 定义二维屏幕坐标中点结构(struct point),并编写两个点相减的
函数subpoint,主函数调用subpoint,将点(2,3)、(6,8)将相减,并将相减后的点输出。
4. 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从
键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、,姓名、3门课的成绩、平均分数)。 5. 调试实例程序:统计输入中各个 C关键字出现次数程序。
6. 编写一个程序,根据单词的出现频率降序打印出所输入的各个单词。
每个单词前标有它的计数值。
7. 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”
者退出圈子,找出最后留在圈子中的人原来的序号。
8. 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个
年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
- 15 -
共分享92篇相关文档