实验4数组1
更新时间:2023-09-14 00:20:01 阅读量: 教学研究 文档下载
南昌大学实验报告
学生姓名: 学 号: 专业班级:
√ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证□综合 □
一、实验名称
实验4 数组
二、实验目的
1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋
值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
2.掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
3.掌握与数组相关的算法,包括排序算法和查找算法等。
三、实验内容
有关数组的程序设计
四、实验环境
PC微机
DOS操作系统或 Windows 操作系统 Turbo C 程序集成环境
五、实验步骤
1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?
2.编程实现:在给定的字符串中查找满足条件的第一个字符。 要求:
(1)字符串采用初始化的方式处理。
(2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。
3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ? n),形成n ? n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
例如:原始数据: n=4 结果数据: 1 2 3 4 8 11 14 16 3 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求:
(1)本题中所涉及到的循环都采用for语句。 (2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
(4)输入一个n ? n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。
(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。
(6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。
(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。
4.编程实现“折半查找”的过程。折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。
要求:
(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。
(2)用scanf函数输入一个要找的数。
(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。如果该数不在数组中,则输出“无此数”信息。
(4)任意输入一些数据,检查程序的正确性。
(5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。最后通过测试几组差别较大的数据检查程序的正确性。
(6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数据(无序),调用上述函数,输出结果。
5.编程实现:三个学生、五门课程的成绩分别存放在4×6矩阵的前3×5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。输入/输出格式举例如下:
Input(输入成绩):
65 87 68 56 78
65 87 68 56 78 70.5 83 94 67 85 91 84.0 71 75 69 84 89 77.5 219.0 256.0 204.0 258.0 232.0 0 average:
73.0 85.3 68.0 86.0 77.3 要求:
(1)数组类型为实型,输入成绩由scanf函数实现。 (2)输出已输入的原始成绩数据(3×5)。
(3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4×6)。
(4)j计算单科平均成绩后输出。
6.编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。编写函数cmpStr()用于判断两个字符串的大小。
要求:
(1)不允许使用字符处理库函数。
(2)在主函数以初始化的方式输入两个字符串str1、str2。调用函数lenStr()计算字符串的长度。
(3)调用函数cmpStr()判断两个字符串的大小,如果str1大于等于str2,调用函数catStr()进行两个字符串的连接,将str1连接在str2后,否则,将str2连接在str1后,调用函数lenStr()统计连接后的字符串长度。
(4)在主函数中输出两个原始字符串和各自的长度以及处理后字符串及其长度。
六、实验数据及处理结果
/*写出各个习题的算法(用流程图或自然语言表示)、程序、结果并能对结果的正确性及产生的问题进行适当分析,重点说明实验遇到的难点及解决办法。注意:每题以下面格式列出:
习题五: [算法设计] [程序实现] [测试结果] [分析]
红色文本请在写实验报告时删去!*/
七、简答及选做题
1、小结冒泡排序及选择排序方法及有关数组和字符串的程序设计方法。
2、模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB
其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。
最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示“Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示“Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上显示这个正确的数字。
八、 实验总结及体会
正在阅读:
实验4数组109-14
我的军旅梦作文600字07-12
中学继续解放思想大讨论活动情况总结-word范文文档09-11
员工招聘、入职离职流程图(1)03-06
2017年安徽省阜阳市中考真题政治02-22
高中数学 1.3.1 单调性与最大(小)值(1)导学案 新人教A版必修104-29
行走在路上作文550字06-16
老人与海鸥教学实录 人教版小学语文六年级上册《老人与海鸥》教03-08
1、窦娥冤导学案(教师版)11-08
《水泵及水泵站》配套习题 - 图文04-14
- 公务员上岸同学告诉你,怎样走出面试中常见的十大误区
- 作表率,我们怎么办(办公室主任)
- 乘务员安全责任书
- 增员面试流程
- 河南省焦作市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 最新4社区工作者面试题
- 个人简历表
- 男教工体检必检项目
- 河南省兰考县规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 兼职译员测试稿
- 河南省开封市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 永州职业技术学院校园总体规划-永州职业学院
- 最新5、培训科长笔试题(答案)
- 2019雅商酒店境外人员登记培训稀有资料,不可错过
- 小学教师求职简历范文
- 红酒知识与礼仪
- 春节给领导拜年的短信拜年词
- 2019年上半年中小学教师资格证结构化面试真题1
- 20XX年县干部培训工作目标
- 硬笔试听课
- 数组
- 实验
- 工会委员分工及职责
- 微积分A(3)复习举例4
- 大学生业余时间支配调查研究报告
- 外科学模拟试题
- MATLAB学习资料(自学版)
- 分界洲岛景区旅游资源分析与评价
- 家园协调一致共同培养小班幼儿自我服务能力的研究
- 县级以下党政领导干部任期经济责任审计暂行规定实施细则
- 理正软件计算书
- 正常人体学-遗传部分整理
- 书法读帖要领
- 广西高校教师资格考试《高等教育法规实用教程》学习指导及题型
- 2002-01-01《全国土地分类(试行)》(国土资发〔2001〕255号)
- 生理学5套题目
- 广东省2012届高三下学期高考模拟仿真试题(四)理科数学
- 地铁区间隧道盾构施工设计
- 刑法涉税新条款
- 三年级科学测量水温教案
- 初二数学上学期期末试卷(二)苏科版
- 第三章 化学计量 第一节物质的量 气体摩尔体积