C++程序设计教程C++程序设计教程课件

上传人:494895****12427 文档编号:240830863 上传时间:2024-05-12 格式:PPT 页数:82 大小:533.01KB
返回 下载 相关 举报
C++程序设计教程C++程序设计教程课件_第1页
第1页 / 共82页
C++程序设计教程C++程序设计教程课件_第2页
第2页 / 共82页
C++程序设计教程C++程序设计教程课件_第3页
第3页 / 共82页
点击查看更多>>
资源描述
C+的语句和简单的程序设计的语句和简单的程序设计C+的语句和简单的程序设计主要内容:主要内容:程序结构顺序、选择、重复三大结构;C+的各种语句(语法、语义、用例);程序设计风格、方法与技巧简介。重点:重点:程序结构程序结构if if语句语句各种循环语句各种循环语句主要内容:程序结构顺序、选择、重复三大结构;注意:本章的内容重在程序设计实践。注意:本章的内容重在程序设计实践。课堂时数:课堂时数:8989学时学时 上机时数:上机时数:4 4学时学时 课外上机时数:课外上机时数:4 4学时学时 难点:难点:if语句的嵌套 三种循环语句的异同点三种循环语句的异同点 各种语句和程序结构的综合应用。各种语句和程序结构的综合应用。课时安排:课时安排:注意:本章的内容重在程序设计实践。课堂时数:89学时2.1C+的符号系统的符号系统主要讨论主要讨论主要讨论主要讨论C+C+C+C+的字符集和标识符的构词规则。的字符集和标识符的构词规则。的字符集和标识符的构词规则。的字符集和标识符的构词规则。1.C+的字符集的字符集(1)英文字母,英文字母,AZ,az(必须区分大小写)。(必须区分大小写)。(2)数字字符:数字字符:09。(3)运算符,例如:运算符,例如:+、-、*、/、%,等等。,等等。(4)标点符号,例如:,、;和各种括号。标点符号,例如:,、;和各种括号。(5)其他符号,例如下划线其他符号,例如下划线_、美元符号、美元符号$、井号、井号#等。等。C+C+的的字字符符集集是是ASCIIASCII字字符符集集的的子子集集,包包括括以以下下几几类字符:类字符:2.1C+的符号系统主要讨论C+的字符集2.标识符标识符例如:给变量、例如:给变量、函数函数和和自定义类型自定义类型命名。命名。name变量名变量名max()max是函数名是函数名标识符是由字符集中的若干个字符构成的标识符是由字符集中的若干个字符构成的“程序单词程序单词”,用来标识程序中的各种语法成分用来标识程序中的各种语法成分,也即给各种语法成分命名。也即给各种语法成分命名。p用途用途2.标识符例如:给变量、函数和自定义类型命q不能与系统保留字同名;不能与系统保留字同名;q尽量做到尽量做到“见名知义见名知义”。p组成标识符的字符只能是:字母、数字、下划线;组成标识符的字符只能是:字母、数字、下划线;q标识符的首字符不能是数字符,中间不能出现空格标识符的首字符不能是数字符,中间不能出现空格字符;字符;q标识符的长度(字符数)是任意的,但一般仅前头标识符的长度(字符数)是任意的,但一般仅前头31个字符有效;个字符有效;p构词规则构词规则标识符(标识符(2)不能与系统保留字同名;尽量做到“见名知义”。组例例2-1AB1,ab1,Rec_Count,RecCount均是合法的标识均是合法的标识符。符。注意注意AB1与与ab1如果同时用在同一个程序中,是两个不如果同时用在同一个程序中,是两个不同的标识符。同的标识符。例例2-21a,%name,$addr,RecCount均是非法的标识符。均是非法的标识符。为什么?pp 实例实例标识符(标识符(3)例2-1为什么?实例标识符(3)3 3系统保留字系统保留字例例 2-3 2-3 intint、floatfloat数据类型描述符(也称为类型名)数据类型描述符(也称为类型名)ifif、for for 语句成分描述符。语句成分描述符。ANSIC设置设置32个保留字,个保留字,ANSIC+在此基在此基础上增加了础上增加了29个保留字。(个保留字。(P535)保留字保留字保留字保留字是系统定义的是系统定义的是系统定义的是系统定义的特殊标识符特殊标识符特殊标识符特殊标识符(专用词汇)。(专用词汇)。(专用词汇)。(专用词汇)。通常用来作为通常用来作为通常用来作为通常用来作为数据类型描述符数据类型描述符数据类型描述符数据类型描述符(类型名),(类型名),(类型名),(类型名),语句成分语句成分语句成分语句成分描述符描述符描述符描述符等。等。等。等。3系统保留字例2-3ANSIC2.2 C+2.2 C+的基本数据对象的基本数据对象1概述概述 程程程程序序序序运运运运行行行行时时时时所所所所建建建建立立立立和和和和处处处处理理理理的的的的数数数数据据据据称称称称为为为为数数数数据据据据对对对对象象象象。它它它它分分分分为为为为两两两两大大大大类类类类:程程程程序序序序员员员员定定定定义义义义的的的的数数数数据据据据对对对对象象象象和和和和系系系系统统统统定定定定义义义义的的的的数据对象数据对象数据对象数据对象。q 程程序序员员定定义义的的数数据据对对象象:由由程程序序员员通通过过说说明明语语句句程程序序员员定定义义的的数数据据对对象象:由由程程序序员员通通过过说说明明语语句句显显显显式式式式创创创创建建建建和和和和控控控控制制制制的的的的常常常常量量量量、简简简简单单单单变变变变量量量量、数数数数组组组组、文文文文件件件件等等等等。其中常量和简单变量称为基本数据对象。其中常量和简单变量称为基本数据对象。其中常量和简单变量称为基本数据对象。其中常量和简单变量称为基本数据对象。q 系系系系统统统统定定定定义义义义的的的的数数数数据据据据对对对对象象象象:指指指指由由由由虚虚虚虚拟拟拟拟机机机机建建建建立立立立起起起起来来来来,用用用用于于于于运运运运行行行行事事事事务务务务管管管管理理理理的的的的数数数数据据据据对对对对象象象象,例例例例如如如如运运运运行行行行栈栈栈栈(运运运运行行行行期期期期堆堆堆堆栈栈栈栈)、子程序活动记录子程序活动记录子程序活动记录子程序活动记录、文件缓冲区文件缓冲区文件缓冲区文件缓冲区以及以及以及以及内存空闲区表内存空闲区表内存空闲区表内存空闲区表等。等。等。等。2.2C+的基本数据对象1概述2.数据对象的重要属性数据对象的重要属性 名即指数据对象的名称,是数据对象的外部标记,名即指数据对象的名称,是数据对象的外部标记,名即指数据对象的名称,是数据对象的外部标记,名即指数据对象的名称,是数据对象的外部标记,便于实现便于实现便于实现便于实现“按名存取按名存取按名存取按名存取”。注意:任何一个变量不可以没有名字。注意:任何一个变量不可以没有名字。注意:任何一个变量不可以没有名字。注意:任何一个变量不可以没有名字。p 类型类型p 名名类型是数据对象的基本属性,例如整型、字符型等。类型是数据对象的基本属性,例如整型、字符型等。类型是数据对象的基本属性,例如整型、字符型等。类型是数据对象的基本属性,例如整型、字符型等。注意:一个确定的数据对象不可以没有类型!注意:一个确定的数据对象不可以没有类型!注意:一个确定的数据对象不可以没有类型!注意:一个确定的数据对象不可以没有类型!类型类型、名名(称)、(称)、位置位置和和值值是任何一个数据对象是任何一个数据对象所具有的重要属性。所具有的重要属性。2.数据对象的重要属性名即指数据对象的名称pp 值值值值注注注注意意意意:一一一一个个个个数数数数据据据据对对对对象象象象在在在在其其其其生生生生存存存存期期期期中中中中,属属属属性性性性一一一一般般般般不不不不会会会会改改改改变变变变,但绑定是可以动态改变的。但绑定是可以动态改变的。但绑定是可以动态改变的。但绑定是可以动态改变的。2.数据对象的重要属性数据对象的重要属性(2)pp 位置位置位置位置 位位位位置置置置是是是是一一一一种种种种绑绑绑绑定定定定,是是是是指指指指数数数数据据据据对对对对象象象象所所所所分分分分配配配配到到到到的的的的内内内内存存存存地地地地址址址址。这这这这种种种种绑绑绑绑定定定定可可可可以以以以由由由由虚虚虚虚拟拟拟拟机机机机的的的的存存存存储储储储管管管管理理理理例例例例程程程程改改改改变变变变,因因因因此此此此属于动态绑定。属于动态绑定。属于动态绑定。属于动态绑定。值是一种绑定,该绑定通常以赋值操作实现,当然值是一种绑定,该绑定通常以赋值操作实现,当然值是一种绑定,该绑定通常以赋值操作实现,当然值是一种绑定,该绑定通常以赋值操作实现,当然其它操作,例如数据对象的输入操作也可以实现值的绑其它操作,例如数据对象的输入操作也可以实现值的绑其它操作,例如数据对象的输入操作也可以实现值的绑其它操作,例如数据对象的输入操作也可以实现值的绑定。定。定。定。值注意:一个数据对象在其生存期中,属性一般不会改变,但绑定3常量和变量常量和变量1)常量)常量pp 什么叫常量什么叫常量什么叫常量什么叫常量通常直接用常量的值作为常量的名字。通常直接用常量的值作为常量的名字。通常直接用常量的值作为常量的名字。通常直接用常量的值作为常量的名字。即指即指即指即指程序运行过程中,其值不会改变的数据对象。程序运行过程中,其值不会改变的数据对象。程序运行过程中,其值不会改变的数据对象。程序运行过程中,其值不会改变的数据对象。在程序生存期中被在程序生存期中被在程序生存期中被在程序生存期中被永久地赋予固定值永久地赋予固定值永久地赋予固定值永久地赋予固定值的数据对象。的数据对象。的数据对象。的数据对象。pp 常量的名常量的名常量的名常量的名例如,整型常量名例如,整型常量名例如,整型常量名例如,整型常量名100100表示值为表示值为表示值为表示值为100100的常量。的常量。的常量。的常量。常常常常量量量量和和和和简简简简单单单单变变变变量量量量属属属属于于于于基基基基本本本本数数数数据据据据对对对对象象象象,是是是是程程程程序序序序中中中中最最最最常常常常出现的语法成分。出现的语法成分。出现的语法成分。出现的语法成分。3常量和变量1)常量什么叫常量引入符号常量的目的有以下几点:引入符号常量的目的有以下几点:例例2-4#defineMax10000,或或constMax=10000#definepi3.1415926,或或constpi=3.1415926Max和和pi都是符号常量,其名与值是不一样的。都是符号常量,其名与值是不一样的。其中,第其中,第3点是最重要的。点是最重要的。便于记忆便于记忆;便于修改便于修改;增强程序的可读性增强程序的可读性。我我我我们们们们还还还还可可可可以以以以用用用用特特特特定定定定的的的的标标标标识识识识符符符符来来来来作作作作为为为为常常常常量量量量的的的的名名名名字字字字,这种常量称为这种常量称为这种常量称为这种常量称为“符号常量符号常量符号常量符号常量”。常量和变量常量和变量(2)pp 符号常量符号常量符号常量符号常量引入符号常量的目的有以下几点:例2-42 2)变量)变量 程程程程序序序序中中中中,由由由由程程程程序序序序员员员员显显显显式式式式声声声声明明明明的的的的数数数数据据据据对对对对象象象象,其其其其值值值值可可可可以以以以在在在在程序运行过程中通过赋值操作、输入操作进行修改程序运行过程中通过赋值操作、输入操作进行修改程序运行过程中通过赋值操作、输入操作进行修改程序运行过程中通过赋值操作、输入操作进行修改。即数据对象和值之间的绑定在其生存期中可以改变。即数据对象和值之间的绑定在其生存期中可以改变。即数据对象和值之间的绑定在其生存期中可以改变。即数据对象和值之间的绑定在其生存期中可以改变。简简而而言言之之:程程序序运运行行过过程程中中,值值可可以以改改变变的的量(数据对象),称为变量。量(数据对象),称为变量。常量和变量常量和变量(3)p 什么叫变量什么叫变量2)变量程序中,由程序员显式声明的数据对象,其值可以在例例2-5下面的下面的C+程序段包含着对变量的显式声明和动程序段包含着对变量的显式声明和动态赋值。态赋值。说明:说明:(1 1)x x,y y被声明成整型变量,被声明成整型变量,c1c1被声明成字符型变量;被声明成字符型变量;(2 2)x x和和c1c1通过键盘输入方式被赋值,而通过键盘输入方式被赋值,而y y则在赋值表达则在赋值表达式中被赋值。式中被赋值。intx,y;charc1;cinxc1;y=x*5;变量的显式变量的显式声明声明变量的显式变量的显式动态赋值动态赋值例2-5下面的C+程序段包含着对变量的显式声明和动态赋值 例例例例如如如如,例例例例2-52-5中中中中的的的的x x,y y,c1c1都都都都是是是是标标标标识识识识符符符符,它它它它们们们们分分分分别别别别代代代代表不同的变量。表不同的变量。表不同的变量。表不同的变量。C+C+C+C+程程程程序序序序中中中中,以以以以显显显显式式式式说说说说明明明明的的的的方方方方式式式式来来来来声声声声明明明明变变变变量量量量,称称称称为为为为变量的建立。(参见变量的建立。(参见变量的建立。(参见变量的建立。(参见2.62.62.62.6)p 变量的命名变量的命名3常量和变量常量和变量(4)用标识符予以命名。用标识符予以命名。用标识符予以命名。用标识符予以命名。p 变量的建立变量的建立 例例例例如如如如,例例例例2-52-5中中中中的的的的intintx,y;x,y;是是是是一一一一个个个个变变变变量量量量说说说说明明明明语语语语句句句句,该该该该语语语语句声明了句声明了句声明了句声明了x,yx,y二个整型变量。二个整型变量。二个整型变量。二个整型变量。intx,y;charc1;cinxc1;y=x*5;例如,例2-5中的x,y,c1都是标识符,它们分别代2.3数据类型概述数据类型概述1数据类型的定义数据类型的定义 数数据据类类型型是是一一个个由由数数据据对对象象以以及及创创建建和和操操纵纵它们的操作的集合所组成的类它们的操作的集合所组成的类。数数据据类类型型是是程程序序设设计计语语言言的的一一个个重重要要概概念念和和重要内容。重要内容。本本小小节节,我我们们仅仅介介绍绍数数据据类类型型的的定定义义、涵涵义义及及数数据据类类型型概概述述,有有关关数数据据类类型型的的详详细细内内容容在在第三章讨论。第三章讨论。2.3数据类型概述1数据类型的定义数据 数数据据类类型型的的概概念念是是十十分分抽抽象象的的,但但我我们们可可以以从涵义上去理解它,数据类型有以下三个涵义:从涵义上去理解它,数据类型有以下三个涵义:数据类型概述(数据类型概述(2)2数据类型的涵义数据类型的涵义p 确定数据的值域(数据取什么值);确定数据的值域(数据取什么值);p 规定允许对数据对象施加的运算(操作);规定允许对数据对象施加的运算(操作);p规定数据对象的存储结构和存储方式。规定数据对象的存储结构和存储方式。数据类型的概念是十分抽象的,但我们可以从涵义3数据类型的数据类型的的重要性的重要性qq 每一个语言都有一个原始(标准)数据类型每一个语言都有一个原始(标准)数据类型集,此外也应提供定义新数据类型的机制。集,此外也应提供定义新数据类型的机制。数据类型概述(数据类型概述(3)qq 一个语言所提供的标准数据类型集是否完善,一个语言所提供的标准数据类型集是否完善,定义新数据类型的机制是否健全,直接反映出定义新数据类型的机制是否健全,直接反映出该语言的处理能力。该语言的处理能力。3数据类型的的重要性每一个语言都有一个原始(标准)数据4C+的数据类型一览的数据类型一览 C+C+提提提提供供供供的的的的数数数数据据据据类类类类型型型型分分分分成成成成基基基基本本本本类类类类型型型型和和和和非非非非基基基基本本本本类类类类型型型型(构造类型)两大类。(构造类型)两大类。(构造类型)两大类。(构造类型)两大类。n 基基基基本本本本类类类类型型型型,数数数数据据据据的的的的取取取取值值值值为为为为纯纯纯纯量量量量(单单单单值值值值)。例例例例如如如如整整整整型型型型数据在任何时刻其值都为单个整数。数据在任何时刻其值都为单个整数。数据在任何时刻其值都为单个整数。数据在任何时刻其值都为单个整数。n 非非非非基基基基本本本本类类类类型型型型,包包包包括括括括结结结结构构构构类类类类型型型型、指指指指针针针针类类类类型型型型、空空空空类类类类型型型型(voidvoid)、类()、类()、类()、类(ClassClass)等。如下图所示:)等。如下图所示:)等。如下图所示:)等。如下图所示:数据类型概述(数据类型概述(4)下图给出下图给出下图给出下图给出C+C+的数据类型一览:的数据类型一览:的数据类型一览:的数据类型一览:4C+的数据类型一览C+提供的数据我们将分三阶段来介绍我们将分三阶段来介绍我们将分三阶段来介绍我们将分三阶段来介绍C+C+的数据类型,第一阶段先的数据类型,第一阶段先的数据类型,第一阶段先的数据类型,第一阶段先介绍基本数据类型,等掌握了基本编程技术后,进入到较介绍基本数据类型,等掌握了基本编程技术后,进入到较介绍基本数据类型,等掌握了基本编程技术后,进入到较介绍基本数据类型,等掌握了基本编程技术后,进入到较为复杂的数据处理和其它应用时,再进一步讨论非基本数为复杂的数据处理和其它应用时,再进一步讨论非基本数为复杂的数据处理和其它应用时,再进一步讨论非基本数为复杂的数据处理和其它应用时,再进一步讨论非基本数据类型,当进入面向对象编程阶段时讨论类类型。据类型,当进入面向对象编程阶段时讨论类类型。据类型,当进入面向对象编程阶段时讨论类类型。据类型,当进入面向对象编程阶段时讨论类类型。基本数据类型基本数据类型数据类型数据类型非基本数据类型非基本数据类型整数类型整数类型实数类型实数类型字符类型字符类型布尔类型布尔类型枚举类型枚举类型数组类型数组类型结构体类型结构体类型联合类型联合类型指针类型指针类型类类型:类类型:Class空类型:空类型:void我们将分三阶段来介绍C+的数据类型,第基本数据类型基本数据类型4C+的基本数据类型一览的基本数据类型一览基本数据类型包括:数值类型(整型、实型)、基本数据类型包括:数值类型(整型、实型)、基本数据类型包括:数值类型(整型、实型)、基本数据类型包括:数值类型(整型、实型)、字符类型、布尔类型、枚举类型等。如下图所示:字符类型、布尔类型、枚举类型等。如下图所示:字符类型、布尔类型、枚举类型等。如下图所示:字符类型、布尔类型、枚举类型等。如下图所示:短整型短整型shortint整型整型int长整型长整型long浮点型浮点型float双精度型双精度型double单字符型单字符型char宽字符型宽字符型W_char数据类型概述(数据类型概述(4)整数类型整数类型实数类型实数类型字符类型字符类型布尔类型布尔类型bool枚举类型枚举类型enum4C+的基本数据类型一览基本数据2.4表达式概述表达式概述 表表表表达达达达式式式式一一一一般般般般用用用用来来来来描描描描述述述述特特特特定定定定计计计计算算算算或或或或特特特特定定定定处处处处理理理理,或或或或两两两两者者者者兼兼兼兼而而而而有有有有之之之之。表表表表达达达达式式式式素素素素有有有有语语语语句句句句的的的的“语语语语法法法法结结结结构构构构砖砖砖砖瓦瓦瓦瓦”之之之之称称称称,是是是是程程程程序序序序设设设设计计计计语语语语言言言言中中中中十十十十分分分分重重重重要要要要的的的的语语语语法法法法。本本本本节节节节仅仅仅仅作作作作简简简简单讨论,有关表达式的详细内容在第四章介绍。单讨论,有关表达式的详细内容在第四章介绍。单讨论,有关表达式的详细内容在第四章介绍。单讨论,有关表达式的详细内容在第四章介绍。例例2-6a=3+5*4;1实例及其分析实例及其分析分分析析:这这是是一一个个赋赋值值表表达达式式,它它由由运运算算符符(=)、左左部部量量(左左值值)、右右部部量量(右右值值)三三部部分分构构成成,右右部部量量通通常常是是一一个个算算术术表表达达式式。该该表表达达式式先先计计算算右右部部量量,然然后后将将 其其 值值 传传 送送 给给 左左 部部 量量,最最 后后、a的的 值值 是是2 3。2.4表达式概例2-7if(xy)z=x;elsez=y;分析:分析:(1)if语句中出现了三个表达式,分别是语句中出现了三个表达式,分别是xy、z=x、z=y。实例及其分析(实例及其分析(2)(2 2)xyxy是是关关系系表表达达式式,其其计计算算结结果果作作为为分分支支选选择择条条是是关关系系表表达达式式,其其计计算算结结果果作作为为分分支支选选择择条条件件;件件;z=xz=x、z=yz=y都都是是赋赋值值表表达达式式,是是都都是是赋赋值值表表达达式式,是是if if语语句句的的两两个个分分语语句句的的两两个个分分支。支。支。支。例2-7分析:实例及其分析(2)(2)xy是关系表达式2.表达式的定义表达式的定义p表表达达式式是是由由操操作作符符、数数据据对对象象和和括括号号组组成成的的序列,用来描述一个计算。序列,用来描述一个计算。p 通通俗俗地地说说,所所谓谓表表达达式式是是由由若若干干数数据据对对象象通通过过操操作作符符连连接接而而成成的的,用用来来描描述述特特定定计计算算的的式式子子。p 表表达达式式可可以以看看成成语语句句(有有时时甚甚至至是是程程序序)的的语语法结构砖瓦法结构砖瓦。2.表达式的定义表达式是由操作符、数3.表达式的语法表达式的语法E EE:数据对象(运算元素),可以是常量、变量、数据对象(运算元素),可以是常量、变量、函数调用、函数调用、表达式表达式。:操作符,也即各种运算符,例如算术运算符、关:操作符,也即各种运算符,例如算术运算符、关系运算符、赋值运算符等。系运算符、赋值运算符等。pp 语法语法语法语法pp 实例分析实例分析实例分析实例分析例例2-8分析下面所给的表达式的结构。分析下面所给的表达式的结构。(a+b)*(c+d)3.表达式的语法(1 1)从表达式的语法可以看出,单个数据对象也可以)从表达式的语法可以看出,单个数据对象也可以)从表达式的语法可以看出,单个数据对象也可以)从表达式的语法可以看出,单个数据对象也可以视为表达式。视为表达式。视为表达式。视为表达式。(2 2)表达式的语法具有递归性表达式的语法具有递归性表达式的语法具有递归性表达式的语法具有递归性,体现在表达式中的,体现在表达式中的,体现在表达式中的,体现在表达式中的数据对象又可以是一个表达式,这种递归性提供了数据对象又可以是一个表达式,这种递归性提供了数据对象又可以是一个表达式,这种递归性提供了数据对象又可以是一个表达式,这种递归性提供了由由由由若干个简单的式子构成复杂式子的能力若干个简单的式子构成复杂式子的能力若干个简单的式子构成复杂式子的能力若干个简单的式子构成复杂式子的能力。分析:分析:(1)这是一个算术表达式)这是一个算术表达式EE1*E2(2)E1和和E2这两个数据对象本身又是表达式:这两个数据对象本身又是表达式:E1(a+b);E2(c+d)表达式的语法(表达式的语法(2)例例2-8分分析析下下面面所所给给的的表表达达式式的结构。(的结构。(a+b)*(c+d)p 注意注意注意注意(1)从表达式的语法可以看出,单个数据对象也可以视为表达式。4表达式的语义表达式的语义表表达达式式组组合合了了允允许许一一个个语语句句改改变变机机器器状状态态的的基基本本表表达达式式组组合合了了允允许许一一个个语语句句改改变变机机器器状状态态的的基基本本操操作作操操作作。因因此此表表达达式式的的执执行行必必将将改改变变机机器器的的状状态态。这这。因因此此表表达达式式的的执执行行必必将将改改变变机机器器的的状状态态。这这是表达式语义的最终表现。是表达式语义的最终表现。是表达式语义的最终表现。是表达式语义的最终表现。显然表达式的语义与操作有关,也与操作的规则显然表达式的语义与操作有关,也与操作的规则显然表达式的语义与操作有关,也与操作的规则显然表达式的语义与操作有关,也与操作的规则及约束有关,所以表达式的语义涉及以下两个方面:及约束有关,所以表达式的语义涉及以下两个方面:及约束有关,所以表达式的语义涉及以下两个方面:及约束有关,所以表达式的语义涉及以下两个方面:p 操作符所描述的操作操作符所描述的操作操作符所描述的操作操作符所描述的操作。操作的结果改变了机器状。操作的结果改变了机器状。操作的结果改变了机器状。操作的结果改变了机器状态,同时也获得了一个值。态,同时也获得了一个值。态,同时也获得了一个值。态,同时也获得了一个值。p 表达式执行过程中所要遵循的规则及约束表达式执行过程中所要遵循的规则及约束表达式执行过程中所要遵循的规则及约束表达式执行过程中所要遵循的规则及约束。它们是:。它们是:。它们是:。它们是:约定约定约定约定、求值次序求值次序求值次序求值次序、结合结合结合结合和和和和优先级规则优先级规则优先级规则优先级规则。4表达式的语义表达式组合了允例例2-9下下面面的的表表达达式式中中包包含含有有不不同同类类型型的的数数据据对对象象,试问如何进行类型转换?试问如何进行类型转换?floata;a=5/2;a a的值为的值为的值为的值为2 2(整型),也即(整型),也即(整型),也即(整型),也即a a已由浮点型转换为整型。已由浮点型转换为整型。已由浮点型转换为整型。已由浮点型转换为整型。表达式的语义(表达式的语义(2)约定约定即类型转换的约定,是指当表达式中出现数据类即类型转换的约定,是指当表达式中出现数据类即类型转换的约定,是指当表达式中出现数据类即类型转换的约定,是指当表达式中出现数据类型不同的数据对象时,应该如何进行类型转换,请看型不同的数据对象时,应该如何进行类型转换,请看型不同的数据对象时,应该如何进行类型转换,请看型不同的数据对象时,应该如何进行类型转换,请看下面的例子:下面的例子:下面的例子:下面的例子:例2-9下面的表达式中包含有不同类型的数例例如如:计计算算(a+ba+b)*(c+d)*(c+d),是是先先对对(a+ba+b)求求值值还还是是先先对对(c+dc+d)求求值值?实实际际上上,这这对对最最后后的的乘乘积积都都没没有有影影响。求值次序取决于编译器。响。求值次序取决于编译器。求值次序求值次序表达式的语义(表达式的语义(3)是指组成表达式的各运算元素(操作数)的求值次序。是指组成表达式的各运算元素(操作数)的求值次序。是指组成表达式的各运算元素(操作数)的求值次序。是指组成表达式的各运算元素(操作数)的求值次序。优先级优先级 是是是是指指指指操操操操作作作作符符符符的的的的优优优优先先先先级级级级(也也也也称称称称为为为为算算算算符符符符优优优优先先先先级级级级),例例例例如先乘除后加减,先与后或。如先乘除后加减,先与后或。如先乘除后加减,先与后或。如先乘除后加减,先与后或。显然,乘除操作符的优先级高于加减操作符。显然,乘除操作符的优先级高于加减操作符。显然,乘除操作符的优先级高于加减操作符。显然,乘除操作符的优先级高于加减操作符。例如:计算(a+b)*(c+d),是先对(a+b)求值还是例例2-10分析下列表达式的执行顺序。分析下列表达式的执行顺序。d=a+b-c;d=a=3;加减操作符自左向右结合;加减操作符自左向右结合;赋值操作符自右向左结合。赋值操作符自右向左结合。结合性结合性结合性结合性表达式的语义(表达式的语义(4)是指当表达式中出现相同优先级的操作符时,对是指当表达式中出现相同优先级的操作符时,对是指当表达式中出现相同优先级的操作符时,对是指当表达式中出现相同优先级的操作符时,对这些操作符执行次序(求值次序)的规定。这些操作符执行次序(求值次序)的规定。这些操作符执行次序(求值次序)的规定。这些操作符执行次序(求值次序)的规定。例2-10分析下列表达式的执行顺序。加减操作符自左向右5表达式的分类表达式的分类 可可可可以以以以按按按按表表表表达达达达式式式式所所所所含含含含操操操操作作作作符符符符的的的的不不不不同同同同来来来来给给给给表表表表达达达达式式式式分分分分类类类类,通常可以分为以下几种表达式:通常可以分为以下几种表达式:通常可以分为以下几种表达式:通常可以分为以下几种表达式:我们将在我们将在我们将在我们将在2.142.14及第四章中系统介绍这些表达式。及第四章中系统介绍这些表达式。及第四章中系统介绍这些表达式。及第四章中系统介绍这些表达式。5表达式的分类可以按表达式所含操作符的不同2.5结构化程序设计概述结构化程序设计概述 1.结构化程序设计的基本思想结构化程序设计的基本思想结构化程序设计方法的精髓可以概括为:结构化程序设计方法的精髓可以概括为:结构化程序设计方法的精髓可以概括为:结构化程序设计方法的精髓可以概括为:pp 分分分分析析析析、设设设设计计计计和和和和实实实实现现现现均均均均可可可可以以以以采采采采用用用用:“自自自自顶顶顶顶向向向向下下下下、逐逐逐逐步步步步细化和精化细化和精化细化和精化细化和精化”的方法。的方法。的方法。的方法。具具具具体体体体而而而而言言言言,就就就就是是是是自自自自顶顶顶顶向向向向下下下下,将将将将大大大大功功功功能能能能逐逐逐逐步步步步分分分分解解解解成成成成较小功能、更小功直至最小功能,形成一棵功能树。较小功能、更小功直至最小功能,形成一棵功能树。较小功能、更小功直至最小功能,形成一棵功能树。较小功能、更小功直至最小功能,形成一棵功能树。例例例例如如如如,可可可可以以以以将将将将“学学学学籍籍籍籍管管管管理理理理”分分分分解解解解成成成成“学学学学生生生生注注注注册册册册”、“成成成成绩绩绩绩管管管管理理理理”、“学学学学籍籍籍籍异异异异动动动动”等等等等较较较较小小小小功功功功能能能能,其其其其中中中中”成成成成绩绩绩绩管管管管理理理理“功功功功能能能能又又又又可可可可以以以以分分分分解解解解为为为为:“成成成成绩绩绩绩登登登登记记记记”、“学学学学分分分分统统统统计计计计”、“成成成成绩绩绩绩查查查查询询询询”等等等等更更更更小小小小功功功功能能能能,“成成成成绩绩绩绩登登登登记记记记”又又又又可可可可以以以以分分分分解解解解成成成成“成成成成绩绩绩绩录录录录入入入入”,“成成成成绩绩绩绩修修修修改改改改”等最小功能。等最小功能。等最小功能。等最小功能。2.5结构化程序设计概述1.结构化程序设计的基本学籍管理学籍管理注册管理注册管理成绩管理成绩管理学籍异动学籍异动成绩登记成绩登记学分统计学分统计成绩查询成绩查询成绩录入成绩录入成绩修改成绩修改成绩删除成绩删除pp 在在在在程程程程序序序序实实实实现现现现时时时时,每每每每一一一一个个个个功功功功能能能能(功功功功能能能能树树树树上上上上的的的的每每每每一一一一个个个个结结结结点点点点),都都都都被被被被实实实实现现现现为为为为一一一一个个个个过过过过程程程程或或或或函函函函数数数数,实实实实现现现现可可可可以以以以是是是是自自自自顶顶顶顶向下,也可以是自底向上。向下,也可以是自底向上。向下,也可以是自底向上。向下,也可以是自底向上。学籍管理注册管理成绩管理学籍异动成绩登记学分统计成绩查询成绩有必要说明的是,即使是采用面向对象方有必要说明的是,即使是采用面向对象方法,类的各个操作的方法代码也离不开上述三法,类的各个操作的方法代码也离不开上述三种基本结构。因此结构化程序的三种基本结构种基本结构。因此结构化程序的三种基本结构十分重要,而且贯穿始终。十分重要,而且贯穿始终。pp每每个个过过程程或或函函数数的的执执行行部部分分都都是是由由三三种种构构造造块块组组成成的的,它它们们就就是是结结构构化化程程序序的的三三种种结结构构,即即顺序结构顺序结构、选择结构选择结构和和重复结构重复结构。结构化程序设计的基本思想(结构化程序设计的基本思想(2)有必要说明的是,即使是采用面向对象方法,类的结构图:结构图:执行顺序执行顺序:Statement1;Statement1;Statement2;Statement2;statementn;statementn;下面程序块就是下面程序块就是一个典型的顺序结一个典型的顺序结构:构:inta;cina;couta;2程序的三种结构程序的三种结构 n n条条条条语语语语句句句句自自自自上上上上而而而而下下下下排排排排列列列列,并并并并按按按按排排排排列列列列的的的的顺顺顺顺序序序序自自自自上上上上往往往往下下下下逐条执行。其结构示意和执行顺序如下图所示:逐条执行。其结构示意和执行顺序如下图所示:逐条执行。其结构示意和执行顺序如下图所示:逐条执行。其结构示意和执行顺序如下图所示:结构图:结结构构中中包包含含多多个个不不同同的的执执行行部部分分(分分支支),结结构构控控制制能能够够通通过过计计算算产产生生条条件件并并根根据据对对条条件件的判断来选择和执行程序当时所应执行的分支。的判断来选择和执行程序当时所应执行的分支。程序的三种结构(程序的三种结构(2)通通常常用用ifif语语句句或或swithswith语语句句来来实实现现选选择择结结构构,请看下面的例子。请看下面的例子。结构中包含多个不同的执行部分(分支),结构控例例例例2-112-11编写一个程序,计算:编写一个程序,计算:编写一个程序,计算:编写一个程序,计算:0 x00 x=01x=0#include#includevoidmain()main()intx,y;cinx;if(x0)y=0;elsey=1;cout”y=”yendl;程序的三种结构(程序的三种结构(2)由由if语句实现的选择结构。语句实现的选择结构。例2-11编写一个程序,计算:结构图(结构图(N-SN-S图)图)ExpExptftfS1S2S1S2ExpExp:选择分支的条件:选择分支的条件(表达式)(表达式)S1,S2:语句集(包含一至多个语句),:语句集(包含一至多个语句),当条件为真选择并执行当条件为真选择并执行s1,否则选择并,否则选择并执行执行s2。流程图(流程图(流程图(流程图(FlowchartFlowchart)exps1s2tf结构图(N-S图)ExpExp:(2 2)比较两个字符串的大小,需要逐一比较两个串的)比较两个字符串的大小,需要逐一比较两个串的)比较两个字符串的大小,需要逐一比较两个串的)比较两个字符串的大小,需要逐一比较两个串的的对应字符(重复进行单个字符的比较)。的对应字符(重复进行单个字符的比较)。的对应字符(重复进行单个字符的比较)。的对应字符(重复进行单个字符的比较)。(1 1)计算)计算)计算)计算 s=1+2+3+4+5+6+.100s=1+2+3+4+5+6+.100,这是一个重复,这是一个重复,这是一个重复,这是一个重复执行执行执行执行9999次加法的算术问题。次加法的算术问题。次加法的算术问题。次加法的算术问题。在在在在许许许许多多多多应应应应用用用用中中中中,经经经经常常常常会会会会出出出出现现现现动动动动作作作作或或或或运运运运算算算算的的的的重重重重复复复复执执执执行行行行,例如:例如:例如:例如:程序的三种结构(程序的三种结构(3)结结结结构构构构中中中中含含含含有有有有需需需需要要要要重重重重复复复复执执执执行行行行的的的的程程程程序序序序块块块块(循循循循环环环环体体体体),结结结结构构构构控控控控制制制制能能能能够够够够通通通通过过过过对对对对表表表表达达达达式式式式的的的的计计计计算算算算产产产产生生生生条条条条件件件件并并并并根根根根据据据据对对对对条条条条件的判断来决定是否重复执行该程序块。件的判断来决定是否重复执行该程序块。件的判断来决定是否重复执行该程序块。件的判断来决定是否重复执行该程序块。(2)比较两个字符串的大小,需要逐一比较两个串的(1)计算main()main()inti=1,s=0;inti=1,s=0;while(i=100)while(i=100)s=s+i;s=s+i;i=i+1;i=i+1;重复执行部分,也称为循环体。内重复执行部分,也称为循环体。内部的两个语句重复执行部的两个语句重复执行100100次次几几乎乎所所有有的的程程序序语语言言都都提提供供循循环环语语句句,用用以以构构造造重重复复结结构构,从从而而可可以以避避免免大大量量语语句句或或表表达达式式的的的的重重复复书写。书写。例例例例2-122-12编写一个程序计算编写一个程序计算编写一个程序计算编写一个程序计算s=1+2+3+4+5+6+.100s=1+2+3+4+5+6+.100。这是一种用这是一种用这是一种用这是一种用“当型当型当型当型”循环语句来构造的循环语句来构造的循环语句来构造的循环语句来构造的重复结构,重复结构,重复结构,重复结构,此外也可以用此外也可以用此外也可以用此外也可以用“直到型直到型直到型直到型”或或或或“计计计计数型数型数型数型”循环语句来构造重复结构。循环语句来构造重复结构。循环语句来构造重复结构。循环语句来构造重复结构。main()重复执行部分,也称为循环体。内部 流程图:流程图:流程图:流程图:“当型当型当型当型”循环循环循环循环 结构图:结构图:结构图:结构图:“当型当型当型当型”循环循环循环循环“直到型直到型直到型直到型”循环循环循环循环expssexp表达式:用来作表达式:用来作为循环条件为循环条件语句集,也即程序语句集,也即程序的重复执行部分,的重复执行部分,也称为循环体。也称为循环体。设置循环变量初值设置循环变量初值计算计算expstatementsNextStatementexp表达式:用来作为循环条件语句集,也即程序的重复执行2.6C+语句概述语句概述p 习惯地将语句分为五类:习惯地将语句分为五类:控制语句控制语句、复合语复合语句句、说明类语句说明类语句、空语句空语句、表达式语句表达式语句。p C+的语句十分精简,只设置的语句十分精简,只设置9个语句个语句。并允。并允许由多个语句构成复合语句。许由多个语句构成复合语句。p通常又将一些能独立存在的表达式也视为语通常又将一些能独立存在的表达式也视为语句。如赋值表达式、函数调用、句。如赋值表达式、函数调用、I/O表达式等。表达式等。2.6C+语句概述习惯地将语句分为五类:控制语句、1C+的控制类语句概述的控制类语句概述C+C+C+C+的的的的控控控控制制制制语语语语句句句句包包包包括括括括:ifififif语语语语句句句句 、switchswitchswitchswitch语语语语句句句句、各各各各种种种种循循循循环环环环语语语语句句句句 、其其其其它它它它控控控控制制制制语语语语句句句句,控控控控制制制制语语语语句句句句用用用用于于于于实实实实现现现现三三三三种种种种程序结构。程序结构。程序结构。程序结构。1C+的控制类语句概述C+的控制2空语句空语句;p语法语法p用途用途 在在程程序序中中,实实际际上上就就是是一一个个空空行行,但但必必须须以分号作为结束。以分号作为结束。一般用在一般用在if语句的分支中,表示该分支为空。语句的分支中,表示该分支为空。2空语句;语法用途在程序中,实际上就是3复合语句复合语句例如:例如:while(i=100)while(ibc;cinbc;a=b*c;a=b*c;return();return();输入流控制表达式输入流控制表达式输入流控制表达式输入流控制表达式输入语句;输入语句;输入语句;输入语句;赋值表达式赋值表达式赋值表达式赋值表达式赋值表达式语句;赋值表达式语句;赋值表达式语句;赋值表达式语句;返回函数(返回函数(返回函数(返回函数(returnreturn)调用)调用)调用)调用返回语句返回语句返回语句返回语句p C+C+C+C+的的的的一一一一个个个个显显显显著著著著特特特特点点点点是是是是,有有有有些些些些表表表表达达达达式式式式可可可可以以以以独独独独立立立立地地地地出出出出现在语句行上现在语句行上现在语句行上现在语句行上当作语句使用,故称为表达式语句。当作语句使用,故称为表达式语句。当作语句使用,故称为表达式语句。当作语句使用,故称为表达式语句。4表达式语句下面给出一些表达式语句的例子:例2-15说明语句说明语句pp 用途用途用来给程序员在程序中显式地声明各种变量,也用来给程序员在程序中显式地声明各种变量,也用来给程序员在程序中显式地声明各种变量,也用来给程序员在程序中显式地声明各种变量,也即建立数据对象。即建立数据对象。即建立数据对象。即建立数据对象。pp 语法语法 例如:例如:例如:例如:float i,grade100;float i,grade100;float i,grade100;float i,grade100;/该语句声明了两个数据对象,该语句声明了两个数据对象,该语句声明了两个数据对象,该语句声明了两个数据对象,i i i i是浮点类型变量,是浮点类型变量,是浮点类型变量,是浮点类型变量,gradegradegradegrade是浮点类型数组。是浮点类型数组。是浮点类型数组。是浮点类型数组。存储类别类型名变量名表=初值;5说明语句例例2-14分析下面的说明语句:分析下面的说明语句:staticintnumber=0,grade;类型名类型名存存存存储储储储类类类类别别别别为为为为:staticstatic,变变变变量量量量的的的的数数数数据据据据类类类类型型型型为为为为intint,变变变变量量量量名名名名表表表表的元素为:的元素为:的元素为:的元素为:numbernumber和和和和gradegrade,其中,其中,其中,其中numbernumber的初值为的初值为的初值为的初值为0 0。初值初值说明语句(说明语句(2)存储类别存储类别类型名变量名表类型名变量名表=初值初值;存储存储类别类别变量名变量名例2-14分析下面的说明语句:类型名存储类别为:statp说明语句中各语法成分的解释说明语句中各语法成分的解释说明语句(说明语句(3)从从从从说说说说明明明明语语语语句句句句可可可可以以以以看看看看出出出出,该该该该种种种种语语语语句句句句由由由由:存存存存储储储储类类类类别别别别、类型名类型名类型名类型名、变量名表变量名表变量名表变量名表及及及及变量初值表变量初值表变量初值表变量初值表四部分组成。四部分组成。四部分组成。四部分组成。存储类别存储类别类型名变量名表类型名变量名表=初值初值;指明变量的存储形式,包括变量的存储位置和和生指明变量的存储形式,包括变量的存储位置和和生指明变量的存储形式,包括变量的存储位置和和生指明变量的存储形式,包括变量的存储位置和和生存期。存期。存期。存期。(1)存储类别)存储类别变量的存储位置可以是内存也可以是寄存器;变量的存储位置可以是内存也可以是寄存器;变量的存储位置可以是内存也可以是寄存器;变量的存储位置可以是内存也可以是寄存器;变量的生存期(作用域),有局部于函数或块,也有变量的生存期(作用域),有局部于函数或块,也有变量的生存期(作用域),有局部于函数或块,也有变量的生存期(作用域),有局部于函数或块,也有伴随程序全程有效的(全局)。伴随程序全程有效的(全局)。伴随程序全程有效的(全局)。伴随程序全程有效的(全局)。说明语句中各语法成分的解释说明语句(3)从说说明语句(说明语句(4)存储类别存储类别类型名变量名表类型名变量名表=初值初值;C+C+提供了如下四个提供了如下四个提供了如下四个提供了如下四个 存储类别描述符:存储类别描述符:存储类别描述符:存储类别描述符:注意:存储类别是任选项,缺省情况下,在函数外部注意:存储类别是任选项,缺省情况下,在函数外部注意:存储类别是任选项,缺省情况下,在函数外部注意:存储类别是任选项,缺省情况下,在函数外部默认为全局,在函数内部默认为默认为全局,在函数内部默认为默认为全局,在函数内部默认为默认为全局,在函数内部默认为“自动自动自动自动”类别。类别。类别。类别。externextern:全局(外部):全局(外部):全局(外部):全局(外部)内存全局数据区。内存全局数据区。内存全局数据区。内存全局数据区。staticstatic:静态(局部或全局):静态(局部或全局):静态(局部或全局):静态(局部或全局)内存静态数据区内存静态数据区内存静态数据区内存静态数据区autoauto:自动(局部、动态)自动(局部、动态)自动(局部、动态)自动(局部、动态)运行栈区运行栈区运行栈区运行栈区registerregister:寄存器变量:寄存器变量:寄存器变量:寄存器变量寄存器寄存器寄存器寄存器说明语句(4)存储类别类型名变量名表=初值;例如:例如:intx,y,z;该语句同时声明了三个整型变量,其名称分别该语句同时声明了三个整型变量,其名称分别是是x,y,z。说明语句(说明语句(5)存储类别存储类别类型名变量名表类型名变量名表=初值初值;(2)类型名)类型名指明变量的数据类型,例如指明变量的数据类型,例如指明变量的数据类型,例如指明变量的数据类型,例如intint表示整型。表示整型。表示整型。表示整型。(我们将(我们将(我们将(我们将在第三章专门讨论)。在第三章专门讨论)。在第三章专门讨论)。在第三章专门讨论)。例如:intx,y,z;说明语句(5)存储类别类型名注意,该项也是任选项。注意,该项也是任选项。说明语句(说明语句(6)存储类别存储类别类型名变量名表类型名变量名表=初值初值;(3)变量名表)变量名表给出给出给出给出n n个相同类型的变量名(个相同类型的变量名(个相同类型的变量名(个相同类型的变量名(n=1n=1),也即),也即),也即),也即允许同允许同允许同允许同时说明多个变量时说明多个变量时说明多个变量时说明多个变量,变量名之间用逗号隔开。,变量名之间用逗号隔开。,变量名之间用逗号隔开。,变量名之间用逗号隔开。(4)=初值初值给出变量的初值,例如给出变量的初值,例如给出变量的初值,例如给出变量的初值,例如unsignedshortwidth=5;unsignedshortwidth=5;注意,该项也是任选项。说明语句(6)存储类别类型名变2.7 if2.7 if语句语句ifif语句也称为条件语句,属于控制类语句,语句也称为条件语句,属于控制类语句,是程序设计中经常使用的语句。是程序设计中经常使用的语句。可以说所有的高级语言都提供可以说所有的高级语言都提供ifif语句,几语句,几乎每个程序都要用到乎每个程序都要用到ifif语句语句,可见其重要性和应可见其重要性和应用的广泛性。用的广泛性。2.7if语句if语句1示例示例例例例例2-152-15设以设以设以设以6060分作为考试的合格线,如果考试成绩分作为考试的合格线,如果考试成绩分作为考试的合格线,如果考试成绩分作为考试的合格线,如果考试成绩6060及及及及6060分以上为合格,否则不合格。这个极为简单的问题实分以上为合格,否则不合格。这个极为简单的问题实分以上为合格,否则不合格。这个极为简单的问题实分以上为合格,否则不合格。这个极为简单的问题实际上包含着逻辑运算、判断和选择。用际上包含着逻辑运算、判断和选择。用际上包含着逻辑运算、判断和选择。用际上包含着逻辑运算、判断和选择。用if if语句可以准确语句可以准确语句可以准确语句可以准确地予以描述:地予以描述:地予以描述:地予以描述:下下下下面面面面我我我我们们们们通通通通过过过过一一一一个个个个if if语语语语句句句句的的的的实实实实际际际际应应应应用用用用来来来来初初初初步步步步认认认认识识识识if if语语语语句。句。句。句。if(grade=60)if(grade=60)coutcout考试合格考试合格考试合格考试合格n;n;elseelsecoutcout=60)if(grade=60)coutcout考试合格考试合格考试合格考试合格n;n;elseelsecoutcout=60)if(grade=60),其中的其中的其中的其中的grade=60grade=60是关系表达是关系表达是关系表达是关系表达式,可以描述比较简单的条件。式,可以描述比较简单的条件。式,可以描述比较简单的条件。式,可以描述比较简单的条件。(2 2)statementstatement:语句,可以是:语句,可以是:语句,可以是:语句,可以是C+C+的任何语句,构成的任何语句,构成的任何语句,构成的任何语句,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!