C简单程序设计.pptx

上传人:莉*** 文档编号:73646196 上传时间:2023-02-21 格式:PPTX 页数:56 大小:607.32KB
返回 下载 相关 举报
C简单程序设计.pptx_第1页
第1页 / 共56页
C简单程序设计.pptx_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《C简单程序设计.pptx》由会员分享,可在线阅读,更多相关《C简单程序设计.pptx(56页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、12.1 程序的三种基本结构控制程序流程的三种基本方式:顺序控制选择(分支)控制循环控制 程序有三种基本结构:顺序结构选择结构循环结构 第1页/共56页2顺序结构顺序结构 语句A语句B入口出口顺序结构程序的组成:表达式语句表达式语句输入输出流输入输出流等等第2页/共56页3NoYes选择结构(或称分支结构)选择结构(或称分支结构)if语句语句 条件成立?语句A语句B入口出口流程图说明:流程图说明:进入该结构后,判断条件是否成立,成立则执行语句进入该结构后,判断条件是否成立,成立则执行语句A,否则执行语句否则执行语句B。条件条件通常是关系表达式或逻辑表达式。通常是关系表达式或逻辑表达式。第3页/

2、共56页4循环结构循环结构 循环结构:程序中有时需要反复地执行某些操作,这种结构的程序称为循环结构。循环语句:根据条件反复地执行某个语句。循环结构的控制方式(循环语句):for语句当型循环(while语句)直到型循环(do-while语句)第4页/共56页5当型循环的控制方式(当型循环的控制方式(while语句)语句)条件成立?语句YesNo入口出口流程图说明:当条件成立时,反复执行语句当条件成立时,反复执行语句部分部分,直到条件不成立退出循环,直到条件不成立退出循环,继续执行循环结构后面的语句。继续执行循环结构后面的语句。第5页/共56页6直到型循环的控制方式(直到型循环的控制方式(dowh

3、ile语句)语句)条件成立?语句YesNo入口出口流程图说明:先执行语句部分,先执行语句部分,再判断条件是否成立,再判断条件是否成立,若成立再执行,若成立再执行,反复进行,反复进行,直到条件不成立,直到条件不成立,退出循环退出循环后继续往下后继续往下执行后面的语句。执行后面的语句。第6页/共56页72.2 C+2.2 C+语句语句 说明语句:外部变量说明、函数原型说明、结构类 型说明、类的说明、模板说明等。表达式语句:表达式之后加上分号构成一个表达式 语句。控制语句:选择语句、循环语句和转移语句。空语句:只由一个分号构成的语句。复合语句:将一组语句序列用.括起来构成。函数调用和流对象调用语句:

4、在函数调用之后加一个“;”就成为函数调用语句。第7页/共56页82.3 2.3 选择结构选择结构 分支选择结构:使一些语句被执行,而另一些语句不执行使一些语句被执行,而另一些语句不执行 if 语句 switch语句 第8页/共56页9 if 语句语句if语句执行流程 表达式语句体非00形式:if(表达式)语句1;语句2;.注:语句体(复合语句)可以只有一条语句注:语句体(复合语句)可以只有一条语句第9页/共56页10#include void main()int a;couta;if(a0)a=a*a;cout”a=”a0)?第10页/共56页11#include void main()int

5、 a,b,t;cinab;if(ab)t=a;a=b;b=t;couta bendl;例题(排序问题):输入两个整数,按照从大到小的顺序输出。例题(排序问题):输入两个整数,按照从大到小的顺序输出。三个数排序?三个数排序?第11页/共56页12if语句形式形式2:2:if(表达式)语句体1 .else 语句体2 .语句3if语句执行流程 语句体1表达式语句体2非00语句3第12页/共56页13#include void main()int a,value;couta;if(a%2=0)value=a*a*a;else value=a*a;coutvalue=valueendl;例题2:输入一个

6、正整数。若该数为偶数,求立方值后输出;若为奇数,求平方值后输出。第第1次执行程序:次执行程序:输入一个正整数输入一个正整数:5 value=25 第第2次执行程序:次执行程序:输入一个正整数:输入一个正整数:4 value=64(a%2!=0)第13页/共56页14#include void main()int x=0,y=9;if(+x0)y+;if(x!=0)y+;else y-;coutx“y10)b=a+1;else if(a5)b=a+2;else if(a=0)b=a+3;else b=a+4;if(a10)if(a5&a=0&a=5)if(a0)第15页/共56页16#inclu

7、de void main()float score;coutscore;if(score100)cout=90)cout=80)cout=70)cout=60)cout及格n;else cout=0)if(b=0)couta/bendl;else couta*b=0)if(b=0)couta/bendl;elsecouta*b=0)相匹配 else 与 if(a=0)相匹配 有效作用范围?if语句的嵌套 当当ifif语句的某个语句部分中又出现另一个语句的某个语句部分中又出现另一个ifif语句时,语句时,称为称为ifif语句的嵌套。语句的嵌套。嵌套时嵌套时elseelse总是与离它最近的且尚未匹

8、配的总是与离它最近的且尚未匹配的ifif相匹配。相匹配。执行情况?第17页/共56页18例题例题4:4:求三个数中的最大数。#include void main()float a,b,c,amax;coutabc;amax=a;/amax赋初值,必要吗?if(bc)if(ba)amax=b;else if(ca)amax=c;coutmax=amax=2&y2)x+;y=x*x;coutx2)x+;y=x*x;coutxy;第19页/共56页20练习2-52-5:输入一个字符,判断是数字0-90-9,小写字母a-za-z,还是大写字母A-ZA-Z。第20页/共56页21 switch语句的基本

9、形式语句的基本形式switch(表达式)case 常量值:语句break;case 常量值:语句break;case 常量值:语句break;default:语句+1 break;说明:说明:每个每个case和和 default的次序,影响执行结果。的次序,影响执行结果。P37有误有误其中的其中的表达式表达式可以是任何形式表达式。可以是任何形式表达式。每个每个“常量值常量值i”必须是必须是常量常量,且每个常量值都不能相同。,且每个常量值都不能相同。常量的常量的 类型一般是整型、字符型或枚举型,类型一般是整型、字符型或枚举型,不是实型不是实型。第21页/共56页22switch语句执行流程No计

10、算表达式值常量1常量2常量n选default语句1语句2语句n语句n+1选break选break选break选break=YesYesNoNoNoYesYesYes第22页/共56页23例题5:分析程序运行结果。#include void main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case 1:a+;break;default:d=1;case 2:b+;break;case 3:c+;break;coutabcdendl;输入 结果为 输入 结果为 输入 结果为 1 执行程序:执行程序:第23页/共56页24例题例题5 5:#include vo

11、id main()int x,a,b,c,d;a=b=c=d=0;cinx;switch(x)case 1:a+;case 2:b+;case 3:c+;break;default:d=1;break;case 0 :;/空语句 coutabcdendl;输入 结果为 1 1 1 0输入 结果为 0 1 1 0输入 结果为 0 0 0 1输入 结果为 0 0 0 0 输入3 结果为 0 0 1 0执行程序:执行程序:第24页/共56页25 switch语句语句和 if 语句的转换条件switch(表达式)case 常量值:语句break;case 常量值:语句break;default:语句+

12、1 break;if(表达式常量值(表达式常量值1)语句语句1else if(表达式常量值表达式常量值2)语句语句2.elseif(表达式常量值表达式常量值n)语句语句n有限制第25页/共56页262.4 2.4 循环结构循环结构 在编写循环结构的程序时,要考虑的问题:在编写循环结构的程序时,要考虑的问题:有一个控制循环的变量或称计数器,它有初始值,在循环执行过程中不断地被修改。确定一个条件。当该条件成立(为真)时循环被执行;否则循环结束。该条件应使循环趋于结束,否则成为“死循环”。C+C+提供了提供了3 3种实现循环的语句:种实现循环的语句:while语句 dowhile语句 for语句第2

13、6页/共56页27 while语句 while(表达式)循环体 .形式:while语句属于当型循环,既当条件成立时执行循环。while语句是先判断,后执行,如果第一次判断时表 达式的值就不成立,则循环体一次也不执行。注意循环体用复合语句。说明:表达式?语句非00执行流程:执行流程:第27页/共56页28#include void main()int i(0),sum=0;while(i101)sum+=i;i+;/循环体 coutsum=sumendl;例题6:求自然数100的累加和。程序执行结果:sum5050While(i+100)sum+=i;int i(1),sum(1);while(

14、i+100)sum+=i;/循环体修改初始值i,可以写成以下形式:int i=0,sum=0;while(+i=100)sum+=i;/循环体或:第28页/共56页29 do-while语句 do 循环体while(表达式);形式:说明:do while语句属于直到型循环,直至表达式的值为时 结束循环。do while语句先执行循环体,然后再判断条件,因此,循环体至少执行一次。(退出循环)表达式?循环体非00执行流程:执行流程:第29页/共56页30例题7:输出 26个英文大写字母。#include void main()char ch;ch=A;do coutch;ch+;/字符的ASCII

15、代码值加1 while(ch=Z);coutendl;while(ch=Z)coutch;ch+;改写为改写为while语句形式:语句形式:第30页/共56页31用while循环编写的程序可以用do-while循环实现。int i(0),sum(0);do sum+=i+;while(i=100);为避免无限循环(死循环),在while和do-while循环体内或测试条件内应存在使循环趋于结束的语句。int i(0),sum(0);while(i101)sum+=i;i+;int i=5;do coutiendl;i=i-2;while(i!=0);int ok;while(ok=1)cout

16、ok;第31页/共56页32for 语句 e1、e2、e3为表达式。e1:赋值表达式,为循环中的变量赋初始值;e2:关系或逻辑表达式,作为继续循环的条件;e3:增、减量表达式,用于修改循环条件中的变量;for语句中的 e1、e2、e3均可省略,但“;”不能省略;for语句中循环体可以是复合语句。形式:for(e1;e2;e3)循环体 说明:计算e1判断e2?循环体计算e3非00执行流程:第32页/共56页33例题8:输出1到10各数的平方值,并求平方和。#include void main()int i,a,s=0;for(i=1;i=10;i+)a=i*i;s=s+a;couti aendl

17、;coutsum=sendl;1 12 43 94 165 256 367 498 649 8110 100 sum=385输出结果:输出结果:第33页/共56页34例题9:计算10!#include void main()for(int i=1,t=1;i=10;i+)t*=i;cout10!=tendl;for(int i=1;i=10;i+)t=1;t*=i;/结果?第34页/共56页35练习2-7:计算斐波那西数列。前两项0,1,下一项是前两项的和。0,1,1,2,3,5,8#include void main()int a=0,b=1,s;for(i=3;i=20;i+)s=a+b;

18、a=b;b=s;couts“;第35页/共56页36多重循环多重循环(循环的嵌套循环的嵌套)多重循环是在一个循环语句的循环体内又包含另一个循环语句。上述三种循环语句既可以自身嵌套,也可以互相嵌套。嵌套时要注意必须将一个完整的循环结构整体放在另一个循环体内。第36页/共56页37二重循环二重循环.for()while().三重循环三重循环.for().for().for().讨论:讨论:多重循环执行过程!多重循环执行过程!第37页/共56页38例题例题9:9:分析以下程序运行结果。#include#include void main()int i,j;for(i=1;i10;i+)j=0;whi

19、le(+j=10-i)coutsetw(4)i*j;coutendl;1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 3 6 9 12 15 18 21 4 8 12 16 20 24 5 10 15 20 25 6 12 18 24 7 14 21 8 16 9 程序运行结果:程序运行结果:for(j=1;j=10-i;j+)for(j=1;j=10;j+)内循环中不能再给内循环中不能再给 i 赋值赋值第38页/共56页392.5 2.5 跳转语句跳转语句 跳转语句是辅助性语句,不单独使用,一般与选择语句或循环语句结合使用,起到控制程序结构的作用。跳转语句包括:b

20、reak语句continue语句goto语句 第39页/共56页40 break语句 break;形式:用于switch语句用于循环语句用途:循环体执行过程中遇到break语句时,终止当前循环的执行,中途跳出循环,转去执行循环体外面的下一条语句。多重循环中使用break时,只能退出本层循环,不能退出上一层循环。功能:第40页/共56页41例题例题10:判断输入的某正整数是否为素数。#include void main()int m;do coutm;while(m=0);/重新输入 for(int i=2;im;i+)if(m%i=0)break;if(i=m)coutm是一个素数n;else

21、 coutm不是一个素数n;输入一个正整数输入一个正整数:431431是一个素数是一个素数 第第1次执行程序:次执行程序:第第2次执行程序:次执行程序:输入一个正整数输入一个正整数:6969不是一个素数不是一个素数 while(m=0)coutm;cinm;第41页/共56页42 continue语句 continue;形式:中断本次循环体的执行,立即执行下一次循环(继续本循环体的下一次循环)。用途:只用于循环语句中。功能:第42页/共56页43例例11:将100以内能被3整除的数输出,每行输出10个数。#include void main()int k=0;for(int i=1;i100;

22、i+)if(i%3!=0)continue;couti ;if(+k%10=0)coutendl;/控制每行输出10个数 coutendl;if(i%3=0)couti ;第43页/共56页44goto语句 goto 标号;形式:无条件地转去执行标号所指出的语句。用途:goto语句的使用被限制在一个函数内。注意:goto语句的使用会破坏程序的结构,可读性差。不提倡使用,最好不用。第44页/共56页45例题例题1212:求100以内偶数的和。#include int main()int s=2,i;for(i=3;i=100;)if(i%2)goto kk;s+=i;kk:i+;coutsum=

23、sendl;return 1;(i%2!=0)for(i=3;i=100;i+)if(i%2=0)s+=i;第45页/共56页46while 语句和语句和 for语句的转语句的转换换while(条件)for(e1;e3 )if(?)break;!条件条件未知(不确定)循环次数未知(不确定)循环次数while已知(确定)循环次数已知(确定)循环次数 forfor(e1;条件;e3 )第46页/共56页47计算 ,其中n3=10000#include void main()int m=0,i=1;while(i*i*i=1E4)m+=i*i*i;i+;for(i=1;i*i*i10000第47页/

24、共56页482.6 2.6 程序举例程序举例例12:分析以下switch语句执行后的输出结果。#include void main()int a=1,b=2,c=0,d=0;switch(a)case 1:switch(b)case 1:c+;break;case 2:d+;break;case 2:c+;d+;break;coutc=cendl;coutd=dendl;程序执行结果:c1d2 break;c0d1 第48页/共56页49例:计算1!+2!+3!+10!#include void main()int i,s=0,p=1;for(i=1;i=10;i+)p=p*i;s=s+p;c

25、outsendl;#include void main()int i,j,s=0,p;for(i=1;i=10;i+)p=1;for(j=1;j=i;j+)p=p*j;s=s+p;coutsendl;第49页/共56页50例13:利用公式 求的近似 值,直到 为止。输出 n 及 e 的值。#include void main()int n;double e,u;n=1;e=u=1.0;do u/=n;e+=u;n+;while(u 1.0e-7);coutn=n ;coute=eendl;程序执行结果:n12 2.71828第50页/共56页51例14:输出大写26个英文字母,每行打印6个字母

26、。#include#include void main()char letter;int count=0;cout大写英文字母表n;for(letter=A;letter=Z;letter+)coutsetw(5)letter;/每个字母占5列 count+;/计数器加1 if(count=6)/输出6个字母后换行 coutendl;count=0;(count%6=0)用用letter 代替代替count可以吗?可以吗?第51页/共56页52例15:编程输出以下图案 1 2 2 3 3 3 4 4 4 4 5 5 5 5 56 6 6 6 6 67 7 7 7 7 7 78 8 8 8 8

27、8 8 8 9 9 9 9 9 9 9 9 9#include void main()for(int i=1;i10;i+)for(int j=1;j=12-i;j+)/输出每行前的空格输出每行前的空格 cout ;for(j=1;j=i;j+)/输出各行值输出各行值 couti ;coutendl;/换行换行 12 23 3 34 4 4 45 5 5 5 56 6 6 6 6 67 7 7 7 7 7 78 8 8 8 8 8 8 89 9 9 9 9 9 9 9 9第52页/共56页53 第第2 2章小结章小结教学进程教学进程重点掌握:重点掌握:程序三种基本结构程序三种基本结构 C+C+

28、语句语句 选择结构及语句选择结构及语句(if(if、switch)switch)循环结构循环结构 循环语句循环语句(for(for、whilewhile、do-while)do-while)breakbreak、continuecontinue语句及使用语句及使用 多重循环多重循环 选择、循环程序的编写选择、循环程序的编写 第53页/共56页54(1)(1)练习练习2 2 第第1 1 题题(2)(2)练习练习2 2 第第2 2 题题(4)(4)(5)(5)(6)(6)教学进程教学进程课外复习及作课外复习及作业业教师自己填教师自己填第54页/共56页55(1)1)练习练习2 2 (2)(2)练习练习2 2(4)(4)(5)(5)(6)(6)教学进程教学进程上机练习上机练习题题教师自己填第55页/共56页56感谢您的观赏!第56页/共56页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com