




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组,新C 语言程序设计,5.1 一维数组,构造数据类型 数组 5.1.1一维数组的定义 一维数组的一般定义形式为: 类型标识符 数组名整型常量表达式; 例如: int a; int bl0; 注意事项: 数组名属于标识符,应遵循标识符命名规则。 数组名作为变量名不能与其它变量名相同。 数组的大小必须由常量或常量表达式定义 数组名如果出现在表达式中,它的值和含义是该数组首个元素的地址,是一个指针型常量。 数组名+n的值是数组中第n+1个元素的地址。 对数组名取地址,得到是整个数组的地址,其值虽然与数组首个元素地址值相同,但类型不同、含义不同。,5.1 一维数组,【例5.1】求变量int a和int b10占用内存的大小: 【例5.2】求变量的值、变量地址的值、数组名的值、数组名的地址: 【例5.3】求变量地址的值和加1后的值:,5.1 一维数组,5.1.2 一维数组元素的引用 下标法引用一维数组元素,形式如下: 数组名下标 注意事项: (1)一个数组元素实质上就是一个变量,代表内存中的一个存储单元,与相应类型的变量具有完全相同的性质。 (2)一个数组不能整体引用。 (3)C语言编译器并不检查数组元素的下标是否越界,即引用下标值范围以外的元素,如上例的a10,编译器不提示出错信息。但在程序运行时可能引起程序运行错误,所以应避免数组操作越界。 【例5.4】下标法数组元素使用示例。,5.1 一维数组,指针法引用数组元素,形式如下: *(数组元素地址) 【例5.5】指针法数组元素使用示例。,5.1 一维数组,5.1.3 一维数组的初始化 指针法引用数组元素,形式如下: *(数组元素地址) 初始化赋值的一般形式为: 类型标识符 数组名整型常量表达式=初值表; 其中,在中的各数据值即为数组各元素的初值,各值之间用逗号间隔,给定初值的顺序即为在数组元素在内存中的存放顺序。 【例5.6】数组初始化示例。 一维数组的几种初始化情形 完全初始化 部分初始化 省略数组长度的完全初始化,5.1 一维数组,5.1.4 程序举例 【例5.7】从键盘上给数组输入10个整数,求出该数组的最大值及最大值的下标并输出。 【例5.8】用冒泡排序法对数组中的元素进行从小到大进行排序。 冒泡排序算法说明,5.2 多维数组,5.2.1 多维数组的定义 在C语言中,从二维到多维数组本质上都是一维数组的扩展。 【例5.9】定义一个由4个元素组成,而这4个元素又分别是由3个整型变量组成的二维数组: int a43; 注意事项: 二维数组名如果出现在表达式中,它的值及其含义是该数组首个元素的地址。 数组名+n的值是数组第n+1个元素的地址。 对数组名取地址,得到的是整个数组的地址。 【例5.10】定义三个指针变量p1、p2、p3,分别保存例5.9中定义的a、a0、a00的地址 【例5.11】求数组元素占用内存的大小: 【例5.12】求变量地址的值和加1后的值,5.2 多维数组,5.2.2 多维数组元素的引用 多维数组的引用方式与一维数组的引用方式基本相同,可以使用指针也可以使用下标 【例5.13】多维数组元素的引用 【例5.14】下标法输入、输出二维整数组。 【例5.15】指针法输入、输出二维整数组。 【例5.16】指针法输入输出二维数组的各元素。,5.2 多维数组,5.2.3 多维数组的初始化 初始化一般形式为: 类型 数组名整型常量表达式1整型常量表达式2 整型常量表达式3=初值表; 多维数组的初始化方法。 完全初始化 部分初始化 省略数组长度的完全初始化 。,5.2 多维数组,5.2.4 程序举例 【例5.17】编程实现矩阵的转置(即行列互换)。 【例5.18】编程分别求矩阵的两个对角线上元素值之和。,5.3 字符数组与字符串,5.3.1 字符数组与字符串的关系 字符数组与字符串的关系 以字符串的方式处理文字信息主要好处: 可以知道有效字符的长度 有大量的字符串库函数可以使用 赋初值简便 【例5.19】输出一个字符数组中每个元素的ASCII码 注意事项: 使用C语言本身的字符串功能或C库函数提供的字符串处理功能,用户提供的必须也是字符串,即有效字符后面要有0做结束标志。 使用C语言本身的字符串功能或C库函数提供的字符串处理功能,返回的结果也都是字符串,即有效字符后面都有0 做结束标志。 用户定义的用来保存字符串的字符数组必须要大于被处理的字符串的长度,使用C语言本身的字符串功能或C库函数提供的字符串处理功能都不检查字符数组大小与字符串长度是否匹配。 字符串的长度不包括字符串末尾的0,所以保存字符串的字符数组中长度要大于等于字符串的长度加1。,5.3 字符数组与字符串,5.3.2 字符串的输入输出 使用scanf函数输入字符串 【例5.20】scanf输入字符串 使用printf函数输出字符串 【例5.21】printf输出字符串 使用gets函数输入字符串、 【例5.22】gets读入字符串 使用puts函数输入字符串 【例5.23】puts输出字符串,5.3 字符数组与字符串,5.3.3 字符串处理函数 strcat函数 【例5.24】字符串连接函数strcat的使用,本程序把初始化赋值的两个字符串连接起来。 strcpy函数 【例5.25】字符串拷贝函数strcpy。 strcmp函数 【例5.26】字符串比较函数strcmp的使用 strlen函数 【例5.27】字符串长度函数strlen的使用,5.3字符数组与字符串,5.3.4程序举例 【例5.28】输入一段篇文章并输出,文章中可能有空格和换行符,以$作为文章结束标标志。 【例5.29】输入一个长度小于100的字符串,统计该字符串中大写字母,小写字母,数字字符及其它字符的数量。 【例5.30】输入一个长度小于100的字符串,删除该字符串中所有的字符*。 【例5.31】输入一个长度小于100的字符串,将字符串中下标为奇数位置上的字母转为大写。 【例5.32】输入一个无符号的长整型数,将该数转换为倒序的字符串。,5.4 指针数组,5.4.1指针数组的定义与应用 指针数组的定义形式 数据类型 *指针数组名元素个数 指针数组的应用 【例5.33】将多个字符串按字典顺序输出 【例5.34】用指针数组处理二维数组 【例5.35】通常可用一个指针数组来指向一个二维数组。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省怒江州民族中学2024-2025学年高三上学期期末检测物理试卷(含解析)
- 浙江省洞头县2025年上半年事业单位公开遴选试题含答案分析
- 云南省鲁甸县2025年上半年事业单位公开遴选试题含答案分析
- 河北省容城县2025年上半年事业单位公开遴选试题含答案分析
- 河北省卢龙县2025年上半年事业单位公开遴选试题含答案分析
- 河北省涞源县2025年上半年事业单位公开遴选试题含答案分析
- 2025年度数据中心电力系统优化承包合同
- 2025年度防汛施工临时用电设施建设合同
- 2025年度文具店整体承包运营合同范本
- 2025版合同欺诈鉴定与下载服务许可协议
- GA 668-2006警用防暴车通用技术条件
- 一带一路战略课件
- A-level项目介绍(课堂)课件
- 《C语言程序设计》一等奖说课稿
- 飞机制造技术-知识点汇总
- (四级)劳动关系协调员理论备考题库(新600题)
- 消防验收备案表
- 现场勘查学(全套课件)
- 《网络综合布线技术》教学教案
- 洗煤厂安全安全生产岗位责任制(很全)
- MaxPlax噬菌体包装试剂盒中文说明书(epicentreofillumina)
评论
0/150
提交评论