c++复习Word格式文档下载.docx
- 文档编号:8177277
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:98
- 大小:114.48KB
c++复习Word格式文档下载.docx
《c++复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++复习Word格式文档下载.docx(98页珍藏版)》请在冰点文库上搜索。
该程序经编译和连接后,运行可执行程序时,显示器上显示为:
i=
此时等待用户输入一个整数,设输入为100,则最后结果为:
I的值为:
100
下面介绍程序的基本结构和各语句的作用:
1、注释和说明信息
(1)/**/
(2)//(从此开始到本行结束为止)
2、包含文件或编译预处理指令
编译预处理指令:
以#开头的行(由于本例中用到输入输出函数,iostream.h是一个标准的输入/输出流的头文件)
3、主函数main()
任何一个C++程序必须要且只能有一个主函数。
一个C++程序总是从main()函数开始执行,而不管该函数在整个程序中的具体位置。
4、大括号{}(函数或语句括号)
任一函数体均要以{开始,以}为结尾。
注意:
大括号要配对使用。
5、任一个C++程序均有一个或多个函数组成,其中必须有一个主函数main(),其余函数(包括库函数和用户自定义函数)可有可无。
而且每条语句均要以;
为结束。
6、程序的书写规则
(1)一个语句可写成若干行,一行内也可写若干个语句。
(2)对齐规则:
同一层次的语句必须从同一列开始;
同一层次的大开括号必须与对应的大闭括号在同一列上。
(3)缩进规则:
同一层次的语句必须缩进几个字符。
(4)任何函数的定义均要从第一列开始书写。
7、C++没有专门的输入/输出语句。
输入/输出语句要通过函数来实现。
8、严格区分字母的大小写。
四、VC++程序的实现
1、VC++上机环境介绍
2、一个源程序的执行过程
#include<
voidmain(void){
floatr,s;
cout<
"
请输入圆的半径:
;
cin>
r;
s=2*3.1415926*r
圆的周长为:
s<
endl;
3、注意的问题:
(1)VC++集成环境每一次只允许编译和调试一个应用程序,当需要输入另外一个程序时,则应该先关闭当前窗口,然后建一个“Projects”项目,再建立一个新的“C++SourceFile”。
(2)编译和运行可以合并一步完成,即选择工具栏上红色“!
”。
当源程序有错误时,需要先把错误修改正确后再单击该工具“!
”,如果此时程序没有错误系统会自动执行。
(3)源程序有错误并修改后一定要再编译后执行,即先编译后执行这个过程不可缺省。
每次修改都要再编译运行。
第二章数据类型、运算符和表达式
1、掌握常量的表示法【字符和字符串常量、短整型、整型和长整型、实数(float)和双精度实数(double)】.
2、掌握各种类型变量的说明及初始化
3、掌握各种运算符和各类表达式
(1)算术运算、逻辑运算、关系运算、++和――运算、三目条件运算符;
(2)运算符的优先级、结合规则和目数的概念;
(3)类型的自动转换和强制类型转换;
(4)表达式的组成、左值和赋值,逻辑表达式的求值优化;
一、数据类型:
C++提供了十分丰富的数据类型,除基本类型外,还提供了导出(构造)数据类型:
各种数据类型在内存中所占用的字节数。
二、标识符:
注意标识符的命名规则。
三、常量:
常量可分为整型常量、实型常量、字符常量、字符串常量和标识符常量。
(1)字符常量
单引号括起来的单个字符。
例如:
‘a’,‘&
’等都是合法的字符常量,‘ab’,“a”都是不合法的字符型常量。
C++还提供了另一种表示字符型常量的方法,即所谓的“转义序列”。
转义序列就是以转义符”\”开始,后跟一个字符或一个整型常量(字符的ASCII值)的办法来表示一个字符。
若转义字符后边是一个整型常量,则必须是一个八进制或十六进制数,其取值范围必须在0~255之间。
该八进制数可以以0开头,也可以不以0开头;
而十六进制数必须民0X或0x开头。
常用的转义序列字符有:
’\\’表示字符“\”,‘\’’表示单引号,‘\”’表示双引号,‘\n’表示换行符等。
(2)字符串常量
用双引号括起来的若干个字符。
“ab3d”,“a”都是合法的字符串常量。
字符串常量与字符常量的存放格式不一样,在字符串常量的尾部,存储时都要存放一个’\0’,’\0’表示字符串的结束符。
当双引号要作为字符串中的一个字符时,必须采用转义序列表示法;
单引号作为字符串中的一个字符时,可直接出现在字符串常量中,也可以采用转义序列表示法。
(3)标识符常量
标识符常量是用标识符表示的常量。
定义标识符常量后,可以像字面常量一样使用该标识符。
可用两种方法定义标识符常量:
一种是使用编译预处理命令方法,另一种是利用常量说明语句。
①编译预处理命令
例:
#definePI3.1415926
②使用常量说明符const
constfloatPI=3.1415926在程序中标识符常量必须先定义后引用,并且标识符常量在程序中只能引用,不能改变其值。
四、变量
根据其取值的不同,分为不同类型的变量:
整型变量、实型变量、字符型变量、构造型变量和指针型变量等。
inta;
//定义整型型变量a,并为a分配4个字节的存储单元,变量说明语句必
须以分号结束。
变量要求说明在前,使用在后。
变量说明语句可以出现在程序中语句可出现的任何位置,同一变量只能作一次定义性说明。
首次引用变量时,变量必须有一个确定的值。
对变量赋初值的三种方法:
①在变量说明的同时对变量赋初值,例如:
charch1=‘a’,charch2=‘b’;
②使用赋值语句赋值,例如:
floatx,y;
x=1.234;
y=2.56;
③通过输入流cin对变量赋初值,例如:
inta;
a;
(后面章节将会学到)
五、运算符与表达式
(1)算术运算
C++中的算术运算符有两个单目运算符(只有一个操作数的运算符):
+(正号)、-(负号);
五个双目运算符(有两个操作数的运算符):
+(加)、―(减)、*(乘)、/(除)、%(取余)。
注意数据类型的转换!
(2)关系运算
C++提供六种关系运算符:
>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!
=(不等于)。
前面4种(>,<,>=,<=)优先级相同,后两种(==,!
=)优先级相同,前4种高于后两种。
结合性都为右结合。
关系运算符完成两个操作数的比较运算,即比较两个操作数的数值大小。
运算的结果为一整数,当关系成立时,其运算结果为整数1;
当关系不成立时,其运算结果为整数0。
关系运算的结果可作为一个整数参与表达式的运算。
(3)逻辑运算
C++中提供三种逻辑运算符:
逻辑非(!
)、逻辑与(&
&
)和逻辑或(||)
第一个运算符是单目运算,后两转者是双目运算符。
在计算过程中,要注意&
的优先级低于!
优先级,但高于||的优先级。
!
为左结合,而其它两个为右结合。
在逻辑运算中要注意逻辑表达式的副作用:
①对于a&
b&
c,只有a为非0时,才需要计算b的值,因为当a为0时,不管后面的项如何,都能得到该表达式的值就为0。
同样只有在a和b都为非0的情况下才需要计算c的值。
②对于a||b||c,只要a为非0,就不需要判断b和c的值,而只有当a、b都为0时才需要计算c项。
(4)赋值运算
C++中赋值运算符分为两种:
单一赋值运算符(=)和复合赋值运算符(+=,–=,*=,/=,%=,&
=,^=,|=,<
=,>
=),都为双目运算符,结合性为左结合,其运算法则为:
将左操作数与右操作数进行相应的运算,再将结果赋给左操作数。
对于赋值运算符,其左操作数必须为变量。
(5)sizeof()运算符
sizeof()运算符是用来计算某种类型或数据所占用的字节数,它为单目运算符。
该运算符与其它类型的基本运算符稍有不同,它的操作数必须在括号内,其使用格式为:
sizeof(<
类型>
)或sizeof(<
表达式>
)
(6)自增、自减运算
自增运算符“++”和自减运算符“--”都具有两种形式,且它们都是单目运算符,操作数必须为变量,一般是整型变量,但也可以是实型或字符型变量。
++i(前置自增:
先将i的值加1,再将变化后的i值参与运算)
i++(后置自增:
先将i参与运算,再将i的值加1)
--i(前置自减:
先将i的值减1,再将变化后的i值参与运算)
i--(后置自减:
先将i参与运算,再将i的值减1)
(7)逗号运算
逗号运算符的优先级为所有运算符中最低的,结合性为右结合。
逗号表达式的一般形式为:
<
表达式1>
<
表达式2>
…,<
表达式n>
其运算顺序为按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。
以下三个表达式的结果是不同的:
(8)条件运算
条件运算符“?
:
”为三目运算符,要求有三个操作对象,使用格式为:
?
表达式3>
计算过程为:
先计算<
,若其值不等于0,则计算<
,并将计算的值作为该条件表达式的值;
否则求解<
的值,并将该值作为条件表达式的值。
其优先级高于赋值和逗号运算,左结合。
(9)常用运算符的优先级
高!
++——负号
算术运算
关系运算
逻辑运算
条件运算
赋值运算(含复合赋值)
低逗号运算
(10)类型转换
在求表达式值的过程中,对于双目运算符,通常会出现两个操作数的类型不一致的情形,这时就要求将这两个操作数转换为同一类型,然后再进行运算。
可以分为三种情况的转换:
不同类型数据的混合运算、赋值时的类型转换和强制类型转换,分别要注意这三种情况的数据类型的转换。
六、举例说明
1、设有说明“intx=5,y=7,z=8;
”,执行表达式“z+=x++||y++||++z”后,则x、y、z的值分别为()。
A.6、7、9B.6、8、10C.6、8、8D.6、8、1
2、设有语句“inta=258,b;
unsignedcharc;
b=c=a;
“,则b的值是2。
3、设有语句“chars[]=“Rep\0Ch”;
intm=sizeof(s);
”,则m的值是7。
4、在数学式
中,变量x和y的取值为整数,而变量a和b的取值为实数,在C++程序中对应的正确表达式是()
A.3/5*x*y/a/bB.3*x*y/5/a/bC.3*x*y/5*a*bD.3/a/b/5*x*y
5、设有四个常数:
①4e0.5,②‘\87’,③0x5a,④“\””,其中符合C++语法规则的常量是()
A.②③B.②④C.③④D.①②
第三章简单的输入/输出语句
●注意:
C++中无专门的输入输出语句,而是所有的输入输出语句通过输入输出流来实现的。
即:
必须在程序的开头增加一行。
//包含输入输出流的头文件
输入:
把键盘上输入的数据赋值给变量。
输出:
将程序计算的结果送到显示器上显示。
一、输入语句(cin)
1、输入十进制的整数和实数
格式:
变量名>
[>
………]
(1)“
”称为提取运算符,表示暂停程序的运行,等待用户从键盘上输入相应的数据。
(2)输入的数据之间用一个或多个空格隔开。
(1)从键盘上输入数据的个数、类型及顺序,必须与cin中列举的变量一一对应。
(2)若都为数值型,则整数和实数可相互转换。
2、输入字符型数据
(1)格式如上
(2)charc1,c2,c3,c4;
c1>
c2>
c3;
若从键盘上输入:
Abe回车
和从键盘上输入:
Abe回车
两者结果一样(回车键不算输入的字符!
注意:
1、缺省情况下,cin自动跳过输入的空格。
即cin不能将输入的空格赋值给字符型变量。
2、输入时不需带引号。
(3)cin.get(<
字符型变量>
)—从输入行中取出一个字符
作用:
把从键盘上输入的每一个字符,包含空格和回车键都作为一个字符赋值给字符型变量。
但该语句一次只能从输入行中提取一个字符。
charc5;
cin.get(c5);
//得到字母A
cin.getline(s,n)
二、输出语句(cout)
1、输出十进制整数和实数
……
inti=2,j=10,k=20,m=30;
floatx=3.14,y=100;
j<
m<
j*k<
x<
y<
输出的结果为:
210
30200
3.14100
(1)endl表示输出一个换行符,等效于’\n’。
(2)缺省情况下,每一个输出的数据之间无分隔符。
故要加’\t’(TAB)或’\r’(回车)等分隔符将数据分割开。
(3)Setw(n):
用于指定输出的宽度。
其必须要在程序的开头位置加一行:
iomanip.h>
。
另外:
1)n值必须为正整数,指出紧随其后的输出项占用的字符位置个数。
2)该设置仅对其后的一个输出项有效,一旦按指定的宽度输出其后的输出项,又回到原来的缺省输出方式。
setw(6)<
setw(10)<
setw(5)<
则输出为:
210
30200
3.14100
第四章C++的流程控制语句
第一节C++语言的语句和程序结构
一、C++语言的语句概述
语句分类:
1、说明语句(位置任意)—对数据结构的定义和描述、对变量的定义性说明等。
2、控制语句(有可能改变程序执行顺序的语句,如条件、循环等)
3、函数调用语句
4、表达式语句(表达式后加一分号,如I=I+1;
5、空语句(只有一分号所构成的语句,不执行任何操作,主要用于指明转向的控制点或在特殊情况下作为循环语句的循环体。
6、块语句(由花括号括起来的语句)
二、程序的三种基本结构
1、顺序结构
2、选择结构
3、循环结构
第二节选择结构
一、条件语句【if结构】
●单选条件语句格式:
if(<
)<
语句>
●二中择一语句格式:
语句1>
else<
语句2>
●嵌套条件语句格式:
elseif(<
语句2>
elseif…
…
语句n>
1)《语句》若为一条,则不需要括号;
反之若为多条,则需要用“{}”括起来
2)其中<
可以是符合C++语法规则的任一表达式,可以是算术表达式、关系表达式、逻辑表达式或逗号表达式。
3)《表达式》必须用括号括起来。
4)对于嵌套的if语句,C++规定了else与if的配对规则为:
else总是与其前面最近的还没有配对过的if进行配对。
5)条件运算符(?
:
)—三目运算(左结合)
?
执行步骤:
先求出表达式1的值,若其不等于0,则求出表达式2的值(不求表达式3的值),并把该值作为运算的结果;
否则求出表达式3的值(不求表达式2的值),并把他作为运算的结果。
例1:
max=a>
b?
a:
b;
等价于:
if(a>
b)max=a;
elsemax=b;
例2:
max=(t=a>
=b?
b)<
c?
c:
t;
=b)t=a;
elset=b;
if(t>
c)max=c;
elsemax=t;
二、开关语句【switch结构】
其格式为:
switch(<
){
case<
常量表达式1>
:
《语句序列1》
《break;
》
常量表达式2>
《语句序列2》
常量表达式n>
《语句序列n》
《default:
语序列句n+1>
}
1)<
叫做“switch控制表达式”,<
的值只能为整型、字符型或枚举型。
2)<
常量表达式i>
只能为整数、字符或枚举类型的常数。
3)<
语序列句i>
可以含有多个语句,也可以没有任何语句,当有多条语句时,不需要用大括号“{}”括起来。
4)执行过程:
《break》语句可有可无。
若有则【需要补充,很重要的!
】
三、上述两种结构的区别和使用
共同点:
if语句根据《表达式》的值选择合适的语句执行
四、举例说明
1、判断输入字符的种类。
把字符分为五类:
数字、大写字母、小写字母、控制字符(ASCII的编码小于32)和其他字符。
voidmain(void){
charc;
”输入一个字符:
”;
cin.get(c);
if(c<
32)cout<
”这是一个控制字符。
\n”;
elseif(c>
=’0’&
c<
=’9’)
”这是一个数字字符。
=’a’&
=’z’)
”这是一个小写字母。
elseif(c>
=’A’&
=’Z’)
”这是一个大写字母。
else
”这是一个其他字符。
条件
2、执行下列程序段后,变量i的值为
inti=10;
switch(i)
{
case9:
i+=1;
case10:
case11:
default:
A.13B.12C.11D.14
break语句
第三节循环语句结构
一.while结构:
●while()语句
格式:
while(<
循环条件表达式>
循环体>
●do…while()语句
do{
}while(<
);
1)while(<
)后的分号不可省略。
2)while()语句与do…while()语句的主要区别:
循环条件的判断与循环体的执行顺序不同,while()语句是先判断后执行,而do…while()语句是先执行后判断。
因此,while()语句中的循环体可以一次也不执行,而do…while()语句中的循环体至少要执行一次。
二、for结构
for(<
;
)
1、执行过程:
(1)求出表达式1的值
(2)求出表达式2的值,若表达式2的值等于0(为假),则执行4),否则执行3)
(3)执行语句S,求出表达式3的值。
转2)
(4)结束循环,执行for()后面的语句。
(5)从执行过程看,首先判断循环条件,若满足循环条件,则执行循环体,所以循环体可能一次也不执行,也有可能执行若干次。
2、注意:
1)一般在表达式1中对循环变量赋初值,如果为空则应在for语句前对循环变量赋初值。
2)表达式2为循环条件,可以为空,此时系统约定其值为1,即循环条件恒成立,所以要想退出循环应该在循环体中使用break语句。
3)一般在表达式3中改变循环变量的值,如果为空则应在循环体中改变循环变量的值。
4)任何情况下表达式1和表达式2后的分号都不可省略。
三、比较
1、这三种循环结构中,循环体中的语句多于一条时,应用大括号{}括起来以复合语句形式出现。
2、OR和WHILE都是先判断循环条件,再根据条件决定是否要执行循环体。
而DO则其循环体至少要被执行一次。
3、OR适用于循环次数已确定的情况下,用的比较多。
四、控制执行顺序的语句
1、break语句(结束循环)
2、continue语句(结束本次循环,重新开始下次循环)
五、举例说明
1、用牛顿迭代法求X=
的近似值。
已知迭代公式:
Xn+1=(Xn+a/Xn)/2
要求:
前后两次求出的根的近似值之差的绝对值小于10-5。
math.h>
floatx0,x1,a;
”输入一个正数:
”;
if(a<
0)cout<
”不能开平方!
\n”;
else{
x1=a/2;
do{
x0=x1
x1=(x1+a/x0)/2;
while(fabs(x1-x0)>
1e-5);
x1<
\n;
2、设有语句“for(inti=5,sum=0;
i<
10,sum++
i++)sum+=i;
”,则for()语句的执行情况是。
A.循环0次B.循环4次C.循环5次D.循环6次
3.循环语句“for(intx=0,y=0;
y!
=100||x<
10;
)x++;
”,执行的循环次数是。
A.无限次B.10C.11D.100
4.for(intx=0,y=0;
!
x&
y<
=5;
y++)语句执行循环的次数是______。
A.0 B.5 C.6 D.无次数
5、以下程序的输出结果是s=,k=。
#include<
voidmain(void)
{intj,k,s,m;
for(k=1;
k<
7;
k++){
s=1;
m=k+2;
for(j=k;
m;
j++,k++)s+=j;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 复习