大学C++程序设计教程-杨国兴及例题-课件PPT
收藏
资源目录
压缩包内文档预览:(预览前20页/共35页)
编号:21836152
类型:共享资源
大小:1.57MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
C++
程序设计
教程
杨国兴
例题
课件
ppt
- 资源描述:
-
大学C++程序设计教程-杨国兴及例题-课件PPT,大学,C++,程序设计,教程,杨国兴,例题,课件,ppt
- 内容简介:
-
第3章 C+控制语句,3.1 C+语句概述 3.2 选择结构 3.3 循环结构,3.1 C+语句概述,1. 控制语句 控制语句主要完成分支结构程序和循环结构程序的控制。 C+主要包括以下9个控制语句: ifelse语句 分支语句 switch语句 多分支语句 for语句 循环语句 while语句 循环语句 dowhile语句 循环语句 continue语句 结束本次循环语句 break语句 结束循环或结束switch语句 goto语句 转向语句 return语句 从函数返回语句,第3章 C+控制语句,3.1 C+语句概述,2. 函数调用语句 C+有大量的系统函数,程序员也可以自己定义函数,对这些函数的调用可以作为一条语句。 3. 表达式语句 由一个表达式构成一个语句,即在表达式后添加一个分号,如赋值表达式语句等。 4. 空语句 空语句只有一个分号。即: ; 因此空语句什么也不做。 除了上面的简单语句外,可以将一组简单语句用大括号括起来,称之为复合语句。,第3章 C+控制语句,3.2 选择结构,选择结构也称分支结构,就是在程序运行过程中,根据具体条件执行不同的程序段。 3.2.1 if语句 1. if语句的基本结构: if(表达式) 语句组1; else 语句组2; ,注意:表达式必须用“( )”括起来 若语句组中只有一条简单的语句,则大括号“”可以省略。,第3章 C+控制语句,例3.1 求两个数中较大的值和较小的值,#include void main() int a,b,max,min; a=10; b=20; if(ab) max = a; min = b; else max = b; min = a; cout “max = “ max endl; cout “min = “ min endl; ,第3章 C+控制语句,程序运行结果为: max = 20 min = 10,例3.2 输入一个成绩,判断是否需要补考,如果需要打印出来,#include void main() int score; cout score; if(score 60) cout “不及格,需要补考!“ endl; ,第3章 C+控制语句,程序运行时,若输入的成绩大于或等于60,则没有任何输出。,仅需要一个分支,因为不需要补考时不用进行处理,因此可以省略else语句部分,3.2 选择结构,3.2.1 if语句(续一) 2. if语句的嵌套:在 if 语句的“语句组1”或“语句组2”中又包含有 if 语句的情况。 if ( ) if ( ) 语句 1 else 语句 2 else if ( ) 语句 3 else 语句 4 if语句嵌套时,else子句总是与在它前面、距它最近、且尚未匹配的if配对。为明确匹配关系,避免匹配错误,建议将内嵌的if语句一律用“ ”括起来。,第3章 C+控制语句,例3.3 输入三个数a、b、c,输出其中最大的数,#include void main() int a, b, c, max; cout a b c; if (a b) if(a c) max = a; else max = c; else if(bc) max = b; else max = c; cout “max = “ max endl; ,第3章 C+控制语句,程序运行结果为: 请输入3个整数,以空格分隔:45 64 32 max = 64,3.2 选择结构,3.2.1 if语句(续二) 3. 用if语句实现多分支: if(表达式1) 语句组1; else if(表达式2) 语句组2; else if(表达式n) 语句组n; else 语句组n+1; ,第3章 C+控制语句,例3.4 从键盘上输入一个成绩,如果大于等于90,输出“优”,如果大于等于80,小于90,输出“良”,如果大于等于70,小于80,输出“中”,如果大于等于60,小于70,输出“及格”,如果小于60,输出“不及格”。,#include void main() int s; cout s; if (s = 90) cout = 80) ,第3章 C+控制语句,else if( (s = 70) ,3.2 选择结构,3.2.2 switch语句 1. switch语句的一般结构: switch(表达式) case 常量1:语句组1; break; case 常量2:语句组2; break; case 常量n:语句组n; break; default:语句组n+1; break; ,第3章 C+控制语句,注意:表达式只能是整型、字符型或枚举型,3.2 选择结构,3.2.2 switch语句(续) switch语句流程图:,第3章 C+控制语句,例3.5 用switch语句实现例3.4的功能,#include void main() int s, i; cout s; i = s/10; switch (i) case 9: case 10: cout “优” endl; break; case 8: cout “良” endl; break; case 7: cout “中” endl; break; case 6: cout “及格” endl; break; default: cout “不及格” endl; break; ,第3章 C+控制语句,3.2 选择结构,3.2.3 程序举例 例3.6 有一函数: -1 x 0 编写程序,输入一个x的值,求出y的值并输出。,第3章 C+控制语句,例3.6 源程序,#include void main() int x,y; cout x; if(x0) y = -1; else if(x=0) y = 0; else y = 1; cout “y= “ y endl; ,第3章 C+控制语句,3.2 选择结构,3.2.3 程序举例(续一) 例3.7 求一元二次方程ax2+bx+c=0的解。 一元二次方程ax2+bx+c=0,根据3个系数的关系,有以下几种情况: (1)a=0 ,不是二次方程。 (2)b 2-4ac =0,有两个相等的实根。 (3)b 2-4ac 0,有两个不相等的实根。 (4)b 2-4ac 0,有两个共轭复根。,第3章 C+控制语句,例3.7 源程序,#include “iostream.h“ #include “math.h“ void main() double a,b,c,disc,x1,x2,p,q; cin a b c; if(fabs(a) 1e-6) cout “不是一元二次方程“ endl; else disc=b*b-4*a*c; if (fabs(disc)=1e-6) /有两个相等的实根 cout “x1=x2=“ -b/(2*a) endl; else ,第3章 C+控制语句,fabs和sqrt是库函数,分别用于求绝对值和平方根。使用之前要包含 math.h 头文件,实数在计算机中存储会有误差,因此判断实数是否=0时,通常是通过判断该数的绝对值是否小于一个很小的数(如10-6 ),如果小于这个数就认为它等于0。,例3.7 源程序(续),if (disc1e-6) / 有两个不相等的实根 x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); cout “x1= “ x1 endl; cout “x2= “ x2 endl; else / 有两个共轭复根 p=-b/(2*a); q=sqrt(fabs(disc)/(2*a); cout “x1= “ p “+“ q “i“ endl; cout “x2= “ p “-“ q “i“ endl; ,第3章 C+控制语句,3.2 选择结构,3.2.3 程序举例(续二) 例3.8 编一个程序计算指定年月有几天,年月由键盘输入。 分析:每年的1,3,5,7,8,10,12月份有31天,4,6,9,11月份有30天,如果不是闰年,2月份有28天,闰年的2月有29天。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。,第3章 C+控制语句,例3.8 源程序,#include void main() int year,month,days; cout year month; switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break;,第3章 C+控制语句,例3.8 源程序(续),case 2: if( ( (year%4 = 0) ,第3章 C+控制语句,3.3 循环结构,当同一段程序要执行多次时,就要用到循环结构。 3.3.1 while语句 while语句的一般格式: while(循环条件) 循环体语句组; ,第3章 C+控制语句,例3.9 求1100的累计和,#include void main() int i=1; int sum=0; while(i=100) sum += i; i+; cout “sum= “ sum endl; ,第3章 C+控制语句,3.3 循环结构,3.3.2 do-while语句 do-while语句的一般格式: do 循环体语句组; while(循环条件);,第3章 C+控制语句,例3.10 用do-while语句求1100的累计和,#include void main() int i=1; int sum=0; do sum += i; i+; while(i=100); cout “sum= “ sum endl; ,第3章 C+控制语句,3.3 循环结构,3.3.3 for语句 for语句的一般格式: for (表达式1; 表达式2; 表达式3) 循环体语句组; 表达式1通常用于为循环变量赋初值; 表达式2通常为循环条件; 表达式3通常为循环变量增值或减值,以使循环趋于结束。 三个表达式都可以省略,但分号不能省。如果表达式2省略,则循环条件总为真。,第3章 C+控制语句,例3.11 用for语句求1100的累计和,#include void main() int i; int sum=0; for( i=1; i=100; i+ ) sum += i; cout “sum= “ sum endl; ,第3章 C+控制语句,3.3 循环结构,3.3.4 continue、break与goto语句 1. continue语句:当程序运行到continue语句时,循环体余下的语句不再执行,立即试图进入下次循环。 对于for循环,遇到continue语句时,跳过循环体其余语句,转向循环语句中的表达式3的计算;对于while和do-while循环,跳过循环体其余语句,转向循环条件表达式的计算。 2. break语句:当程序运行到break语句时,立即结束循环。转向循环语句下面的语句继续执行。 3. goto语句:无条件转向语句。goto语句易使程序流程混乱。 一般形式: goto 语句标号; 语句标号也要符合标识符的命名规则,语句标号处要在标号后面加“:”,当执行goto语句时,会无条件转向标号所在语句执行。,第3章 C+控制语句,例3.12 求1100不能被3整除的整数之和,#include void main() int i; int sum=0; for(i=1; i=100; i+) if(i%3=0) continue; sum += i; cout “sum= “ sum endl; ,第3章 C+控制语句,如果i能被3整除,则执行continue语句,立即结束本次循环,执行i+语句,接下来判断i=100是否满足; 如果i不能被3整除,则不执行continue语句,将i加到变量sum中,例3.13 判断某个整数是否为素数,#include void main() int i,n; cout n; for(i=2; i=n-1; i+) if(n%i=0) break; if(i=n) cout n “ 是素数!“ endl; else cout n “ 不是素数!“ endl; ,第3章 C+控制语句,如果n能被某个i整除(n不是素数),则会执行break语句立即结束循环,此时的i小于n,例 用goto语句实现1100的累计和,#include void main() int i=1; int sum=0; loop: if(i=100) sum += i; i+; goto loop; cout “sum= “ sum endl; ,第3章 C+控制语句,遇到该语句,会自动转移到loop标号处,即从 if(i=100) 语句开始继续往下执行,例3.14 找出50到100之间的所有素数并输出,#include #include void main() int i,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。