《C语言程序设计课件第02章简单程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件第02章简单程序设计.ppt(38页珍藏版)》请在三一办公上搜索。
1、第二章 C+简单程序设计,C+语言程序设计,2,本章主要内容,C+语言概述基本数据类型和表达式数据的输入与输出算法的基本控制结构自定义数据类型,3,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C+被称为“带类的C”1983年正式取名为C+从1989年开始C+语言的标准化工作于1994年制定了ANSI C+标准草案于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+,C+语言概述,4,C+的特点,全面兼容C它保持了C的简洁、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语
2、言支持面向对象的方法,C+语言概述,5,C+程序实例例2-1,/2_1.cpp#include using namespace std;void main()coutHello!n;coutWelcome to c+!n;运行结果:Hello!Welcome to c+!,C+语言概述,6,C+字符集,大小写的英文字母:AZ,az数字字符:09特殊字符:空格!#%.,(),C+语言概述,7,词法记号,关键字 C+预定义的单词标识符 程序员声明的单词,用来命名程序正文中的一些实体文字 在程序中直接使用符号表示的数据操作符 用于实现各种运算的符号分隔符(),:;用于分隔各个词法记号或程序正文空白符
3、 空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称,C+语言概述,8,标识符的构成规则,以大写字母、小写字母或下划线(_)开始。可以由以大写字母、小写字母、下划线(_)或数字09组成。大写字母和小写字母代表不同的标识符。,C+语言概述,9,基本数据类型和表达式,整型:short/int/long(八、十、十六进制)实型:float/double(默认常数为doubleo类型 故float f=123.45有警告)字符型:char布尔型:bool(true、false)字符串常量:this符号常量:const 数据类型 常量名=常量值,基本数据类型,P24 表2
4、-1,10,变量初始化,例:int a=3;double f=3.56;char c=a;int c(5);,Page 10,基本数据类型和表达式,11,运算符及表达式,Page 11,基本数据类型和表达式,算术运算符:+-*?%+-赋值运算符:=及复合的赋值运算符逗号运算符:,关系运算符:=!=逻辑运算符:!&|条件运算符:?:sizeof运算符:计算某种类型的对象在内存中所占的字节数。位运算符:&|(操作数必为整型),12,运算符优先级,括号+,-,sizeof*,/,%+,-=,!=位运算&|?:赋值运算逗号运算,低,高,基本数据类型和表达式,13,混合运算时数据类型的转换,一些二元运算
5、符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致。在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。char,short,int,unsigned,long,unsigned long,float,double低 高,基本数据类型和表达式,14,当参与运算的操作数必须是bool型时,如果操作数是其它类型,编译系统会自动将非0数据转换为true,0转换为false。位运算的操作数必须是整数,当二元位运算的操作数是不同类型的整数时,也会自动进行类型转换,赋值运算要求左值与右
6、值的类型相同,若类型不同,编译系统会自动将右值转换为左值的类型。可以采用强制类型转换。,基本数据类型和表达式,混合运算时数据类型的转换,15,语句,声明语句表达式语句选择语句循环语句跳转语句复合语句标号语句,基本数据类型和表达式,16,简单的输入、输出,数据的输入与输出,在C+中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前被建立,使用后被删除。从流中获取数据的操作符称为提取操作,向流中添加数据的操作称为插入操作。数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。一、输出 cout表达式表达式其中,是插入符,表达式可以任意复杂,17,简单的输入、输出,数
7、据的输入与输出,二、输入 cin变量变量其中,是提取符输入的值用空格分隔,也可以分行输入,不能用逗号分隔。,18,简单的输入、输出,数据的输入与输出,三、简单的I/O格式控制(iomanip),19,简单的输入、输出,数据的输入与输出,三、简单的I/O格式控制(iomanip),20,简单的输入、输出,数据的输入与输出,三、简单的I/O格式控制(iomanip),#include#include using namespace std;void main()float f=12.456789f;coutsetprecision(3)fendl;,运行结果:12.5,coutfixedsetpr
8、ecision(3)fendl;,运行结果:12.457,21,简单的输入、输出,数据的输入与输出,三、简单的I/O格式控制(iomanip),注:使用setprecision(n)可控制输出流显示浮点数的数字个数。C+默认的流输出数值有效位是6。如果setprecision(n)与setiosflags(ios:fixed)合用,可以控制小数点右边的数字个数。如果与setiosflags(ios:scientific)合用,可以控制指数表示法的小数位数。如果与setiosflags(ios:left)合用,可以使输出的数据在域内左对齐。,22,顺序结构分支结构循环结构,算法的基本控制结构,算
9、法的基本控制结构,23,P39 例2-2P40 例2-3P42 例2-4P43 例2-5P44 例2-6P46 例2-7P47 例2-8P49 例2-9P50 例2-10,算法的基本控制结构,24,typedef语句,为一个已有的数据类型另外命名语法形式typedef 已有类型名 新类型名表;例如typedef double area,volume;typedef int natural;natural i1,i2;area a;volume v;,自定义数据类型,25,枚举类型enum,只要将需要的值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum 枚举类型名 值列表;例
10、如:enum weekdaysun,mon,tue,wed,thu,fri,sat;,自定义数据类型,26,枚举类型enum,枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值。例如,不能写:sun=0;枚举元素具有默认值,它们依次为:0,1,2,.。也可以在声明时另行指定枚举元素的值,如:enum weekdaysun=7,mon=1,tue,wed,thu,fri,sat;枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。,自定义数据类型,27,例2-11,设某次体育比赛的结果有四种可能:胜(win)、负(lose)、平局(tie)、比
11、赛取消(cancel),编写程序顺序输出这四种情况。分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。,自定义数据类型,#include using namespace std;enum game_result WIN,LOSE,TIE,CANCEL;void main()game_result result;enum game_result omit=CANCEL;int count;for(count=WIN;count=CANCEL;count+)result=(game_result)count;if(result=omit)cout Th
12、e game was cancelledn;else cout The game was played;if(result=WIN)cout and we won!;if(result=LOSE)cout and we lost.;cout n;return 0;,28,运行结果 The game was played and we won!The game was played and we lost.The game was played The game was cancelled,29,30,结构体结构的声明,结构的概念结构体是由不同数据类型的数据组成的集合体。声明结构类型 struc
13、t 结构名 数据类型 成员名 1;数据类型 成员名 2;:数据类型 成员名 n;;,自定义数据类型,31,结构体结构的声明,举例:struct student/学生信息结构体 int num;/学号 char name20;/姓名 char gender;/性别 int age;/年龄 float score;/成绩 char addr30;/住址,自定义数据类型,32,结构体结构变量说明,变量说明形式 结构名 结构变量名;注意:结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。结构变量说明在结构类型声明之后,二者也可同时进行。结构变量占内存大小可用 sizeof 运算求出
14、:sizeof(运算量),自定义数据类型,33,结构体结构变量的初始化和使用,初始化说明结构变量的同时可以直接设置初值。使用结构体成员的引用形式:结构变量名.成员名,自定义数据类型,34,例2-12,结构体变量的初始化和使用#include#include using namespace std;struct student/学生信息结构体 int num;/学号 char name20;/姓名 char gender;/性别 int age;/年龄stu=97001,Lin Lin,F,19;int main()coutsetw(7)stu.numsetw(20)stu.name setw(
15、3)stu.sexsetw(3)stu.age;,自定义数据类型,运行结果:97001 Lin Lin F 19,35,联合体,声明形式:union 联合名 数据类型 成员名 1;数据类型 成员名 2;:数据类型 成员名 n;;联合体类型变量说明的语法形式联合名 联合变量名;引用形式:联合名.成员名,自定义数据类型,36,例:union uarea char c_data;short s_data;long l_data;,联合体,自定义数据类型,37,无名联合,无名联合没有标记名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。例:union int i;float f;在程序中可以这样使用:i=10;f=2.2;,自定义数据类型,38,小结与复习建议,主要内容C+语言概述、基本数据类型和表达式、数据的输入与输出、算法的基本控制结构、自定义数据类型达到的目标掌握C+语言的基本概念和基本语句,能够编写简单的程序段。实验任务实验二作业2-13 2-14 2-17 2-28 2-36 2-37,