c面向对象程序设计第三章

收藏

编号:169439399    类型:共享资源    大小:878.02KB    格式:PPT    上传时间:2022-11-15
10
积分
关 键 词:
面向 对象 程序设计 第三
资源描述:
2022-11-15北京科技大学计算机系-1-C+大学基础教程大学基础教程第第3 3章章 C+C+控制语句控制语句北京科技大学计算机系北京科技大学计算机系2022-11-15北京科技大学计算机系-2-用计算机解决实际问题,首先要分析问题,设计合适的算法,然后编程实现算法。2022-11-15北京科技大学计算机系-3-第第3 3章章 过程化语句过程化语句3.3.0 0 算法的基本控制结构算法的基本控制结构:算法算法,基本控制结构基本控制结构,基本控制语句基本控制语句3.3.1 1 3.2 3.2 if选择语句选择语句 语句格式语句格式,IFIF嵌套嵌套,考点说明考点说明3.3 3.3 switch选择语句选择语句 语句格式和执行顺序语句格式和执行顺序,例子例子,考点说明考点说明3.4 3.4 循环语句循环语句 使用场合使用场合,基本概念基本概念,格式格式 转向语句转向语句3.5 3.5 循环嵌套循环嵌套 国际象棋国际象棋,例例2 23.6 3.6 应用举例应用举例 素数素数,按位翻转按位翻转,小球落地小球落地(不要求不要求),小牛家族小牛家族,最大公约数最大公约数,阶乘阶乘 课堂练习课堂练习总结总结和和作业作业2022-11-15北京科技大学计算机系-4-算法什么是算法什么是算法n为解决某一应用问题而采用的为解决某一应用问题而采用的解题步骤解题步骤算法算法 1 1、计算机执行的操作、计算机执行的操作 2 2、这些操作的顺序、这些操作的顺序2022-11-15北京科技大学计算机系-5-算法算法的描述方式算法的描述方式 n用用自然语言自然语言描述算法描述算法 n用用流程图流程图描述算法描述算法 n用用N-SN-S结构图结构图描述算法描述算法 2022-11-15北京科技大学计算机系-6-用自然语言描述算法第一步:输入第一步:输入x x和和y y的值的值第二步:比较第二步:比较x x和和y y的值,如果的值,如果x x大于大于y y,则输出则输出x x的值,否则输出的值,否则输出y y的值。的值。2022-11-15北京科技大学计算机系-7-用流程图描述算法用流程图描述算法用流程图描述算法NYz=yz=xx y?开始开始输入输入x和和y结束结束输出输出z输入输入/输出框输出框2022-11-15北京科技大学计算机系-8-3.1 3.1 算法的基本控制结构算法的基本控制结构流程图 开始/结束 执行 判断 联系2022-11-15北京科技大学计算机系-9-用N-S结构图描述算法输入输入x、y的值的值xy T F z=x z=y输出输出z的值的值用用N-S结构图描述的算法结构图描述的算法2022-11-15北京科技大学计算机系-10-3.1 3.1 算法的基本控制结构算法的基本控制结构程序的三种基本控制结构程序的三种基本控制结构 小结小结 (1 1)顺序结构顺序结构 (2 2)选择结构选择结构 (3 3)循环结构循环结构2022-11-15北京科技大学计算机系-11-顺序结构流程图顺序结构流程图 A BA,B可以是一条语句,也可以是一条复合语句,C+中默认的语句执行次序为:顺序执行。2022-11-15北京科技大学计算机系-12-分支结构流程图分支结构流程图pABp A2022-11-15北京科技大学计算机系-13-循环结构流程图循环结构流程图AP1AP2不成立成立2022-11-15北京科技大学计算机系-14-总结以上三种结构有以下的共同特点:总结以上三种结构有以下的共同特点:)只有一个入口。只有一个入口。)只有一个出口。只有一个出口。)结构内的每一个部分都有机会被执行到结构内的每一个部分都有机会被执行到)结构内不存在死循环。结构内不存在死循环。2022-11-15北京科技大学计算机系-15-3.1 3.1 算法的基本控制结构算法的基本控制结构流程控制语句流程控制语句 选择语句选择语句:if.else、switch 选择结构选择结构 循环语句循环语句:while、for、do.while 循环结构循环结构 转向语句转向语句:break、continue2022-11-15北京科技大学计算机系-16-图3-1 顺序程序的一般算法2022-11-15北京科技大学计算机系-17-【例例3-2】数据交换。从键盘输入数据交换。从键盘输入x、y的值,的值,输出交换以后的值。输出交换以后的值。2022-11-15北京科技大学计算机系-18-1.1.简单分支(无简单分支(无elseelse分支)分支)if (if (表达式表达式)语句语句例:例:if (xy)if (xy)coutcoutx;b)b)c=c=a;aa;a=b;bb;b=c;=c;2.2.双分支双分支 if (if (表达式表达式)语句语句1 else 1 else 语句语句2 2例:例:if (a=b)if (a=b)coutcouta;a;else else coutcoutb;b;3.3.多分支多分支 if (if (表达式表达式1)1)语句语句1 1 else if (else if (表达式表达式2)2)语句语句2 2 else if (else if (表达式表达式3)3)语句语句3 3 else else 语句语句 n n1条内嵌语句表达式是逻辑表达式例子:闰年例子:闰年2022-11-15北京科技大学计算机系-19-例子 任意输入一个任意输入一个4 4位整数的年份,判断位整数的年份,判断该年是否是闰年?该年是否是闰年?闰年的条件:闰年的条件:能够被能够被4 4整除,但不能被整除,但不能被100100整除的年份整除的年份 能够被能够被4 4整除,同时也能被整除,同时也能被400400整除的年份整除的年份 是指年份能被是指年份能被4 4整除的那些年,但不整除的那些年,但不包括能被包括能被100100整除而不能被整除而不能被400400整除的年整除的年if(year%4=0&year%100!=0)|(year%400=0)if(year%4=0)&!(year%100=0)&(year%400!=0)2022-11-15北京科技大学计算机系-20-#include using namespace std;void main()int year;cinyear;if(year%4=0&year%100!=0)|(year%400=0);cout“闰年endl;else cout“不是闰年endl;2022-11-15北京科技大学计算机系-21-2022-11-15北京科技大学计算机系-22-例子:输出学生的成绩#include using namespace std;void main()int x;cinx;if(x=90)cout“优秀优秀”=80)cout“良好良好”=60)cout“合格合格”endl;else cout“不及格不及格”endl;2022-11-15北京科技大学计算机系-23-3.2 3.2 if选择语句选择语句4、if 语句的嵌套if(表达式1)if(表达式2)语句1 else 语句2else if(表达式3)语句3 else 语句42022-11-15北京科技大学计算机系-24-2022-11-15北京科技大学计算机系-25-例子:输出a,b,c中最大的数#include using namespace std;void main()int a,b,c;cinabc;if(ab)if(bc)coutcendl;else coutbendl;else if(ac)coutcendl;else coutaendl;cout(ab?(bc?c:b):(ab)+b)c=a;a=c=a;a=b;bb;b=c;=c;c=3;a=2;b=3;c=3;a=2;b=3;c=3;a=2;b=2;2022-11-15北京科技大学计算机系-27-2.2.条件表达式是逻辑值,但可以使用任何类型的条件表达式是逻辑值,但可以使用任何类型的表达式,结果非表达式,结果非0 0为真,结果为真,结果0 0为假。为假。思考执行下面语句后,变量思考执行下面语句后,变量b b的值是多少?的值是多少?a=10;b=30;a=10;b=30;if (a=0)b=15;else b=20;if (a=0)b=15;else b=20;if (a=1)b=15;else b=20;if (a=1)b=15;else b=20;if (a=1)b=15;else b=20;if (a=1)b=15;else b=20;注意:注意:赋值表达式赋值表达式 a=1与关系表达式与关系表达式 a=1 的的区别。区别。表达式的值为表达式的值为0 0时语句的执行情况。时语句的执行情况。2022-11-15北京科技大学计算机系-28-3.2 3.2 if选择语句选择语句3 注意:二义性(出现嵌套)int x=-1;if(x0)if(x50)cout“x is 50”endl;else cout“x is=0”endl;if和和else的对应关系,的对应关系,else总是与离它总是与离它最近的最近的if匹配。匹配。2022-11-15北京科技大学计算机系-29-说明:说明:C+C+规定,规定,在在ifif嵌套时嵌套时,elseelse总是与最总是与最近的近的ifif配对配对egeg.if(b1)if(b2)x=1;else x=2;.if(b1)if(b2)x=1;else x=2;if(b1)if(b2)x=1;else x=2;if(b1)if(b2)x=1;else x=2;if(b1)if(b2)x=1;else x=2;if(b1)if(b2)x=1;else x=2;如果内嵌如果内嵌的的ifif是简单分支,没有是简单分支,没有elseelse子句子句(即(即ifif和和elseelse的数目不一样),必须用的数目不一样),必须用 将将其括其括起起2022-11-15北京科技大学计算机系-30-例如:ifif(c=100)(c=50)(c=50)coutcout 50=c=100n;50=cb)if(ab)/1 1if(ac)if(ac)/2 2if(ad)flag=1;/if(ad)flag=1;/3 3else flag=2;/else flag=2;/4 4else flag=3;else flag=3;/5 5匹配规则匹配规则:在在中,中,elseelse总是与总是与上面的上面的、离它最近的离它最近的、在同一复合语在同一复合语句中还没有配对的句中还没有配对的ifif配对。配对。2022-11-15北京科技大学计算机系-32-等价于:if if(ab)(ab)if if(ac)(ac)ifif (ad)flag=1;(ad)flag=1;elseelse flag=2;flag=2;elseelse flag=3;flag=3;2022-11-15北京科技大学计算机系-33-一般形式一般形式switch (switch (表达式表达式)case case 常量表达式常量表达式 1 1:语句:语句1 1 case case 常量表达式常量表达式 2 2:语句:语句2 2 case case 常量表达式常量表达式 n n:语句语句n n default:default:语句语句n+1n+1 l执行顺序执行顺序以以casecase中的常量表达式值为入口标号,由此开始顺序中的常量表达式值为入口标号,由此开始顺序执行。因此,每个独立的执行。因此,每个独立的casecase分支最后应该加分支最后应该加breakbreak语句,跳出整个语句,跳出整个switchswitch语句。语句。每个常量表达式的值每个常量表达式的值不能相同。不能相同。可以是多个语句,但不可以是多个语句,但不必用必用 。可以是整型、字符型、枚举型可以是整型、字符型、枚举型2022-11-15北京科技大学计算机系-34-2022-11-15北京科技大学计算机系-35-例子:输出学生的成绩 int x;cinx;switch(x/10)case 10:case 9:cout“优秀”endl;break;case 8:cout“良好”endl;break;case 7:case 6:cout“合格”endl;break;default:cout“不及格”k;k;switch(k)switch(k)default:v4+;default:v4+;case 1:v1+;case 1:v1+;case 2:v3+;case 2:v3+;case 3:v2+;case 3:v2+;v1=1,v2=1,v3=1,v4=12022-11-15北京科技大学计算机系-38-提出问题:提出问题:C+C+语言:语言:循环语句循环语句2022-11-15北京科技大学计算机系-39-#include#include using namespace std;void main()coutsetfill(*)setw(2)n setw(3)n setw(4)n setw(5)n setw(6)n setw(7)n setw(8)n;*2022-11-15北京科技大学计算机系-40-#include#include using namespace std;void main()int i=2;coutsetfill(*);while()coutsetw()n;*循环变量循环变量循环体循环体循环控制循环控制条件条件i=8i i+;2022-11-15北京科技大学计算机系-41-3.4 循环语句循环语句主要包括主要包括3 3个部分:个部分:1 1、循环控制条件:循环控制条件:判断循环操作是否进行的条件;判断循环操作是否进行的条件;2 2、循环体:循环体:重复进行的操作;重复进行的操作;3 3、循环控制变量:循环控制变量:记录循环体执行的次数,或控制循环的结束记录循环体执行的次数,或控制循环的结束条件。条件。2022-11-15北京科技大学计算机系-42-3.4 循环语句循环语句三种基本语法三种基本语法1、while 语句语句 格式和顺序格式和顺序,例子例子2、dowhile 语句语句格式和顺序格式和顺序,对比对比,例子例子3、for 语句语句 格式和顺序格式和顺序,例子例子,说明说明三种语句的应用三种语句的应用区别区别2022-11-15北京科技大学计算机系-43-3.4 循环语句循环语句while循环语句循环语句while(表达式)表达式)循环体语句;循环体语句;可以是复合语句,其中必须可以是复合语句,其中必须含有改变条件表达式值的语含有改变条件表达式值的语句。句。2022-11-15北京科技大学计算机系-44-例例1:1:编程循环输出编程循环输出1-9这这9个数字?个数字?#include using namespace std;void main()int i=1;while()cout“循环结束循环结束”endl;运行结果运行结果:123456789循环结束i=9coutiendl;i+;2022-11-15北京科技大学计算机系-45-例例2:2:编程计算编程计算1+1+3+5+3+5+.+99.+99的值的值#include using namespace std;void main()int sum=0,i=1;while()coutsumendl;2500sum+=i;i+=2;i=992022-11-15北京科技大学计算机系-46-注意:如果如果whilewhile的的(表达式表达式)值为值为0 0,则循环体一次也不,则循环体一次也不执行执行 (例如当例如当i i的初值的初值=100100)。在循环体中必须有使循环趋向结束的操作,否则循在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(环将无限进行(死循环死循环)。)。在循环体中,语句的先后位置必须符合逻辑,否则在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。会影响运算结果。while(i=99)i+=2;sum=sum+i;2022-11-15北京科技大学计算机系-47-其他的while 语句形式while(while(0 0).).n由于表达式恒等于由于表达式恒等于0 0,所以循环体永远也不,所以循环体永远也不会执行,是一个逻辑会执行,是一个逻辑错误的语句错误的语句2022-11-15北京科技大学计算机系-48-例例3 3:打印可视字符:打印可视字符#includeusing namespace std;void main()unsigned char ch=32;while(ch128)cout(int)chtcht;ch+;2022-11-15北京科技大学计算机系-49-例例4 4:编程计算:编程计算 的值的值#include using namespace std;void main()int k=1,sum=0,n;cout0):;cinn;while()if(n0)coutsum/nendl;else coutn不能不能=0endl;k=nsum=sum+k*k;k+;2022-11-15北京科技大学计算机系-50-3.4 循环语句循环语句do.while循环语句循环语句 do 循环体语句;循环体语句;while(表达式表达式);可以是复合语句,其中必须可以是复合语句,其中必须含有改变条件表达式值的语含有改变条件表达式值的语句。句。2022-11-15北京科技大学计算机系-51-执行顺序执行顺序先执行循环体语句,后判断条件。先执行循环体语句,后判断条件。表达式为表达式为 true 时,继续执行循环体时,继续执行循环体与与while 语句的比较:语句的比较:do-while语句至少执行循环体一次;语句至少执行循环体一次;While语句有可能一次也不执行循环体语句有可能一次也不执行循环体2022-11-15北京科技大学计算机系-52-对比下列程序:程序程序1 1:#include#include void main()void main()intint i,sum(0);i,sum(0);cincini;i;while(i=10)while(i=10)sum+=i;sum+=i;i+;i+;coutcoutsum=sumsum=sumendlendl;程序程序2 2:#include#include void main()void main()intint i,sum(0);i,sum(0);cincini;i;do do sum+=i;sum+=i;i+;i+;while(i=10)while(i=10);coutcoutsum=sumsum=sumendlendl;2022-11-15北京科技大学计算机系-53-#include#include using namespace std;void main()int i=2;coutsetfill(*);while(i=8)coutsetw(i)n;i+;*do while();i=8coutsetw(i)n;i+;2022-11-15北京科技大学计算机系-54-例子:编程计算例子:编程计算 的值的值#include using namespace std;void main()int k=1,sum=0,n;cout0):;cinn;while(k0)coutsum/nendl;else coutn不能不能=0endl;do sum=sum+k*k;k+;while(k=n);2022-11-15北京科技大学计算机系-55-3.4 循环语句循环语句for循环语句循环语句 循环结构循环结构 1 1、表达式、表达式1 1 循环变量初始化循环变量初始化;2 2、表达式、表达式2 2 循环控制条件;循环控制条件;3 3、表达式、表达式3 3 循环变量的变化循环变量的变化;for(表达式表达式1;表达式表达式2;表达式表达式3)循环体;循环体;2022-11-15北京科技大学计算机系-56-例1:编程循环输出1-9这9个数字?#include using namespace std;void main()for(int i=1;i10;i+)coutiendl;cout“循环结束循环结束”endl;运行结果:123456789循环结束2022-11-15北京科技大学计算机系-57-例2:编程计算1+2+3+.+10的值#include using namespce std;void main()int sum=0;for(int i=1;i=10;i+)sum+=i;coutsumendl;运行结果:552022-11-15北京科技大学计算机系-58-#include#include using namespace std;void main()coutsetfill(*);*例3for(int i=2;i=8;i+)coutsetw(i)n;2022-11-15北京科技大学计算机系-59-1 1,forfor语句中的表达式可以部分或全部省略,但两个语句中的表达式可以部分或全部省略,但两个“;”不可省略。省略表达式不可省略。省略表达式1 1时,此时应在时,此时应在forfor语句语句之前给循环变量赋初值。如果省略表达式之前给循环变量赋初值。如果省略表达式2 2,即不判断,即不判断循环条件,循环无终止地进行下去。省略表达式循环条件,循环无终止地进行下去。省略表达式3 3时,时,此时程序设计者应另外设法保证循环能正常结束。此时程序设计者应另外设法保证循环能正常结束。2 2,forfor后一对圆括号中的表达式可以是任意有效的后一对圆括号中的表达式可以是任意有效的C+C+语语言表达式。例如:言表达式。例如:forfor(sum=0sum=0,i=1i=1;i=100i=100;sum=sum+isum=sum+i,i+i+)2022-11-15北京科技大学计算机系-60-省略for语句的表达式 表达式表达式1 1、2 2、3 3全省略,全省略,即:即:for(;)for(;)就等同于:就等同于:while(while(1)1),会无限循环(会无限循环(死循环死循环)注意:在省略某个表达式时,应在适当位置进行循注意:在省略某个表达式时,应在适当位置进行循环控制的必要操作,以保证循环的正确执行环控制的必要操作,以保证循环的正确执行2022-11-15北京科技大学计算机系-61-例如:i=1 i=1;for(;i=100;i+)sum+=i for(;i=100;i+)sum+=i;for(i=1;i+)for(i=1;i=100;)for(;)2022-11-15北京科技大学计算机系-62-例4:判断输出结果?#include using namespace std;void main()for(int i=0,j=10,k=0;ij;i+,j-)k+=i*j;coutkendl;分析:i j k0 10 01 9 92 8 253 7 464 6 705 5 跳出2022-11-15北京科技大学计算机系-63-3.4 循环语句循环语句1、for:最适合循环次数固定,循环规律非常明显程序。最适合循环次数固定,循环规律非常明显程序。2、while:使用最多最频繁的循环结构,具有普适性。使用最多最频繁的循环结构,具有普适性。3、do_while:最适合至少循环一次的循环结构。最适合至少循环一次的循环结构。2022-11-15北京科技大学计算机系-64-3.4.4 转向语句转向语句1 1、break语句语句 可以用在可以用在switchswitch和循环结构,用和循环结构,用在循环退出本层循环在循环退出本层循环2 2、continue语句语句 只能用在循环结构中,表示退只能用在循环结构中,表示退出本次循环出本次循环2022-11-15北京科技大学计算机系-65-3.4.4 转向语句转向语句break用途:用途:常用在常用在while、do-while、for和和switch语句语句中,用来跳出循环或中,用来跳出循环或switch语句语句。2022-11-15北京科技大学计算机系-66-后续语句后续语句语句语句后续语句后续语句语句语句5.5.2 循环中break的应用后续语句后续语句2022-11-15北京科技大学计算机系-67-例如:intint x,n=0,s=0;x,n=0,s=0;while(n10)while(nx;x;if(x0)break;if(x0)break;s+=x;n+;s+=x;n+;2022-11-15北京科技大学计算机系-68-例例1:1:判断输出结果?判断输出结果?#include using namespace std;void main()int sum=0;for(int i=1;i10;i+)if(i%3=0)break;sum+=i;coutsumendl;分析分析i sum1 12 33 跳出跳出2022-11-15北京科技大学计算机系-69-3.4.4 转向语句转向语句continue用途用途 用于循环语句中,结束本次循环,进行下用于循环语句中,结束本次循环,进行下一次循环;即跳过循环体中尚未执行的部分。一次循环;即跳过循环体中尚未执行的部分。2022-11-15北京科技大学计算机系-70-后续语句后续语句语句语句后续语句后续语句语句语句后续语句后续语句2022-11-15北京科技大学计算机系-71-例如:intint x,n=0,s=0;x,n=0,s=0;while(n10)while(nx;x;i f (x 0)i f (x 0)continue;continue;s+=x;n+;s+=x;n+;2022-11-15北京科技大学计算机系-72-例1:判断输出结果?#include using namespace std;void main()int sum=0;for(int i=1;i10;i+)if(i%3=0)continue;sum+=i;coutsumendl;分析分析i sum1 12 33 34 75 126 127 198 279 2710 跳出跳出2022-11-15北京科技大学计算机系-73-3.5 3.5 循环嵌套循环嵌套编程输出国际象棋棋盘编程输出国际象棋棋盘#include using namespace std;void main()for(int i=0;i8;i+)for(int j=0;j8;j+)cout;else cout ;coutn;0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 if(i+j)%2=0)2022-11-15北京科技大学计算机系-74-3.3.5 循环嵌套【例【例3-15】打印由数字组成的如下所示的金字塔图案。打印由数字组成的如下所示的金字塔图案。1 222 33333 4444444 555555555 66666666666 7777777777777 888888888888888 99999999999999999分析:打印图案一般可由多重循环实现,外循环用来控分析:打印图案一般可由多重循环实现,外循环用来控制打印的行数,内循环控制每行的空格数和字符个数。制打印的行数,内循环控制每行的空格数和字符个数。实现打印上金字塔图案的程序如下。实现打印上金字塔图案的程序如下。2022-11-15北京科技大学计算机系-75-注意:#include#include using namespace std;using namespace std;intint main()main()char c=48;char c=48;intint i,k,j;i,k,j;for(ifor(i=1;i+)/=1;i+)/外循环控制打印行数外循环控制打印行数 for(kfor(k=1;k+)/=1;k+)/每行起始打印位置每行起始打印位置 coutcout ;for(j=1;j+)/for(j=1;j+)/内循环控制打印个数内循环控制打印个数 coutcout(char)(c+ichar)(c+i);/);/打印内容数字字符打印内容数字字符19 19 coutcout n;n;/换行换行 return 0;return 0;i=9k=10-ij=2*i-12022-11-15北京科技大学计算机系-76-注意:whilewhile、do-whiledo-while、forfor循环语句可以并列,也循环语句可以并列,也可以相互嵌套,但可以相互嵌套,但要层次清楚,不能出现交叉。要层次清楚,不能出现交叉。多重循环程序执行时,外层循环每执行一次,多重循环程序执行时,外层循环每执行一次,内层循环都需要循环执行多次。内层循环都需要循环执行多次。例如:例如:2022-11-15北京科技大学计算机系-77-3.6 3.6 应用举例应用举例1 1任意输入一个整数,判断是否是素数?任意输入一个整数,判断是否是素数?问题:什么是素数?问题:什么是素数?2022-11-15北京科技大学计算机系-78-#include using namespace std;void main()int n,i;cinn;for(i=2;in;i+)if(n%i=0)break;if(in)coutn不是素数!不是素数!n;elsecoutn是素数是素数n;2022-11-15北京科技大学计算机系-79-改进:输出2-100之间的素数#include#include using namespace std;void main()for(int k=2;k100;k+)int n=sqrt(k);for(int i=2;in)coutkt;2022-11-15北京科技大学计算机系-80-3.6 3.6 应用举例应用举例2 2题目 任意输入一个整数,按位翻转输出。例如输入124,输出421。2022-11-15北京科技大学计算机系-81-#include using namespace std;void main()int i,n,result=0;coutn;cout按位翻转的结果为:按位翻转的结果为:;while(n!=0)i=n%10;result=result*10+i;n/=10;coutresultendl;2022-11-15北京科技大学计算机系-82-do-while语句的简单应用【例例3-93-9】用辗转相除法求用辗转相除法求m m和和n n的最大公约数。的最大公约数。2022-11-15北京科技大学计算机系-83-算法和程序:#include#include using namespace std;using namespace std;intint main()main()int m,n,r;int m,n,r;cin mn;cin mn;do do r=m%n;r=m%n;m=n;m=n;n=r;n=r;while(r!=0);while(r!=0);cout cout 最大公约数是:最大公约数是:m m n;n;return 0;return 0;2022-11-15北京科技大学计算机系-84-3.6 3.6 应用举例应用举例3 3题目 一球从100米高度落下,每次落地后反弹回原高度的一半,再落下。编程求解它在第n次落地时,共经过多少米?2022-11-15北京科技大学计算机系-85-#include using namespace std;void main()int n=10;double height=100;double sum=height;for(int i=1;in;i+)sum+=height;height/=2;coutsumendl;2022-11-15北京科技大学计算机系-86-3.6 3.6 应用举例应用举例4 4题目题目 若一头小母牛,从出生起第四个年头开始若一头小母牛,从出生起第四个年头开始每年开始生一头小母牛,按此规律,第每年开始生一头小母牛,按此规律,第n n年时年时有多少头母牛?有多少头母牛?f(1)=1;f(2)=1;f(3)=1;f(n)=f(n-1)+f(n-3);2022-11-15北京科技大学计算机系-87-#include using namespace std;void main()int n;long a=1,b=1,c=1,temp;cout n;for(int i=4;i=n;i+)temp=a+c;a=b;b=c;c=temp;cout c endl;2022-11-15北京科技大学计算机系-88-for语句的简单应用【例例3-13 3-13】求】求n!n!,即计算即计算p=1p=12 23 3n n的值。的值。思路:求阶乘与求累加的运算处理过程类似,只要思路:求阶乘与求累加的运算处理过程类似,只要将将“”变为变为“”。设置:设置:,初值为,初值为1,终值为,终值为n(n是循环控制终是循环控制终值,需要从键盘输入)值,需要从键盘输入),每次循环令,每次循环令p=p*i2022-11-15北京科技大学计算机系-89-程序:#include#include using namespace std;using namespace std;intint main()main()intint i,n,pi,n,p=1;=1;coutcout n;n;for(i=1;i=n;i+)for(i=1;i=n;i+)p=p p=p*i;i;coutcout n !=p n;n !=p abmn;则下列输入数据的方式中正确的是(则下列输入数据的方式中正确的是()。)。A10,20,X,Y B1020 XYC10 20 X Y D10、20、X、Y C用用cin输入时,空格和回车键均可作为输入字符之间的输入时,空格和回车键均可作为输入字符之间的分隔符,逗号不能作为分隔符。字符型变量只能容纳分隔符,逗号不能作为分隔符。字符型变量只能容纳一个字符。一个字符。2022-11-15北京科技大学计算机系-93-课堂练习课堂练习选择题选择题以下不正确的语句是(以下不正确的语句是()。Aif(xy););Bif(x=y)&(x!=0)x+=y;Cif(x!=y)cinx;else ciny;Dif(xy)x+;y+;Bif语句后面的表达式必须放在括号内语句后面的表达式必须放在括号内“()()”。在。在if和和else后面用花括号后面用花括号“”括起来的多个语句成为了一个复合语句。括起来的多个语句成为了一个复合语句。2022-11-15北京科技大学计算机系-94-课堂练习课堂练习下面程序的输出结果是(下面程序的输出结果是()。)。#includevoid main()()int a=6,b=6;if(a5)a-=1;b+=1;elsea+=1;b-=1;cout”a=”aendl;cout”b=”b;D在在ifelse语句的中间应为单条语句语句的中间应为单条语句或复合语句,不能为多条语句。或复合语句,不能为多条语句。A5 Ba=5 Ca=5 D编译时出错 7 b=7 b=62022-11-15北京科技大学计算机系-95-课堂练习课堂练习以下不正确的是以下不正确的是 ()。)。A语句语句for(i=0;i+)表示无限循环)表示无限循环 Bfor(;)表示无限循环(;)表示无限循环Cfor()也表示无限循环()也表示无限循环 Dwhile(1)表示无限循环)表示无限循环Cfor循环语句中的表达式可以省略,但分号不可省略。循环语句中的表达式可以省略,但分号不可省略。2022-11-15北京科技大学计算机系-96-课堂练习课堂练习下面循环体的执行次数为下面循环体的执行次数为 ()。)。#includevoid main()()int a,b;for(a=0,b=5;a=b+1;a+=2,b-)couta=b.分析分析a b0 52 44 36 22022-11-15北京科技大学计算机系-97-课堂练习课堂练习有以下程序段:有以下程序段:intint n=0;n=0;whilewhile(n=1n=1)n+;n+;whilewhile循环执行次数是循环执行次数是_ _ _ _。无限次无限次下面程序运行结束后,下面程序运行结束后,k k的值为的值为_ _ _ _。#include#include void mainvoid main()()intint i,j,ki,j,k;forfor(i=0,j=10;i=i=0,j=10;i=j;i+,jj;i+,j-)k=k=i+ji+j;coutcoutk;k;102022-11-15北京科技大学计算机系-98-课堂练习课堂练习有以下程序段:有以下程序段:intint n=0;n=0;whilewhile(n=1n=1)n+;n+;whilewhile循环执行次数是循环执行次数是_ _ _ _。无限次无限次下面程序运行结束后,下面程序运行结束后,k k的值为的值为_ _ _ _。#include#include void mainvoid main()()intint i,j,ki,j,k;forfor(i=0,j=10;i=i=0,j=10;i=j;i+,jj;i+,j-)k=k=i+ji+j;countk;countk;102022-11-15北京科技大学计算机系-99-课堂练习课堂练习下面的程序存在着语法错误,请指出并予以修改下面的程序存在着语法错误,请指出并予以修改 。#include#include void mainvoid main()()float float x,yx,y;/1;/1 if if(x0 x0);/2;/2 x=x=x+yx+y;/3;/3 coutcoutxxendlendl;/4;/4 else else coutcout-x;/5-x;/5 选择结构语句的语法要求,条件表达式放在选择结构语句的语法要求,条件表达式放在括号内,后面不加逗号。括号内,后面不加逗号。if 语句后面有多于语句后面有多于一个语句时要加大括号一个语句时要加大括号“”,成为复合语句。,成为复合语句。错错2022-11-15北京科技大学计算机系-100-第七周实验第七周实验补充实验:补充实验:编写一个程序根据输入的三角形的三编写一个程序根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型。的面积和三角形类型。实验:实验:实验实验3 3 P62 14(P62 14(评分系统评分系统)
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:c面向对象程序设计第三章
链接地址:https://www.zhuangpeitu.com/article/169439399.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!