版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 C+简单程序设计,C+语言概述 基本数据类型和表达式 数据的输入与输出 算法的基本控制结构 自定义数据类型,2,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C 引入了类的机制,最初的C+被称为“带类的C” 1983年正式取名为C+ 从1989年开始C+语言的标准化工作 于1994年制定了ANSI C+标准草案 于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+,3,C+的特点,全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法,4
2、,C+程序实例例2-1,/2_1.cpp #include using namespace std; void main(void) cout Hello!endl; coutWelcome to c+!n; 运行结果: Hello! Welcome to c+!,基本数据类型P24,类型说明符 长度(字节)数值范围 短整short 2-3276832767 基本 int 4 -231(231-1) 长整long 4-231(231-1) 无符号unsigned short 2065535 unsigned int 40(232-1)unsigned long 40(232-1) 字符型 ch
3、ar 1 布尔型 bool 1 实型 float 4 double 8 long double 8,基本数据类型和表达式,sizeof 操作符P32,用于计算类型的对象在内存中所占的字节数。 语法形式sizeof (类型名)或 sizeof (表达式) 结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。,基本数据类型和表达式,位运算按位与(,基本数据类型和表达式,位运算按位异或(),运算规则 两个操作数进行异或:若对应位相同,则结果该位为 0,若对应位不同,则结果该位为 1, 举例:计算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1
4、 0 1 0 071052 : 0 0 0 1 0 0 1 1,基本数据类型和表达式,位运算按位异或(),用途: 使特定位翻转(与0异或保持原值,与1异或取反) 例如:要使 01111010 低四位翻转: 0 1 1 1 1 0 1 0 ()0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1,基本数据类型和表达式,位运算取反(),单目运算符:对一个二进制数按位取反。 例: 025:0000000000010101 025:1111111111101010,基本数据类型和表达式,位运算移位,左移运算() 右移后,低位:舍弃 高位:无符号数:补0 有符号数:补“符号位”,基本数据类型和
5、表达式,运算符优先级 P34,括号 +,-,sizeof,! *, /, % +, - =, != 位运算 ,15,简单的I/O格式控制,对输入输出进行特殊的格式控制(见P38表2-6) 例如:Dec 采用十六进制 Hex采用八进制 setprecision(int) 设置浮点数的小数位数(包括小数点) setw(int) 设置域宽 例子:域宽5个字符,小数点后两位有效数字 coutsetw(5)setprecision(3)3.1415endl;,顺序结构 选择(分支)结构 循环结构,算法的基本控制结构,if (表达式) 语句 例:if (xy) couty) coutx; else cou
6、ty; if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句 n,if 语句 三种形式,算法的基本控制结构(选择),一般形式 if (表达式1 ) if (表达式2 ) 语句 1 else 语句 2 else if (表达式3 ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。,算法的基本控制结构(选择),特殊的多重选择(分支)结构,在有的问题中,虽然需要进行多次判断选择,但每一次都是判断同一表达式的值。,算法的基本控制结构(选择),一般形式 s
7、witch (表达式) case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default : 语句n+1 ,switch 语句,执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,算法的基本控制结构(选择),如何有效地完成重复工作while 语句,形式 while (表达式) 语句,执行顺序 先判断表达式的值,为 true 时,再执行语句。,算法的基本控制结构(循环),先执行循环体,后判断条件的情况do-while 语句,一般形式 do 语句 while (表达式),执行顺序 先
8、执行循环体语句,后判断条件。表达式为 true 时,继续执行循环体 与while 语句的比较,算法的基本控制结构(循环),for 语句,语法形式 for (表达式1;表达式2;表达式3) 语句,算法的基本控制结构(循环),break 和 continue 语句,break语句 使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。 continue 语句 结束本次循环,接着判断是否执行下一次循环,算法的基本控制结构,typedef语句,为一个已有的数据类型另外命名 语法形式 typedef 已有类型名 新类型名表; 例如 typedef double area,vo
9、lume; typedef int natural; natural i1,i2; area a; volume v;,自定义数据类型,枚举类型enum,只要将需要的变量值一一列举出来,便构成了一个枚举类型。 枚举类型的声明形式如下: enum 枚举类型名 变量值列表; 例如: enum weekday sun,mon,tue,wed,thu,fri,sat;,自定义数据类型,枚举类型enum,枚举类型应用说明: 对枚举元素按常量处理,不能对它们赋值。例如,不能写:sun=0; 枚举元素具有缺省值,它们依次为: 0,1,2,.。 也可以在声明时另行指定枚举元素的值,如: enum weekda
10、y sun=7,mon=1,tue,wed,thu,fri,sat; 枚举值可以进行关系运算。 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。,自定义数据类型,结构体结构的声明,结构体:由不同数据类型的数据组成的集合体。 声明结构体类型 struct 结构名 数据类型说明符1 成员名 1; 数据类型说明符2 成员名 2; : 数据类型说明符n 成员名 n; ;,自定义数据类型,结构体结构的声明,举例: struct student /学生信息结构体 int num; /学号 char name20; /姓名 char sex; /性别 int age; /年龄 f
11、loat score; /成绩 char addr30; /住址 ,自定义数据类型,结构体结构变量说明,变量说明形式 结构体类型名 结构体变量名; 注意: 结构体变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。 结构体变量说明在结构体类型声明之后,二者也可同时进行。 结构体变量占内存大小可用 sizeof 运算求出 sizeof(类型名或变量名),自定义数据类型,结构体结构变量的初始化和使用,初始化 说明结构变量的同时可以直接设置初值 使用 结构体成员的引用形式: 结构变量名.成员名,自定义数据类型,例2-12,结构体变量的初始化和使用 #include #include u
12、sing namespace std; struct student /学生信息结构体 int num; /学号 char name20; /姓名 char sex; /性别 int age; /年龄 stu=97001,Lin Lin,F,19; void main( ) coutsetw(7)stu.numsetw(20) setw(3)stu.sexsetw(3)stu.age; ,自定义数据类型,例2-13,有三只动物,都具有重量和身长两个属性,现在需要对它们的重量和身长赋值,并且输出它们的重量。 #include using namespace std; struct
13、 animal int weight; int feet; ; int main( ) animal dog1, dog2, chicken; dog1.weight = 15; dog2.weight = 37; chicken.weight = 3;,自定义数据类型,dog1.feet = 4; dog2.feet = 4; chicken.feet = 2; cout The weight of dog1 is “ dog1.weight n; cout The weight of dog2 is dog2.weight n; cout The weight of chicken is
14、“ chicken.weight n; return 0; ,联合体,声明形式: union 联合名 数据类型说明符1 成员名 1; 数据类型说明符2 成员名 2; : 数据类型说明符n 成员名 n; ; 联合体类型变量说明的语法形式 联合名 联合变量名; 引用形式: 联合变量名.成员名,自定义数据类型,例: union uarea char c_data; short s_data; long l_data; ,联合体,自定义数据类型,无名联合体,无名联合体没有标记名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。 例: union int i; flo
15、at f; 在程序中可以这样使用: i=10; f=2.2;,自定义数据类型,例2-14,#include using namespace std; struct aircraft int wingspan; int passengers; union float fuel_load; float bomb_load; int pallets; ; fighter,bomber,transport; int main( ) fighter.wingspan = 40; fighter.passengers = 1; fighter.fuel_load = 12000.0;,自定义数据类型,bo
16、mber.wingspan = 90; bomber.passengers = 12; bomber.bomb_load = 14000.0; transport.wingspan = 106; transport.passengers = 4; transport.pallets = 42; transport.fuel_load = 18000.0; fighter.pallets = 4; cout The fighter carries“ fighter.pallets pallets.n; cout The bomber bomb load is bomber.bomb_load n
17、; return 0; ,作业,复习第二章,预习第三章 思考:2-12-17、2-21、2-22、 2-252-27 上机题:2-19、2-20、2-28、2-30、2-31、2-33 实验二,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C。 引入了类的机制,最初的C+被称为带类的C。 1983年正式取名为C+。C+语言的标准化工作从1989年开始,于1994年制定了ANSI C+标准草案。以后又经过不断完善,成为目前的C+。,C+语言概述,C+的特点,全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一
18、个纯正的面向对象的语言 支持面向对象的方法,C+语言概述,C+程序实例例2-1,#include using namespace std; void main(void) coutHello!n; coutWelcome to c+!n; ,C+语言概述,C+字符集,大小写的英文字母:AZ,az 数字字符:09 特殊字符:空格!#%.,( ) ,C+语言概述,词法记号,关键字 C+预定义的单词。 标识符 程序员声明的单词,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。 文字 在程序中直接使用符号表示的数据,包括数字、字符、字符串和布尔文字。 操作符 用于实现各种运算的符号。 分
19、隔符 用于分隔各个词法记号或程序正文 ( ) , : ; 分隔符不表示任何实际的操作,仅用于构造程序。 空白 空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称。,C+语言概述,标识符的构成规则,以大写字母、小写字母或下划线(_)开始。 可以由以大写字母、小写字母、下划线(_)或数字09组成。 大写字母和小写字母代表不同的标识符。 不能是C关键字。,C+语言概述,数据类型 常量与变量,#include void main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=nu
20、m*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl; ,Page 49,基本数据类型和表达式,#include void main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl; ,数据类型 整型数据,整型常量,short unsigned short 2字节 int、unsigned
21、int 4字节 long unsigned long 4字节,整型变量,基本数据类型和表达式,数据类型整型数据及取值范围,类型说明符 位数数值范围 短整short16-3276832767 基本 int32 -231(231-1) 长整long32-231(231-1) 无符号unsigned short16065535 unsigned int320(232-1)unsigned long320(232-1),基本数据类型和表达式,#include void main(void) const int PRICE=30; int num,total; float v ,r,h; num=10;
22、 total=num*PRICE; couttotalendl; r=2.5; h=3.2; v=3.14159*r*r*h; coutvendl; ,数据类型实型数据,实型常量,float 4字节 3.41038 7位有效数字 double 8字节 1.710308 15位有效数字 long double 8字节 1.710308 15位有效数字,实型变量,缺省为double型 后缀 F(或 f)为 float型 后缀 L(或 l)为 long double型,基本数据类型和表达式,数据类型字符型数据(一),字符常量 单引号括起来的一个字符,如:a, D, ?, $ 字符变量 用来存放字符常
23、量例:char c1,c2; c1=a; c2=A; 字符数据在内存中的存储形式 以ASCII码存储,占1字节,用7个二进制位,Page 53,基本数据类型和表达式,字符数据的使用方法 字符数据和整型数据之间可以运算。 字符数据与整型数据可以互相赋值。 字符串常量 例:CHINA a a 所以:char c; c=a;,Page 54,数据类型字符型数据(二),基本数据类型和表达式,数据类型布尔型数据,布尔型变量的说明:例:bool flag; 布尔型数据的取值:只有 false 和 true 两个值,基本数据类型和表达式,数据类型变量赋初值,例: int a=3; double f=3.56
24、; char c=a; int c=5;,Page 56,基本数据类型和表达式,不同类型数据混合运算时的类型转换,不同类型数据进行混合运算时,C+编译器会自动进行类型转换。 为了避免不同的数据类型在运算中出现混淆,应尽量使用同种类型数据。 可以采用强制类型转换:例如:float c;int a,b;c=float(a)/float(b); 或 c= (float)a/(float)b;,基本数据类型和表达式,变量的存储类型,auto存储类型 属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。 register存储类型 存放在通用寄存器中。 extern存储类型 在所有函数和程序段中都可引用。 static存储类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6.2 二倍角公式教学设计中职数学拓展模块一 (下册)高教版(2021·十四五)
- 市政供热管道施工方案及技术措施
- 2025-2026学年刷子李教学设计美术
- 2025-2026学年适的拼音教学设计数学
- 2025-2026学年三弦教学设计与指导
- (2026年)《道德与法治》教研组计划
- 隧道病害整治维修工程施工方案及技术措施
- 2026年高级会计师资格考试真题与答案
- 2025年院感知识考试题及答案
- 2026年核保专业技术职务任职资格考试(核保师-中高级)综合能力测试题附答案
- SH∕T 3237-2025 石油化工建筑物抗爆评估技术标准
- 国电南瑞员工手册
- 小学生女生健康教育课件
- 2023硅铁多元素含量的测定电感耦合等离子体原子发射光谱法
- 三江能源有限公司煤矿矿山地质环境保护与土地复垦方案
- 关于腹腔镜胆囊切除手术的护理配合
- 重体力劳动评估程序(RBA健康安全)
- GB/T 7702.3-1997煤质颗粒活性炭试验方法强度的测定
- GB/T 21380-2008行人反光标识夜间光度性能及测试方法
- 中国药典2005版一部
- 系统工程原理课件
评论
0/150
提交评论