- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 C++语言的复合数据类型 本章要点: ? 指针的定义和使用 ? 引用的定义和使用 ? 数组的定义和使用 ? vector容器的定义和使用 ? 字符串的定义和使用 ? 枚举的定义和使用 4.1 循序渐进学理论 4.1.1 指针的定义和使用 4.1.4 vector容器的定义和使用 4.1.5 字符串的定义和使用 4.1.6 枚举的定义和使用 4.2 典型实例练能力 4.2.1 典型实例一: 根据货币总值计算最少的人民币张数 【实例题目】 简便起见,假设有下列7种面值的人民币:100元,50元,20元,10元,5元,2元和1元。任意输入一个整数m,计算并显示如何使用最少的人民币纸张,使货币总值为m。 例如,输入数据为193,则最少需要6张人民币纸张:196 = 1*100 + 1*50 + 2*20 + 1*5 + 1*1 4.2.2 典型实例二:计算学生的平均成绩 【实例题目】 编写一个程序实现以下功能:某班有M名同学,本学期开了N门课,期末考试后,分别统计每个学生的平均分。简便起见,假设M=3,N=4,成绩为整数。 要求:采用指针读写数组中的元素。 输入:学生总数M和课程数目N,对于每个学生,输入学号和各课的成绩。 4.2.3 典型实例三:智者生存 【实例题目】 17世纪法国数学家加斯帕在《数学的游戏问题》一书中提出了有趣的约瑟问题:“15名基督教徒和15名异教徒同船航行,途中风浪大作,危机万分,只有将船上一半的人投入海中,其余的人才能幸免。于是,这30个人围成一圈,由第一个人起报数,每数至第9人便把他投入大海,然后从1开始重新报数,第9人又被投入大海,依次类推,直至船上剩下15人为止。问题是如何排法才能使被投入海中的全是异教徒?” 要求:采用vector容器解决这个问题。 4.3 上机练习重应用 4.3.1 上机练习一:合并两个有序数组 【练习题目】 假设存在以下两个数组A和B,各个数组中的元素已经按照升序排列。编写一个程序,合并数组A和B,形成一个新数组C,并使数组C中的元素仍按升序排列。 int A[10]={-5,-2,0,4,16,23,55,80}; int B[10]={-13,-4,5,30,55,68,100,120}; * * 1. 指针的概念 指针变量是一种特殊的变量,用于保存某个变量、对象或者函数的地址值。可以通过指针对那些存放在存储器中的数据进行读写操作。 2. 指针的定义 指针的定义格式如下(方括号“[ ]”中的内容是可选的): [存储类型] 类型 *指针名 [= 初值] 例如: int *ip1, *ip2; // 定义指向int型对象的指针ip1和ip2 每个指针都必须要指定相关的数据类型,这对指针来说是非常重要的,因为在指针变量中存放的内容是地址,而不是具体的数据,编译器只能根据指针的数据类型来决定如何操作该指针指向的数据。 3. 指向常量的指针和常量指针的定义 指向常量的指针本身并不是常量,而是指向一个常量对象,通常用作函数的形参,确保传递给函数的对象在函数体内不会被改变。 例如: const double *dp; // dp是指向double型常量的指针 也可以定义一个常量指针,其自身是常量,不能被改变,但是可以通过它指向其他的常量或者变量。常量指针的定义看上去有些别扭,例如: const double *const dp1; double *const dp2; 4. 指针变量的赋值 指针在没有被赋值前是不能被使用的,给指针变量赋值有三种形式:取地址符“”赋值、指针间赋值和数组名或者函数名赋值。C++语言规定“数组名”和“函数名”代表数组或函数的地址。下面是一些为指针赋值的示例: int ival = 2938; int *ip1 = 0; int *ip2 = ival; ip1 = ip2; // ① 注意:指针不能被赋予不是地址的值,也不能被赋予与该指针类型不同的其他类型的对象的地址,这些都会导致编译错误。有
您可能关注的文档
- 第4节 结构化查询语.ppt
- 第4节 面向对象(继承).ppt
- 第4节 使用修改命令编辑对象.ppt
- 第4节 数据库表.ppt
- 第4节 数据库管理.ppt
- 第4节 数据库中的表.ppt
- 第4节-OLAP-在线联机分析.ppt
- 第4节SQL中的数据处理语言.ppt
- 第4节TSQL语言1.ppt
- 第4节第1次课(第1节一般构造第二节轴心受压构件截面承载力计算).ppt
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
文档评论(0)