实验7 指针
一、实验目的
1、熟悉指针的基本概念。
2、掌握指针的初始化方式和基本操作。
3、了解数组指针和多级指针的使用方式。
二、实验内容
1、上机实验一
(1)编写程序:输入一行字符,将字符按照从小到大排列输出,要求使用指针方式编写。
(2)写出实验报告。
运行结果:
分析:
没有进行动态内存规划或像C++一样使用自动调整容器,由于在终端输入字符串,所以用字符数组的方式来命名字符串,开的空间稍微大一点,在scanf_s函数中对字符指定缓存区大小即可编译运行通过.否则不仅报错,还无法实现排序功能.
体会:
遇到问题时,要学会结合原来的所学知识.想到了:scanf_s读取字符会出现的问题.
2、上机实验二
(1)编写程序:从键盘输入10个学生某门课程的成绩,输出其中的最低分、最高分和平均成绩,要求使用指针方式编写。
运行结果:
分析:
已知学生人数,通过一个for循环,输入学生成绩并求和,考虑到平均分大概率为小数,所以sum的数据类型为double.在寻找最大和最小之前,假设都为第一个元素,这样便于使用指针进行遍历这个数组.不能比较大小后,写成(*p)=*(p+1)的形式,这样导致前一个元素的值为后一个元素,导致数组的元素值发生了改变,且只获得了极大值,不一定是最大值.不能够寻找最小值了.所以直接复制给min和max两个变量.
体会:
把难的问题简单化,用容易的方式解决.
3、上机实验三
(1)编写程序:题目见教材P248页,习题16。
运行结果:
分析:
用一维数组a来存值,指针数组里放对应元素的地址,通过循环以及解引用的方式把对应的元素按照要求打印出来.
体会:
这道题目注意一下打印格式就行了,没其他什么难以处理的地方.
4、上机实验四
(1)编写程序:编写一个函数fun,功能是:求出数组的最大元素在数组中的下标,并存放在k所指的存储单元中,要求利用指针方式编写,需要给出测试结果,即:需要写主函数。
(2)写出实验报告。
运行结果:
分析:
这里的数组大小不太好控制,所以设置为一个明确的数,也便于设置for循环的控制条件,关于寻找最大元素的方法与实验2完全一样,故不在此过多赘述.通过for循环依次比较元素,函数返回最大元素的下标,并赋值给变量k.
体会:
如果不好处理,就换成自己会处理的方式,与做过的实验相联系,将大大减少思考内容.
三、实验要求
1、结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。
2、整理上机步骤,总结经验和体会。
3、完成实验报告和上交源程序。