C++课件:第1章 C++简单程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C++课件:第1章 C++简单程序设计.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+课件:第1章 C+简单程序设计 C+ 课件 简单 程序设计
- 资源描述:
-
1、1.1 C+语言概述语言概述1.2 基本数据类型和表达式基本数据类型和表达式1.3 数据的输入与输出数据的输入与输出1.4 程序的基本控制结构程序的基本控制结构 1.1.1 从从C到到C+ C+语言是从C语言发展演变而来的,因此在介绍C+语言之前,我们首先介绍一下C语言。C语言最初是美国贝尔实验室的戴尼斯M利奇(Dennis. M. Ritchie)在B语言基础上开发出来的,并于1972年在一台PDP11计算机上实现了最初的C语言。目前,比较流行的 C语言版本基本上都是以ANSI C为基础的。 C语言具有以下优点: 语言简洁灵活。 运算符和数据结构丰富,具有结构化控制语句,程序执行效率高。 与
2、高级语言相比,具有可以直接访问物理地址,能进行位运算的优点。 与汇编语言相比,又具有良好的可读性和可移植性。 尽管如此,C语言毕竟是一个面向过程的编程语言,因此与其它面向过程的编程语言一样,已经不能满足运用面向对象方法开发软件的需要。C+语言便是在C语言基础上为支持面向对象的程序设计而研制的一个通用的程序设计语言,它是在1980年由贝尔实验室的Bjarne Stroustrup博士创建的。C+包含了整个C,C是建立C+的基础。C+包括C的全部特征、属性和优点,同时,C+添加了对面向对象编程的完全支持。 1.1.2 一个简单的C+程序 现在,我们来看一个简单的程序实例。例1-1是一个面向过程的程
3、序,我们只是通过这个程序看一看,计算机程序是个什么样子,人们如何通过程序来控制计算机的操作。 【例1-1】 一个简单的C+程序例题。 #include void main(void) couthello!n; coutI am a student.n; 这里main是主函数名,函数体用一对大括号括住。C+程序由函数构成。在C+程序中,必须有且只能有一个名为main( )的函数,因为程序总是从main( )开始执行的。main( )函数之前的void表示main( )函数没有返回值(关于函数的返回值将在第2章介绍)。程序由语句组成,每条语句由分号“;”作为结束符。cout是一个输出流对象,它是C
4、+系统预定义的对象,其中包含了许多有用的输出功能。输出操作由操作符“”来表达,其功能是将紧随其后的双引号中的字符串输出到标准输出设备(显示器)上。在第9章中将对输出流做详细介绍,在这里,读者只要知道这段程序可以实现在显示器上输出 hello! I am a student. 就可以了。 程序中的 include iostream.h 的作用是在编译之前,将文件iostream.h中的代码嵌入到程序中该指令所在的地方。作为程序的一部分, iostream.h文件中声明了程序所需要的输入和输出操作的有关信息。cout和“”操作的有关信息就是在该文件中声明的。由于这类文件常被嵌入在程序的开始处,所以
5、称之为头文件。在C+程序中如果使用了系统中提供的一些功能,就必须嵌入相关的头文件。 当我们编写完程序文本后,要将它存储为后缀为 .cpp的文件,此文件称为C+源文件,再经过编译系统的编译、连接后,最后产生出后缀为 .exe的可执行文件。通过以上程序可以看出,C+的程序结构由编译预处理、程序主体和注释组成,其特点如下: 每个以符号“”开头的行,称为编译预处理语句。编译预处理是C+组织程序的工具。有关include语句的作用及其使用方法,将在第5章进行详细介绍。 一个C+程序可以由一个或多个函数组成。任何一个完整的C+程序,都必须包含一个且只能包含一个名为main( )的函数,程序总是从main(
6、 )函数开始执行,而不管main( )函数处于程序的什么位置。 函数体应由“”括起来。函数体一般包括变量的定义部分和执行部分。所有的变量要先定义后使用。 注释是程序员为读者写的说明,是提高程序可读性的一种手段。一般可将注释分为两种:序言注释和注解注释。前者用于程序开头,说明程序或文件的名称、用途、编写时间、编写人以及输入、输出等,后者用于程序难懂的地方。 C+的注释为“/”之后的内容,直到换行。注释仅供阅读程序使用,是程序的可选部分。在生成可执行程序之前,C+忽略注释,并把每个注释都视为一个空格。另外,C+还兼容了C语言的注释。 每个语句和数据定义的后面都要有一个分号。这一点初学者尤其要注意。
7、 main函数名和关键字(如void、int、float等)都是小写字母构成。C+程序中的标识符是大小写“敏感”的,所以,在书写标识符的时候要注意其大小写。 1.1.3 字符集 C+语言的字符集由下述字符构成: 英文字母:AZ,az 数字字符:09 特殊字符:空格!#%&*_(下划线)+=:- / ? ;. ( ) 1.1.4 词法记号 词法(语句)记号是构成语句的最小单元,这里我们介绍C+的标识符、关键字、文字、运算符、分隔符和空白符。 1标识符 标识符是程序员声明的字符序列,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。C+标识符的构成规则如下: 以大写字母、小写字母或下划
8、线(_)开始。 可以由大写字母、小写字母、下划线(_)或数字09组成。 大写字母和小写字母代表不同的标识符。 不能是C+关键字。 例如,Richad、red_line、_Nol都是合法的标识符,而No.1、1st则是不合法的标识符。 在标识符的命名中要特别注意:C+是大小写敏感的,即大写和小写字母被认为是不同的字母。例如,标识符something、Something、SOMETHING、SomeThing都被视为不同的名字。 2. 关键字 关键字是C+预定义好的标识符,这些标识符对C+编译系统有着特殊的含义。如例1-1中的void,后面将逐步介绍到的数据定义语句int、float、long及d
9、ouble等等,它们都是C+的关键字。 3. 文字 文字是在程序中直接使用符号表示的数据,包括数字、字符、字符串和布尔文字。在本章1.2节中将详细介绍各种文字。 4. 操作符(运算符) 操作符是用于实现各种运算的符号,例如、*、等。在本章1.2节及后续章节中将详细介绍各种操作符。 5. 分隔符 分隔符用于分隔各个词法记号或程序正文。C+的分隔符如下: ( ) ,:; 这些分隔符不表示任何实际的操作,仅用于构造程序。例如,“ ”用于分隔函数体,“;”作为语句的分隔符,其它分隔符的具体用法会在以后相应的章节中介绍。 6. 空白符 在程序编译时的词法分析阶段将程序正文分解为词法记号和空白。空白是空格
10、、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称。 空白符用于指示词法记号的开始和结束位置,但除了这一功能之外,其余的空白将被忽略。因此,C+程序可以不必严格地按行书写,凡是可以出现空格的地方,都可以出现换行。例如: int j; 与 int j; 或与 int j ; 是等价的。但是尽管如此,我们在书写程序时,仍要力求清晰、易读。因为一个程序不仅要让机器执行,还要让人阅读的同时便于修改、维护。 程序处理的对象是数据。数据有许多种类,例如数值数据、文字数据、图像数据以及声音数据等,但其中最基本也是最常用的是数值数据和文字数据。 无论什么数据,在对其进行处理时都要先
11、存放在内存中。显然,不同类型的数据在内存中的存放格式也不相同,甚至同一类数据,为了处理方便,也可以使用不同的存储格式。例如,数值数据其存储格式又可以分为整型、长整型、浮点型和双精度型等几种类型;文字数据也可以分为单个字符和字符串。 我们编写计算机程序的目的,就是为了解决客观世界中的现实问题。所以,高级语言中提供了丰富的数据类型和运算符。C+中的数据类型分为基本类型和非基本类型,见图1-1。基本类型是C+编译系统内置的,非基本类型也称为用户定义数据类型,即用户自己定义的数据类型,本节我们首先介绍基本数据类型。图1-1 C+ 的数据类型 1.2.1 基本数据类型 一个程序要运行,就要先描述算法。描
12、述一个算法应先说明算法要用的数据,数据以变量或常量的形式来描述。每个变量或常量都有数据类型。 变量是存储信息的单元,它对应于某个内存空间。为了便于描述,计算机高级语言中都用变量名来表示其内存空间,所以,程序能在变量中存储值和取出值。 在定义变量时,说明变量名和数据类型(如int、float)就是告诉编译器要为变量分配多少空间,以及变量中要存储什么类型的值。数据类型的定义确定了其内存所占空间大小,也确定了其表示范围。表1-1列出了基本数据类型的取值范围。 在不同的系统中,每个变量类型所占的字节数目可能有所不同,表1-1里列出的是在VC+6.0编译环境中的情况(也是目前大多数编译环境中的情况)。表
13、1-1 常用基本数据类型描述 类 型说 明长度表 示 范 围备 注bool逻辑型1false,true char字符型1-128127-27(27-1)unsigned char无符号字符型10255 0(28-1)short短整形2-3276832767-215(215-1)unsigned short无符号短整型20655350(216-1)int整型4- 2 1 4 7 4 8 3 6 4 8 2147483647-231(231-1)unsigned int无符号整型4042949672950(232-1)long长整型4- 2 1 4 7 4 8 3 6 4 8 2147483647
14、-231(231-1)unsigned long无符号长整型4042949672950(232-1)float浮点型4-3.410383.410387位有效位double双精度8-1.7103081.71030815位有效位long double长双精度8-1.7103081.71030815位有效位 1.2.2 常量 所谓常量,是指在程序运行的整个过程中其值始终不可改变的量。例如,68、3.5、A、hello! 都是常量。常量有以下几种。 1整型常量 整型常量即以数码形式出现的整数,包括正整数、负整数和零。整型常量的表示形式有十进制、八进制和十六进制。十进制整型常量的一般形式与数学中我们所熟
15、悉的表示形式是一样的: 若干个09的数字即符号加若干个09的数字,但数字部分不能以0开头,正数前边的正号可以省略。 八进制整型常量的数字部分要以数字0开头,一般形式为 0若干个07的数字 十六进制整型常量的数字部分要以ox开头,一般形式为 0 x若干个09的数字及AF的字母(大小写均可) 整型常量可以用后缀字母L(或l)表示长整型,用后缀字母U(或u)表示无符号型,也可同时使用后缀L和U(大小写无关)。 例如,123、0123、- 0 x5af都是合法的常量形式 2实型常量 实型常量又称浮点小数。在C+语言中,实型常量只使用十进制表示,有两种表示形式:一般形式和指数形式。一般形式:例如,16.
16、5、-13.5等。 指数形式:例如,0.565E2表示0.565102,-34.4E-3表示-34.410-3,其中,字母E可以大写或小写。当以指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。例如,.234E-1和12.E2都是正确的,但不能写成E-3这种形式。 实型常量默认为double型,如果后缀为F(或f)则为float型。 3. 字符常量 字符常量是单引号括起来的一个字符,如 a、G、? 、$ 等。 另外,还有一些字符是不可显示字符,也无法通过键盘输入,例如响铃、换行、制表符、回车等等。这样的字符常量该如何写到程序中呢?C+提供了一种称为转义序列的表示方法来表示这
17、些字符,表1-2列出了C+预定义的转义序列。表1-2 C+预定义的转义序列字符形式ASCII码(十六进制)功 能n0A换行t09横向跳格(即跳到下一个输出区)v0B竖向跳格b08退格r0D回车a07响铃5C反斜杠字符“”27单引号22双引号dddddd(八进制)1到3位八进制数所代表的字符xhhHh1到2位十六进制数所代表的字符 4. 字符串常量 字符串常量简称字符串,是用一对双引号括起来的字符序列。例如,China、1234 都是字符串常量。字符串与字符是不同的,字符串在内存中的存放形式是:按串中字符的排列次序顺序存放对应字符的ASCII码,每个字符占一个字节,并在字符串末尾添加 0作为结束
18、标记。图1-2是字符数据及其存储形式(十六进制)的举例。从图1-2中可以看出,字符串 a 与字符 a 是不同的。 5. 布尔型常量 布尔型常量只有两个:false(假)和true(真)。 图1-2 字符数据的存储形式 1.2.3 变量 在程序的执行过程中其值可以变化的量称为变量,变量需要用标识符来命名。就像常量具有各种类型一样,变量也具有相应的类型。变量在使用之前需要首先声明其类型和名称。在同一语句中可以声明同一类型的多个变量。变量声明的形式如下: 变量名1,变量名2,变量名n; 在程序运行时系统会给每一个声明过的变量分配内存空间,用于存放对应类型的数据,因而变量名也就是对相应内存单元的命名。
19、在声明一个变量的同时,也可以给它赋以初值,而这实质上就是给对应的内存单元赋值。例如: int a=3; float f=3.45; char c=b; 有一点值得注意,虽然C+ 中有字符串常量,却没有字符串变量。那么,用什么类型的变量来存放字符串呢?在后面的章节,我们会介绍用字符数组来存储字符串常量。 1.2.4 引用 程序设计语言的进化使用户从被迫解决细节问题中解脱出来,而转向允许用户花更多的时间来考虑“大的蓝图”。根据这种精神,C+包含了一个称为引用的特性。本小节仅仅介绍了引用的基本概念,有关更详细的内容在后面章节会陆续介绍,到时读者就会掌握引用的使用方法。 引用是个别名,当建立引用时,程
20、序用另一个变量或对象(目标)的名字来对其进行初始化。自此,引用作为目标的别名而使用,对引用的改动实际是对目标的改动。 引用的声明形式为 &引用名=目标名 或 & 引用名=目标名 其中: 引用名是为引用型变量所起的名字,它必须遵循变量的命名规则。 前面的数据类型就是它所引用目标的数据类型。 在此要特别说明的是,引用在声明时必须进行初始化,即指出该引用是哪一个对象的别名。这里的目标名可以是变量名,也可以是以后将要介绍的对象名。而且引用一旦声明,就以对应目标的内存单元地址作为自己的地址,并且不再改变,从一而终。 例如,引用一个整型变量: int someInt; int& rInt=someInt;
21、 声明rInt是对整数的引用,初始化为引用someInt。在这里,要求someInt已经声明或定义。 引用不是值,不占存储空间。声明引用时,目标的存储状态不会改变。 【例1-2】 建立和使用引用例题。#includevoid main( )int someInt;int& rInt=someInt;someInt=6;coutsomeInt:someIntendl;coutrInt:rIntendl;rInt=7;coutsomeInt:someIntendl;coutrInt:rIntendl;程序运行结果为someInt:6rInt:6someInt:7rInt:7 在上述程序中,引用rI
22、nt用someInt来初始化。以后,无论改变someInt或rInt,实际上都是指someInt,两个的值都一样。对引用的理解可以见图1-3。图1-3 引用与变量的关系 6 someInt rInt 1.2.5 运算符与表达式 在任何高级程序设计语言中,表达式都是最基本的组成部分,也就是说,程序中的大部分语句是由表达式构成的。通常,当我们要进行某种计算时,都要首先列出算式,然后求解其值。利用C+语言编写程序求解问题时也是这样。 可以简单地将表达式理解为用于计算的公式,它由运算符(例如+、-、*、)、运算对象(也称操作数,可以是常量、变量等等)和括号组成。执行表达式所规定的运算,所得到的结果值便
23、是表达式的值。例如,ab、x/y都是表达式。 表达式在使用时要注意以下几点: 一个常量或标识对象的标识符是一个最简单的表达式,其值是常量或对象的值。 一个表达式的值可以用来参与其它操作,即用作其它运算符的操作数,这就形成了更复杂的表达式。 包含在括号中的表达式仍是一个表达式,其类型和值与未加括号时的表达式相同。 C+语言中定义了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等等,有些运算符需要两个操作数,使用形式为 运算符 运算符具有优先级与结合性。当一个表达式包含多个运算符时,先进行优先级高的运算,再进行优先级低的运算。如果表达式中出现了多个相同优先级的运算,运算顺序就要看运算符的结合性
24、了。所谓结合性,是指当一个操作数左右两边的运算符优先级相同时,按什么样的顺序进行运算,是自左向右,还是自右向左。例如,我们熟悉的算术表达式6+5-2中,“+”、“-”是同级运算符,那么是先算5-2,还是先算6+5?这就取决于算术运算符的结合性。由于算术运算符的结合性为自左向右,所以应先算6+5,然后再算11-2。 1算术运算符与算术表达式 C+中的算术运算符包括基本的算术运算符和自增、自减运算符。由算术运算符、操作数和括号构成的表达式称为算术表达式。 基本算术运算符有:+(加)、-(减或负号)、*(乘)、/(除)、%(取余)。其中“-”作为负号时为一元运算符,其余都为二元运算符。这些基本算术运
25、算符的意义与数学中相应符号的意义是一致的。它们之间的相对优先级关系与数学中的也是一致的,即先乘除、后加减,同级运算自左向右进行。使用算术运算符要注意以下几点: “%”是取余运算,只能用于整型操作数。表达式a%b的结果为a/b的余数。“%”的优先级与“/”相同。 当“/”用于两整型操作数相除时,其结果取商的整数部分,小数部分被自动舍弃。因此,表达式1/2的结果为0,这一点需要特别注意。 C+中的“+”(自增)、“-”(自减)运算符是使用方便且效率很高的两个运算符,它们都是一元运算符。这两个运算符都有前置和后置两种使用形式 (例如+i与i-)。 无论写成前置或后置的形式,它们的作用都是将操作数的值
展开阅读全文