资源预览内容
第1页 / 共133页
第2页 / 共133页
第3页 / 共133页
第4页 / 共133页
第5页 / 共133页
第6页 / 共133页
第7页 / 共133页
第8页 / 共133页
第9页 / 共133页
第10页 / 共133页
亲,该文档总共133页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
本节主要内容:2.1.1 C+的主要特点2.1.2 C+程序与C程序2.1.3 C+对C的一般扩充2.1.4 利用Visual C+编制和运行C+程序2.1 C+概述C+语言是由贝尔实验室的Bjarne Stroustrup 在1980年创建的。自90年代后,C+越来越受到重视并得到广泛的应用。lC+是由C扩充而来,因此,除了与C兼容,C+ 还继承了C的以下特点:丰富的运算符和数据类 型、结构化的程序设计方法、高效的机器代码、 良好的可移植性。l支持面向对象程序设计的方法。lC+的错误检查机制强,提供了专门的机制检查类和异常处理功能。lC+有很多成熟的编译器:Visual C+、Inprise (被Borland兼并)的C+ Builder、Borland的 Borland C+和IBM的VisualAge C+。2.1.1 C+的主要特点C语言程序:/* 这是一个简单的C程序: simple.c */#include void main(void) printf( “ Hello World !n “ ) ; / 输出字符串 用C+语言编写同样功能的程序2.1.2 C+程序与C程序C+语言程序:/ 这是一个简单的C+程序:simple.cpp#include void main(void) cout void main() int math, chem, phy, ave; coutmathchemphy; ave=(math+chem+phy)/3.0+0.5;/ 0.5用于四舍五入 if (ave=90)/ 使用ifelse if语句 cout=60 / 从键盘读取数据给变量x、y、z cout =,=, ;变量声明语句说明了变量的名称和数据类 型,程序中通过变量名来存取其中的数据,数据 类型定义了变量的存储结构和可以进行的运算。 编译程序要为声明的变量分配存储空间,并可以 给变量赋一个初始值。例如:int x;float radius=123.56int x, y=100;2.2.4 运算符和表达式运算符:l运算是对数据进行加工的过程,表示各种不同 运算的符号称为运算符,而参与运算的数据称为 操作数。l运算符实质上是系统预定义的函数名,而进行 运算就是调用一个函数。l按运算符和操作数的运算性质,运算符可分为 算术运算符、逻辑运算符、关系运算符和其它运 算符(见表2-1)。例如:+、-、*、/、%、+、()、=、+=、 -、/ 数组score有30个元素,其数据类型是float型int Array124;/ 数组Array有124个元素,其数据类型是 int型 注意:l数组元素的下标从0开始,直到数组长度 减1,如:score0,score1, score29。l在编译C+源程序时,为了保证程序编译 和运行的效率,C+编译系统不对数组下标进行越界检查,程序运行时系统也不会 提出越界警告。因此在对数组元素进行操 作时应格外注意,以免破坏其它存储单元 的数据,否则可能造成不可预料的后果。 数组的初始化l声明数组时可以用一个用花括号括起的常量列表 对数组进行初始化,例如:float grade3=90.0, 75.0, 85.0;l二维数组和多维数组的初始化可以按照数组的排 列顺序或分行赋初始值的方法。例如:int a23=2, 4, 6, 8, 10, 12;/ 按数组的排列顺序int a23=2, 4, 6,8, 10, 12;/ 分行赋初始值其中,2、4、6分别为a0的元素a00、a01和 a02的初始值。 数组的初始化l初始值的个数可以比数组元素的个数少,这时 未提供初始值的元素被置为0。例如:int a23=2, 4, 6;l当提供全部的初始值时,数组第一维的长度可以省略。例如:float grade = 90.0, 75.0, 85.0;int a 3 = 2, 4, 6,8, 10, 12; 数组使用举例例 输入10个学生某门课的成绩,然后按与输入次序相反的顺序输出成绩。 #include void main() int i; float score10; coutscorei;/ 输入数据 cout=0; i-) cout * ;符号“*”是指针类型说明符,声明变量是一个指针型变量。例如:int* pointer ;int *pointer ; / 两条语句功能相同2.3.4 指针 l有两个与指针有关的运算符:取地址运算符 “”和指针运算符“*”;l运算符“”用于取一个变量的地址;l运算符“*”以一个指针作为其操作数,其 运算结果表示所指向的变量;l“”运算和“*”运算互为逆运算。 指针使用举例与指针有关的运算符 #include void main() int a, b, *pa, *pb; a=10; b=20; pa= pb=/ 使pa指向a,pb指向b cout void main() int a =2, 4, 6, 8, 10; int* pa=a;/ 或pa= for(int i=0; i void main(void) char* pStr1=“Enter a string:“;/ 使用字符指针 char* pStr2=“The length of string is:“; char string100;/ 使用字符数组 coutstring;/ 输入字符串 int length=0; while(stringlength!=0) / 计算字符串长度 length+; cout ;. . . . . .; 例下面定义职员结构类型: struct staffer intID; charname20; bool sex; float salary; 定义了结构(类型),就可以用结构声明结构 变量,结构变量的声明形式如下:;例如 . . . 例如,利用定义的职员结构staffer声明一个职 员结构变量:staffer employee1;注意: 不能在定义结构时对成员进行初始化,因为结构是一种数据类型,而不是一个变量。只有在 声明一个结构变量时才可以对该结构变量的成员 进行初始化。如下所示:staffer employee1= 110105, “LiMing“, 1, 3809.80 ; l 结构变量是一种组合类型的变量,结构变量的引用包括整个变量的引用和其成员的引用。l 作为变量,整个结构变量可以进行赋值、作为函数参数和返回值。l 结构变量成员的使用与同类型的普通变量完全一样,但必须使用成员运算符“.”说明是哪一个结构变量的成员。结构成员引用的形式为:. 例如 . . .结构变量的引用employee1=employee2; / 引用整个结构变量employee1.ID=110108;/ 引用结构成员strcpy(employee1.name, “WangPing“); / 结构成员结构变量及其成员的引用:指向结构变量的指针:结构变量的指针的声明、赋值和使用规则同普 通指针一样。可以通过使用指向运算符“-”引用结构成员。引用的形式如下:- 例如 . . .staffer* pStaff= / 声明结构变量的指针pStaff -ID=110115; / 引用结构成员strcpy(pStaff -name, “WangPing“); / 引用结构成员 通过指向运算符“-”引用结构成员:#include struct student/ 定义结构 charname20; intscore4; intaverage; ; 例 利用结构编程,计算一个学生4门课的平均分数。 void main(void) student stu;/ 声明结构变量 int i, sum=0; coutstu.name;/ 输入姓名 coutstu.scorei;/ 输入4门课分数 for(i=0; i , , ;l枚举常量是C+标识符,每一个枚举常量对应 一个整数值,第1个常量值为0,第2个常量值为1 ,依此类推。 使用举例: 2.3.7 枚举使用举例:l以下定义了一个表示颜色的枚举类型:enum ColorRed, Green, Blue;l定义好的枚举类型可作为数据类型用于声明枚 举型变量,例如:enum Color MyColor ;l声明了枚举型变量,就可以将定义枚举类型时 所列举的枚举常量集合中的任何一个常量赋值 给枚举型变量。例如:MyColor = Green;l在定义枚举类型时,可以为枚举常量指定其对 应的整型值,例如:enum ColorRed = -1, Green, Blue =3;用typedef语句定义类型是指对原有的数据类型 定义一个新的名称,而不是真正定义一个新的数据 类型。typedef语句的使用形式为:typedef ;其中的数据类型可以是简单的数据类型,如int 、float和char等,也可以是诸如结构、枚举等组合 数据类型。使用typedef的目的有两个:移植程序,增加程 序的可读性。 使用举例: 2.3.8 用typedef定义类型typedef int INTEGER; typedef unsigned char BYTE; typedef struct tagDate int year; int month; int day; DATE;新定义数据类型如INTEGER(一般用大小字母) 与int完全一样,可以用它进行变量的声明。如:INTEGER i ;例如:2.4 控制语句从结构化程序设计的观点考虑问题,任何 算法功能都可以通过三种流程控制结构来实现。 为了实现复杂的算法功能,除了采用一般的按照 源代码编写顺序执行程序的顺序结构,还需要采 用另外两种能够控制语句执行顺序的控制结构: 分支结构和循环结构。分支结构是根据某个条件来决定执行哪些 源代码,循环结构是根据某个条件来决定是否重 复执行一段源代码。C+提供了多种不同形式的 流程控制语句。 包括if语句和switch语句,用于实现分支结构。if 语句的一般形式:if()如果表达式的值为真(非0),则执行其中的 语句(块),否则跳过该语句。2.4.1 条件语句 if语句的另一种形式:if()elseif语句的嵌套形式:if()else if()else if(). . . . . . else if()else例 输入一个学生三门课的成绩,计算其平 均值,并根据其值输出评语。#include void main() int math, chem, phy, ave; coutmathchemphy; ave=(math+chem+phy)/3.0+0.5; / 0.5用于四舍五入 if (ave=90) / 使用ifelse if语句 cout=60 coutch不能输入空格 switch(ch) case 0: case 1: . . . . . . case 9: cout;)l 表达式2是循环条件表达式,其值为真时执行循 环,为假时终止循环。l 在进入for循
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号