《C++简单程序设计.ppt》由会员分享,可在线阅读,更多相关《C++简单程序设计.ppt(51页珍藏版)》请在课桌文档上搜索。
1、C+简单程序设计,1.1 C+语言概述1.2 基本数据类型和表达式1.3 运算符与表达式1.4 程序的基本控制结构,1.1 C+语言概述,1.1.1 C+的词法与规则1.1.2 C+程序结构的组成,返回首页,1.1.1 C+的词法与规则,1C+的字符集C+中含有以下字符:数字,小写字母,大写字母,运算符,特殊字符,不可印出字符。2词与词法规则1)标识符2)关键字3)运算符和分隔符4)字符串5)常量6)注释。,3.C+书写格式C+语言程序的书写格式自由度高,灵活性强,随意性大,如一行内可写一条语句,也可写几条语句;一个语句也可分写在多行内。不过应采用适当的格式书写,便于人们阅读和理解。为了增加程
2、序的可读性和利于理解,编写程序时按如下要点书写:(1)一般情况下每个语句占用一行。(2)不同结构层次的语句,从不同的起始位置开 始,即在同一结构层次中的语句,缩进同样的 字数。(3)表示结构层次的大括弧,写在该结构化语句 第一个字母的下方,与结构化语句对齐,并 占用一行。(4)适当加些空格和空行。,表1-1 C+的标准保留字,1.1.2 C+程序结构的组成,C+程序结构的基本组成包括以下几个部分:(1)预处理命令,C+提供了三类预处理命令:宏定义命令、文件包含命令和条件编译命令。(2)输入输出,C+程序中总是少不了输入和输出语句,实现与程序内部的信息交流。(3)函数(4)语句(5)变量(6)其
3、他,下面用一个简单的程序例子来分析C+程序的构成。例1-2:C+程序构成示例。/*-C+程序构成示例-*/注释#define PI 3.1415926/宏定义命令,定义符号常量PI#include/文件包含命令void main()/主函数 double length,area,radius;/定义变量coutradius;/输入语句length=2*PI*radius;area=PI*radius*radius;coutlength=lengthendl/输出语句area=areaendl;,1.2 基本数据类型和表达式,1.2.1 数据类型概述1.2.2 常量1.2.3 变量,图1-1 C
4、+数据类型,1.2.1 数据类型概述,1基本数据类型基本数据类型有4种:整型(int)、浮点型(float)、字符型(char)、逻辑型(bool)。2空类型void:用于显示说明一个函数不返回任何值。3构造类型:又称组合类型,它是由基本类型按照某种规则组合而成的。4指针类型:变量用于存储另一变量的地址,而不能用来存放基本类型的数据。5类类型:体现面向对象程序设计的最基本特征,也是体现C+与C最大的不同之处。,1.2.2 常量,1整型常量整型数据表示通常意义上的整数,整型常量可以用十进制、八进制或十六进制表示。2浮点数常量浮点数也称为实型数。只能以十进制形式表示。共有两种表示形式:小数表示法和
5、指数表示法。3字符常量与字符串常量(1)字符常量。(2)转义字符。(3)字符串常量。,4逻辑常量逻辑常量是逻辑类型中的值,Visual C+用保留字bool表示逻辑类型,该类型只含有两个值,即整数0和1,用0表示逻辑假,用1表示逻辑真。5枚举常量枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。6地址常量指针类型的值域是0232-1之间的所有整数,每一个整数代表内存空间中一个对应单元(若存在的话)的存储地址,每一个整数地址都不允许用户直接使用来访问内存,以防止用户对内存系统数据的有意或无意的破坏。,表1-2 常用的特殊字符,1.2.3 变量,
6、1变量命名变量的命名要遵守以下规则:(1)不能是C+保留字。(2)第一个字符必须是字母或下划线,中间不能有空格。(3)变量名除了使用26个英文大小写字母和数字外,只能使用下划线。(4)一般不要超过31个字符。(5)变量名不要与C+中的库函数名、类名和对象名相同。,2变量定义和说明变量定义是通过变量定义语句实现的,该语句的一般格式为:=,;,3变量初始化变量初始化一般采用两种方式:在定义变量时可以给变量赋一个初值,例如:int a=3;float b=3.4;const int c=5;先定义变量,再通过赋值语句使变量初始化,例如:int a;a=3;,1.3 运算符与表达式,1.3.1 运算符
7、1.3.2 表达式1.3.3 数据类型转换,C+语言的运算符按其在表达式中与运算对象的关系(连接运算对象的个数)可分为:单目运算符(一元运算符,只需一个操作数)双目运算符(二元运算符,需两个操作数)三目运算符(三元运算符,需三个操作数),1.3.1 运算符,1算术运算符 2赋值运算符3关系运算符4逻辑运算符5自增、自减运算符6条件运算符7位运算符8sizeof运算符(求字节运算符),1.3.3 数据类型转换,1隐式类型转换隐式类型转换是由编译器自动完成的类型转换2显式类型转换显式类型转换是由程序员显式指出的类型转换,转换形式有两种:类型名(表达式)(类型名)表达式,图1-2 数据类型转换的顺序
8、,1.4 程序的基本控制结构,1.4.1 顺序结构1.4.2 选择结构1.4.3 循环结构1.4.4 转移语句,1.4.1 顺序结构,1表达式语句2输入/输出(I/O)3复合语句,1表达式语句,表达式是指用运算符连接各个运算对象,合乎语法规则的式子。在C+程序中,几乎所有的操作运算都通过表达式来实现,而表达式语句也就成了C+程序中最简单也是最基本的一类语句。(1)空语句。(2)赋值语句。(3)函数调用语句,2输入/输出(I/O),(1)输入。当程序需要执行键盘输入时,可以使用抽取操作符“”从输入流cin中抽取键盘输入的字符和数字,并把它赋给指定的变量。(2)输出。当程序需要在屏幕上显示输出时,
9、可以使用插入操作符“”向输出流cout中插入字符和数字,并把它在屏幕上显示输出。,3复合语句,C+语言允许把一组语句用一对花括号括起来,构成一个复合语句。例如:int a;a=1+2;复合语句是若干条语句的一个集合,它在语法上是一个整体,相当于一个语句。复合语句与简单语句一样地使用。,1.4.2 选择结构,1ifelse语句(1)if语句(2)空语句(3)ifelse语句 2switch语句switch语句是多分支的选择语句。,例判断用户的输入,根据输入数值是大于0、等于0、小于0,分别在屏幕上显示“正数”、“零”、“负数”。,#includevoid main()int a;cina;if(
10、a0)cout正数endl;else if(a0)cout负数endl;elsecout零endl;,1ifelse语句,2switch语句,switch语句的语法格式为:switch(整数表达式)case 常量表达式1:;case 常量表达式2:;case 常量表达式n:;default:;,例根据输入的百分制按五分制的成绩输出:,#includevoid main()int score,s;char grade;coutscore;if(score=0 switch(s)case 0:case 1:case 2:case 3:,case 4:case 5:grade=2;break;cas
11、e 6:case 7:grade=3;break;case 8:grade=4;break;case 9:case 10:grade=5;break;coutgrade isgradeendl;elsecout数据输入有误endl;,几点说明:(1)default语句是可缺省的。(2)switch后面括号中的表达式只能是整型、字符型或枚举型表达式。(3)在各个分支中的break语句起着退出switch语句的作用。(4)case语句起标号的作用。标号不能重名,每一个case常量表达式的值必须互不相同,否则就会出现编译错误。(5)当多个分支需要执行同一操作时,可以使多个case语句共用一组语句序列
12、。(6)各个case(包括default)语句的出现次序可以任意。(7)每个case语句中可以有多条语句组成相应的语句序列,但不必用。,例:读入一行字母,求其中元音字母出现的次数。#include#include void main()char c;int count=0;while(c=getche()!=n),switch(c)case a:case A:case e:case E:case i:case I:case o:case O:case u:case U:count+;break;coutcountendl;,1.4.3 循环结构,C+提供了三种循环控制语句:while语句,do
13、while语句,for语句。三种语句都由相似的三部分组成:进入循环的条件,循环体,退出循环的条件;完成的功能也类似。所不同的只是三者进入与退出循环的方式不同。while语句:当条件满足时进入,重复执行循环体,直到条件不满足时退出。,1while语句,1while语句while语句的语法格式为:while(条件表达式)循环体;它的含义为:首先对条件表达式进行判断,若判断结果为假(false,0),则跳过循环体,执行while结构后面的语句。若判断结果为真(true,非0),则进入循环体,执行其中的语句序列。while循环由4个部分组成:循环变量初始化,判断条件,循环体,改变循环变量的值。,例计算
14、sum=1+2+3+10的while循环结构如下::sum=0;i=1;/循环变量初始化while(i=10)/判断条件/循环体 sum=sum+i;i+;/改变循环变量的值,例:输入一行字符,求其中字母、数字和其他符号的个数。解:#include#include void main()char c;int letters=0,digit=0,others=0;coutPlease input a line charatersn;while(c=getche()!=n),if(c=a,2dowhile语句,2dowhile语句dowhile语句的语法格式为:do 循环体;while(条件表达式
15、);它的含义为:当流程到达do后,立即执行循环体语句,然后再对条件表达式进行判断。,例1-8:求满足下式的最小n值,limit由键盘输入。1+1/2+1/3+1/nlimit程序如下:#include void main()int i=0,sum=0;float limit;cout limit;do i+;sum+=1/i;while sum=limit;couti;,3for语句,3for语句for语句的语法格式为:for(表达式1;表达式2;表达式3)循环体;(1)先求解表达式1;(2)求解表达式2,若为0(假),则结束循环,转到(5);(3)若表达式2为非0(真),则执行循环体,然后求
16、解表达式3;(4)转回(2);(5)执行for语句下面的一个语句。,例如,求和运算:for(i=1;i+)/分号不能省略sum+=i;if(i10)break;等价于:for(i=1;5;i+)sum+=i;if(i10)break;,例:输出菲波那切数列的前20项。即前两项为1,以后每一项为前两项之和。#include void main()int i1=1,i2=1,i3,i;couti1 i2;for(i=3;i=20;i+)i3=i1+i2;couti3;i1=i2;i2=i3;,1.4.4 转移语句,1break语句break语句的作用是:结束当前正在执行的循环(for、while和
17、dowhile)或多路分支(switch)程序结构,转而执行这些结构后面的语句。2continue语句continue语句的作用是:结束当前正在执行的这一次循环(for、while和dowhile),接着执行下一次循环。即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。3goto语句goto语句的语法格式为:goto 标号;,例如,下面的代码在执行了break之后,继续执行“a+=1;”处的语句,而不是跳出所有的循环。for(;)for(;)if(i=1)break;a+=1;/break跳至此处/,for(;)for(;)if(i=1)break;a+=1;/break跳至此处
18、/,例1-10:编程求50100内的素数#include#include#define MIN 51#define MAX 100void main()int i,j,k;for(i=MIN;i=MAX;i+=2)/素数必是奇数,k=int(sqrt(double(i);for(j=2;j=k+1)cout i;coutendl;输出结果为:53 59 61 67 71 73 79 83 89 97,例1-11:编程从键盘上输入的10个数中所有正数之和。#include void main()int num;sum=0;coutnum;if(num0)continue;sum+=num;cout sum=sumendl;,例如:求1加到10的总和。i=1;sum=0;loop:sum+=i+;if(i=10)goto loop;cout the sum is sum endl;,