




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第1章章 C+程序设计基础程序设计基础 皮德常皮德常南京航空航天大学南京航空航天大学 计算机科学与技术学院计算机科学与技术学院程序设程序设计语言计语言的发展的发展历史历史3为什么要学习为什么要学习C+程序设计程序设计C+是是C的扩充版本。的扩充版本。C+对对C的扩充是由的扩充是由Bjarne Stroustrup于于1980年在贝尔实验室提年在贝尔实验室提出来的。起初他把这种语言称为出来的。起初他把这种语言称为“带类的带类的C”,到到1983年才改名为年才改名为C+。 2. C+吸收了吸收了C和和Simula67的精髓,它具有的精髓,它具有C所无法比拟的优越性。所无法比拟的优越性。 41.
2、2 简单的简单的C+程序举例程序举例 #include using namespace std;int main ( ) int a, b; / 定义定义2个变量个变量 cout a b;/* 从键盘输入从键盘输入a和和b的值的值 */ cout a + b = a + b endl; return 0; 1-1.cpp51.3 注释方法注释方法 1. C+的注释形式有两种,一种是的注释形式有两种,一种是“/* */”格式,格式,这是这是C语言中的注释风格语言中的注释风格 ;2.双斜线双斜线/,在双斜线之后的部分都会被视为注释,在双斜线之后的部分都会被视为注释; 不必为程序的每一行都加注释,也
3、不必为一目了不必为程序的每一行都加注释,也不必为一目了然的代码加注释,只要注解适当的代码,有助于然的代码加注释,只要注解适当的代码,有助于他人理解即可。他人理解即可。 61.4 编程风格编程风格 程序员使用标识符、空格、程序员使用标识符、空格、Tab键、空行、键、空行、标点符号、代码缩进排列和注释等,来安标点符号、代码缩进排列和注释等,来安排源代码的方式。排源代码的方式。 【例例1.2】一个不好的风格程序一个不好的风格程序 #include using namespace std; int main ( )int a, b; cout a b;cout a + b = a + b endl;
4、return 0; 71.5.1 C+程序中的字符程序中的字符 26个小写英文字母;个小写英文字母; 26个大写英文字母;个大写英文字母; 10个阿拉伯数字和其它一些符号,如:个阿拉伯数字和其它一些符号,如:+、-、*、/ 等,其中每个等,其中每个ASCII码字符占用一码字符占用一个字节。个字节。 81.5.2 标识符标识符 标识符由字母、下划线和数字组成,且第一个字标识符由字母、下划线和数字组成,且第一个字符不能为数字,长度一般不超过符不能为数字,长度一般不超过32个,文件名只个,文件名只识别前识别前8个字符。标识符大小写敏感。个字符。标识符大小写敏感。 采用有意义的单词作标识符,做到见名知
5、意。采用有意义的单词作标识符,做到见名知意。 studentName、StudentName、name_of_student abc、a123 8abc 、Student Name、$bill 91.5.3 关键字关键字 又称保留字,是系统定义的一些特殊标识又称保留字,是系统定义的一些特殊标识符,具有特定含义,不允许挪作他用;符,具有特定含义,不允许挪作他用; 表表1-1:C+常用关键字。常用关键字。101.6 C+的基本数据类型的基本数据类型 两大类:基本数据类型和导出数据类型。两大类:基本数据类型和导出数据类型。 基本类型也称预定义的类型或内置数据类型,包基本类型也称预定义的类型或内置数据
6、类型,包括括char、int、float、 double、bool和和void等。等。 导出类型:由基本数据类型构造出来的类型,包导出类型:由基本数据类型构造出来的类型,包括数组、指针、引用、结构体、共用体、枚举和括数组、指针、引用、结构体、共用体、枚举和类等。类等。 表表1-2:C+的基本数据类型。的基本数据类型。类类 型型 名名 称称字节数字节数取取 值值 范范 围围bool布尔型布尔型1true, falsesigned char有符号字符型有符号字符型1-128 127unsigned char无符号字符型无符号字符型10 255signed short int 有符号短整型有符号短整
7、型2-32768 32767unsigned short int 无符号短整型无符号短整型20 65535signed int 或或 signed有符号整型有符号整型4-231 (231-1)unsigned int 无符号整型无符号整型40 (232-1)signed long int 有符号长整型有符号长整型4-231 (231-1)unsigned long int 无符号长整型无符号长整型40 (232-1)float实型实型4-1038 1038double双精度实型双精度实型8-10308 10308long double长双精度实型长双精度实型8-10308 10308121.7
8、.1 变量变量 在程序运行中,值可变的量称为变量。在程序运行中,值可变的量称为变量。 变量的三要素:变量名、内存空间和值。变量的三要素:变量名、内存空间和值。 1. 定义变量:定义变量:bool b;char gender, ch;int a, b ; double dx ; float f ; unsigned u ; 131.7.1 变量变量2. 变量赋值变量赋值(1)变量定义后,用赋值语句赋初值。)变量定义后,用赋值语句赋初值。int a;a = -12+100; (2)在定义变量的同时,初始化。)在定义变量的同时,初始化。int a = 12; 变量不赋值,其值是什么变量不赋值,其值是
9、什么? ?141.7.2 文字常量文字常量1. 在程序运行中,值不能被改变的量称为常量。在程序运行中,值不能被改变的量称为常量。2. 文字常量是指可直接使用的常量。文字常量是指可直接使用的常量。3. 文字常量存储在代码区,对它的访问不是通文字常量存储在代码区,对它的访问不是通过地址进行的。过地址进行的。4. 文字常量分为:整形、实型、字符型和字符文字常量分为:整形、实型、字符型和字符串型常量。串型常量。 151.7.2 文字常量文字常量1整型常量整型常量(1)十进制整数,如:)十进制整数,如:789, -456 (2)八进制整数,如:)八进制整数,如:0567,-026 (3)十六进制整数,如
10、:)十六进制整数,如:0 x789, -0 xAB(4)长整型与无符号型整数)长整型与无符号型整数 长整型整数,如:长整型整数,如:12L, 0234L,-0 xABl 无符号型整数,如:无符号型整数,如:12U, 0234U,0 xABu161.7.2 文字常量文字常量2实型常量实型常量 在内存中以浮点形式存放,均为十进制数,无数在内存中以浮点形式存放,均为十进制数,无数制区分。制区分。(1)小数形式:)小数形式: 1.65,1.,.123(2)指数形式:)指数形式:1.23e5、1.23e-5、1e3171.7.2 文字常量文字常量3字符型常量:用单引号括起来的一个字符,如字符型常量:用单
11、引号括起来的一个字符,如 a,A,?。在内存中的。在内存中的ASCII码值,数据类型为码值,数据类型为char。4. 转义字符:转义字符: b退格退格n换行符换行符r回车符回车符tTab键键反斜杠字符反斜杠字符 单引号单引号双引号双引号nnn 八进制值,最多三位八进制值,最多三位xhh 十六进制值,最多两位十六进制值,最多两位 例如:例如: n 12 xa A 101 x41 1-2.cpp181.7.2 文字常量文字常量5字符串常量字符串常量 123、 I am a Chinese.、a 串结束符:串结束符:0 a和和a不同不同 思考:思考:Ive done dog s toy Love 1
12、91.7.3 符号常量符号常量例如:例如:#define PI 3.1415926定义符号常量的好处:定义符号常量的好处:?201.7.4 常变量常变量例如:例如:const double pi = 3.14159; 常变量具有变量的三个要素。常变量具有变量的三个要素。必须在定义时赋初值,且在程序的运行中值不必须在定义时赋初值,且在程序的运行中值不可变。可变。1. 编译器可对常变量进行类型检查。编译器可对常变量进行类型检查。 211.8.1 算术运算符和算术表达式算术运算符和算术表达式 五个算术运算符:五个算术运算符:+、-、*、/、%5/2为为2,5.0/2为为2.5 8%3 为为2,而,而
13、8.0%3非法非法 221.8.3 赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符赋值运算符: = 例如:例如:3.14 = pi x + y = 100 const int N = 100;N = 200; b = c = d = a+5 a = 5 + c = 20 231.8.3 赋值运算符和赋值表达式赋值运算符和赋值表达式复合赋值运算符复合赋值运算符: a = a + 3 a + = 3 y *= (x + 8) y = y * (x + 8) 思考:思考:若若a初值为初值为6,执行表达式,执行表达式a += a -= a *= a 后,表达式的后,表达式的值和值和a的值分别
14、是多少的值分别是多少? 241.8.4 自增、自减运算自增、自减运算 示例:示例:int i =3, j ; j = +i ; 不同于:不同于:j = i+ ; 3+ 、 +(x+y) 均非法!均非法!int i =3 , j = 4, x ; x = (i+) + (j+); 251.8.5 关系运算符和关系表达式关系运算符和关系表达式 、 、 = 优先级高于优先级高于 = = 、 ! = 运算结果为运算结果为boolean类型。类型。注意:注意:有有a=1, b=2, c=3,则表达式,则表达式 abc 的值为的值为 false, 这是一种这是一种“走火入魔走火入魔”式的写法。式的写法。2
15、61.8.6 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 三种逻辑运算符:三种逻辑运算符: !、 &、| 运算结果:运算结果:boolean1. 非非0表示表示true,0表示表示false。 若有若有a = -1; b=2.0; 则表达式则表达式 a&b 为为true。 2. 关系关系0 x10 应写成应写成 0=x & x=10。 3.表达式求值表达式求值短路短路: int x = 1, y = 1, z = 1 , w = 0 ; w = +x | +y & +z ; 271.8.7 位运算和算术表达式位运算和算术表达式 1按位与(按位与(&) int a = 3, b = -2 ,
16、c = a & b ;a 0000 0000 0000 0000 0000 0000 0000 0011b 1111 1111 1111 1111 1111 1111 1111 1110c 0000 0000 0000 0000 0000 0000 0000 0010281.8.7 位运算和算术表达式位运算和算术表达式2按位或(按位或(|) int a = 3, b = -2 , c = a | b ;a 0000 0000 0000 0000 0000 0000 0000 0011b 1111 1111 1111 1111 1111 1111 1111 1110c 1111 1111 111
17、1 1111 1111 1111 1111 1111 291.8.7 位运算和算术表达式位运算和算术表达式3按位异或(按位异或() int a = 3, b = -2 , c = a b ;a 0000 0000 0000 0000 0000 0000 0000 0011b 1111 1111 1111 1111 1111 1111 1111 1110c 1111 1111 1111 1111 1111 1111 1111 1101 思考:int a = 5, b = 9; a = ab;b = ab;a = ab; 301.8.7 位运算和算术表达式位运算和算术表达式4按位取反(按位取反()
18、 int a=18, b = a; a 0000 0000 0000 0000 0000 0000 0001 0010b 1111 1111 1111 1111 1111 1111 1110 1101311.8.7 位运算和算术表达式位运算和算术表达式5左移(左移() 例如例如1:int a = 15, x = a 3; 例如例如2:short int a = 32767, b = a)例如:例如:short int a = -2, b = a2; 无论是左移或右移,原变量无论是左移或右移,原变量a的值的值XX。 321.8.7 位运算和算术表达式位运算和算术表达式思考:思考:编程从一个编程从
19、一个16位的单元中取出某几位。位的单元中取出某几位。若若value的值为八进制数的值为八进制数0101675,start为为5,end为为8,那么,那么,value和和result的值为:的值为: 331.8.7 位运算和算术表达式位运算和算术表达式代码片段:代码片段:unsigned short int value = 0101675, result; int start = 5, end = 8; result = value= 16-(end-start+1) ; / step 2: 右移右移思考:思考:为什么将变量为什么将变量value定义成定义成unsigned 类型,类型, 如果去
20、掉如果去掉unsigned可以吗?可以吗? 341.8.8 逗号运算符与逗号表达式逗号运算符与逗号表达式 例如逗号表达式:例如逗号表达式: a=3*5 , a*4 , a+5 则表达式的值,变量的值分别是:则表达式的值,变量的值分别是:思考:思考:下面三个表达式运算结束后,下面三个表达式运算结束后,a、x和表达式和表达式的值分别是多少?的值分别是多少?a=3*5, a*4 x=(a=3, 6*3) x=a=3, 6*3 351.8.9 sizeof 运算符运算符 例如:例如:double x = 100 ; sizeof( double ) 和和 sizeof x 均为均为8。 361.9 语
21、句语句1. 表达式语句表达式语句例如:例如:a + b, c * d;x = (a + b, c * d ); 2. 空语句空语句 3. 复合语句复合语句a + b, c * d;x = (a + b, c * d ); 371.10.1 赋值时的类型转换赋值时的类型转换 例如:例如:int i=3.96; 则则 i = ?double d=23; 则则 d = ?char ch = 360; 则赋值过程为:则赋值过程为:381.10.1 赋值时的类型转换赋值时的类型转换 4. unsigned char c = -2 ; int i ;i = c; 5. char c = -2 ;int i
22、 ;i = c ; 思考赋值过程思考赋值过程思考赋值过程思考赋值过程391.10.2 混合运算时的类型转换混合运算时的类型转换 总体原则:由低类型向高类型转换。自己总体原则:由低类型向高类型转换。自己看书!看书!实型常量实型常量2.0f或或2.0F属于属于float类型,而类型,而2.0属于属于double型。型。 401.10.3 强制类型转换强制类型转换 格式:格式:() 例如:例如:int a = 9, b = 5 ;double d1, d2 ; d1 = (double) a / b ; d2 = (double) (a / b ); 新标准:新标准:static_cast( a /
23、 b )411.11.1 cout对象和对象和cin对象对象 cout / cin:输出:输出/入流对象;入流对象;例如:例如: cout I like C+ ; “” 流提取操作符流提取操作符 【例例1.3】程序举例程序举例 #include using namespace std; int main ( ) int length, width, area ; cout 计算矩形的面积计算矩形的面积 n ; cout length ; cout width ; area = length * width ; cout 矩形的面积为:矩形的面积为: area endl ; return 0;
24、1-3.cpp431.11.1 cout对象和对象和cin对象对象易于出错的地方:易于出错的地方:int whole ;float fractional ;char letter ;cout whole fractional letter ;cout 整数:整数: whole endl 浮点数:浮点数: fractional endl 字符:字符: letter endl ; 1-4.cpp441.11.1 cout对象和对象和cin对象对象 字符数组的初步应用,例:字符数组的初步应用,例: char name 21 ; cout name ; cout Hi, name endl ; 注意:
25、注意:溢出、串中含空格的问题。溢出、串中含空格的问题。1-5.cpp451.11.2 格式化输出格式化输出 1. 用用setw操作符为输出数据项指定宽度操作符为输出数据项指定宽度(仅对一项有效仅对一项有效): int intValue = 3928 ; float floatValue = 91.5 ; char cStringValue = Confucius & Mo-tse ; cout ( setw(5) intValue ) endl ; cout ( setw(8) floatValue ) endl ; cout ( setw(20) cStringValue ) endl ;
26、1-6.cpp461.11.2 格式化输出格式化输出2. 用用setprecision操作符输出数的有效位数操作符输出数的有效位数(对多项有效对多项有效) 。float quotient , number1 = 132.364f , number2 = 26.91f ;quotient = number1 / number2 ;cout quotient endl ;cout setprecision (5) quotient endl ;cout setprecision (4) quotient endl ;cout setprecision (3) quotient endl ;cout
27、 quotient endl ;cout setprecision (2) quotient endl ;cout setprecision (1) quotient endl ; 1-7.cpp471.11.3 采用函数成员实现格式化输出采用函数成员实现格式化输出 float day1, day2, total ; cout day1 day2 ; total = day1 + day2; cout.precision ( 2 ); cout.setf(ios:fixed | ios:showpoint); cout 第第 1 天天: ; cout.width(8); cout day1 e
28、ndl ; cout 第第 2 天天: ; cout.width(8); cout day2 endl ; cout 总和总和: setw(8) total setw ( 10 ) word ; 方法方法2: cin.width(10); cin word ; 注意:注意:域宽只对与其相邻的下一个输入有效;域宽只对与其相邻的下一个输入有效;1-9.cpp501.11.6 读取一行读取一行 举例举例:char sentence 81 ; cout 请输入一个句子:请输入一个句子: ;cin.getline( sentence , 81);cout 你输入的是:你输入的是: sentence ch ; cout 字符是:字符是: ch endl ; 方法方法2: cin.get(ch);1-11.cpp521.11.8 读取字符时易出错的地方读取字符时易出错的地方 举例:举例: cout number ; cout 请输入一个字符:请输入一个字符: ; cin.get (ch); 修改方法:修改方法:cin.ignore( );1-12.cpp531.12 枚举类型枚举类型 1. 类型定义,例如:类型定义,例如:enum weekday Sun, Mon, Tue, Wed, Thu, Fri, Sat ; 或或enum weekday
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司投资运作管理制度
- 矿山自营方案模板(3篇)
- 农资物流仓储管理制度
- 宣城-物业提升方案(3篇)
- 临时车位租赁方案(3篇)
- 地基坟场处理方案(3篇)
- 基础护理感染课件
- 民营医院收钱方案(3篇)
- 租房合同协议书格式表格
- 商业综合体场地租赁与商业活动组织服务合同
- DB65-T 4773-2024 生物安全实验室消毒技术指南
- 2024至2030年中国皮肤清洗消毒液行业深度分析及发展趋势研究预测报告
- 2025届湖北省武汉市华中师大一附中初三4月中考模拟生物试题含解析
- 内科胸腔镜简介
- 塘实小腾讯扣叮创意编程赛自测题附有答案
- 2024年吉林长春市中考地理试卷真题(含答案解析)
- 【历年真题】2023年注册安全工程师《其他安全》真题及答案
- 《小型水库雨水情测报和大坝安全监测设施建设与运行管护技术指南》
- 美容顾问服务费提成
- YDT 4560-2023-5G数据安全评估规范
- DL-T-1798-2018换流变压器交接及预防性试验规程
评论
0/150
提交评论