第二章c简单程序设计.ppt

上传人:本田雅阁 文档编号:2259927 上传时间:2019-03-12 格式:PPT 页数:65 大小:587.51KB
返回 下载 相关 举报
第二章c简单程序设计.ppt_第1页
第1页 / 共65页
第二章c简单程序设计.ppt_第2页
第2页 / 共65页
第二章c简单程序设计.ppt_第3页
第3页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第二章c简单程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章c简单程序设计.ppt(65页珍藏版)》请在三一文库上搜索。

1、1,复 习,面向过程的结构化程序设计及面向对象的语言的特点 类、对象、属性、行为 信息的表示和存储,第二章 C+简单程序设计,面向对象程序设计,3,本章主要内容,C+语言概述 基本数据类型和表达式 数据的输入与输出 算法的基本控制结构 自定义数据类型,4,1、C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C 引入了类的机制,最初的C+被称为“带类的C”,C+语言概述,2.1 C+语言概述,5,2、C+的特点,全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法,C+

2、语言概述,6,C+与C的部分区别,7,include “stdio.h” printf(“hello c”); scanf(“%d”,#include”iostream.h” cout sum; cout “sum is ” sum endl;,C的输入和输出,8,注释,/*.*/ 沿用 C语言的方法,在此之间的所有字符被作为注释处理。 / 其后直到所在行的行尾,所有的字符都被作为注释处理,9,符号常量的定义,define NULL 0 #define Length 100 #define PI 3.1415926 const int NULL=0 const int Length =100

3、const double PI=3.1415926,10,温故知新,11,数据类型 变量初始化,例: int a=3; double f=3.56; char c=a; int c(5);,Page 11,基本数据类型和表达式,12,变量的存储类型,auto 属于一时性存储,其存储空间可以被若干变量多次覆盖使用。 register 存放在通用寄存器中(基本被废弃)。 extern 在所有函数和程序段中都可引用。 static 在内存中是以固定地址存放的,在整个程序运行期间都有效。,基本数据类型和表达式,13,复合的赋值运算符,有10种复合运算符: +=, -=, *=, /=, %=, =,&

4、=,=,|= 例 a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8),基本数据类型和表达式,14,逗号运算和逗号表达式,格式 表达式1,表达式2 求解顺序及结果 先求解1,再求解2,最终结果为表达式2的值 例 a=3*5 , a*4 (a=?) X= a=3*5 , a*4 (x=?),Page 14,基本数据类型和表达式,15,关系运算与关系表达式,关系运算是比较简单的一种逻辑运算,优先次序为: = = != 优先级相同(高) 优先级相同(低) 关系表达式是一种最简单的逻辑表达式 其结果类型为 bool,值只能为 true 或 false。 例如:ab,c=a+b,x+y

5、 = = 3,基本数据类型和表达式,16,逻辑运算符与逻辑表达式,逻辑运算符 !(非) &(与) |(或) 优先次序: 高 低 逻辑表达式 例如:(ab)&(xy) 其结果类型为 bool,值只能为 true 或 false,基本数据类型和表达式,17,逻辑运算符要与位运算区别,位运算 包括: 1、与 & 2、或 | 3、非 4、异或 5、左移,18,条件运算符与条件表达式,一般形式 格式:表达式1?表达式2:表达式3 表达式1返回值是 bool 类型 执行顺序 先判断表达式1, 若表达式1的值为true,则求解表达式2,表达式2的值为最终结果 若表达式1的值为false,则求解表达式3,表达

6、式3的值为最终结果 例: x=ab? a:b;,基本数据类型和表达式,19,sizeof 运算符,语法形式 sizeof (类型名) 或 sizeof (表达式) 结果值: “类型名”所指定的类型或“表达式”的结果类型所占的字节数。 例: sizeof(short) sizeof(x),基本数据类型和表达式,20,#include #include main() int i=11,*p; FILE *pFile; p= ,讲 解 演 示,21,产生文本文件,#include #include main() char i5=A,B,C,D,a,*p; FILE *pFile; p=i; pFil

7、e=fopen(“d:ab789.txt“,“w“); fwrite(p,sizeof(i),1,pFile); ,22,#include #include main() int i5=10,11,12,13,15,*p; FILE *pFile; p=i; pFile=fopen(“d:ab456.dat“,“wb“); fwrite(p,sizeof(i),1,pFile); ,讲 解 演 示,23,运算符优先级要牢记,括号 +,-,sizeof *, /, % +, - =, != 位运算 & | ?: 赋值运算 逗号运算,低,高,基本数据类型和表达式,24,语句,复合语句 选择语句 循

8、环语句 跳转语句,25,复合语句,将多个语句用一对大括号包围,便构成一个复合语句 例如 sum=sum+i; i+; ,语 句,26,顺序结构 分支结构 循环结构,算法的基本控制结构,27,if (表达式) 语句 例:if (xy) couty) coutx; else couty; if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句 n,if 语句 三种形式,算法的基本控制结构,#include using namespace std; void main() int x,y; coutxy; if (x!=y) if (x

9、y) couty“endl; else cout“xy“endl; else cout“x=y“endl; ,28,运行结果1: Enter x and y:5 8 xy,29,30,一般形式 if ( ) if ( ) 语句 1 else 语句 2 else if ( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。,算法的基本控制结构,31,一般形式 switch (表达式) case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default : 语句n+

10、1 ,switch 语句,执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,算法的基本控制结构,32,使用switch语句应注意的问题,表达式、判断值都是int型或char型。,算法的基本控制结构,33,一个循环一般由四个部分构成: 1、循环初值设置 2、循环操作 3、循环参数改变 4、循环条件控制,循环结构构成,34,循环的种类,直到循环 当循环,35,直到循环的框架,特点: 先执行循环体,再判断循环控制条件,如果满足条件,继续执行循环体,如果不满足,跳出循环。,36,当循环的框架,特点: 先判断循环控制条件,如果满足条件,则

11、执行循环体;如果不满足条件,则跳出循环。,37,几种循环的比较,While语句 DoWhile语句 For语句 循环在合适的时候要退出来,38,while 语句,形式 while (表达式) 语句,执行顺序 先判断表达式的值,为 true 时,再执行语句。,算法的基本控制结构,39,求自然数110之和 分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。,算法的基本控制结构,While语句,#include using namespace std; void main() int i(1), sum(0); while(i=10) sum+=i; /相当于sum=sum

12、+i; i+; cout“sum=“sum endl; ,运行结果: sum=55,40,41,要求精度0.001,上机题:用步长法求ex=x+2的解,42,do-while 语句,一般形式 do 语句 while (表达式),执行顺序 先执行循环体语句,后判断条件。 表达式为 true 时,继续执行循环体 与while 语句的比较: While 语句执行顺序 先判断表达式的值,为true 时,再执行语句,算法的基本控制结构,对比下列程序:,程序1: #include using namespace std; void main() int i, sum(0); cini; while(i=1

13、0) sum+=i; i+; cout“sum=“sumendl; ,算法的基本控制结构,程序2: #include using namespace std; void main() int i, sum(0); cini; do sum+=i; i+; while(i=10); cout“sum=“sumendl; ,43,44,注 意,不是while能实现的Do-while 语句都能实现,或者说Do-while 语句能实现的while都能实现,45,举例:从键盘输入三角形的三个边和高,设计子程序,求三角形的面积和三棱柱的体积。,46,#include #include float Area

14、(float x,float y,float z) float p,s; p=(x+y+z)/2; s=sqrt(p*(p-x)*(p-y)*(p-z); return s; ,47,main() float a,b,c,h; float p,s,v; do scanf(“%f,%f,%f,%f“, ,48,for 语句(循环次数明确),语法形式 for (表达式1;表达式2;表达式3) 语句,算法的基本控制结构,49,break 和 continue 语句,break语句 使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。 典型例:求质数和合数的问题,算法的基

15、本控制结构,50,continue 语句,continue 语句 结束本次循环,接着执行下一次循环。,51,把100-200之间的不能被3整除的数输出,Main() int n; for(n=100;n=200;n+) if (n%3=0) continue; printf(“%d”,n); ,52,typedef语句,为一个已有的数据类型另外命名 语法形式 typedef 已有类型名 新类型名表; 例如 typedef double area,volume; typedef int natural; natural i1,i2; area a; volume v;,自定义数据类型,53,枚举

16、类型enum,将需要的变量值一一列举出来,便构成了一个枚举类型。 枚举类型的声明形式如下: enum 枚举类型名 变量值列表; 例如: enum weekday sun,mon,tue,wed,thu,fri,sat;,自定义数据类型,54,枚举类型enum,枚举类型应用说明: 对枚举元素按常量处理,不能对它们赋值。例如,不能写:sun=0; 枚举元素具有缺省值,它们依次为: 0,1,2,。 也可以在声明时另行指定枚举元素的值,如: enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;,55,举例,设某次体育比赛的结果有四种可能: 胜(win) 负(los

17、e) 平局(tie) 比赛取消(cancel),编写程序顺序输出这四种情况。 分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。,自定义数据类型,#include using namespace std; enum game_result WIN, LOSE, TIE, CANCEL; int main() game_result result; enum game_result omit = CANCEL; int count; for (count = WIN ; count = CANCEL ; count+) result = (game_

18、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; ,56,运行结果 The game was played and we won! The game was played and we lost. The game was played The game

19、was cancelled,57,58,结构体结构的声明,结构的概念 结构是由不同数据类型的数据组成的集合体。 声明结构类型 struct 结构名 数据类型 成员名 1; 数据类型 成员名 2; : 数据类型 成员名 n; ;,自定义数据类型,59,结构体结构的声明,举例: struct student /学生信息结构体 int num; /学号 char name20; /姓名 char gender; /性别 int age; /年龄 float score; /成绩 char addr30; /住址 ,自定义数据类型,60,结构体结构变量说明,变量说明形式 结构名 结构变量名; 注意:

20、结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。 结构变量说明在结构类型声明之后,二者也可同时进行。 结构变量占内存大小可用 sizeof 运算求出: sizeof(运算量),自定义数据类型,61,结构体 结构变量的初始化和使用,初始化 说明结构变量的同时可以直接设置初值。 使用 结构体成员的引用形式: 结构变量名.成员名,自定义数据类型,62,例2-12,结构体变量的初始化和使用 #include #include using namespace std; struct student /学生信息结构体 int num; /学号 char name20; /姓名 cha

21、r gender; /性别 int age; /年龄 stu=97001,“Lin Lin“,F,19; void main() coutsetw(7)stu.numsetw(20)stu.name setw(3)stu.sexsetw(3)stu.age; ,自定义数据类型,运行结果: 97001 Lin Lin F 19,63,共用体,声明形式: union 共用体名 数据类型 成员名 1; 数据类型 成员名 2; : 数据类型 成员名 n; ; 共用体类型变量说明的语法形式 共用体名 共用体变量名; 引用形式: 共用体变量名.成员名,自定义数据类型,64,几个注意事项,1、同一个内存段来存放几种不同类型的成员,但在同一瞬时只能存放其中的一种; 2、结构体变量所占内存长度是各成员变量占内存之和;共用体变量所占内存的长度是最长的成员的长度,65,例: union uarea char c_data; short s_data; long l_data; ,共用体,自定义数据类型,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1