《《C++程序设计简明教程》-王晓东-电子教案 第2章 C++基础》由会员分享,可在线阅读,更多相关《《C++程序设计简明教程》-王晓东-电子教案 第2章 C++基础(79页珍藏版)》请在金锄头文库上搜索。
1、第2章 C+基础,2.1 基本数据类型 2.2 表达式与语句 2.3 输入与输出 2.4 选择结构 2.5 循环结构 2.6 复合数据类型,2.1 基本数据类型,C+预先设置了基本数据类型,分别是整型、实型、字符型和布尔型,程序员可以在程序中直接使用。在基本数据类型的基础上,还可以根据需要定义复合数据类型,例如数组、结构体、共用体和枚举类型,以表达更为复杂的数据。,标识符,标识符就是名字,它由一串字符序列构成。其语法规则是: 1.由字母、数字或者下划线(_)组成。 2.首字符必须是字母或者下划线。 例如num、b2和_a都是合法的C+标识符,3c、ye#和int都是非法的标识符。,常量,在程序
2、运行过程中其值不能改变的量叫做常量。常量分为整型常量、实型常量和字符型常量等。 整型常量有23 、-7 、036(八进制) 、0x2d(十六进制) 、5L(长整型常量) 、6U (无符号常量)等。 实型常量有5.87 、3.14f(单精度) 、2e3(指数形式)等。 字符型常量有a、n(转义字符) 、”china”(字符串常量)等。 布尔型常量,true和false。,符号常量,可以使用标识符代表一个常量,例如:#define PI 3.14 PI就称为符号常量。 还可以用关键字const定义符号常量。例如: const float PI=3.14; const变量必须在定义的时候立刻初始化,
3、而且在程序执行期间,其值不能够被修改。,变量,在程序运行过程中其值可以改变的量叫做变量。变量对应了内存的一段存贮单元。 变量要先定义,再使用。 变量定义语句的一般形式为: 类型 变量名1,变量名2, ;,整型变量,int a=17;/定义整型变量a,并赋初值 long b(13467L);/定义长整型变量b,并赋初值 unsigned int c,d;/定义无符号整型变量c和d 变量可以在定义时初始化。除了“=”的传统方式之外,C+语言还允许用括号()为变量赋初值。,整型变量的取值范围,实型变量,float a;/定义浮点型变量a double b;/定义双精度型变量b long double
4、 c;/定义长双精度型变量c,实型变量的取值范围,字符型变量,char c=a;/定义字符型变量c,并初始化 字符型数据按ASCII码存储,占一个字节。 给字符变量赋值时可以赋予字符的ASCII码。例如:char a=65的结果是a变量中存放字母A 。,案例,#include main ( ) char a=a,b=b,c=c,d=65; a=a+1;b=b+2;c=c+3;d=d+4; coutabcdendl; 运行结果:bdfE,常见的转义字符,布尔型变量,bool a=9;/a的值为true int b=false;/b的值为0 如果将布尔型数据转换为整型数据,则true转换为1,fa
5、lse转换为0。反之,如果将整型数据转换为布尔型数据,则遵循“非0为真”的原则,将非0数转换为true,0转换为false。,引用,类型 /定义一个整型引用r,是变量a的别名 引用是一个变量或者对象的别名。引用在定义的同时,必须立即初始化,即作为一个已经定义的同类型变量的别名,而且以后不能更改。,2.2 表达式与语句,表达式描述了对哪些数据,以什么顺序施以什么样的操作,程序中对数据的运算是通过表达式完成的。 语句是程序构成的最小单位,用来向计算机发出操作指令。,算术运算符,C+语言的算术运算符共有5种: +(加)(减)*(乘)/(除)%(求余)。 %运算的操作数必须为整数。 两个整数相除,结果
6、仍然是整数。例如5/3=1,-9/4=-2。 整型除法与实型除法是不同的。例如1/2的结果是0,而1.0/2.0的结果是0.5。,赋值运算符,变量=表达式 例如: a=8; /将8赋给变量a y=3*8+9/2;/将右边表达式的值赋给变量y 左值必须是变量,复合赋值运算符,在赋值运算符之前加上其它运算符,可以构成复合赋值运算符。 -= *= /= %= (与算术运算符组合) = &= = = (与位运算符组合),案例,x+=8等价于x=x+8 x*=y+5等价于x=x*(y+5) 表达式a+=a-=a*a,若a的初值为5,则该表达式的求解步骤是:先进行a-=a*a的运算,相当于a=a-a*a,
7、结果是-20,a的值也是-20;然后计算a+=-20,相当于a=a+(-20),结果是-40。因此整个表达式的值是-40,a的值也是-40。,自增自减运算符,自增运算符使变量的值增加1,而自减运算符则使变量的值减少1。 其操作数只能是变量。 +i和-i是前缀运算符,i+和i-是后缀运算符。以自增运算符为例,做前缀运算时,先将变量的值增1,然后再使用它的值;做后缀运算时,先使用该变量的值,再将它的值增1。,案例,int n=3,m; 执行语句m=n+;之后,m的值是3,n的值是4;而执行语句m=+n;之后,m的值是4,n的值也是4。 后缀运算存在计算上的延迟,即先取值,经过延迟之后再修改变量的值
8、。,强制类型转换运算符,(类型)(表达式) 使用强制类型转换运算符,可以把表达式的结果强行转换为一个指定的类型。 sizeof运算符用于计算某种类型的实体在内存中所占的字节数。例如sizeof(int)的值为4,sizeof(double)的值为8。如果a是int型变量,则sizeof(a)的值也是4。,关系运算符,C+语言提供了6个关系运算符,分别是: = =b+c;/先计算a*2,值为14;然后计算b+c,值为11;最后比较,表达式的值为true abc;/先计算ab,值为true;然后计算truec,即1c,表达式的值为false 2=2=2;/先计算2=2,值为true;然后计算tru
9、e=2,即1=2,表达式的值为false,逻辑运算符,C+语言提供了3个逻辑运算符:!、&和|,分别表示逻辑非、逻辑与和逻辑或运算,运算结果为逻辑值:true(真)或者false(假)。,案例,int a=2,b=1; !a; /a的值2先转换为true,运算结果为false a /a的值2先转换为true,b的值1也转换为true,运算结果为true,构造条件,灵活运用关系表达式和逻辑表达式,可以构建复杂的条件,解决工程实际问题。例如: 1.描述321数学常识的对应C+表达式为32&21。 2.描述字符变量c的值是字母的C+表达式为c=a&c=A&c=Z。 3.描述m能够被n整除的C+表达式
10、为m%n=0。,位运算符,& 按位与 按位取反 | 按位或 按位右移,按位与,运算规则:0,按位或,运算规则:0|0=0,0|1=1,1|0=1,1|1=1。 int a=59,b=166,c; c=a|b;,按位异或,运算规则:00=0,01=1,10=1,11=0。 int a=42,b=103,c; c=ab;,按位取反,运算规则:0=1,1=0。 int a=42,c; c=a;,按位左移,ab,其作用是将a的补码位全部左移b位,高位左移后丢弃,而右边低位补0。 左移n位实际上相当于乘以2的n次方。,按位右移,ab,其作用是将a的补码位全部右移b位,右移移出的二进制位全部丢弃,左边补b
11、个0或1。 右移n位实际上相当于被2的n次方整除。,条件运算符,表达式1?表达式2:表达式3 运算规则是,如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值。 例如:max=(ab)?a:b 整个表达式的值即max的值,它为a和b的最大值。,逗号运算符,表达式1 ,表达式2 , ,表达式n 逗号表达式的求解过程是:从左向右,依次计算。即先求表达式1的值,再求表达式2的值,最后求表达式n的值,整个表达式的值是表达式n的值。 例如a=(y=9,y+1),首先将9的值赋给y,然后计算y+1,将结果10赋给a。,数据类型转换,数据类型的转换可以归纳成3种转
12、换形式:自动转换、强制转换和赋值转换。 自动转换是在混合运算时,自动把低类型数据转换为高类型。 强制转换是用强制转换运算符,把数据强行转换为所需类型。 赋值转换是在赋值过程中,把赋值运算符(=)右边数据的类型自动转换为左值的类型。,类型转换规则,将整型转换为浮点型时,数值不变,但以浮点数形式存储到变量中。 将实型转换为整型时,舍弃实型数据的小数部分。 短整型(short)转换为长整型(long)时,高16位全补上符号位。 长整型数据转换为短整型,只保留低16位数据,高16位数据则被丢弃。 无符号数据转换为有符号类型,最高位由数值位变为符号位;有符号数据转换为无符号类型,则最高位由符号位变为数值
13、位。,C+语句,C+语句可以分为简单语句、复合语句和流程控制语句,语句以分号“;”结束。 简单语句包括表达式语句、函数调用语句和空语句。 表达式语句的一般形式为:表达式; 函数调用语句一般形式为:函数名(参数表);,复合语句,用一对花括号将多条逻辑上相关的语句组合在一起,在语法上相当于一条语句。 例如: t=x; x=y; y=t; ,2.3 输入与输出,C+语言采用输入输出流的方法解决程序的输入输出。C+的流(stream)是对输入输出的一种抽象,指的是计算机中的一系列字符(字节)从一个对象流动到另一个对象。C+语言用cout对象完成标准输出,cin对象完成标准输入。cout和cin是C+语
14、言预定义的输入输出流类的对象,在使用之前,需要在程序头部添加以下一条语句 #include ,cout,C+标准输出的格式是: cout表达式1表达式2表达式n; 是插入运算符,与cout对象相配合,而且可以连续使用。其作用是将某个数据插入到输出流中,最后显示在屏幕上。例如: cout”a=”a”,b=”bendl;,cin,C+标准输入的格式是: cin变量1变量2变量n; 是提取运算符,与cin对象相配合,而且可以连续使用。其作用是将某个数据从输入流中提取出来,赋给相应的变量。例如: cinab;,常用的I/O流操纵符,dec 十进制表示(默认方式) hex 十六进制表示 oct 八进制表
15、示 setfill(char) 设置填充字符 setprecision(int) 设置浮点数的精度 setw(int) 设置输出域宽 endl 换行,案例,例如输出浮点数2.71828,要求输出占6位,其中有4位有效数字,则输出语句为: coutsetw(6)setprecision(4)2.71828endl;,2.4 选择结构,选择结构使得程序具有了初步的智能,可以根据条件成立与否,决定从不同的分支中选择执行某一分支的操作。 本节介绍if语句和switch语句。,if语句,if-else结构是if语句的基本型,一般形式为: if(表达式) 语句1 else 语句2 执行流程:先计算表达式的
16、值,如果表达式的值为true,则执行语句1;表达式的值为false,则执行语句2。,登陆界面,#include int main() const int p=123; int m; coutm; if(m=p) cout“恭喜您,登陆成功!“endl; else cout“对不起,登陆失败!“endl; return(0); ,排序,#include #include int main() int a,b,t; coutab; if(ab) t=a; a=b; b=t; coutsetw(3)asetw(3)bendl; return(0); ,if语句的嵌套,if(表达式1) if(表达式1_1) 语句1_1 else 语句1_2 else if(表达式2_1) 语句2_1 els