第2单元顺序结构程序设计PPT课件_第1页
第2单元顺序结构程序设计PPT课件_第2页
第2单元顺序结构程序设计PPT课件_第3页
第2单元顺序结构程序设计PPT课件_第4页
第2单元顺序结构程序设计PPT课件_第5页
已阅读5页,还剩80页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 高等教育出版社高等教育出版社 第第 2 单元单元 顺序结构程序设计顺序结构程序设计信息学奥赛课课通(信息学奥赛课课通(C+C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 1 课课 cout 语句语句学习目标学习目标1. 理解理解 C+ 中的标准输出流。中的标准输出流。2. 掌握掌握 C+ 中中 cout 语句的使用。语句的使用。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)流(流(stream)在在 C+ 中,所有的数据输入、输出都是以中,所有的数据输入、输出都是以“流流(stream)”的形式。流是一个处于传输状态的字节的形式。流是

2、一个处于传输状态的字节序列,是字节在对象之间的序列,是字节在对象之间的“流动流动”。流的操作包括输入与输出。流的操作包括输入与输出。使用输入使用输入/输出流,必须加上以下头文件:输出流,必须加上以下头文件:#include。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)cout 语句是语句是 C+ 中实现输出功能的语句。中实现输出功能的语句。其格式为:其格式为:cout 项目项目1 项目项目2 项目项目n;如果项目是表达式,则输出表达式的值;如果项目加引如果项目是表达式,则输出表达式的值;如果项目加引号,则输出引号内的内容;如果项目是号,则输出引号内的内容;如果项目是

3、endl,则表示换行。,则表示换行。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读并上机调试以下程序,体会、阅读并上机调试以下程序,体会 cout 语句的使用。语句的使用。/p2-1-1#includeusing namespace std;int main() cout 2 + 4 endl; cout “ ABCD ” endl; int a = 10,b = 5; cout a + b endl; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、阅读并上机调试以下程序,观察程序运行的结果。阅读并上机调试以

4、下程序,观察程序运行的结果。/p2-1-2#includeusing namespace std;int main() cout *n; /n也表示换行也表示换行 cout *n; cout *n; cout *n; cout *n; cout *n; cout *n; cout *n; cout *n; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、已知梯形的上底长为已知梯形的上底长为15,下底长为,下底长为20,高为,高为12,编程,编程输出该梯形的面积。输出该梯形的面积。【问题分析问题分析】 根据梯形面积的计算公式:(上底根据梯形面积的计

5、算公式:(上底+下底)下底)*高高 / 2,直接,直接计算面积并输出。计算面积并输出。/p2-1-3#include using namespace std; int main() int a,b,h,s; a = 15; b = 20; h = 12; s = (a + b) * h / 2; cout s endl; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 2 2 课课 数据类型数据类型学习目标学习目标1. 熟知熟知 C+ 中的常用数据类型。中的常用数

6、据类型。2. 学会根据具体需求使用不同的数据类型。学会根据具体需求使用不同的数据类型。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)数据有数据类型、取值范围、运算类型三个要素。数据有数据类型、取值范围、运算类型三个要素。在在 C+ 程序中,使用的各种变量都应程序中,使用的各种变量都应“先声明,后使先声明,后使用用”。变量声明又会涉及数据类型、初始值和作用域等。变量声明又会涉及数据类型、初始值和作用域等。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)高等教育出版社高等教育出版社信

7、息学奥赛课课通(信息学奥赛课课通(C+)/p2-2-1#includeusing namespace std;int main() int a,b,c; double d,e; a = 5;b = 6; d = 2.53; c = a + b; e = c + d; cout a “ + ” b “ = ” c endl; cout c “ + ” d “ = ” e endl; return 0;例例1、阅读并上机调试以下程序,观察运行结果。、阅读并上机调试以下程序,观察运行结果。运行程序,输出:运行程序,输出:5+6 = 1111+2.53 = 13.53程序中定义了程序中定义了 a、b、

8、c 三个整型变三个整型变量和量和 d、e 两个实型变量,并进行了两个实型变量,并进行了赋初值和加法运算。需要注意的是,赋初值和加法运算。需要注意的是,整型数据和实型数据进行混合运算,整型数据和实型数据进行混合运算,得到的结果是实型数据。得到的结果是实型数据。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)说明说明 整数还有整数还有“无符号无符号”类型,其取值只会是正数和类型,其取值只会是正数和0,范,范围扩大一倍。例如围扩大一倍。例如unsigned int类型的取值范围为类型的取值范围为04294967295。 还可以通过还可以通过sizeof函数,输出各种数据类型的字

9、节数,函数,输出各种数据类型的字节数,例如:例如: cout sizeof(int) endl; 数据溢出:数据溢出:C+程序中出现这类错误时,编译和运行过程序中出现这类错误时,编译和运行过程中并不报错。所以,需要特别细心,注意范围检查。程中并不报错。所以,需要特别细心,注意范围检查。 高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-2-2#includeusing namespace std;int main() int a = 2147483647; a = a + 1; cout a= a endl; return 0;/运行程序,输出:运行程序,输出:a=

10、-2147483648。 例例2、阅读并上机调试以下程序,观察运行结果,体会阅读并上机调试以下程序,观察运行结果,体会int类类型的数据范围。型的数据范围。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-2-3#includeusing namespace std;int main() int b = 0, a = 100; char ch = A; b = a + ch; cout ch int(ch) b =b,¥,¥1234lotus_1_2,sum123_,_day,234NUM,#34,int例例1、找出符合找出符合C+规则的标识符。规则的标识符。【问题

11、分析】【问题分析】 符合符合C+规则的标识符有:规则的标识符有:sum,Day,school_name,lotus_1_2,sum123_,_day。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)(2) 变量的初始化变量的初始化变量在定义的同时,可以给它指定一个初始值,称为变变量在定义的同时,可以给它指定一个初始值,称为变量的初始化。量的初始化。(3) 变量的赋值变量的赋值在在 C+ 中,可以通过中,可以通过“赋值赋值”语句来修改变量的值。语句来修改变量的值。赋值语句的格式如下:赋值语句的格式如下:变量名变量名 = 值或者表达式值或者表达式 ;其中,其中,“=”称为称为

12、“赋值号赋值号”。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-3-2#includeusing namespace std;int main() int a; a = 3; cout a endl; a = 10; cout a endl; a = a * 5; cout a endl; return 0;例例2、阅读并上机调试以下程序,观察运行结果,体会变量、阅读并上机调试以下程序,观察运行结果,体会变量的含义。的含义。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥

13、赛课课通(C+)第第 4 课课 字符与字符串字符与字符串学习目标学习目标1. 体会字符型变量的使用。体会字符型变量的使用。2. 体会字符串的含义和简单使用。体会字符串的含义和简单使用。3. 理解转义字符的含义和使用。理解转义字符的含义和使用。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)存放单个字符的变量,称为字符变量。字符变量的值是存放单个字符的变量,称为字符变量。字符变量的值是用一对单引号括起来的一个字符,如用一对单引号括起来的一个字符,如a 和和?等。等。存放一串有若干字符的变量,称为字符串变量。字符串存放一串有若干字符的变量,称为字符串变量。字符串变量的值是用一

14、对双引号括起来的字符序列,如变量的值是用一对双引号括起来的字符序列,如“Good Morning! ” 和和“a” 等。如果双引号内什么都没有,称为空等。如果双引号内什么都没有,称为空字符串,与双引号内有一个空格的字符串是不一样的。字符串,与双引号内有一个空格的字符串是不一样的。字符和字符串字符和字符串高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1. 字符变量字符变量定义字符变量的格式如下:定义字符变量的格式如下:char 标识符标识符1, 标识符标识符2, 标识符标识符n;字符变量在内存中占用字符变量在内存中占用 1 个字节。在个字节。在 C+ 中,字符数据中,字符

15、数据在内存中实际存储的是其在内存中实际存储的是其 ASCII 码值。码值。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读并上机调试以下程序,观察运行结果,体会字符、阅读并上机调试以下程序,观察运行结果,体会字符变量的输入与输出。变量的输入与输出。/p2-4-1#includeusing namespace std;int main() char c1,c2,c3; c1 = 48; c2 = 65; c3 = 97; cout c1 “ “ c2 “ “ c3 “ “ ; cout int(c1) “ “ int(c2) “ “ int(c3) endl;

16、return 0;/运行程序,输出运行程序,输出“0 A a 48 65 97”。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、阅读并上机调试以下程序,观察运行结果,体会字符阅读并上机调试以下程序,观察运行结果,体会字符变量的运算。变量的运算。/p2-4-2#includeusing namespace std;int main() char c1,c2,c3; c1 = a; c2 = Z; c1 = c1 - 32; c2 = c2 + 32; c3 = 0 + 9; cout c1 “ ” c2 “ ” c3 endl; return 0;/运行程序,输出

17、:运行程序,输出:A z 9。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)C+ 中定义了一些字符前加中定义了一些字符前加“”的特殊字符,称为转义的特殊字符,称为转义字符。字符。字符输入函数:字符输入函数:getchar(输入字符)(输入字符);字符输出函数:字符输出函数:putchar(输出字符)。(输出字符)。2. 转义字符转义字符高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、阅读并上机调试以下程序,观察运行结果,体会、阅读并上机调试以下程序,观察运行结果,体会getchar和和putchar的使用方式。的使用方式。/p2-4-3#i

18、ncludeusing namespace std;int main() char a = A ; putchar(a); / 输出一个输出一个A putchar( ); / 输出输出 putchar( n ); / 输出回车换行输出回车换行 char c; c = getchar(); putchar(c + 1); /输入一个字符输入一个字符, 输出它在输出它在ASCII 码表中的后一个字符码表中的后一个字符 return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在在 C+ 中,可以用字符数组中,可以用字符数组 char s存放字符串,存放字符串,也可以用

19、也可以用 STL 中的中的 string 类型。每一个字符串的结尾都要类型。每一个字符串的结尾都要加一个加一个“字符串结束标志字符串结束标志”,而且是系统自动添加上去的,而且是系统自动添加上去的,C+规定以转义字符规定以转义字符“0”作为字符串结束标志作为字符串结束标志。字符串输入、输出函数字符串输入、输出函数 gets() 和和 puts()。3. 字符串变量字符串变量高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例4、阅读并上机调试以下程序,观察运行结果,体会阅读并上机调试以下程序,观察运行结果,体会puts()和和gets()的使用方式。的使用方式。 /p2-4

20、-4#includeusing namespace std;char s20;/定义一个长度为定义一个长度为20的字符数组的字符数组sint main() gets(s); puts(s); return 0;/运行程序,若输入:运行程序,若输入:abcd 123,则输出:,则输出:abcd 123。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 5 课课 算术运算符算术运算符学习目标学习目标1. 熟知算术运算符。熟知算术运算符。2. 熟练掌握算术表达式的书写。熟练掌握算术表达式的

21、书写。3. 了解一些常用的数学函数。了解一些常用的数学函数。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)算术运算符算术运算符高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)表达式及其运算规则表达式及其运算规则 将常量、变量、算术运算符、括号以及函数连接在一将常量、变量、算术运算符、括号以及函数连接在一起的计算式,称为算术表达式。起的计算式,称为算术表达式。 当一个算术表达式中包含多个运算符时,遵循的计算当一个算术表达式中包含多个运算符时,遵循的计算顺序(运算优先级)为:先算顺序(运算优先级)为:先算“括号括号”里的,再算里的,再算“乘法乘法、除法

22、、模、除法、模”,最后算,最后算“加法、减法加法、减法”,同一级别的按照,同一级别的按照类型从左往右依次计算。类型从左往右依次计算。 表达式的计算结果称为表达式的值。表达式的计算结果称为表达式的值。 高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、输入长方形的长和宽(整型数据),计算并输出长方、输入长方形的长和宽(整型数据),计算并输出长方形的周长和面积。例如,输入形的周长和面积。例如,输入“8 3”,输出,输出“22 24”。/p2-5-1#includeusing namespace std;int main() int a,b,c,s; cin a b; /

23、 从键盘输入两个整数给从键盘输入两个整数给 a 和和 b c = 2 * (a + b); s = a * b; cout c ” ” s endl; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、求任意一个三位数的三个数字之和。例如,输入求任意一个三位数的三个数字之和。例如,输入897,输出输出24。 /p2-5-2#includeusing namespace std;int main() int n,a,b,c; cin n; /从键盘输入一个整数给从键盘输入一个整数给n a = n % 10; b = n / 10 % 10; c =

24、n / 100; cout a + b + c endl; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、在一个直角坐标系中存在两个点。输入两个点的坐标在一个直角坐标系中存在两个点。输入两个点的坐标(整数),输出它们连成的线段长度。(整数),输出它们连成的线段长度。例如,输入例如,输入39 22 11 5,输出,输出32.7567。 /p2-5-3#include#include/使用使用数学函数前必须添加数学函数前必须添加cmath或者或者math.h using name

25、space std;int main() double x1,y1,x2,y2; cin x1 y1 x2 y2; cout 项目项目1 项目项目2 项目项目n;在使用在使用 cin 语句从键盘输入多个数据项的时候,一语句从键盘输入多个数据项的时候,一定要注意三个一致:数据个数一致、输入顺序一致、数定要注意三个一致:数据个数一致、输入顺序一致、数据类型一致。据类型一致。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读下列程序,体会、阅读下列程序,体会 cin 语句的使用。语句的使用。/p2-6-1#includeusing namespace std;int

26、main() int a,b,c; cin a b c; char d,e; cin d e; float f; cin f; cout ” a= ” a ” b= ” b ” c= ” c endl; cout ” d= ” d ” e= ” e ” f= ” f endl; return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、编程从键盘输入一个小写字母,将它转换成大写字母输编程从键盘输入一个小写字母,将它转换成大写字母输出出。/p2-6-2#includeusing namespace std;int main() char ch1, ch2;

27、cin ch1; ch2 = ch1 - 32; cout ch2 endl; /cout ch1 - 32 endl;可以直接输出可以直接输出ch2的的ASCII码码 return 0; 高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、从键盘输入一个梯形的上底、下底和高(整型数据),输从键盘输入一个梯形的上底、下底和高(整型数据),输出该梯形的面积(保留小数点后出该梯形的面积(保留小数点后2位)。位)。例如,输入:例如,输入:5 8 7,则输出:,则输出:45.50。 /p2-6-3#include#includeusing namespace std;int

28、main() int a,b,h; float area; cin a b h; area = (a + b) * h / 2.0; cout setprecision(2) fixed area endl; return 0; 高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 7 课课 赋值语句赋值语句学习目标学习目标掌握赋值语句的使用方法。掌握赋值语句的使用方法。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在在 C+ 中,可以通过中,可以通过“赋值语句赋

29、值语句”来修改变量的值。赋来修改变量的值。赋值语句的格式如下:值语句的格式如下:变量名变量名 = 值或者表达式值或者表达式 ;其中,其中,“=”称为称为“赋值号赋值号”。需要注意的是:需要注意的是:a=b 与与 a=b 是完全不同的意义,是完全不同的意义,“=”是关系运算符。是关系运算符。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-7-1#includeusing namespace std;int main() int a,b,s,d; bool l,e; a = 3; b = 3; s = a + b; d = a / b; l = a b; e = a

30、= b; cout s d l e endl; return 0;例例1、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,输出:运行程序,输出:6 1 0 1。计算时,计算时,“a b”和和“a = b”的的结果分别是结果分别是bool类型的值类型的值0和和1。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在在 C+ 中,赋值语句非常灵活,有多种复合写法。中,赋值语句非常灵活,有多种复合写法。(1) 算术复合:算术复合:a=a+x;写成写成a+=x; 还有还有-=、*=、/=,%=(2) 赋值复合:赋值复合:C+支持在一个表达式里出现连续的赋支持

31、在一个表达式里出现连续的赋值号,即一次给几个变量赋同一个值。此时计算顺序是从值号,即一次给几个变量赋同一个值。此时计算顺序是从右到左,有括号存在的,先计算括号内的表达式。右到左,有括号存在的,先计算括号内的表达式。(3) 逗号表达式:逗号表达式:在在C+中,允许用逗号连接几个表达中,允许用逗号连接几个表达式,构成一个更大的表达式,称为式,构成一个更大的表达式,称为“逗号表达式逗号表达式”。 其格式如下:表达式其格式如下:表达式1,表达式,表达式2,表达式表达式n; 各个表达式的计算顺序是从左往右,最终整个表达式的各个表达式的计算顺序是从左往右,最终整个表达式的值是值是“表达式表达式n”的值。的

32、值。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-7-2#includeusing namespace std;int a,b;int main() cin a b; a += b; b -= 1; cout a “ ” b endl; a /= 2; b *= b; cout a “ ” b endl; a %= b; b %= 10; cout a “ ” b endl; return 0;例例2、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,输入:运行程序,输入:100 56输出:输出:156 5578 302578 5高等教育出

33、版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-7-3#includeusing namespace std;int a,b;int main()a = b = 5;cout a b endl;(a = b) = 10;cout a b endl;(a += b) = 20;cout a b endl;return 0;例例3、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,输出:运行程序,输出:5 510 520 5高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-7-4#includeusing namespace s

34、td;int main() int j = 10,k = 1000; int i = (k + 1, j + 100, 999 + j); cout i endl; return 0;例例4、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,输出:运行程序,输出:1009。 给给i赋值的语句中赋值号右边的括号是必须要加的,因为逗号运算符赋值的语句中赋值号右边的括号是必须要加的,因为逗号运算符的优先级低于赋值号的优先级。的优先级低于赋值号的优先级。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课

35、通(信息学奥赛课课通(C+)第第 8 课课 复合运算符复合运算符学习目标学习目标理解并学会使用理解并学会使用 C+ 中的复合运算符。中的复合运算符。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在在 C+ 中,复合运算符实际上是赋值语句的一种缩中,复合运算符实际上是赋值语句的一种缩写形式,使得修改变量值的操作更加简洁。写形式,使得修改变量值的操作更加简洁。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1. 自加运算符和自减运算符自加运算符和自减运算符自加运算符自加运算符“+”有两种写法,即有两种写法,即 i+ 或者或者 +i。在单独。在单独使用时

36、,其作用相同,都相当于使用时,其作用相同,都相当于i=i+1。自减运算符。自减运算符“-”也有也有两种写法,即两种写法,即 i- 或者或者 -i。例如:例如:int a,b = 5; b+; /b的值变为的值变为6 +b; /b的值变为的值变为7 a = b+; /a的值为的值为7,b的值变为的值变为8 a = +b; /b的值变为的值变为9,a的值也为的值也为9高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-8-1#includeusing namespace std;int main() int i = 3, j; j = +i; cout j i endl;

37、 j = i+; cout j i endl; return 0;例例1、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,运行程序,输出:输出:4 44 5高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)2. 复合算术赋值复合算术赋值复合算术赋值,如复合算术赋值,如 +=、-=、*=、/=、%=。复合算术赋值运算的优。复合算术赋值运算的优点是程序更精炼,编译效率高。点是程序更精炼,编译效率高。 int a,b; a = b = 5; /a的值为的值为5,b的值为的值为5 a += b; /a的值为的值为10,相当于,相当于a=a+b a -= b;

38、 /a的值为的值为5,相当于,相当于a=a-b a *= b; /a的值为的值为25,相当于,相当于a=a*b a /= b; /a的值为的值为5,相当于,相当于a=a/b a %= b; /a的值为的值为0,相当于,相当于a=a%b 需要注意的是,需要注意的是,“a *= b + 8”等价于等价于“a = a * (b + 8)”。复合算术。复合算术赋值运算的优点是程序更精炼、编译效率高。赋值运算的优点是程序更精炼、编译效率高。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-8-3#includeusing namespace std;int main() in

39、t a = 10,b,c,t = 0,s = 100; a += 20; c = b *= b = a; (s /= c) %= a; t += (a + b) * c; cout a b c s t endl; return 0;例例3、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。运行程序,输出:运行程序,输出:30 900 900 0 837000高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 9 课课 运算规则运算规则学习目标学习目标1. 掌握掌握 C+ 的

40、运算规则(优先级和结合性)。的运算规则(优先级和结合性)。2. 掌握数据类型的自动转换和强制转换。掌握数据类型的自动转换和强制转换。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在在 C+ 中,整型数据和实型数据可以混合运算,字符型中,整型数据和实型数据可以混合运算,字符型数据可以和整型数据通用。但是,在具体计算时,编译系统数据可以和整型数据通用。但是,在具体计算时,编译系统会自动将不同类型的数据转换成同一类型,再进行运算,称会自动将不同类型的数据转换成同一类型,再进行运算,称为数据类型的为数据类型的“自动转换自动转换”。高等教育出版社高等教育出版社信息学奥赛课课通(信

41、息学奥赛课课通(C+) C+语言还规定了运算符的优先级和结合性。在表达式语言还规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。如果一个运算对象两侧的运算符的优先级别相同,后加减。如果一个运算对象两侧的运算符的优先级别相同,如如a-b+c,则按规定的则按规定的“结合方向结合方向”处理。算术运算符的结合处理。算术运算符的结合方向为方向为“先左后右先左后右”,又称之为,又称之为“左结合性左结合性”。有些运算符。有些运算符的结合方向为的结合方向为“自右向左自右向左”,即右结合性,例如赋值运算符,即右结

42、合性,例如赋值运算符。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)在赋值运算中,赋值号两边数据的类型不同时,赋值号在赋值运算中,赋值号两边数据的类型不同时,赋值号右边量或者表达式值的类型将自动转换为左边量的类型。右边量或者表达式值的类型将自动转换为左边量的类型。在在 C+ 中,除了中,除了“自动转换自动转换”外,还可以外,还可以“强制类型强制类型转换转换”。格式为:。格式为:( 类型名类型名 )( 表达式表达式 )( 类型名类型名 ) 变量变量例如:例如:(double)a 将将a强制转换成强制转换

43、成double型型 (int)(x + y) 将将x+y的值强制转换为的值强制转换为int型型 (float)(4 % 3) 将将4%3的值强制转换成的值强制转换成float型型高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-9-1#includeusing namespace std;int main() float pi = 3.14159; int s,r = 4; s = r * r * pi; cout s endl; return 0;例例1、阅读并上机调试程序,观察运行结果,体会赋值语句中阅读并上机调试程序,观察运行结果,体会赋值语句中的自动类型转换

44、。的自动类型转换。运行程序,输出:运行程序,输出:50高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p2-9-2#include using namespace std;int main() int x; float a = 15.75; double b = 323.01; cout (int) a endl; cout (int) (b + 0.5) % 10 endl; cout (int) b % (int) a + 1 m,则,则 m自动取自动取 n 值,即保值,即保证证 n 个字符正常输出。个字符正常输出。8) “%m.nf”,输出浮点数,占,输出浮点数,

45、占 m 列,其中有列,其中有 n 位小数位小数,如果数值长度小于,如果数值长度小于 m,则左补空格。,则左补空格。9) “%-m.nf”,同上,只是使输出的数值向左端靠齐,同上,只是使输出的数值向左端靠齐,右端补空格。右端补空格。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读并上机调试程序,体会、阅读并上机调试程序,体会 printf 函数的使用。函数的使用。/p2-10-1#includeusing namespace std;int main() printf( “ %d ” ,1); / 输出输出 1 printf( “ %o ” ,8); / 输出输

46、出 10 printf( “ %x ” ,17); / 输出输出 11 printf( “ %u ” ,12); / 输出输出 12 printf( “ %c ” ,49); / 输出输出 1 printf( “ %s ” , ” 1ab11 ” ); / 输出输出 1ab11 printf( “ %f ” ,0.14); / 输出输出 0.140000 printf( “ %e ” ,0.1); / 输出输出 1.000000e-001 printf( “ %lld ” ,21473648); / 输出输出 21473648高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+

47、)2. scanf 函数函数scanf 函数的格式为:函数的格式为:scanf(格式控制字符串(格式控制字符串 , 地址表列)地址表列);scanf 的作用是输入指定形式的数据。其中,地址列表可以的作用是输入指定形式的数据。其中,地址列表可以是变量的地址,也可以是字符串的首地址。是变量的地址,也可以是字符串的首地址。 例如:例如:int a,b; scanf(“%d,%d”,&a,&b); 就表示先在内存中各开辟就表示先在内存中各开辟4个字节空间给个字节空间给a和和b,当遇到,当遇到scanf语句时,就把键盘上输入的语句时,就把键盘上输入的2个数依次存入个数依次存入a、b所在的空所在的空间(及地址中)。间(及地址中)。“&a”就表示取就表示取a变量变量的的地址,地址,“&”称为称为取地址符。简而言之,就是先找地址后放值。取地址符。简而言之,就是先找地址后放值。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)2. scanf 函数函数 使用使用scanf函数时,需要注意以下几个问题:函数时,需要注意以下几个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论