c语言上机实验实验五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五
(2018-11-07)
一、实验名称:
数组。
二、实验目的:
(1)掌握C语言中一维数组、二维数组的定义方法;
(2)掌握字符数组与常用字符串处理函数的使用;
(3)掌握与数组有关的算法(如数组元素的排序);
(4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。
三、实验项目(必做题)
本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。
(1)定义1个一维数组:int arr[10],然后从键盘输入10个整数,编程求出其最大值、最小值以及平均值,并在屏幕上打印输出。
提示:在一个循环体内用scanf函数输入10个数,然后再用一个循环处理数据处理。
测试实例:
输入:100 10 -125 -9 0 90 70 60 300 -250
输出:max=300
min=-250
ave= 14.60
注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。
(2)定义两个字符数组:char str1[80], str2[80],其中字符串str1接受从键盘输入,然后编程将字符数组str1的内容逐个拷贝到字符数组str2中。(不允许使用库函数strcpy)
提示:从键盘接受1个字符串输入str1后,使用一个循环将str1中字符逐个赋值给str2中的对应元素。
测试实例:
输入:Hello World! 输出:Hello World!
注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。
(3)定义1个一维数组:int arr[20],然后从键盘输入20个整数,使用冒泡法编程将该数组从小到大进行排序,并将排序后结果打印在屏幕上。
提示:利用一个二重循环体实现冒泡排序(算法的基本思想参见教材P134)。
测试实例:
输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539
输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539
(4)将20个数存放在一个数组中,首先使用选择法对这20个数按升序排列,并输出排序后的结果;然后从键盘输入一个数,要求用二分查找的方法找出该数在数组中的位置(即下标),如果该数不在数组中,则输出“无此数”。
提示:首先利用一个二重循环实现选择排序;然后使用单重循环来实现二分查找。
测试实例:
输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539
输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539
输入:-129
输出:17
输入:301
输出:无此数
(5)定义1个二维数组:int arr[5][6],然后从键盘输入5行6列共30个整数,编程求出所有元素中的最大值、最小值及其下标,同时求出每行元素的平均值,并在屏幕上打印输出。
提示:在一个二重循环体内用scanf函数输入30个数,然后再用一个二重循环处理数据处理。
测试实例:
输入: 6 5 4 3 2 1
7 8 9 10 11 12
13 14 15 16 17 18
24 23 22 21 20 19
30 29 28 27 26 25
输出:Maximum:a[4][0]=30
Minimum:a[0][4]=1;
Average:
Ave[0]= 3.50
Ave[1]= 9.50
Ave[2]= 15.50
Ave[3]= 21.50
Ave[4]= 27.50
四、实验项目(选做题)
(1)课堂、以及教材中的一些示例程序。
(2)教材P152页开始习题:7.1-7.15。