C看完了实用实用教案_第1页
C看完了实用实用教案_第2页
C看完了实用实用教案_第3页
C看完了实用实用教案_第4页
C看完了实用实用教案_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1C+的特点(tdin)n全面兼容Cn它保持了C的简洁、高效和接近汇编语言等特点n对C的类型系统进行了改革和扩充nC+也支持面向过程的程序设计(chn x sh j),不是一个纯正的面向对象的语言n支持面向对象的方法C+ 语 言 概 述n 研制(ynzh)C的目标:1.更好的C2.支持面向对象第2页/共86页第1页/共86页第一页,共87页。2C+程序(chngx)实例/examp2_1.cpp#include using namespace std;void main( ) coutHello!n; coutWelcome to c+!n;运行(ynxng)结果:Hello!Welcome

2、to c+!C+ 语 言 概 述说明 注释: / 一行 /* */ 多行 编译预处理: #include “std”是“名空间”,所谓namespace,是指标识符的各种可见范围(fnwi)。C+标准程序库中的所有标识符都被定义于一个名为std的namespace中。 main函数: 程序的入口 语句括号, 语句分号第3页/共86页第2页/共86页第二页,共87页。3C+字符集n语言的最基本单位是字符:n 字符词语句函数程序n字符集是构成C+语言的基本元素(yun s)n 大小写的英文字母:AZ,azn 数字字符:09n 特殊字符: C+ 语 言 概 述空格(kn ) ! # % &

3、* _(下划线) + =- / “ ; ., () 第4页/共86页第3页/共86页第三页,共87页。4/ example2_2.cpp 计算一个(y )圆的面积。#include using namespace std;void main( ) int r, area; r =2; area=3.14*r*r;cout“the circles area is”area;关键字标识符操作符分隔符第5页/共86页第4页/共86页第四页,共87页。5词法(cf)记号n词法记号是最小的词法单位。n1、关键字:C+预定(ydng)义的单词,是指C+中有特殊含义的字,是不能重新定义的;C+ 语 言 概

4、述第6页/共86页第5页/共86页第五页,共87页。62、标识符:程序员声明的单词,它命名程序正文中的一些实体。如:函数名、变量名、类名等。 标识符的构成规则 以大写字母、小写字母或下划线(_)开始。 可以由以大写字母、小写字母、下划线(_)或数字(shz)09组成。 大写字母和小写字母代表不同的标识符。C+ 语 言 概 述第7页/共86页第6页/共86页第六页,共87页。73. 文字:在程序中直接使用符号表示的数据包括数字、字符(z f)、字符(z f)串和布尔文字。4.操作符用于实现各种运算的符号。5.分隔符 () , : ; 用于分隔各个词法记号或程序正文。6.空白符空格、制表符(TAB

5、键产生的字符(z f))、换行符(Enter键所产生的字符(z f))和注释的总称。C+ 语 言 概 述第8页/共86页第7页/共86页第七页,共87页。82.2基本(jbn)数据类型和表达式n数据:是程序处理的对象;n数据类型:是指将数据根据(gnj)表达形式的不同而划分的类别;基本(jbn)数据类型和表达式第9页/共86页第8页/共86页第八页,共87页。9C+数据类型的分类(fn li)基本(jbn)数据类型和表达式C+中新增整数(zhngsh)类型实数类型 基本数据类型 字符类型 逻辑类型 空值类型 数据类型枚举类型 数组类型 构造数据类型 指针类型 结构与联合类型 引用类型 类类型

6、float doubleint char bool第10页/共86页第9页/共86页第九页,共87页。10C+数据类型修饰符基本(jbn)数据类型和表达式第11页/共86页第10页/共86页第十页,共87页。11类型说明符 位数 数值范围短整short 16 -3276832767基本(jbn) int 32 -231(231-1)长整long 32 -231(231-1)无符号 unsigned short 16 065535 unsigned int 32 0(232-1) unsigned long 32 0(232-1)基本(jbn)数据类型和表达式第12页/共86页第11页/共86页

7、第十一页,共87页。12n整型和实型的几种不同方式;n各种( zhn)数据类型的取值范围;nC无布尔型,C+增加了布尔类型bool,但并非每个C+编译器都支持;n用sizeof(数据类型)可以确定数据类型的字节长度;n C+强类型语言-要求程序设计者在使用数据之前对数据的类型进行声明;注意(zh y):基本(jbn)数据类型和表达式第13页/共86页第12页/共86页第十二页,共87页。13数据类型常量(chngling)与变量#include using namespace std;void main(void) const int PRICE=30; int num,total; floa

8、t v ,r,h; num=10; total=num*PRICE; couttotalendl; r=2.5; h=3.2; v=3.14159*r*r*h; coutvendl;基本(jbn)数据类型和表达式第14页/共86页第13页/共86页第十三页,共87页。14常量(chngling)n常量(chngling):其值不能被改变的量;基本(jbn)数据类型和表达式第15页/共86页第14页/共86页第十四页,共87页。15整型常量(chngling)n 文字形式出现(chxin)的整数,分十进制、八进制、十六进制;基本(jbn)数据类型和表达式第16页/共86页第15页/共86页第十五

9、页,共87页。16实型常量(chngling):n 文字形式出现的实数,又称浮点数,分为(fn wi)一般形式和指数形式;基本(jbn)数据类型和表达式第17页/共86页第16页/共86页第十六页,共87页。17注意(zh y):n指数形式的书写:E或e的前面必须要有数字,且E或e后的指数须为整数;n 如:e3 2.1e3.5 .e3 en 一个实型常数默认为double,如表示(biosh)float型,则在实数后加f或F。n 如:34.5f 34.5基本(jbn)数据类型和表达式第18页/共86页第17页/共86页第十七页,共87页。18字符(z f)常量n定义: 单引号括起来的一个(y

10、)字符,如:a, D, ?, $。n每个字符常量占一个(y )字节;n每个字符常量有一个(y )编码数字值ASCII码表中码值;如:A: 65 B: 66 a: 97n字符常量可以象数字一样进行运算;n 如:0-0=0;n 1-0=1;n 2-0=2;基本(jbn)数据类型和表达式第19页/共86页第18页/共86页第十八页,共87页。19转义字符 (表2_2)n 不可显示的字符,无法(wf)通过键盘输入;基本(jbn)数据类型和表达式第20页/共86页第19页/共86页第十九页,共87页。20字符数据(shj)的使用方法n字符数据和整型数据之间可以运算(yn sun)。n字符数据与整型数据可

11、以互相赋值。n如:n n 输出(shch):98aint a=b;char c=97;coutaendl; coutcendl; 基本数据类型和表达式第21页/共86页第20页/共86页第二十页,共87页。21字符串常量(chngling)n 双引号括起来(q li)的一个或多个字符;例:CHINA a a所以(suy):char c; c=a; C H I N A 0a 0a基本数据类型和表达式第22页/共86页第21页/共86页第二十一页,共87页。22布尔常量(chngling)n 只有(zhyu) false 和 true 两个值;基本(jbn)数据类型和表达式第23页/共86页第22

12、页/共86页第二十二页,共87页。23变量(binling)变量名:符合(fh)标识符命名规则。基本(jbn)数据类型和表达式第24页/共86页第23页/共86页第二十三页,共87页。24变量(binling)的定义例如(lr):static int nward=0,nkayword;同一个语句中,不能混合定义不同(b tn)类型的变量。基本数据类型和表达式第25页/共86页第24页/共86页第二十四页,共87页。25变量变量(binling)初始化初始化例:例: int b,a=3; double f=3.56; char c=a; int c(5);Page 25基本(jbn)数据类型和表

13、达式第26页/共86页第25页/共86页第二十五页,共87页。26变量(binling)的存储类型nAuto(缺省)n属于(shy)暂时性存储,其存储空间可以被若干变量多次覆盖使用。nregistern存放在通用寄存器中。nexternn在所有函数和程序段中都可引用。nstaticn在内存中是以固定地址存放的,在整个程序运行期间都有效。代码空间静态数据空间动态数据空间基本(jbn)数据类型和表达式第27页/共86页第26页/共86页第二十六页,共87页。27变量(binling)的例子#include using namespace std;void main(void) int num1,n

14、um2,sum; num1=10;num2=25; sum=num1+num2; cout“sum=“sumendl; num1=-5;num2=num1+3; sum=num1+num2; cout“sum=“sumendl; sum num1 num2 初值 不确定(qudng) 不确定(qudng) 不确定(qudng)第1次 35 10 25第2次 -7 -5 -2基本(jbn)数据类型和表达式第28页/共86页第27页/共86页第二十七页,共87页。28符号(fho)常量const 数据类型说明符 常量名=常量值 例 :const float PI=3.1415;常量定义中初始化的值

15、可以是一个常量表达式;const int size=100*sizeof(int);Const int number=max(15,23); /错优点: 符号常量比起一般常量使用方便,实际值容易(rngy)修改,便于记忆。第29页/共86页第28页/共86页第二十八页,共87页。29符号(fho)常量的例子#include using namespace std;void main( ) const float PI=3.1415; float r1,r2 ,s1,s2 ; cinr1r2 ; s1=PI*r1*r1 ; s2= PI*r2*r2 ;cout“s1=“s1endl;cout“s

16、2=“s2endl; 第30页/共86页第29页/共86页第二十九页,共87页。30运算符与表达式程序(chngx)中,计算求值的基本单位。基本(jbn)数据类型和表达式注意(zh y)数据类型的一致性第31页/共86页第30页/共86页第三十页,共87页。31n基本算术运算符n + - * / (若整数相除,结果(ji gu)取整)n %(取余,操作数为整数,符号与被除数同)n优先级与结合性n先乘除,后加减,同级自左至右n+, -(自增、自减)n例:j=i+; j=+i;1.算术(sunsh)运算符与算术(sunsh)表达式j=i ;i=i+1 ;i=i+1 ;j=i ;基本(jbn)数据类

17、型和表达式第32页/共86页第31页/共86页第三十一页,共87页。32问题(wnt):4 45 4第33页/共86页第32页/共86页第三十二页,共87页。332. 赋值运算符与赋值表达式n 赋值运算(yn sun)用于将一个数据传给一个变量。n举例 n=n+5n 表达式的类型 :等号左边对象的类型n 表达式的值:等号左边对象被赋值后的值n例:a=b=c=5;n a=5+(c=6);基本(jbn)数据类型和表达式第34页/共86页第33页/共86页第三十三页,共87页。34复合(fh)的赋值运算符n有10种复合(fh)运算符:+=, -=, *=, /=, %=,=,&=,=,|=

18、n例a+=3 等价于 a=a+3x*=y+8 等价于 x=x*(y+8)n a+=a-=a*a 等价于 a=a+(a=a- a*a)结合(jih)型自右向左基本数据类型和表达式第35页/共86页第34页/共86页第三十四页,共87页。35问题(wnt):第36页/共86页第35页/共86页第三十五页,共87页。363.逗号(duho)运算和逗号(duho)表达式n 格式n表达式1,表达式2n 求解(qi ji)顺序及结果n先求解(qi ji)1,再求解(qi ji)2,最终结果为表达式2的值n例: a=(3*5 , a*4);d的结果(ji gu)为 6int a,b,c,d;d=(a=1,b

19、=a+2,c=b+3);coutdendl;a的值为60去掉括号?基本数据类型和表达式第37页/共86页第36页/共86页第三十六页,共87页。374.关系(gun x)运算与关系(gun x)表达式n关系运算是比较简单的一种逻辑运算,优先次序为: = = !=n 优先级相同(高) 优先级相同(低)n 关系表达式是一种最简单的逻辑表达式n其结果(ji gu)类型为 bool,值只能为 true 或 false。n 例如:ab,cb)&(xy) 其结果类型为 bool,值只能为 true 或 false基本(jbn)数据类型和表达式如果有以下语句,则上述表达式的值为 ?int a=5,b

20、=3,x=10,y=20 第39页/共86页第38页/共86页第三十八页,共87页。39运算表第40页/共86页第39页/共86页第三十九页,共87页。40问题(wnt):注意(zh y):在逻辑表达式中,如果运算符左边的表达式能够决定整个表达式的值,则运算符右边的表达式不再计算,以提高效率。第41页/共86页第40页/共86页第四十页,共87页。415.条件(tiojin)运算符与条件(tiojin)表达式n一般形式n表达式1?表达式2:表达式3n表达式1 必须是 bool 类型n执行顺序(shnx)n先求解表达式1,n若表达式1的值为true,则求解表达式2,表达式2的值为最终结果n若表达

21、式1的值为false,则求解表达式3,表达式3的值为最终结果n例: x=(ab? a:b);基本(jbn)数据类型和表达式第42页/共86页第41页/共86页第四十一页,共87页。426. sizeof 运算符n语法形式sizeof (类型名)或 sizeof (表达式)n结果(ji gu)值:“类型名”所指定的类型或“表达式”的结果(ji gu)类型所占的字节数。n例:nsizeof(short)nsizeof(x)基本(jbn)数据类型和表达式第43页/共86页第42页/共86页第四十二页,共87页。43运算符优先级运算符优先级括号括号+,-,sizeof !*, /, %+, - = !

22、=&|?:赋值运算赋值运算(yn sun)逗号运算逗号运算(yn sun)低高基本(jbn)数据类型和表达式第44页/共86页第43页/共86页第四十三页,共87页。44 混合(hnh)运算时数据类型的转换 隐含转换 一些二元运算符(算术运算符、关系运算符、逻辑一些二元运算符(算术运算符、关系运算符、逻辑(lu j)(lu j)运算符、位运算符和赋值运算符)要求两运算符、位运算符和赋值运算符)要求两个操作数的类型一致。个操作数的类型一致。 在算术运算和关系运算中如果参与运算的操作数类型在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转不一致,编

23、译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。换),基本原则是将低类型数据转换为高类型数据。 float int unsigned long unsigned long double long double 低类型 高类型 bool char short 第45页/共86页第44页/共86页第四十四页,共87页。45强制强制(qingzh)类型转换类型转换 语法形式:语法形式: 类型类型(lixng)(lixng)说明符说明符( (表达式表达式) ) 或或 ( (类型类型(lixng)(lixng)说明符说明符) )表达式表达式 强制类型强制类型(lixng

24、)(lixng)转换的作用是将表达式转换的作用是将表达式的结果类型的结果类型(lixng)(lixng)转换为类型转换为类型(lixng)(lixng)说明符所指定的类型说明符所指定的类型(lixng)(lixng)。 例:例: int a=16,b=5; int a=16,b=5; float x=10; float x=10; x=(float)a + a/b x=(float)a + a/b基本(jbn)数据类型和表达式X的值为19.0.第46页/共86页第45页/共86页第四十五页,共87页。462.3 简单的输入简单的输入(shr)、输、输出出 C+中没有专门的输入(shr)/输出语

25、句,用I/O流来实现,在程序的开头增加一行: #include 用插入操作符”向标准输出流cout中插入字符。向标准输出设备(显示器)输出 例: int x; cout“x=“x;数 据 的 输 入 与 输 出第47页/共86页第46页/共86页第四十六页,共87页。47coutsetw(5)setprecision(3)3.1415endl;格式(g shi)的控制?数 据 的 输 入 与 输 出第48页/共86页第47页/共86页第四十七页,共87页。48问题的提出:问题的提出:(1 1) x x* *0.05 0.05 (x2000)(x=2000)0.1 (x=2000) (2) (2

26、) 统计任意一个人群的平均身高统计任意一个人群的平均身高; ;算法的基本控制结构算法的基本控制结构顺序顺序(shnx)(shnx)结构结构分支结构分支结构循环结构循环结构算 法 的 基 本 控 制 结 构y=第49页/共86页第48页/共86页第四十八页,共87页。49格式格式1:if (表达式表达式) 语句语句例:例:if (xy) couty) coutx;else couty; if 语句(yj)算 法 的 基 本 控 制 结 构第50页/共86页第49页/共86页第四十九页,共87页。50#include void main(void) unsigned int age; coutag

27、e; if (age7) cout“The age may be wrong”;if 语句(yj)的例子判输入是否合理算 法 的 基 本 控 制 结 构第51页/共86页第50页/共86页第五十页,共87页。51#include using namespace std;void main(void)int year; bool IsLeapYear; cout year;IsLeapYear = (year % 4 = 0 & year % 100 != 0)|(year % 400 = 0); if (IsLeapYear) cout year is a leap year endl

28、;else cout year is not a leap year endl;if 语句的例子判是否(sh fu)闰年能被4整除(zhngch)并且不能被100整除(zhngch)或能被400整除(zhngch)第52页/共86页第51页/共86页第五十一页,共87页。52 一般一般(ybn)(ybn)形式形式 (1) if ( )(1) if ( ) if ( ) if ( ) 语句语句 1 1 else else 语句语句 2 2 else else if ( ) if ( ) 语句语句 3 3 else else 语句语句 4 4 (2)(2) if ( if (表达式表达式1) 1)

29、 语句语句1 1 else if ( else if (表达式表达式2) 2) 语句语句2 2 else if ( else if (表达式表达式3) 3) 语句语句3 3 else else 语句语句 n nif 语句(yj)嵌套注意:语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定(qudng)层次关系。第53页/共86页第52页/共86页第五十二页,共87页。53 #includeusing namespace std;void main() int x,y; coutxy; if (x!=y) if (xy) coutyendl; else cout

30、xyendl; else coutx=yendl;运行(ynxng)结果1:Enter x and y:5 8xyif 语句的例子比较两个(lin )数的大小第54页/共86页第53页/共86页第五十三页,共87页。54 算 法 的 基 本 控 制 结 构如何解决(jiju)多分支问题?第55页/共86页第54页/共86页第五十四页,共87页。55 一般形式一般形式(xngsh)(xngsh) switch (switch (表达式表达式) ) case case 常量表达式常量表达式 1 1:语句:语句1 1 case case 常量表达式常量表达式 2 2:语句:语句2 2 case ca

31、se 常量表达式常量表达式 n n:语句:语句n n default : default : 语句语句n+1n+1 switch 语句语句(yj)n执行顺序n以case中的常量表达式值为入口标号,由此开始顺序执行。因此(ync)每个case分支最后应该加break语句每个常量表达式的值不能相同,次序不影响执行结果。可以是整型、字符型、枚举型算 法 的 基 本 控 制 结 构第56页/共86页第55页/共86页第五十五页,共87页。56#include using namespace std;void main(void)int day;cin day;switch (day) case 0:

32、cout Sunday endl; break; case 1: cout Monday endl; break; case 2: cout Tuesday endl; break; case 3: cout Wednesday endl; break; case 4: cout Thursday endl; break; case 5: cout Friday endl; break; case 6: cout Saturday endl; break; default: cout Day out of range Sunday . Saturday endl; break; 例2-4输入一

33、个(y )0-6的整数,转换成星期输出第57页/共86页第56页/共86页第五十六页,共87页。57 casecase语句起标号作用语句起标号作用 (1 1)标号不能重名;)标号不能重名; (2 2)不改变控制流程,加)不改变控制流程,加breakbreak终止终止switchswitch; (3 3)casecase的次序可任意;的次序可任意; (4 4)多个)多个(du (du )case)case可共用一组执行可共用一组执行语句;语句; SwitchSwitch可以嵌套可以嵌套; ;算 法 的 基 本 控 制 结 构使用(shyng)switch语句应注意的问题思考(sko):要求把10

34、0分制转换成5分制 (A,B,C,D,E) 。第58页/共86页第57页/共86页第五十七页,共87页。58n计算(j sun)1+2+3+4+.算 法 的 基 本 控 制 结 构如何有效(yuxio)地完成重复工作?第59页/共86页第58页/共86页第五十八页,共87页。59n形式(xngsh)nwhile (表达式) 语句可以(ky)是复合语句,其中必须含有改变条件表达式值的语句。n执行(zhxng)顺序n 先判断表达式的值,为 true 时,再执行(zhxng)语句。while 语句表达式算 法 的 基 本 控 制 结 构 语句前续语句第60页/共86页第59页/共86页第五十九页,共

35、87页。60分析:本题需要用累加算法,累加过程是一个循环分析:本题需要用累加算法,累加过程是一个循环过程,可以用过程,可以用while语句实现。语句实现。#includeusing namespace std;void main() int i(1), sum(0); /初始化循环变量初始化循环变量(binling) while(i=100) /继续条件继续条件 sum+=i; /相当于相当于sum=sum+i; 循环体循环体 i+; /改变循环变量改变循环变量(binling) coutsum=sumendl;例2-5求自然数1100之和参见(cnjin)书P27sum+=i+;第61页/共

36、86页第60页/共86页第六十页,共87页。61do-while 语句(yj)n一般(ybn)形式ndo 语句nwhile (表达式);可以是复合语句,其中必须含有改变条件表达式值的语句。n执行顺序n先执行循环体语句(yj),后判断条件。表达式为 true 时,继续执行循环体n与while 语句(yj)的比较:nWhile 语句(yj)执行顺序 先判断表达式的值,为true 时,再执行语句(yj)算 法 的 基 本 控 制 结 构表达式语句N第62页/共86页第61页/共86页第六十一页,共87页。62#include using namespace std;void main(void) i

37、nt n, right_digit, newnum = 0; cout n;cout The number in reverse order is ;do right_digit = n % 10;cout right_digit;n /= 10; /相当于相当于n=n/10 while (n != 0); coutendl;例2-6输入一个整数将各位数字反转(fn zhun)后输出第63页/共86页第62页/共86页第六十二页,共87页。63程序(chngx)1:#includeusing namespace std;void main() int i, sum(0); cini; whil

38、e(i=10) sum+=i; i+; coutsum=sumendl;程序(chngx)2:#includeusing namespace std;void main() int i, sum(0); cini; do sum+=i; i+; while(i=10); coutsum=sumendl;对比(dub)下列程序:第64页/共86页第63页/共86页第六十三页,共87页。64for 语句语句(yj)语法形式语法形式(xngsh)(xngsh)for (for (表达式表达式1 1;表达式;表达式2 2;表达式;表达式3) 3) 语句语句 循环(xnhun)前先求解为true时执行循

39、环体每次执行完循环体后求解算 法 的 基 本 控 制 结 构第65页/共86页第64页/共86页第六十四页,共87页。65#include using namespace std;void main(void) int n, k; cout n;cout Number n Factors is ; for (k=1; k = n; k+)if (n % k = 0)cout k ; cout endl;运行(ynxng)结果Enter a positive integer: 36Number 36 Factors is 1 2 3 4 6 9 12 18 36 Enter a positive

40、 integer: 7Number 7 Factors is 1 7 例2-8输入一个(y )整数,求出它的所有因子第66页/共86页第65页/共86页第六十五页,共87页。66例2-9循环结构(jigu)嵌套-编写程序输出以下图案#includeusing namespace std;void main() int i,j,n=4; for(i=1;i=n;i+) /输出前4行图案(t n) for(j=1;j=30;j+) cout ; /在图案(t n)左侧空30列 for(j=1; j=8-2*i ;j+) cout ; for(j=1; j=2*i-1 ;j+) cout*; cou

41、tendl; 第67页/共86页第66页/共86页第六十六页,共87页。67 for(i=1;i=n-1;i+) /输出后3行图案(t n) for(j=1;j=30;j+) cout ; /在图案(t n)左侧空30列 for(j=1; j=7-2*i ;j+) cout*; coutendl; 第68页/共86页第67页/共86页第六十七页,共87页。68循环循环(xnhun)结构与选择结构相互嵌套结构与选择结构相互嵌套#includeusing namespace std;void main() int n;for(n=100; n=200; n+) if (n%3!=0) coutn;

42、算 法 的 基 本 控 制 结 构 阅读(yud)上述程序?输出(shch)100200之间不能被4整除的数。第69页/共86页第68页/共86页第六十八页,共87页。69例例2_10 统计统计(tngj)个数个数 读入一系列整数,统计出正整数个数读入一系列整数,统计出正整数个数i i和负整数个数和负整数个数j j,读入,读入0 0则结束。则结束。 分析:分析: 需要读入一系列整数,但是整数个数不定,要在每次读入之后进行判断需要读入一系列整数,但是整数个数不定,要在每次读入之后进行判断(pndun)(pndun),因此使用,因此使用whilewhile循环最为合适。循环控制条件应该是循环最为合

43、适。循环控制条件应该是n!=0n!=0。由于要判断由于要判断(pndun)(pndun)数的正负并分别进行统计,所以需要在循环内数的正负并分别进行统计,所以需要在循环内部嵌入选择结构。部嵌入选择结构。算 法 的 基 本 控 制 结 构第70页/共86页第69页/共86页第六十九页,共87页。70#includeusing namespace std;void main() int i=0, j=0, n; coutn; while( n!=0 ) if(n0) i+; if(nn ; cout正整数个数:i负整数个数:jendl;第71页/共86页第70页/共86页第七十页,共87页。71br

44、eak 和和 continue 语句语句(yj) breakbreak语句语句 使程序使程序(chngx)(chngx)从循环体和从循环体和switchswitch语句内语句内跳出,继续执行逻辑上的下一条语句。不宜用跳出,继续执行逻辑上的下一条语句。不宜用在别处。在别处。算 法 的 基 本 控 制 结 构第72页/共86页第71页/共86页第七十一页,共87页。72算 法 的 基 本 控 制 结 构for(n=100; n=200; n+) if (n%3!=0) coutn;for (int n=100;n=200;n+) if (n%3=0) continue; coutnendl; 第7

45、3页/共86页第72页/共86页第七十二页,共87页。73typedef语句语句(yj) 为一个已有的数据类型另外命名为一个已有的数据类型另外命名 语法语法(yf)(yf)形式形式 typedef typedef 已有类型名已有类型名 新类型名表新类型名表; ; 例如例如 typedef double area,volume;typedef double area,volume; typedef int natural;typedef int natural; natural i1,i2;natural i1,i2; area a;area a; volume v;volume v;自 定 义

46、 数 据 类 型第74页/共86页第73页/共86页第七十三页,共87页。74枚举枚举(mi j)类型类型enum 只要将需要的变量值一一列举出来,便构成了一只要将需要的变量值一一列举出来,便构成了一个枚举类型。个枚举类型。 枚举类型的声明形式如下枚举类型的声明形式如下(rxi)(rxi): enum enum 枚举类型名枚举类型名 变量值列表变量值列表; 例如:例如: enum weekday enum weekday sun,mon,tue,wed,thu,fri,sat;sun,mon,tue,wed,thu,fri,sat; int a;int a; weekday day;weekd

47、ay day;自 定 义 数 据 类 型第75页/共86页第74页/共86页第七十四页,共87页。75 枚举类型应用说明:枚举类型应用说明: 对枚举元素按常量处理,不能对它们赋值。对枚举元素按常量处理,不能对它们赋值。例如,不能写:例如,不能写:sun=0;sun=0; 枚举元素具有缺省值,它们依次为:枚举元素具有缺省值,它们依次为: 0,1,2,.0,1,2,.。 也可以在声明时另行指定枚举元素的值,如:也可以在声明时另行指定枚举元素的值,如: enum weekday enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;sun=7,mon=1,tue,

48、wed,thu,fri,sat; 枚举值可以进行关系运算。枚举值可以进行关系运算。 整数值不能直接赋给枚举变量,如需要整数值不能直接赋给枚举变量,如需要(xyo)(xyo)将整数赋值给枚举变量,应进行强将整数赋值给枚举变量,应进行强制类型转换。制类型转换。自 定 义 数 据 类 型第76页/共86页第75页/共86页第七十五页,共87页。76例例2_11 枚举枚举(mi j)类型类型例子例子 设某次体育比赛的结果有四种可能:胜设某次体育比赛的结果有四种可能:胜(winwin)、负()、负(loselose)、平局()、平局(tietie)、比)、比赛取消(赛取消(cancelcancel),编

49、写程序顺序输出这),编写程序顺序输出这四种情况四种情况(qngkung)(qngkung)。 分析:由于比赛结果只有四种可能,所以分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,用一个枚举类型可以声明一个枚举类型,用一个枚举类型的变量来存放比赛结果。的变量来存放比赛结果。自 定 义 数 据 类 型第77页/共86页第76页/共86页第七十六页,共87页。77#include using namespace std;enum game_result WIN, LOSE, TIE, CANCEL;int main() game_result result; enum game_resul

50、t omit = CANCEL; int count; for (count = WIN ; count = CANCEL ; count+) result = (game_result)count; if (result = omit) cout The 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;运行(ynxng)结果 The game was pl

51、ayed and we won! The game was played and we lost. The game was played The game was cancelled第78页/共86页第77页/共86页第七十七页,共87页。78枚举练习(linx):口袋中有红、黄、蓝、白、黑5种颜色的球若干个,每次从口袋中取出3个不同颜色的球,问有多少种取法?自 定 义 数 据 类 型第79页/共86页第78页/共86页第七十八页,共87页。79结构(jigu)体 结构体是由不同(b tn)数据类型的数据组成的集合体。声明形式如下: struct 结构名 数据类型说明符1 成员1; 数据类型说明符2 成员2; . 数据类型说明符n 成员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论