第2章 C++语言基础.ppt

上传人:春哥&#****71; 文档编号:15608612 上传时间:2022-05-13 格式:PPT 页数:111 大小:387.50KB
返回 下载 相关 举报
第2章 C++语言基础.ppt_第1页
第1页 / 共111页
第2章 C++语言基础.ppt_第2页
第2页 / 共111页
点击查看更多>>
资源描述

《第2章 C++语言基础.ppt》由会员分享,可在线阅读,更多相关《第2章 C++语言基础.ppt(111页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课程主讲人:第2章 C+语言基础C+C+语言程序设计语言程序设计中国铁道出版社中国铁道出版社张思民等主编张思民等主编第二章 C+语言基础本章内容提要本章内容提要n输入输出语句n数据类型n表达式和运算符n程序控制语句2.1 简单的输入输出语句简单的输入输出语句n1、输出语句ncout通过输出操作符“”将表达式1、表达式2、表达式n依次显示到屏幕上。n如果表达式是变量则将变量的值显示出来;n如果表达式是计算式,则先计算,再将计算的结果显示出来;n如果表达式是用双引号括起来的字符串,则将双引号括起来的内容“原样照印”的显示到屏幕上。cout cout 表达式表达式1 1 表达式表达式2 2 表达式表

2、达式n n;例例2-11 #include 2using namespace std; 3 void main() 4 5 cout 我对 C+ 很着迷!; 6 cout endl; 7 包含iostream头文件,该文件定义了输出流对象cout 定义名字空间输出流对象cout将字符输出到屏幕上显示换行例例2-2 在屏幕上输出显示一个用在屏幕上输出显示一个用“*”号号组成的三角形图形。组成的三角形图形。 1 #include 2 using namespace std;3 void main() 4 5 cout * endl; 6 cout * * * endl;7 cout * * * *

3、 * endl;8 cout * * * * * * * endl;9 包含iostream头文件时,必须定义名字空间双引号中的任何符号在输出时都将被“原样照印”,第一行输出1个“*”号,第二行输出3个“*”号,第三行输出5个“*”号,第四行输出7个“*”号。* * * * * * * * * * * * *输出结果:输出结果:例例 2-31 #include 2 using namespace std;3 void main() 4 5 cout 3 + 5 = 3 + 5 ”,使用输入流对象cin读取由键盘输入的字符和数字,并把它赋值给指定的变量。从键盘上输入的数据通过cin接收,再由输入

4、操作符 “”将数据赋值给指定的变量。输入操作符 “”也称为提取运算符。n同样,输入操作符 “”也是在iostream.h中定义的,因此,必须在程序的开头用#include包含iostream.h。例例2-4 从键盘上输入两个整数,再计算出两个数的和从键盘上输入两个整数,再计算出两个数的和 1 #include 2 using namespace std;3 void main()4 4 int a, b; 6 cout a ; 8 cout b ; 10 cout a “+” b “=” a + b endl;11 cout、cin需要头文件iostream使用名字空间int为定义整数类型变量

5、,这里定义的变量a、b只能接受整数cin读取由键盘输入的数字,并通过输入操作符把它赋值给变量a按照“原样照印”模式输出 cin读取由键盘输入的数字,并把它赋值给变量bn程序运行时,用cin接收用户输入的两个整数,然后计算并输出这两个数的和。比如用户通过键盘输入3后,按Enter键,然后输入5,再按Enter键,其运行结果如下:q 用户通过键盘给变量用户通过键盘给变量a、b赋值赋值q输入第一个整数,输入第一个整数,a = :3 q输入第二个整数,输入第二个整数,b = :5 q3 + 5 = 8n说明:在上面运行结果中,下划线表示的3 和5由用户输入,“ ”为Enter键。2.2 数据类型数据类

6、型nC+ 语言的数据类型可以分为两大类:基本数据类型和构造数据类型。q基本数据类型基本数据类型是由程序设计语言系统所定义、不可再划分的数据是由程序设计语言系统所定义、不可再划分的数据类型。基本数据类型在内存中存入的是数据值本身。类型。基本数据类型在内存中存入的是数据值本身。q构造数据类型构造数据类型在内存中存入的是指向存放该数据的地址,不是数在内存中存入的是指向存放该数据的地址,不是数据本身,它是在基本数据类型的基础上,由系统或用户自定义的。据本身,它是在基本数据类型的基础上,由系统或用户自定义的。构造数据类型也被称为复合数据类型。构造数据类型也被称为复合数据类型。n数据类型的作用有二个:q其

7、一,为数据在内存中分配合适的存储区域,同时也确定了数据其一,为数据在内存中分配合适的存储区域,同时也确定了数据范围;范围;q其二,规定数据所能进行的操作。其二,规定数据所能进行的操作。 2.2.2 基本数据类型基本数据类型nC+ 定义了多个基本数据类型:字节型,短整型,整型,长整型,无符号整型,字符型,浮点型,双精度型,布尔型,这些类型可分为4组: n整数型:该组包括字节型(byte),短整型(short),整型(int),长整型(long),它们都是有符号整数型,还有无符号整数型,即正整数型。 n浮点数型:该组包括浮点型(float),双精度型(double),它们代表有小数精度要求的数字。

8、 n字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。 n布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。 类型数据类型关键字类型长度值域范围有符号短整数short, short int2-215215-1内的整数有符号整数int 4-231231-1内的整数有符号长整数long, long int, signed long int4-231231-1内的整数无符号短整数unsigned short int20216-1内的整数无符号整数unsigned int 40232-1内的整数无符号长整数unsigned long int 40232

9、-1内的整数单精度浮点型 float 4-3.402823*10383.402823*1038内的数双精度浮点型double 8-1.7977*103081.7977*10308内的数长双精度浮点型long double8-1.7977*103081.7977*10308内的数有符号字符char1-128+127内的整数无符号字符unsigned char10255内的整数逻辑bool 10和1n下面对表2-1作几点说明:n1、 对于每一种整数类型和字符类型,又可分为有符号和无符号两种类型。通常使用较多的是有符号类型,所以时常也把有符号类型简称为所属类型。如把有符号整数类型简称为整型或int型

10、,把有符号字符类型简称为字符型或char型。n 2、 类型长度是指存储该类型值域范围内的任一个数据所占有的存储字节数,该字节数由系统规定,并且对任一数据都相同。如短整型长度为2,即存储每个短整数占用2个字节,对应16个二进制位;整型长度为4,即存储每个整数占用4个字节,对应32个二进制位;字符型长度为1,即存储每个字符占用1个字节,对应8个二进制位。n3、 类型的值域范围是指该类型所对应的固定大小的存储空间按照相应的存储格式所能表示的值的范围。如对于有符号短整型来说,它对应2个字节的存储空间,存储格式为二进制整数补码格式,只能够表示(即存储)-215215-1,即-32768+32767之间的

11、所有整数。若一个整数小于-32768或大于32767,则它就不是该类型中的一个值,即它不是一个短整数。又如对于无符号字符类型来说,它对应1个字节的存储空间,存储格式为二进制整数无符号(隐含为正)格式,只能够表示028-1,即0255之间的所有整数。若一个整数小于0或大于255,则它就不是该类型中的一个值,即它不是一个字符数据。n4、 在32位的 C+ 版本中,整型(int)和长整型(long ing)具有完全相同的长度和存储格式,所以它们是等同的。但在早期的C+版本中,由于当时的机器字长为16位,所以整型和长整型的长度是不同的,前者为2个字节,后者为4个字节。无论如何,任一种C+ 语言都遵循s

12、hort int型的长度小于等于int型长度,同时int型长度又小于等于long ing型长度的规定。与上述情况类似,在32位的C+ 版本中,双精度型(double)和长双精度型(long double)也具有完全相同的长度和存储格式,它们是等同的。在其他C+ 语言中也可能不同,但无论如何,它们都遵循float型的长度小于等于double型长度,同时double型长度又小于等于long double型长度的规定。2.2.3 数据类型转换数据类型转换在在C+ 中有两种数据类型转换:中有两种数据类型转换:n数据类型自动转换n强制类型转换。1、数据类型自动转换、数据类型自动转换n在对数据进行运算时,

13、一般要求两个运算操作数的类型一致,如果操作数的类型不一致,则系统编译器会自动将这两个运算操作数转换成相同类型之后再进行运算。自动类型转换是按从低到高的顺序原则进行的。n各种数据类型按下列的高低顺序转换:n例如:计算10 + 2.5,先将10转换成双精度浮点型后再相加,结果为双精度浮点型的12.5。2、强制类型转换、强制类型转换n强制类型转换是在程序设计时显式指出的类型转换。强制类型转换的格式如下:qint a;qdouble b = 3.14;qa = (int)b;q结果结果 a = 3,b仍然是仍然是double类型,类型,b的值仍然是的值仍然是3.14。q从该示例可以看到,采用强制类型转

14、换将高类型数据转换成低类从该示例可以看到,采用强制类型转换将高类型数据转换成低类型数据时,可能会降低数据精度。型数据时,可能会降低数据精度。数据类型说明(表达式)数据类型说明(表达式)或(数据类型说明)表达式或(数据类型说明)表达式2.2.4 变量变量n在程序中,每一个数据都有一个名字,并且在内存中占据一定的存储单元。在程序运行过程中,数据值不能改变的量称为常量,其值可以改变的量称为变量。变量在程序运行过程中可以进行赋值,从而改变了原来的值。在C+ 语言中,所有常量及变量在使用前必须先声明其值的类型,也就是“先声明,后使用”。n每一个变量都属于一种数据类型,用来表示(即存储)该类型中的一个值。

15、在程序中只有存在了一种数据类型后,才能够利用它定义出该类型的变量。根据这一原则,我们可以随时利用C+ 语言系统提供的基本类型或用户自定义的类型定义需要使用的变量。一个变量只有被定义后才能被使用,即定义后的变量才能进行存储和读取其值的操作。1、变量的定义、变量的定义n变量定义是通过变量定义语句实现的,该语句的一般格式为:n为已存在的一种数据类型,如short, int, long, char, bool, float, double等都是类型关键字,n是用户定义的一个标识符,用来表示一个变量,该变量可以通过后面由方括号表示的可选项赋予一个值,称为给变量赋初值,是一个数值或表达式,它的值就是赋予变

16、量的初值。数据类型关键字数据类型关键字 变量名变量名=;2、变量定义语句示例、变量定义语句示例 n第一条语句定义了两个整型变量a和b;n第二条语句定义了两个字符变量ch1和ch2,并被分别赋初值为字符a和A,一个字符变量只能存放一个字符,不能存放字符串;n第三条语句定义了一个整型变量x,并赋予表达式a + 2 * b的值作为初值;n第四条语句定义了三个双精度变量,分别为d1, d2和d3,其中d2被赋予初值0.0,d3被赋予初值3.14159。3、变量定义语句执行过程、变量定义语句执行过程n当程序执行到一条变量定义语句时,首先为所定义的每个变量在内存中分配与类型长度相同的存储单元,如对每个整型

17、变量分配4个字节的存储单元,对每个双精度变量分配8个字节的存储单元。n定义变量时,若变量名后带有赋值表达式,则计算出初值表达式的值,并把它保存到变量所对应的存储单元中,表示给变量赋初值,若变量名后不带赋值表达式,将自动给变量赋予初值0,否则不赋予任何值,此时的变量值是不确定的,实际上是存储单元中的原有值。n在习惯上,常量名用大写字母表示,变量用小写字母表示,以示区别。例例2-5 定义三个变量,求和值并输出结果。定义三个变量,求和值并输出结果。 1 #include 2 using namespace std;3 void main( ) 4 5 int x; 6 float y, z, sum

18、; 7 x = 2; 8 y = 5.5; 9 z = 10.0; 10 sum = x + y + z; 11 cout sum = sum endl;12 例例2-6 实型数据的舍入误差实型数据的舍入误差 1 #include 2 using namespace std;3 void main( ) 4 5 float a,b; 6 a = 1234567890; 7 b = a + 20; 8 cout a = (int)a endl;9 cout b = (int)b endl; 10 a与b的输出结果相同,较小的整数部分被“丢失”。a = 1234567936a = 12345679

19、36b = 1234567936b = 1234567936n说明: n(1)实型变量是用有限的存储单元存储的,因此提供的有效数字是有限的,在有效位以外的数字将被舍去,由此可能会产生一些误差。n(2)由于实数存在舍入误差,使用时要注意:不要试图用一个实数精确表示一个大整数,因为浮点数是不精确的;实数一般不判断“相等”,而是判断接近或近似;避免直接将一个很大的实数与一个很小的实数相加、相减,否则会“丢失”小的数;根据实际问题的要求选择单精度或双精度类型。 #includeusing namespace std;void main( ) double a,b; /将a, b定义为双精度实数类型 a

20、 = 1234567890; b = a + 20; cout a = (int)a endl; cout b = (int)b endl; 运算精度运算精度得到保证得到保证a = 1234567890a = 1234567890b = 1234567910b = 12345679102.2.5 常量常量n常量有两种形式:q一种是直接常量,以字面值直接出现的数据量,如一种是直接常量,以字面值直接出现的数据量,如12、3.14、a等;等;q另一种是符号常量。另一种是符号常量。n符号常量是一个标识符,对应着一个存储空间,该空间中保存的数据就是该符号常量的值,这个数据是在定义符号常量时赋予的,是以后

21、不能改变的。n(1)用const定义符号常量n例如:const double PI = 3.14159; const const 数据类型符号常量名称初始值;数据类型符号常量名称初始值;n(2)用#define命令定义符号常量n注意,由于#define是预处理命令,语句不能以分号结束,且定义符号常量不能带数据类型,不能用赋值号赋值。n例如:#definePI3.14159#define #define 符号常量名初始值符号常量名初始值例例2-7 已知圆的半径已知圆的半径r,计算圆的面积,计算圆的面积s和周长和周长c。 1 #include 2 #define r 5.03 const doub

22、le PI = 3.14159 ;4 void main()5 6 double s, c;7 s = PI * r *r;8 c = 2 * PI * r;9 cout 圆的面积:s = s endl;10 cout 圆的周长:c = c endl;11 用#define定义符号常量r,没有带数据类型,没有用分号结尾用const定义符号常量PI符号常量参加运算, PI的值为3.14159,r的值为5.02、字符常量、字符常量C+ 中有两种字符常量:n即一般字符常量n转义字符常量(1)一般字符常量)一般字符常量n一般字符常量简称为字符,它以单引号作为起止标记,中间为一个或若干个字符。如a,%,

23、n,012,125,x4F等都是合乎规定的字符常量。每个字符常量只表示一个字符,当字符常量的一对单引号内多于一个字符时,则将按规定解释为一个字符。如a表示字符a,125解释为字符U(ASCII码值八进制的对应字符,详见转义符)。 n因为字符型的长度为1,值域范围是 -128127 或 0255,而在计算机领域使用的ASCII字符,其ASCII码值为 0127,正好在C+ 字符型值域内。所以,每个 ASCII 字符均是一个字符型数据,即字符型中的一个值。n将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中,而是将该字符相应的 ASCII 码放到内存单元中。n 对于一个字符,

24、当用于输出显示时,将显示出字符本身或体现出相应的控制功能,当出现在计算表达式中时,将使用它的 ASCII 码。 (1) char ch = E;(2) int x = ch + 2;(3) cout “ x = ” x C) cout ch C endl;(5)cout 125 C比较,实际上是取出各自的值(即对应的ASCII码)比较,因条件成立,所以执行其后的输出语句,将向屏幕输出E C。n第五条语句输出大写字母U,因为由“”后面跟3个数字(即“ddd”)组成的符号表示八进制数所代表的字符,八进制的125为十进制的85,其对应的ASCII码值为大写字母U。 (2)转义符)转义符n在C+中提供

25、了一些特殊的字符常量,这些特殊字符又称为转义符。通过转义符可以在字符串中插入一些无法直接键入的字符,如换行符、引号等。每个转义符都以反斜杠()为标志。例如,n代表一个换行符,这里的n不再代表字母n而作为换行符号,其 ASCII 码为10。n另外,也可以在反斜杠后面用八进制数或十六进制数表示一个字符,该值为所表示字符的ASCII码值。例如,3表示Ctrl + C,x0A表示回车换行。转义符ASCII码值对应功能a0 x07响铃b0 x08退格f0 x0c走纸换页n0 x0a换行r0 x0d回车(不换行)t0 x09水平制表v0 x0b垂直制表0 x5c反斜杠0 x27单引号”0 x22双引号?0

26、 x3f问号ddd0ddd八进制数所代表的字符xhh0 xhh十六进制数所代表的字符例例2-8 转义字符的使用转义字符的使用1 #include 2 using namespace std;3 void main()4 5 cout 学号 t 姓名 t 成绩 n ;6 cout 1001 t 张大山 t 95 n ;7 cout 1002 t 李海涛 t 91 n ;8 cout 1003 t 周丽君 t 82 n ;9 用于显示表格排列,t控制宽度,n换行 程序运行结果如下:程序运行结果如下:学号学号 姓名姓名 成绩成绩1001 张大山张大山 951002 李海涛李海涛 911003 周丽君

27、周丽君 823、字符串、字符串n用双引号括起来的字符常量称为字符串。 n字符串常量实际上是一个字符数组,组成数组的字符除显式给出的外,还包括隐含在字符结尾处标识字符串结束的符号0。所以字符串“book”实际上包含了5个字符:b、o、o、k及0。 n字符串与字符比较有如下区别:n(1)字符是由单引号括起来的单个字符。而字符串是由双引号括起来的,且可以是零个或多个字符。例如:abc是不合法的。“”是合法的,表示空字符串。n(2)字符在内存中占一个字节的空间位置,字符串在内存中的字节数等于字符串的字符个数加1。C+ 系统会自动在字符串结尾处添加0作为结束标记。例如: a在内存中占一个字节的空间,而“

28、a”在内存中占二个字节的空间,分别存放a和0。2.3 表达式与运算符表达式与运算符n表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于计算一个公式,为变量赋值以及帮助控制程序执行流程。nC+ 提供了丰富的运算符,一个运算符可以利用运算对象来完成一次运算。n只有一个运算对象的运算符称为一元运算符。例如 +a 是一个一元运算符,它是对运算对象a自增加1。 n需要两个运算对象的运算符号称为二元运算符。比如赋值号( = )就是一个二元运算符,它将右边的运算对象赋给左边的运算对象。 n可以将运算符分成以下几类:q算术运算符;算术运算符;q关系和条件运算符;关系和条件运算符;

29、q移位和逻辑运算符;移位和逻辑运算符;q赋值运算符;赋值运算符;q其他的运算符。其他的运算符。2.3.2 算术运算符算术运算符C+ 语言支持所有的浮点型和整型数进行各种算术运算。这些运算符为+(加)、-(减)、*(乘)、/(除)以及%(取模)。例例2-9 运算符示例运算符示例 1 #include 2 using namespace std;3 void main()4 6 int a = 41; /定义几个变量并赋值 7 int b = 21;8 double x = 6.4;9 double y = 3.22;10 cout 变量数值: endl;11 couta= a t b= b t

30、x= x t y= y endl;13 cout 加: endl;14 cout a + b = a + b t x + y = x + y endl;16 cout 减: endl;17 cout a b = a - b t x y = x - y endl;19 cout 乘: endl;20 cout a * b = a * b t x * y = x * y endl;22 cout 除: endl;23 cout a / b = a / b t x / y = x / y endl;25 cout 计算余数: endl;26 cout a % b = a % b endl;28 co

31、ut 混合类型: endl;29 cout b + y = b + y t a * x = a * x 大于x1 x2x1大于x2=不小于x1 = x2x1 大于或等于x2小于x1 x2x1小于 x2=不大于x1 右移x n将x各位右移n位,左边按符号补0或补111110101左移x 逻辑右移x n将x右移n位(无符号的) ,左边补000110101&与x & y将x,y按位与操作01010000|或x | y将x,y按位或操作11011111异或x y将x,y按位异或操作10001111位反 x将x各比特位按位取反001010012.3.5 常用的标准函数常用的标准函数在C+语言中,有二种函

32、数:n一种是由C+ 系统提供的函数,n另一种是自定义函数。自定义函数在后面第3章详细介绍。这里简单介绍由C+ 系统提供的函数的用法。由C+ 系统提供的函数称为标准函数(又称为库函数)。C+ 语言提供了丰富的标准函数,设计程序时可以直接调用它们。下面介绍几个常用的标准函数,见表2-7。函数原型功能头文件int abs(int x)求整数的绝对值函数cstdlibdouble sqrt(double x)求x的平方根函数cmathdouble log(double x)求x的自然对数函数lnxcmathdouble exp(double x)求欧拉常数e的x次方函数excmathdouble po

33、w(double x, double y)求x的y次方函数xy,x、y为整数或实数cmathdouble sin(double x)正弦函数cmathdouble cos(double x)余弦函数cmathdouble tan(double x)正切函数cmathsizeof(x)求数据类型或表达式x所占用内存的字节数iostream2.4 程序控制语句程序控制语句语句组成了一个执行程序的基本单元,它类似于自然语言的句子。一条语句由一个分号结束。C+语句可以分为以下3类:q表达式语句表达式语句q复合语句复合语句q控制语句控制语句(1)表达式语句)表达式语句例如: x = 3; y = 5;

34、sum = x + y;一个表达式的最后加上一个分号就构成了一个语句,分号是语句不可缺少的部分。(2)复合语句)复合语句用把一些语句括起来构成复合语句。有时也把复合语句称为语句块。例如: x = 25 + i; cout “x = ” x endl; (3)控制语句)控制语句控制语句用于控制程序流程及执行的先后顺序。C+语言的控制语句可分为三类:q顺序控制语句、顺序控制语句、q选择控制语句选择控制语句q循环控制语句循环控制语句2.4.2 顺序控制语句顺序控制语句 顺序控制是指计算机在执行这种结构的程序时,按从上到下的顺序依次执行程序中的每一条语句。顺序控制是程序的最基本结构,包含有选择控制语句

35、和循环控制语句的程序,在总体执行上也是按顺序结构执行的。下面介绍一些经常使用的顺序控制语句 :q文件包含命令文件包含命令q赋值语句赋值语句q控制输出格式的输出语句控制输出格式的输出语句1、文件包含命令、文件包含命令nC+ 语言提供了数百个库函数供人们调用,以方便程序设计。这些库函数均保存在include目录下扩展名为 .h 的头文件中。用户在程序中要调用头文件中的库函数,必须使用#include命令。n#include 命令称为文件包含命令,又称为文件预处理语句。如果使用的是系统提供的调用标准库函数,就用尖括号把头文件括起来,如前面我们使用过的: #include n如果使用的头文件是用户自己

36、编写的,则可以将头文件与源程序保存在同一目录下,在文件包含命令中,用双引号“ ”把头文件括起来。如当前目录下有用户自己编写的头文件 mysum.h,则文件包含命令可写为: #include “mysum.h”2、赋值语句、赋值语句n赋值语句是给变量提供数据的最简单形式,它是程序中使用最多的语句之一,几乎所有的程序都要用到它。其一般格式为:n赋值语句的功能是把赋值号“=”右边表达式的值赋给左边的变量,它的意义与等号不同。变量变量 = = 表达式;表达式;例例2-14 求一元二次方程求一元二次方程 2x2 + 8x + 6的根的根 根据求根公式x1,2 = , 先对常量a、b、c赋值,然后再计算x

37、1和x2,1 #include 2 #include 3 using namespace std;4 void main()5 6 int a = 2, b = 8, c = 6;7 double x1, x2; 8 x1 = ( -b + sqrt( b * b 4 * a * c ) / ( 2 * a );9 x2 = ( -b - sqrt( b * b 4 * a * c ) / ( 2 * a );10 cout x1 = x1 t x2 = x2 endl;11 242bbaca 例例2-15 交换两个变量的值交换两个变量的值 n在编写程序时,有时需要把两个变量的值互换,交换值的

38、运算需要用到一个中间变量 1 #include 2 using namespace std;3 main()4 5 int a = 3, b = 5, temp;6 temp = a; 7 a = b;8 b = temp;9 cout a = a t b = b endl;10 第一步:把a的值放到中间变量temp中第二步:把b的值放到变量a中,这时变量a中存放的是b的值第三步:把temp中原a的值放到变量b中,这时变量b中得到的是原a的值设temp为中间变量3、控制输出格式的输出语句、控制输出格式的输出语句C+还提供了一些控制输出格式的操纵符,它们可以直接嵌入到输入/输出语句中来实现格式控

39、制。n常用的I/O流类库的操纵符如下:qdec /输出十进制数qhex /输出十六进制数qotc /输出八进制数qendl /插入换行符qends /插入空字符qsetw(int n) /设置输出域宽度为指定值nqsetprecision(int n) /设置浮点数的小数位数为指定值n (包括小数点)n在使用setw(int)和setprecision(int)操纵符时,要在程序的开头包含iomanip。例例2-16 应用控制输出宽度的应用控制输出宽度的setw操纵符,操纵符,编写一个用编写一个用“ * ”组成倒置的三角形程序。组成倒置的三角形程序。 1 #include2 #include3

40、using namespace std;4 void main()5 6 cout setw(7) * endl;7 cout setw(6) * endl;8 cout setw(5) * endl;9 cout setw(4) * endl;10 第一行setw(7) 指定输出宽度为7,有7个*号。第二行setw(6) 指定输出宽度为6,只有5个*号,因此在*号前面留有1个空格。第三行setw(5) 指定输出宽度为5,只有3个*号,因此在*号前面留有2个空格。第四行setw(4) 指定输出宽度为4,只有1个*号,因此在*号前面留有3个空格。* * * *2.4.3 选择控制语句选择控制语句

41、n单分支选择结构n双分支选择结构n多分支的if-else-if结构nswitch语句1、单分支选择结构、单分支选择结构if(条件表达式)(条件表达式) 若干语句;若干语句;对于单分支选择的if条件语句,其的语法格式为: 其流程图为:其流程图为:例例2-17从键盘任意输入两个整数,按从小到大的顺序依次输出这两个数 。1 #include 2 using namespace std;3 void main()45int a, b, temp;6cout a ;8cout b ;10 if(a b)11 12 temp = a;13 a = b;14 b = temp;15 16 cout a =

42、a t b = b b时,执行语句块;当ab时,跳过该语句块交换a、b两变量值的语句块程序运行结果如下:程序运行结果如下:任意输入二个整数:a = 8b = 5a = 5 b = 8例例2-18 对给定的三个数,求最大数的平方对给定的三个数,求最大数的平方 。1#include2using namespace std;3 void main()4 5int a = 5, b = 9, c = 7, max;6 max = a;7if (bmax) max = b; 8if (cmax) max = c; 9cout 最大数的平方为: max * max endl;10程序运行结果如下:程序运行

43、结果如下:最大数的平方为:最大数的平方为:812、双分支选择结构、双分支选择结构if(表达式)语句块1;else语句块2;对于双分支选择的对于双分支选择的if条件语句,条件语句,其的语法格式为:其的语法格式为: 其流程图为:其流程图为:例例2-19计算:计算: y = 1#include 2#include 3 using namespace std;4void main()56 double x, y;7 cin x;8 if( x -5 )9 y = sqrt( 25 - x * x );10 else11 y = sqrt( x * x - 25 );12 cout y = y endl

44、;13if-else结构,只能执行其中一个语句块& 为逻辑与运算符,表示x-5条件同时成立3、多分支的、多分支的if-else-if结构结构if(条件表达式1)程序段1;else if(条件表达式2)程序段2; else if(条件表达式n)程序段n;else程序段n+1;对于多分支选择的对于多分支选择的if条件语句条件语句其的语法格式为:其的语法格式为: 其流程图为:其流程图为: 例例2-20 编写一程序,根据月份判断季节。编写一程序,根据月份判断季节。1 /* if-else-if 结构. */2#include3void main()4 5 int month = 4; / 4月份 6

45、if(month = 12 | month = 1 | month = 2) 7 cout 4月是 冬天 endl;8 else if(month = 3 | month = 4 | month = 5) 9 cout 4月是 春天 endl; 10 else if(month = 6 | month = 7 | month = 8) 11 cout 4月是 夏天 endl; 12 else if(month = 9 | month = 10 | month = 11) 13 cout 4月是 秋天 endl; 14 else 15 cout 不合法的月份; 16 | 为逻辑或运算符,表示只需

46、满足其中一个条件if-else-i结构,只能执行其中一个语句块4、switch语句语句switch 的语法结构形式 :流程图流程图例例2-21把学生考试成绩分成A、B、C、D、E四等个级,大于90分为A等,8090分为B等,7080分为C等,6070分为D等,60分以下为E等。现某同学成绩为82分,试确定其成绩等级。1 #include2 using namespace std;3void main()4 5 int score=82;6 char grade;7 switch(score/10)8 9 case 10 :10 case 9:11 grade=A;12 break; 13 ca

47、se 8:14 grade=B;15 break; 16 case 7: 17 grade=C;18 break; 19 case 6:20 grade=D;21 break;22 default: 23 grade=E;24 25 cout 成绩等级: grade endl;26 switch结构,case后面的常量必须是整型数值2.4.5 循环语句循环语句nfor循环语句nwhile循环语句n循环嵌套1、for循环语句循环语句for(循环变量赋初值;循环条件;增量表达式) 循环体语句块;循环体循环体在for语句中,其语法成分是:(1)循环变量赋初值是初始循环的表达式,它在循环开始的时候就被

48、执行一次。(2)循环条件决定什么时候终止循环,这个表达式在每次循环的过程被计算一次。当表达式计算结果为false的时候,这个循环结束。(3)增量表达式是每循环一次循环变量增加多少(即步长)的表达式。(4)循环体是被重复执行的程序段。for语句的执行过程是这样的: 首先执行初始条件表达式,完成必要的初始化工作;再判断终止条件,若为true,则执行循环体;执行循环体之后,紧接着执行增量表达式,以便改变循环条件,这一轮循环就结束了。第二轮循环从判断终止条件开始,若为ture,则继续循环,否则跳出整个for语句,执行后续语句 例例2-22 设计一个累加器,计算从设计一个累加器,计算从1加到加到100的

49、和的和 1 #include2 using namespace std;3void main() 4 5 int sum=0; 6 for(int i = 1; i = 100; i+)7 8 sum = sum + i;9 10 cout 1 + 2 + 3 + . + 100 = sum endl;11 变量sum存放累加值,初始值为0i为循环变量,每循环一次,i自加1(步长为i+),循环终止条件为i100循环体内,每循环一次,累加一次循环变量的值例例2-23 求求 10 ! nn! = n * (n 1) * (n 2 ) * * 2 * 1 = n * (n - 1)! n递推公式:q

50、pn = n * pn-1 ,qpn-1 = ( n 1 ) * pn-2q qp1 = 11 #include 2 using namespace std;3 void main()4 5 int i;6 long p = 1;7 for (i=1; i=10; i+)8p = p * i;9 cout 10! = p endl;10 例例2-24 从键盘上输入从键盘上输入10个整数,个整数,边输入边统计偶数的个数边输入边统计偶数的个数 1 #include 2 using namespace std;3 void main()4 5 int i, x, s = 0;6 for ( i=1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com