- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7次实验内容(数组与指针)
该实验内容依据教材:C语言程序设计实验教程邹显春、王建国主编高等教育出版社 * * 制作人:邹显春 E-Mail:zouxc@swu.edu.cn 掌握C语言程序设计的诀窍---重在上机实践!!!!!! 目标:熟练阅读、编写程序 实验7 数组与指针 (P35) 说明:参考程序代码放在备注中,仅供大家对照检查,希望同学们本着对自己负责的精神,先独立完成,再看参考答案 一、实验目的 1.熟练掌握二维数组的使用方法 2.掌握指针数组的使用方法 3.了解动态数组空间的开辟、使用和释放的过程 4.掌握字符指针的使用方法 二、实验内容(P36) 2.设计性实验—①、②、③、⑤选择其中1个完成, ④为选做。 温馨提示 1.验证性实验—①、②,按要求进行实验,所需要程序代码在网络平台的“课程导学”的“实验引导”中下载。 三、实验内容示范 1.验证性实验 ①程序填空,步骤: 先按照实验1的操作步骤进入VC++的源程序编辑区,再从“平台”上提供的代码文件test2_18.cpp中取代码,粘贴到编辑区中 目的:掌握指针在数组中使用的方法 通过本填空题,明白引用数组元素的方法除下标法外,也可以使用指针法,即通过指向数组元素的指针找到所需的元素,指针法能够使目标程序占用内存更少,运行速度更快 请按照要求完善程序,以确保其中运行结果满足题意要求。 提示:在定义数组a[ ]时,a实际上就是指向该数组第一个元素的一个常量指针(本身a不能做任何运算),通过将该指针地址赋值给指针p后,通过p的不断增加,即获得数组依次各元素的地址,但注意取元素时,要用到指针运算符* 结果:1+2+3+……+10=55 检查程序结果是否正确,尤其注意指针指向的位置是否合理(是一个定义过的位置,切不可使用指向未知区域的指针) 参考代码在备注中 ② 程序改错: 从“平台”上提供的代码文件test2_19.cpp中取代码,粘贴到编辑区中 实验目的:明白指针变量本身的内容和指向具体变量值的区别 编译上述代码,根据编译错误,修改程序,无错后进一步进行调试操作 温馨提示:理解指针变量本身实际上是装载变量的容器的编号,错误的关键在于何时应该使用指针变量本身,何时需要使用指针变量指向的具体变量值 修改后的参考程序代码见备注 2.设计性实验—①、②、③、⑤选择其中1个完成,④为选做 ①从键盘上任意输入10个整数存放在一维数组中,并将数组内容倒置后输出。要求用一维数组的指针实现 温馨提示:一维数组的指针操作可参考验证性实验的填空题和改错题,倒置的操作实际上就是数组首尾的两两交换,注意这个交换过程只需要走到数组的一半即可—参考代码见备注 ②编写一个程序,求出一个4行4列的二维数组的主对角线之和并输出。要求用二维数组的指针来实现 温馨提示:要让指针指向二维数组a[4][4],则应当把a[0] a[1] a[2] a[3]的值赋给指针变量,设置变量i来控制二维数组的行,内循环中判断p减去首地址a[i](差为列坐标)是否就是行i,这样即可判断该元素是否位于主对角线上,再用一个累加变量收集,最终得到对角线之和 ③编写一个程序,实现两个字符串的复制、比较、连接功能。要求:用指针对字符串操作,并且在实现字符串的复制、比较、连接功能时,不允许调用库函数;在输入和输出字符串时,要有输入、输出提示信息 温馨提示:基本思路同前次设计性实验部分的⑥,只是在字符串数组中的操作过程时,引用数组下标改为使用指针实现 ⑤从键盘上输入10个字符串,对这些字符串按照升序排列。要求用指针数组来实现 温馨提示:基本思路同前次设计性实验部分的②,输入10个字符串时,使用指针数组指向它们,引用字符串下标时,采用指针的方式完成 (选作)④编写程序,用动态数组实现将n个学生某课程的成绩存放在数组中,并计算其平均成绩。班级人数通过键盘输入。要求输出所有学生成绩和平均成绩,且有输入输出提示 温馨提示:动态数组指的是数组的大小初始并不确定,在程序运行的过程中动态的开辟生成,实现的方法要用到calloc(或malloc)函数,并用一个指针指向这个空间;注意在使用完毕后,程序本身不会对动态开辟的空间进行清理工作,所以一定要使用free函数将空间释放。 另,如果在C++环境中,可使用new和delete运算符进行空间的动态开辟 本题的算法思路略 本题的运行结果: #includestdio.h void main() { int a[10]; int *p; int temp; printf(请输入10个整数(用空格隔开):\n); for(p=a;pa+10;p++) scanf(%d,p); for(p=a;p(a+10/2);p++) //循环只需要进行到数组中的一半即可,这时已经完成整个前后交换了
您可能关注的文档
- 第2部分5-1 人口再生产、人口数量与环境、环境人口容量.ppt
- 第2部分6-2 旅游活动.ppt
- 第2部分5-2 人口素质、人口迁移与环境及中国的人口迁移.ppt
- 第2讲元件的创建及补间动画.ppt
- 第3.1 二维随机变量及其分布.ppt
- 第3.3--3.4立体的交线.ppt
- 第31讲 与圆有关的计算.ppt
- 第34讲 导线测量内业计算.ppt
- 第2部分1-3 工业生产活动与区位选择.ppt
- 第3个模块:VLAN定义-1-实现VLAN的经验.ppt
- 法律硕士联考专业基础课(非法学)-21-2 .pdf
- 泰豪集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版完整版.docx
- 2024国培计划个人研修计划(6篇) .pdf
- 2024年陕西省宝鸡市公开招聘警务辅助人员辅警笔试自考练习卷一含.pdf
- 精选最新版2020年大学期末思想道德修养与法律基础完整考题库(含.pdf
- 2024年浙江省嘉兴市公开招聘警务辅助人员辅警笔试模拟自测题A卷含答.pdf
- 瑞西光华佳苑总包施工招标1204(定稿).doc
- 职业健康与防护详细讲解培训课件(11.1).doc
- 都溪河综合治理项目部月度报告(7月份 ) .doc
- 湖北恒大建设工程有限公司简介1.doc
最近下载
- 2021年香薰服务合同.docx
- 《Python与数据分析应用》课件——第10章 数据分析工具Pandas.pptx VIP
- 战争狂人希特勒简介.ppt
- 家庭教育指导师试题库.doc
- -司法鉴定人执业能力评估业务理论知识考试题库(司法鉴定人考试试题及答案解析)-.docx VIP
- 病房急产应急预案演练脚本.docx VIP
- 生产项目准入及预算标准第六册主网修理项目准入及预算标准(预算分册).docx
- 2025新人教版语文七年级下册《第一单元》大单元整体教学设计[2022课标].pdf
- 电子商务文案创意与撰写:直播脚本编写PPT教学课件.pptx
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
文档评论(0)