上海交大C++课件.ppt

上传人:豆**** 文档编号:53146904 上传时间:2022-10-25 格式:PPT 页数:592 大小:2.23MB
返回 下载 相关 举报
上海交大C++课件.ppt_第1页
第1页 / 共592页
上海交大C++课件.ppt_第2页
第2页 / 共592页
点击查看更多>>
资源描述

《上海交大C++课件.ppt》由会员分享,可在线阅读,更多相关《上海交大C++课件.ppt(592页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、上海交大上海交大C+C+课件课件程序设计-2课程目标课程目标v进一步掌握程序一步掌握程序设计,包括,包括过程化程序程化程序设计和面向和面向对象的程序象的程序设计v掌握掌握C+语言言v了解常用的算法及算法了解常用的算法及算法设计过程程程序设计-3期末成绩的组成期末成绩的组成v期末考期末考试:50%v平平时作作业:20%v上机考上机考试:30%程序设计-4教材及参考教材教材及参考教材vC+程序程序设计思想与方法思想与方法(第(第2版)版)人民人民邮电出版社出版社翁惠玉翁惠玉vC+程序程序设计实验指指导孟桂娥孟桂娥上海交大出上海交大出版社版社vC程序程序设计(第(第3版)版)谭浩浩强vC+大学教程(

2、第大学教程(第5版)版)电子工子工业出版社出版社程序设计-5作业的相关规定及注意事项作业的相关规定及注意事项v本学期将布置若干个作本学期将布置若干个作业,在,在课后独立完成后独立完成v作作业环境:境:VC6.0、VC2008、VC2010v助教每周一晚上助教每周一晚上6:009:00,地点:地点:电院院4号楼号楼208机房。机房。(从第(从第2周到第周到第16周)答疑周)答疑v作作业要求:要求:必必须独立、按独立、按时地完成每次上机作地完成每次上机作业每次上机作每次上机作业的具体要求参的具体要求参见每次作每次作业的文档的文档说明明程序设计-6作业命名规则作业命名规则1.使用使用WinRAR 软

3、件将上机作件将上机作业(包括工程文件、(包括工程文件、资源文件、源文件和源文件、源文件和头文件等)的多个文件直接文件等)的多个文件直接压缩为一个一个压缩文件,文件,该压缩文件必文件必须命名命名为:”学号学号_作作业号号.rar”。2.若一次作若一次作业中包含多个小中包含多个小题,则每个小每个小题应分分别放入一个放入一个单独文件独文件夹,多个文件多个文件夹直接直接压缩为一个一个压缩文件。其中,每个小文件。其中,每个小题的文件的文件夹应命名命名为:”学号学号_作作业号号_题号号”;3.作作业中中应该不包括不包括Debug文件文件夹以及某些声音、以及某些声音、图像文件像文件4.命名命名规则示例:示例

4、:以学号以学号为5030309999,第四次作,第四次作业(第四次作(第四次作业中含有两个独立的中含有两个独立的小作小作业)为例:例:两个小作两个小作业的文件的文件夹名字名字应为:5030309999_4_1和和5030309999_4_2压缩文件名文件名应为:5030309999_4.rar程序设计-7评分标准评分标准u每次作每次作业内容上内容上课时发布,同布,同时发布布“完成截止完成截止日期日期”和提交地址,在和提交地址,在“截止日期截止日期”后,将停后,将停止止该次作次作业批改。批改。u一一经发现作作业抄抄袭情况,无情况,无论任何原因,任何原因,抄抄袭者者与与被抄被抄袭者者的当次作的当次

5、作业一律一律记为0分分程序设计-8第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-9C+程序的基本组成程序的基本组成v基本的基本的C+程序程序结构构/File:hello.cpp/thisprogramprintsthemessage/“helloeveryone”onthescreen#includeintmain()std:cout“helloeveryone”std:endl;return0;程序注程序注释预

6、处理命令理命令主程序主程序程序设计-10注释注释vC+的注的注释是从是从/开始到本行开始到本行结束束,也可以采,也可以采用用C风格的注格的注释,即从,即从/*与与*/之之间所有的文字所有的文字都是注都是注释,可以是,可以是连续的几行。的几行。v注注释是写是写给人看的,而不是写人看的,而不是写给计算机的。算机的。v程序注程序注释:从整体描述程序操作:从整体描述程序操作过程程v注注释也可以出也可以出现在主程序中,解在主程序中,解释主程序中一主程序中一些比些比较难理解的部分。理解的部分。v给程序添加注程序添加注释是良好的程序是良好的程序设计风格格程序设计-11C程序的基本组成程序的基本组成v基本的基

7、本的C程序程序结构构/File:hello.cpp/thisprogramprintsthemessage/“helloeveryone”onthescreen#includeintmain()std:cout“helloeveryone”std:endl;return0;程序注程序注释预处理命令理命令主程序主程序程序设计-12编译预处理编译预处理vC+的的编译分成两个分成两个阶段:段:预编译和和编译v预编译处理程序中的理程序中的预编译命令,即那些以命令,即那些以#开开头的指令的指令v编译预处理主要有:理主要有:库包含:用包含:用#include实现,表示程序使用了某个,表示程序使用了某个库宏

8、定宏定义:用:用#define实现。宏包括不。宏包括不带参数的宏和参数的宏和带参数的宏。不参数的宏。不带参数的宏通常用来定参数的宏通常用来定义符号常符号常量。量。带参数的宏用来定参数的宏用来定义一些一些较为复复杂的操作。的操作。程序设计-13库包含的格式库包含的格式v库是是预先做好的一些工具程序。先做好的一些工具程序。v每个每个库要提供一个接口,告要提供一个接口,告诉库的用的用户如何使用如何使用库提供的功能。提供的功能。v库包含就是把包含就是把库的接口文件放入源文件,以便的接口文件放入源文件,以便编译器器检查程序中程序中对库的的调用是否正确。用是否正确。v库包含格式:包含格式:#include

9、:包含了一个系:包含了一个系统库#include“filename”:包含了一个用:包含了一个用户自定自定义的的库程序设计-14宏定义宏定义v不不带参数的宏定参数的宏定义通常用于通常用于为程序中的常量取一程序中的常量取一个名字,称个名字,称为符号常量。格式:符号常量。格式:#define标识符符替替换文本文本如:如:#defineRADIUS5#definePI3.14159#defineAREAPI*RADIUS*RADIUSv用用define定定义宏是宏是C语言的言的习惯,在,在C+中有更好中有更好的解决方案的解决方案程序设计-15使用符号常量的好处使用符号常量的好处v含含义清楚,提高了程

10、序的可清楚,提高了程序的可读性。性。v在需要改在需要改变一个常量一个常量时能做到能做到“一改一改全改全改”程序设计-16C程序的基本组成程序的基本组成v基本的基本的C程序程序结构构/File:hello.cpp/thisprogramprintsthemessage/“helloeveryone”onthescreen#includeintmain()std:cout“helloeveryone”std:endl;return0;程序注程序注释预处理命令理命令主程序主程序程序设计-17主程序主程序v主程序由一个或多个函数主程序由一个或多个函数组成成v每个程序都必每个程序都必须有一个名有一个名为

11、main的函数,的函数,它是程序的入口。它是程序的入口。程序设计-18函数的构成函数的构成intmain()函数函数头std:cout“helloeveryone”std:endl;return0;函数体与与PYTHONPYTHON不同,不同,C+C+的函数体必须用一对花括号括起来。的函数体必须用一对花括号括起来。事实上,事实上,PYTHONPYTHON中所有必须缩进的语句,在中所有必须缩进的语句,在C+C+中都必须中都必须用花括号括起来。用花括号括起来。程序设计-19输出流对象输出流对象std:coutv“流流”指的是指的是设备之之间传递的数据流的数据流v输出流是出流是传给输出出设备的数据流

12、的数据流vcout代表代表显示器示器v格式格式将将hello显示在屏幕上:示在屏幕上:std:cout“hello”std:cout“hello,everyone”std:endlvstd:endl表示表示换行行程序设计-20名字空间名字空间v在大型的程序在大型的程序时,每个源文件可能由不同的开,每个源文件可能由不同的开发者开者开发。不同的源文件中可能有同。不同的源文件中可能有同样的名字。当的名字。当这些源文些源文件件连接起来形成一个可接起来形成一个可执行文件行文件时,就会造成重名。,就会造成重名。v名字空名字空间是把一是把一组程序程序实体体组合在一起,构成的一个合在一起,构成的一个作用域。作

13、用域。v一个名字空一个名字空间中不能有重名,不同的名字空中不能有重名,不同的名字空间中可以中可以定定义相同的相同的实体名。当引用某个体名。当引用某个实体体时,需要加上名,需要加上名字空字空间的限定的限定v程序中的程序中的std是是C+中所有中所有标准准库的名字空的名字空间名。名。程序设计-21使用名字空间的指令使用名字空间的指令v格式:格式:usingnamespace名字空名字空间名;名;v一旦用了使用名字空一旦用了使用名字空间的指令,的指令,该名字名字空空间中的所有的中的所有的实体在引用体在引用时就不需要就不需要再加名字空再加名字空间的限定了。的限定了。v第一个程序可以改写第一个程序可以改

14、写为:程序设计-22/file:hello.cpp/Thisprogramprintsthemessage“Helloworld.”/Onthescreen#includeusingnamespacestd;intmain()cout“Helloworld.”endl;return0;程序设计-23第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-24计算园的面积和周长计算园的面积和周长/file:circle.cp

15、p/该程序用于计算园的面积和周长该程序用于计算园的面积和周长#definePI3.14159/定义符号常量定义符号常量#includeusingnamespacestd;intmain()doubleradius,area,circum;coutradius;area=PI*radius*radius;circum=2*PI*radius;coutendl;cout园的面积为:园的面积为:areaendl;cout园的周长为:园的周长为:circumendl;return0;变量定义变量定义输入阶段输入阶段计算阶段计算阶段输出阶段输出阶段程序设计-25程序的组成程序的组成v变量定量定义:C+中

16、的中的变量在使用前都必量在使用前都必须被定被定义。变量定量定义严格指出格指出变量中可以存放的数据量中可以存放的数据类型。型。v输入入阶段段:获取取执行行时才能确定的用才能确定的用户数据。数据。输入入过程一般包括两步程一般包括两步:显示提示信息示提示信息读取数据取数据v计算算阶段段:由:由输入推入推导出出输出的出的过程。通常通程。通常通过各种各种计算得到。算得到。v输出出阶段:段:显示程序示程序执行的行的结果果程序设计-26第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减

17、运算符强制制类型型转换数据的数据的输入入输出出程序设计-27变量定义变量定义v变量,也称量,也称为对象,是数据的存放之象,是数据的存放之处v变量有三个重要属性:名称、量有三个重要属性:名称、值、类型型。变量定量定义就是就是告告诉编译器器变量的名字及量的名字及该变量中可以存放哪一量中可以存放哪一类数据数据类型的型的值vC+中中变量定量定义的格式的格式:类型名型名变量名量名1,变量名量名2,变量名量名n;v如:如:intnum1,num2;doublearea;v在在C+中,每个中,每个变量在使用前必量在使用前必须被定被定义,以便,以便编译器器检查变量使用的合法性。量使用的合法性。程序设计-28变

18、量命名变量命名v名字必名字必须以字母或下划以字母或下划线开开头。C+语言中,名字中出言中,名字中出现的大写和小写字母被看作是不同的字符,因此的大写和小写字母被看作是不同的字符,因此ABC,Abc,abc是三个独立的是三个独立的变量名。量名。v名字中的其它字符必名字中的其它字符必须是字母、数字或下划是字母、数字或下划线,不得使,不得使用空格或其它特殊符号用空格或其它特殊符号v名字不可以是系名字不可以是系统的保留的保留词,如:,如:int,double,for,return等,它等,它们在在C+语言中有特殊用途言中有特殊用途vC+没有没有规定定过名字的名字的长度,但各个度,但各个编译系系统都有自己

19、都有自己规定。定。v名字名字应使使读者易于明白其存者易于明白其存储的的值是什么,做到是什么,做到“见名名知意知意”。程序设计-29第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-30数据类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-31数据类型数据类型整整型型v整型数的表示范整型数的表示范围:由各个:由各个编译器指定。整型数器指定。整型数有三种存

20、有三种存储方式,在方式,在VC中占用的空中占用的空间如下所示如下所示基本型基本型 int:4byte(PC)231(2311)长整型整型l long:long/longint4byte(PC)231(2311)短整型短整型short:2byte(PC)215(2151)v允允许的操作:算的操作:算术运算、比运算、比较大小等大小等程序设计-32整型数的表示整型数的表示码制制v讨论如何将符号位数字化。如何将符号位数字化。0表示正数,表示正数,1表示表示负数。数字的三种数。数字的三种编码方式方式为:原原码反反码补码程序设计-33原原码v用符号位和数用符号位和数值表示表示带符号数。正数的符号数。正数的

21、符号位符号位为0,负数的符号位数的符号位为1。数。数值部部分用二分用二进制表示。如用一个字制表示。如用一个字节表示数表示数值:62原原=00111110-62原原=10111110程序设计-34反反码v正数的反正数的反码与原与原码相同,相同,负数的反数的反码为该数的数的绝对值的原的原码取反。如:取反。如:62反反=00111110-62反反=11000001程序设计-35补码v正数的正数的补码与原与原码相同,相同,负数的数的补码为该数的反数的反码加加1。如:。如:62补=00111110-62补=11000010v大多数大多数计算机系算机系统都用都用补码表示整数表示整数程序设计-36整数的内部

22、表示整数的内部表示v整数在整数在计算机内部通常用算机内部通常用补码表示,在表示,在VC中中也是如此。也是如此。v整数运算整数运算时要注意数据的表示范要注意数据的表示范围。如整数用。如整数用两个字两个字节表示表示时,正整数,正整数32767加加1的的结果果为32768。这称称为整数运算的溢出,系整数运算的溢出,系统不不检查这样的的错误,程序,程序员必必须自己保自己保证程序中不出程序中不出现这样的的错误。程序设计-37无符号整数无符号整数v在某些在某些应用中,不可能出用中,不可能出现负数,数,则整型数中有整型数中有一半的数一半的数值范范围是被浪是被浪费的。因此在的。因此在C/C+中可中可以将所有的

23、数都看成正整数,称以将所有的数都看成正整数,称为无符号数无符号数v无符号数的定无符号数的定义:在各种整数:在各种整数类型前加上关型前加上关键词unsigned,变成成unsignedint,unsignedshort,unsignedlongunsignedint02321unsignedshort065535unsignedlong02321程序设计-38整型常量整型常量v整型常量可用十整型常量可用十进制、八制、八进制和十六制和十六进制表示制表示十十进制:制:123,234八八进制:制:0123十六十六进制:制:0 x123,0 x3a2fv一旦定一旦定义了一个整型了一个整型变量,可以将一个

24、整型常量,可以将一个整型常量量赋给该整型整型变量。如量。如inta;a=123;或或a=0 x123;都是正确的都是正确的程序设计-39数据类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-40数据类型数据类型浮点数浮点数vVC中,中,实型数以浮点形式表示型数以浮点形式表示v一个浮点数分成尾数和一个浮点数分成尾数和阶码两部分。两部分。阶码表示小数点在表示小数点在该数中的位数,尾数表示数的有效数数中的位数,尾数表示数的有效数值。v浮点浮点类型的分型的分类单精度精度float:占用占用4字字节,3字字节尾数,尾数,1字字节指数指数,

25、精确度精确度7位位,范范围10381038双精度双精度double:占用占用8字字节,5字字节尾数尾数,3字字节指数指数,精确度精确度1516位位,范范围1030710308v浮点数无法精确表示浮点数无法精确表示程序设计-41浮点数常量浮点数常量v浮点数常量有两种表示法:浮点数常量有两种表示法:十十进制表示:制表示:1.233.145.988科学科学计数法:数法:尾数尾数*10指数指数尾数尾数e指数指数123e2=123002.25e3=0.00225 注意:尾数不能注意:尾数不能为空空 e31e3 指数必指数必须为整数整数 2.5e2.3是非法的是非法的程序设计-42数据类型数据类型整型整型

26、实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-43数据类型数据类型字符类型字符类型v字符字符类型:存放一个字母或符号,型:存放一个字母或符号,占一个字占一个字节,存放的是字符的内,存放的是字符的内码。v字符字符类型名:型名:char程序设计-44字符的机内表示字符的机内表示v字符的机内表示字符的机内表示用字符用字符编码表示。常用的有表示。常用的有ASCII,BCD,EBCDIC等。等。PC机中都用机中都用ASCII.vASCII码的重要特性的重要特性数字数字0到到9是是顺序存放的序存放的字母被分成二段:大写的和小写的。大写字字母被分成二段:大写

27、的和小写的。大写字母是母是连续的,小写字母也是的,小写字母也是连续的的程序设计-45可打印字符和非打印字符可打印字符和非打印字符v可打印字符:小写字母、大写字母、数可打印字符:小写字母、大写字母、数字、字、标点符号、空格等点符号、空格等v非打印字符:非打印字符:换行和行和报警字符或响警字符或响铃等等控制字符控制字符程序设计-46可打印字符的使用可打印字符的使用v字符常量字符常量a,S,2等用一等用一对单引号括起来的数引号括起来的数据称据称为字符常量字符常量v与与PYTHON不同,不同,C+中的中的单引号和双引号和双引号有不同的用引号有不同的用处。单引号括起来的是引号括起来的是一个字符,双引号括

28、起来的是字符串一个字符,双引号括起来的是字符串程序设计-47可打印字符的使用可打印字符的使用v赋值charc1,c2;c1=a;c2=b;c1=97;c2=98;比比较c=9和和c=9?v运算运算 如:如:c1=a;c1=c1+2;c1的的值应为?如如c中存放的是小写字母,中存放的是小写字母,则ca +1表示什么?表示什么?如如c中存放的是数字(中存放的是数字(09),),则c0表示什么表示什么?如如c1,c2c1,c2存放的是小写字母,存放的是小写字母,则c2-c1c2-c1表示什么表示什么?程序设计-48转义字符转义字符v一些非打印和一些非打印和难以打印的字符需要用以打印的字符需要用转义序

29、列表示序列表示换行符写行符写为n,虽然它由两个字符和然它由两个字符和n来描述,但它表来描述,但它表示一个示一个ASCII字符。反斜杠符号字符。反斜杠符号称称为转义字符。字符。v双引号和双引号和单引号的引号的转义如果在一个串中把双引号如果在一个串中把双引号”用作一个字符,必用作一个字符,必须要要对它它转义,否否则它会它会终结该字符串。字符串。cout“”abc”;输出出“abc”双引号的双引号的单字符表示:可以写字符表示:可以写”,也可以写,也可以写”。v八八进制数制数转义序列序列警告字符警告字符a可以表示成可以表示成:007,07,7程序设计-49字符形式字符形式含含义n换行行t水平制表水平制

30、表b退一格退一格r回回车f换页”“ddd1到到3位八位八进制数代表的字符制数代表的字符xhh1到到2位十六位十六进制数代表的字符制数代表的字符常用的转义字符常用的转义字符程序设计-50数据类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-51数据类型数据类型布尔类型布尔类型v布布尔型(型(bool):):标准准C中没有布中没有布尔型数据,型数据,这是是C+中新增的数据中新增的数据类型。占一个字型。占一个字节。它。它的的值为:true,falsev布布尔型数据可以型数据可以进行行逻辑运算运算v布布尔型数据的内部表示:型数据的内部表

31、示:true为1,false为0程序设计-52数据类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-53枚举类型枚举类型v有有时在在设计程序程序时会用到一些特殊的会用到一些特殊的对象,象,这些些对象的取象的取值范范围是有限可数的。如在一个生成日是有限可数的。如在一个生成日历的程序中很可能用到一个表示一个星期中的每的程序中很可能用到一个表示一个星期中的每一天的一天的对象。象。该对象可能取象可能取值的范的范围就是星期日就是星期日到星期六。到星期六。v解决方法解决方法采用采用编码:假:假设0表示星期日,表示星期日,1表示星期一,表示星

32、期一,6表示星期六。然后用一个整型表示星期六。然后用一个整型变量如量如weekday表示表示这个个对象。缺点是可象。缺点是可读性差。性差。符号常量:用符号常量:用#define功能将功能将这些数字定些数字定义为符号常量符号常量定定义一个新一个新类型型程序设计-54定义新的枚举类型定义新的枚举类型v格式:格式:enum枚枚举类型名型名元素表元素表;v定定义一个表示一周中每天的名字的枚一个表示一周中每天的名字的枚举类型:型:enumweekdayTSunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;v枚枚举类型型变量的定量的定义:wee

33、kdayTweekday;v枚枚举类型型变量的使用:量的使用:赋值:weekday=Friday;比比较:MondayFriday比比较这两个两个值的内部表示的内部表示枚枚举类型不能直接型不能直接输入入输出出程序设计-55枚举类型的内部表示枚举类型的内部表示v在内部,枚在内部,枚举类型采用型采用编码表示。当定表示。当定义enumweekdayTSunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;时,默,默认用用0代表代表Sunday,1代表代表Monday,6表示表示SaturdayvC+语言的言的编译器也允器也允许明确指出枚明确指

34、出枚举类型的元素的内部型的元素的内部表示。例如,希望从表示。例如,希望从1而不是而不是0开始开始编号,可以号,可以这样定定义enumweekdayTSunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;v也可以从中也可以从中间某一个开始重新指定,如某一个开始重新指定,如enumweekdayTSunday,Monday,Tuesday=5,Wednesday,Thursday,Friday,Saturday;程序设计-56数据类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量

35、程序设计-57变量赋初值变量赋初值v在在C+中,中,变量定量定义只是只是给变量分配相量分配相应的空的空间vC+允允许在定在定义变量的同量的同时给变量量赋初初值v格式:格式:类型名型名变量名量名=初初值;类型名型名变量名(初量名(初值););如:如:intcount=0;或或intcount(0);都是定都是定义整型整型变量量count,并,并为它它赋初初值0。v可以可以给被定被定义的的变量中的一部分量中的一部分变量量赋初初值,如:,如:intsum=0,count=0,num;定义变量时没有赋初值,然后直接引用该变量是危险的!定义变量时没有赋初值,然后直接引用该变量是危险的!程序设计-58数据

36、类型数据类型整型整型实型型字符型字符型布布尔型型枚枚举类型型变量量赋初初值了解占用的内存量了解占用的内存量程序设计-59了解占用的内存量了解占用的内存量vsizeof运算符用来了解某一运算符用来了解某一类型或某一表达式型或某一表达式占用的内存量。占用的内存量。vsizeof运算符的用法:运算符的用法:sizeof(类型名型名)或或sizeof(表达式表达式)v如:如:sizeof(float):float类型的型的变量占用的内存量量占用的内存量sizeof(a+15):表达式:表达式a+15的的计算算结果果所占的内存量所占的内存量程序设计-60第二章第二章通过例子学习通过例子学习第一个程序第一

37、个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-61符号常量符号常量v用用#define定定义符号常量的符号常量的问题所定所定义的符号常量无法的符号常量无法进行行类型型检查#define的的处理只是理只是简单的字符串的替的字符串的替换,可能会引起一些意想不到的可能会引起一些意想不到的错误vC+建建议用用const定定义符号常量符号常量const=;如:如:constdoublePI=3.1415926;程序设计-62第二章第二章通过例子学习通过例子学习第一个程序第

38、一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-63算术表达式算术表达式v计算是算是计算机提供的最基本的功能,算算机提供的最基本的功能,算术表达式表达式是完成此功能的工具是完成此功能的工具v算算术表达式由运算符和运算表达式由运算符和运算对象象组成成v算算术运算符:运算符:+*/%v出出“”外,所有的算外,所有的算术运算符都是二元运算符。运算符都是二元运算符。“”可可为二元运算,也可二元运算,也可为一元运算一元运算v优先先级:高:高*/%,低,低+v结合性:左合性

39、:左结合合v运算运算对象可以是整型、浮点型、字符型和布象可以是整型、浮点型、字符型和布尔型型程序设计-64各种类型的数据的混合运算各种类型的数据的混合运算v在在进行运算前,将运算数行运算前,将运算数转为同一同一类型型v转换规则bool、char和和short这些非些非标准的整数在运算前准的整数在运算前都必都必须转换为int。int和和float运算运算时,将,将int转换成成float。int和和long运算运算时,将,将int转换成成long。int和和double运算运算时,将,将int转换成成double。float和和double运算运算时,将,将float转换成成double。程序设

40、计-65数学函数库数学函数库v在在C+语言中,其他的数学运算都是通言中,其他的数学运算都是通过函数的形式来函数的形式来实现。所有的数学函数。所有的数学函数都在都在cmath中。中。v要使用要使用这些数学函数,必些数学函数,必须在程序在程序头上上写上写上编译预处理命令:理命令:#include程序设计-66cmath的主要内容的主要内容绝对值函数函数intabs(intx);doublefabs(doublex)exdoubleexp(doublex)xydoublepow(doublex,doubley)doublesqrt(doublex)lnxdoublelog(doublex)log10

41、 xdoublelog10(doublex)三角函数三角函数doublesin(doublex)doublecos(doublex)doubletan(doublex)反三角函数反三角函数doubleasin(doublex)doubleacos(doublex)doubleatan(doublex)程序设计-67第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-68变量赋值变量赋值v变量量赋值是通是通过赋值表达式表

42、达式实现,赋值表达式格式表达式格式=作用:将右作用:将右边的表达式的的表达式的值存入左存入左边的的变量,整个表达式量,整个表达式的的值是右是右边的表达式的的表达式的结果。果。注意:注意:x=x+2是正确的表达式是正确的表达式赋值运算符是右运算符是右结合的合的v左左值(lvalue):在:在C+中,能出中,能出现在在赋值运算符左运算符左边的表达式称的表达式称为左左值v赋值语句:句:赋值表达式后面加上分号。表达式后面加上分号。程序设计-69赋值时的自动类型转换赋值时的自动类型转换v当表达式的当表达式的结果果类型和型和变量量类型不一致型不一致时,系,系统会将右会将右边的表达式的的表达式的结果果转换成

43、左成左边的的变量的量的类型,再型,再赋给左左边的的变量。量。v转换规则:实型数型数整型:舍弃小数部分。整型:舍弃小数部分。整型数整型数实型数:数型数:数值不不变,但以浮点的形式保存在相,但以浮点的形式保存在相应的的变量中量中Doublefloat:截取前面七位有效数字存放到:截取前面七位有效数字存放到float变量中量中Floatdouble:将有效位:将有效位扩展到展到16位位字符型字符型整型整型变量:将字符型数据放入整型量:将字符型数据放入整型变量的最后一个字量的最后一个字节。如果所用系。如果所用系统将字符将字符处理成无符号量,理成无符号量,则前面前面补0。如果所。如果所用系用系统将字符将

44、字符处理成有符号量,理成有符号量,则扩展符号。展符号。整型整型字符字符类型:直接将整型数据的最低八位型:直接将整型数据的最低八位赋给字符字符变量。量。程序设计-70赋值的嵌套赋值的嵌套v将将赋值表达式作表达式作为更大的表达式的一部更大的表达式的一部分分。如:。如:a=(x=6)+(y=7)等价于分等价于分别将将x和和y的的值设为6和和7,并将,并将6和和7相相加,加,结果存于果存于变量量av赋值运算符运算符=的的优先先级比算比算术运算符低运算符低程序设计-71多重赋值多重赋值a=b=c=5给a,b,c均均赋值5当用到多重当用到多重赋值时,要保,要保证所有的所有的变量都是同量都是同类型的,以避免

45、在自型的,以避免在自动类型型转换时出出现与与预期不相期不相符的符的结果的可能性。如果的可能性。如变量量d定定义为double,变量量i定定义为int,语句句d=i=1.5;的的结果是:果是:i等于等于1,d等于等于1.0 程序设计-72复合赋值运算复合赋值运算v其他运算符与其他运算符与赋值运算符运算符结合的运算符称合的运算符称为复复合合赋值运算符运算符v常用的复合常用的复合赋值运算符有:运算符有:+=,=,*=,/=,%=v变量量op=表达式表达式;等价于:等价于:变量量=变量量op表达式表达式;v如:如:balance+=deposit;balance=surcharge;x/=10;sal

46、ary*=2;程序设计-73第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-74自增、自减运算符自增、自减运算符v自增、自减运算符:自增、自减运算符:+,相当于相当于+=1和和=1,它有前它有前缀和后和后缀两种用法两种用法+k,k+,k,k,但含但含义有所不同。如:有所不同。如:i=3j=i+i=4j=3j=+ii=4j=4j=ii=2j=3j=ii=2j=2程序设计-75第二章第二章通过例子学习通过例子学习第一个

47、程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-76强制类型转换强制类型转换v赋值和算和算术运算运算时会会执行自行自动类型型转换v如要想使如要想使4/5的的结果是果是0.8,而不是,而不是0,该怎怎么么办?可以将其中一个写成浮点数。例如:?可以将其中一个写成浮点数。例如:4.0/5或或4/5.0vintx=4,y=5;要想使要想使x/y的的结果果为0.8而而不是不是0,该怎么怎么办?v答案是:用答案是:用强制制类型型转换程序设计-77强制类型转换强制类型转

48、换v强制制类型型转换格式:格式:(类型名)(表达式)型名)(表达式)类型名型名(表达式)(表达式)v例如,要想使两个整型例如,要想使两个整型变量量x和和y出的出的结果果为double型,可以用下列型,可以用下列语句句doublez;z=(double)x/y;程序设计-78转换类型转换类型v强制制类型型转换在在C+类型系型系统中引入了一个漏洞中引入了一个漏洞v为了方便了方便查找找这些些错误,C+提供了在提供了在强制制类型型转换时指明指明转换的性的性质。v转换的性的性质有四种:有四种:静静态转换(static_cast):用于:用于编译器器隐式式执行的任何行的任何类型型转换重解重解释转换(rei

49、nterpret_cast)常量常量转换(const_cast)动态转换(dynamic_cast)v格式格式转换类型型(表达式表达式)z=static_cast(x)/y;程序设计-79第二章第二章通过例子学习通过例子学习第一个程序第一个程序第二个程序第二个程序变量定量定义数据数据类型型符号常量符号常量算算术表达式表达式赋值表达式表达式自增自减运算符自增自减运算符强制制类型型转换数据的数据的输入入输出出程序设计-80输入流对象输入流对象cinv键盘流入的数据流,将流入的数据流,将键盘输入的数据入的数据存入存入变量量v格式:格式:cin变量量cin变量量1变量量2变量量n程序设计-81用户的响

50、应用户的响应v当程序当程序执行到行到这个个语句句时会停下来等待用会停下来等待用户的的输入入v用用户可以可以输入数据,用回入数据,用回车()结束。束。v当有多个当有多个输入数据入数据时,一般用空白字符(空格、制表,一般用空白字符(空格、制表符和回符和回车)分隔。)分隔。v如:如:a为整型,整型,d为double,则对应于于cinad,用,用户的的输入可以入可以为1213.2 12(tab键)13.2 12 13.2 33程序设计-82cin.getv作用:从作用:从键盘接受一个字符接受一个字符v用法:用法:cin.get(ch);或);或ch=cin.get(),都,都是从是从键盘输入一个字符并

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档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