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

上传人:本田雅阁 文档编号:3450975 上传时间:2019-08-26 格式:PPT 页数:42 大小:311.04KB
返回 下载 相关 举报
第二章简单C程序设计.ppt_第1页
第1页 / 共42页
第二章简单C程序设计.ppt_第2页
第2页 / 共42页
第二章简单C程序设计.ppt_第3页
第3页 / 共42页
第二章简单C程序设计.ppt_第4页
第4页 / 共42页
第二章简单C程序设计.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

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

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(void) cout“Hello!n“; cout“Welcome to c+!n“; 运行结果: Hello! Welcome to c+!,C+语言概述,6,字符数据的使用方法 字符数据和整型数据之间可以运算。 字符数据与整型数据可以互相赋值。 字符串常量 例:“CHINA“ “a“ a 所以:char c; c=“a“;,Page 6,数据类型 字符型数据,基本数据类型和表达式,7,数据类型 变量初始化,例: int a=3; double f=

3、3.56; char c=a; int c(5);,Page 7,基本数据类型和表达式,8,数据类型 混合运算时的类型转换,不同类型数据进行混合运算时,C+编译器会自动进行类型转换。 为了避免不同的数据类型在运算中出现类型问题,应尽量使用同种类型数据。 可以采用强制类型转换: 例如: float c; int a,b; c=float(a)/float(b); 或 c= (float)a/(float)b;,基本数据类型和表达式,9,赋值运算符和赋值表达式 简单的赋值运算符“=“,举例 n=n+5 表达式的类型 等号左边对象的类型 表达式的值 等号左边对象被赋值后的值,Page 9,基本数据类

4、型和表达式,10,赋值运算符和赋值表达式 赋值表达式举例,a=5 表达式值为5 a=b=c=5 表达式值为5,a,b,c均为5 a=5+(c=6) 表达式值为11,a为11,c为6 a=(b=4)+(c=6) 表达式值为10,a为10,b为4,c为6 a=(b=10)/(c=2) 表达式值为5,a为5,b为10,c为2 a+=a-=a*a 相当于 a=a+(a=a-a*a),Page 10,基本数据类型和表达式,11,逗号运算和逗号表达式,格式 表达式1,表达式2 求解顺序及结果 先求解1,再求解2,最终结果为表达式2的值 例 a=3*5 , a*4 最终结果为60,Page 11,基本数据类

5、型和表达式,12,sizeof 运算符,语法形式 sizeof (类型名) 或 sizeof (表达式) 结果值: “类型名”所指定的类型或“表达式”的结果类型所占的字节数。 例: sizeof(short) sizeof(x),基本数据类型和表达式,13,位运算按位与(&),运算规则 将两个运算量的每一个位进行逻辑与操作 举例:计算 3 ,基本数据类型和表达式,14,位运算按位或(|),运算规则 将两个运算量的每一个位进行逻辑或操作 举例:计算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 1 3 | 5: 0 0 0 0 0 1 1 1 用途:

6、将某些位置1,其它位不变。 例如:将 int 型变量 a 的低字节置 1 : a = a | 0xff;,基本数据类型和表达式,15,位运算按位异或(),运算规则 两个操作数进行异或: 若对应位相同,则结果该位为 0, 若对应位不同,则结果该位为 1, 举例:计算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1 0 1 0 071052 : 0 0 0 1 0 0 1 1,基本数据类型和表达式,16,位运算按位异或(),用途: 使特定位翻转(与0异或保持原值,与1异或取反) 例如:要使 01111010 低四位翻转: 0 1 1 1 1 0 1 0

7、() 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1,基本数据类型和表达式,17,位运算取反(),单目运算符,对一个二进制数按位取反。 例: 025:0000000000010101 025:1111111111101010,基本数据类型和表达式,18,位运算移位,左移运算() 右移后,低位:舍弃 高位:无符号数:补0 有符号数:补“符号位”,基本数据类型和表达式,19,混合运算时数据类型的转换 强制类型转换,语法形式: 类型说明符(表达式) 或 (类型说明符)表达式 强制类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。,基本数据类型和表达式,20,简单的输入、

8、输出,C+就数据在设备间传输的过程抽象为“流”。从流中获取数据成为提取操作,向流中添加数据的操作称为插入操作。数据的输出与输出操作通过I/O流实现, cin和cout是预先定义的流对象,在头文件iostream中定义的。 向标准输出设备(显示器)输出 例:int x; coutx name;,21,用cout进行输出,格式: cout 表达式1表达式2 功能:由左向右逐个计算表达式的值,将其插入到输出流cout中。 cout 必须与输出运算符一起使用,每个后跟一个表达式,运算符的结合方向是从左向右,所以各个表达式的值按从左到右的顺序插入到输出流中。,22,for ( k = 1; k =3;

9、k+) cout “k=“ kendl; endl是C+输出流的操作符,在头文件iostream中定义,代表让光标换行。在C+中也可以用”n”控制光标换行。所以输出语句也可写成: cout “k=“ k“n” ;,23,用cin进行输入,格式: cin变量1 变量2 是C+的提取运算符,表示从标准输入设备取得数据,赋予其后的变量。 从键盘输入数值数据时,两个数据之间用空格分隔或用回车分隔。,24,int a; float b cinab; 从键盘输入 20 32.45 ,25,cin和cout的使用,#include using namespace std; int main( ) coutn

10、ame; cinage; cout“your name is “nameendl; cout“your age is “ ageendl; return 0; ,26,typedef语句,为一个已有的数据类型另外命名 语法形式 typedef 已有类型名 新类型名表; 例如 typedef double area,volume; typedef int natural; natural i1,i2; area a; volume v;,自定义数据类型,27,枚举类型enum,只要将需要的变量值一一列举出来,便构成了一个枚举类型。 枚举类型的声明形式如下: enum 枚举类型名 变量值列表; 例

11、如: enum weekday sun,mon,tue,wed,thu,fri,sat;,自定义数据类型,28,枚举类型enum,枚举类型应用说明: 对枚举元素按常量处理,不能对它们赋值。例如,不能写:sun=0; 枚举元素具有缺省值,它们依次为: 0,1,2,。 也可以在声明时另行指定枚举元素的值,如: enum weekday sun=7,mon=1,tue,wed,thu,fri,sat; 枚举值可以进行关系运算。 整数值不能直接赋给枚举变量,如需 要将整数赋值给枚举变量,应进行强 制类型转换。,自定义数据类型,29,例2-11,设某次体育比赛的结果有四种可能:胜(win)、负(lose

12、)、平局(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_r

13、esult)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; ,30,运行结果 The game was played and we won! The game was played and we lost. The game was played The game w

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

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

16、 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,37,const定义常变量,格式: const 类型 变量名 = 常数; 例:const float PI= 3.14159;,38,00F0,00F8,char * p ;,p对应的内存,const常量定义,指针与常量,使用指针时会涉及到两个对象,指针本身和指针指向的对象

17、。,00F0,*(p + 1) = * ; / p1 = *;,*,39,const与指针一起使用时,有三种组合方式: 指向常量的指针; 常指针; 指向常量的常指针。,指针与常量,const常量定义,40,指向常量的指针是指一个指向常量的指针变量。 如: char str = “Chen”; const char *name = str; 表示声明了一个指针变量name,它所指向的是一个字符串型常量。 name2=a; name=“zhang”;,const常量定义,41,常指针是指把指针本身定义为常量,而不是所指的对象,如: char str = “Chen”; char *const name= str; name2=a; name=“zhang”;,指向常量的常指针是指一个常指针,它本身的值不能改变,所指向的值也是一个常量。如: const char *const name=“chen”; 如上两句操作均出错。,const常量定义,42,const另一个一个重要用途是用来定义函数参数. int Max(const int * ptr); /求数组中元素的最大值 ,const常量定义,

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

当前位置:首页 > 其他


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