C语言b程序b设计ppt课件.ppt

上传人:飞****2 文档编号:82400667 上传时间:2023-03-25 格式:PPT 页数:45 大小:1.62MB
返回 下载 相关 举报
C语言b程序b设计ppt课件.ppt_第1页
第1页 / 共45页
C语言b程序b设计ppt课件.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

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

1、3 3 流程控制语句流程控制语句流程控制语句流程控制语句 理工系理工系理工系理工系 王楠王楠王楠王楠3/20/20231C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确学习目标学习目标熟练掌握分支结构if语句和switch语句的定义格式、功能和执行过程熟练掌握循环结构for、while和do while语句的定义格式、功能和执行过程熟练掌握跳转语句break、continue、goto和return语句的定义格式、功能和执行过程会编写出符合结构化要求的C语言程序3/20/20232C语言程序设计-3在整堂课的教学中,

2、刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3.1 顺序结构3.2 条件结构3.3 循环结构退出3/20/20233C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3.1 顺序结构顺序结构顺序结构程序顺序结构程序就是按书写顺序执行的语句构成的程序段。语句语句1语句语句23/20/20234C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确数据输入语句数据输入语句 ch=getchar();scan

3、f(格式控制,输入项地址表);数据输出语句数据输出语句putchar(ch);printf(格式控制,输出项表);赋值语句赋值语句变量变量=表达式表达式;空语句空语句;复合语句(分程序)复合语句(分程序)内部数据说明内部数据说明;执行语句;执行语句;3/20/20235C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.1复合语句举例。#includevoidmain()inta=10;printf(a=%dn,a);inta=20;printf(a=%dn,a);printf(a=%dn,a);a=10a=20a

4、=10返 回3/20/20236C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3.2 分支结构(条件结构)分支结构(条件结构)1、基本、基本if语句(单分支结构)语句(单分支结构)2、if-else语句(双分支结构)语句(双分支结构)3、if嵌套语句(分支嵌套的一般形式)嵌套语句(分支嵌套的一般形式)4、if-else-if语句语句(分支嵌套的特殊形式分支嵌套的特殊形式)5、switch-case语句语句(分支开关结构分支开关结构)6、goto语句(无条件分支结构)语句(无条件分支结构)返 回3/20/20237C

5、语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确1、基本、基本if语句(单分支结构)语句(单分支结构)if(表达式表达式)语句语句注:表达式可是任意表达式,为“非0”则执行语句。语句语句表达式表达式0非非03/20/20238C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3/20/20239C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确2、if-else语句(双

6、分支结构)语句(双分支结构)if(表达式)表达式)语句语句1 else 语句语句2语句语句1语句语句2表达式表达式非非003/20/202310C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.3输入一个整数,判断奇偶。#includevoidmain()intn;printf(“Inputanumbern”);scanf(“%d”,&n);if(n%2=0)printf(“Thenumberisevenn”);elseprintf(“Thenumberisoddn”);Inputanumber100Thenum

7、berisevenInputanumber25Thenumberisodd3/20/202311C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.4求整数a的平方值。#includevoidmain()inta;printf(EnteranintegerA:n);scanf(%d,&a);if(a!=0)a=a*a;printf(a*a=%dn,a);elseprintf(a*a=0n);返 回EnteranintegerA:5a*a=253/20/202312C语言程序设计-3在整堂课的教学中,刘教师总是让学生

8、带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例if(n0)if(ab)c=a;elsec=b;3、if嵌套语句(分支嵌套的一般形式)嵌套语句(分支嵌套的一般形式)if后和else后的语句可再包含if语句。注:else总是与前面最近的并且没有与其他else匹配的if相匹配。例if(n0)if(ab)c=a;elsec=b;3/20/202313C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.5 求一个点所在的象限。#include void main()float x,y;print

9、f(“Input the coordinate of a point n”);printf(“x=”);scanf(“%f”,&x);printf(“y=”);scanf(“%f”,&y);if(x0)if(y0)printf(“The point is in 1st quadrant.n”);else printf(“The point is in 4th quadrant.n”);else if(y0)printf(“The point is in 2nd quadrant.n”);else printf(“The point is in 3rd quadrant.n”);Input th

10、e coordinate of a point x=5 y=3 The point is in 1st quadrant.Input the coordinate of a point x=-2 y=-7 The point is in 3rd quadrant.返 回3/20/202314C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确4、if-else-if语句(分支嵌套的特殊形式)语句(分支嵌套的特殊形式)if(表达式表达式1)语句语句1 else if(表达式(表达式2)语句语句2 else if(表达式表达

11、式n)语句语句n else 语句语句n+1 表达式1假(0)语句2真(非0)语句1表达式2假(0)表达式n假(0)语句n+1语句n真(非0)真(非0)3/20/202315C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.6 求解符号函数。#includevoidmain()intx,sign;printf(“Pleaseinputanumbern”);scanf(“%d”,&x);if(x0)sign=1;elseif(x=0)sign=0;elsesign=-1;printf(“Thesignis%dn”,s

12、ign);Pleaseinputanumber-100Thesignis1Pleaseinputanumber2Thesignis1Pleaseinputanumber0Thesignis03/20/202316C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.10设计求ax2+bx+c=0的一元二次方程解的程序。a,b,c=?1,2,1The equation has two equal roots:-1.0000a,b,c=?1,2,2The equation has complex roots:-1.000

13、0+1.0000i-1.0000-1.0000ia,b,c=?2,6,1The equation has distinct real roots:-0.1771 and-2.8229#include#include void main()float a,b,c,d,x1,x2,p,q;printf(a,b,c=?);scanf(%f,%f,%f,&a,&b,&c);printf(The equation);if(fabs(a)=1e-6)printf(is not quadratic);else d=b*b-4*a*c;if(fabs(d)1e-6)x1=(-b+sqrt(d)/(2*a);x

14、2=(-b-sqrt(d)/(2*a);printf(has distinct real roots:%8.4f and%8.4fn,x1,x2);else p=-b/(2*a);q=sqrt(-d)/(2*a);printf(has complex roots:n);printf(%8.4f+%8.4fin,p,q);printf(%8.4f-%8.4fin,p,q);输入a,b,ca=0?“非二次方程”d=b2-4acd=0?d0?相等实根不相等实根不相等虚根返 回3/20/202317C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深

15、,所提出的问题也很明确5、switch-case语句语句(开关分支结构开关分支结构)switch(表达式表达式)case 常量表达式常量表达式1:语句组语句组1 case 常量表达式常量表达式2:语句组语句组2 case 常量表达式常量表达式n:语句组语句组n default:语句组语句组n+1注:表达式和常量表达式可为任何整型或字符型。每一个case后的常量表达式值应互不相同。default位置任意,只作入口;若无default且无匹配常量表达式,则不执行任何操作。语句组不须加 break无条件转向本层复合结构的下一条语句。计算表达式值语句组1语句组2语句组n语句组n+1常量表达式1常量表达

16、式2常量表达式ndefault计算表达式值语句组1语句组2语句组n语句组n+1常量表达式1常量表达式2常量表达式ndefaultbreak;break;break;breakbreakbreak3/20/202318C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.7根据考试成绩的等级打印百分制分数段。#includevoidmain()chargrade;printf(inputthegrade:);scanf(%c,&grade);switch(grade)caseA:printf(85100n);break

17、;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(errorn);Inputthegrade:A85100Inputthegrade:kerror3/20/202319C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.8判别某考试成绩等级是否大于60分。#includevoidmain()chargrade;printf(Inputthegrade:);scanf(%c,&grad

18、e);switch(grade)caseA:caseB:caseC:printf(=60n);break;caseD:printf(=60Inputthegrade:D603/20/202320C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.9在case后面嵌套switch语句的程序。#includevoidmain()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;case3:

19、a+;b+;printf(a=%d,b=%dn,a,b);a=2,b=13/20/202321C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确程序举例:程序举例:例3.11设计输入年、月,输出该月天数的程序。返 回Input year,month=?1994,8 year=1994,month=8,days=31 Input year,month=?1994,2 year=1994,month=2,days=28#include void main()int year,month,days;printf(input

20、year,month=?n);scanf(%d,%d,&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;case 2:if(year%4=0)&(year%100!=0)|(year%400=0)days=29;else days=28;break;default:printf(month is errorn);printf(year=%d,month=%d,days=%dn,

21、year,month,days);年号能被4整除但不能被100整除,或者年号能被400整除的年均是闰年。3/20/202322C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确6、goto语句(无条件分支结构)语句(无条件分支结构)goto 语句标号语句标号;注:语句标号用标识符表示,用来表示程序的某个位置。返 回无条件分支结构语句无条件分支结构语句的三种形式:的三种形式:goto 语句:语句:转向标号所在位置。continue 语句:语句:转向本层复合结构的末尾。break 语句:语句:转向本层复合结构的下一语句。l

22、oop:if(i=100)sum=sum+i;i+;gotoloop;3/20/202323C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3.3 循环结构(重复结构)循环结构(重复结构)循环语句循环语句:是在给定条件成立时,反复执行某个程序段(循环体循环体)。1、if-goto语句2、while语句语句 3、do-while语句语句 4、for语句语句5、break语句6、continue语句 程序举例返 回3/20/202324C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一

23、定的梯度,由浅入深,所提出的问题也很明确1、if-goto语句构成的循环结构 例3.12求S=1+2+100的和。#includevoidmain()inti,sum=0;i=1;loop:if(i=100)sum=sum+i;i+;gotoloop;printf(SUM=%dn,sum);返 回SUM=50503/20/202325C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确2、while语句 while(表达式表达式)语句语句注:先判断,后执行循环体;循环体最少执行次,即表达式不成立时;死循环:while(1

24、),即当循环体内无改变表达式的语句(如i+)。while表达式表达式语句语句0非03/20/202326C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.13求S=1+2+10的和。#includevoidmain()inti,sum=0;i=1;while(i=10)sum=sum+i;i+;printf(SUM=%dn,sum);SUM=553/20/202327C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.14求两个正数的

25、最大公因子。返 回Pleasetypeintwopositiveintegers4921Theirgreatestcommondivisoris7Pleasetypeintwopositiveintegers50100Theirgreatestcommondivisoris50#includevoidmain()intm,n,r;printf(Pleasetypeintwopositiveintegersn);scanf(%d%d,&m,&n);while(n)r=m%n;m=n;n=r;printf(Theirgreatestcommondivisoris%dn,m);算法:输入两个正数m和

26、n;m除以n,余数为r,n-m,r-n;若n=0,则m是最大公因子,结束;否则转。3/20/202328C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3、do-while语句 do 语句语句 while(表达式表达式)注:先执行循环体,后判断;无论表达式成立不成立,循环体最少执行次;死循环:while(1),即当循环体内无改变表达式的语句(如i+)。do表达式表达式语句语句0非03/20/202329C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问

27、题也很明确例3.15求S=1+2+10的和。#includevoidmain()inti,sum=0;i=1;dosum=sum+i;i+;while(i=10);printf(SUM=%dn,sum);SUM=553/20/202330C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.16将一个整数的各位数字颠倒后输出。算法:提取最后一位数字,用取模10的余数求得。#includevoidmain()inti,r;printf(Inputanintegern);scanf(%d,&i);dor=i%10;pri

28、ntf(%d,r);while(i/=10)!=0);printf(n);返 回Inputaninteger123443213/20/202331C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确for(表达式;表达式;表达式表达式;表达式;表达式)语句语句 4、for语句 注:表达式1:变量赋初值;表达式2:循环条件;表达式3:循环后修正变量,使循环趋向结束;语句:循环体。已知循环次数或开始条件和结束条件的重复问题;表达式1和3省略时,相当于while循环。先判断,后执行;循环体最少执行0次;死循环:表达式3省略时,

29、则循环体内应有改变表达式2的语句。表达式2省略时,无终止条件,则循环体内应有跳出循环的语句,如break,goto,exit(),return。表达式表达式2语句语句0非0表达式表达式1表达式表达式3变量赋初值循环条件修正变量循环体While循环循环3/20/202332C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.17求S=1+2+10的和。#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum=sum+i;printf(“SUM=%dn”,sum);SUM=553

30、/20/202333C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.18输入10个字符,输出最大的ASCII值。#include#defineNUM10voidmain()inti,c,max;max=0;for(i=1;imax)max=c;printf(ThelargestASCIIvalueis%dn,max);12AB9xabThelargestASCIIvalueis1203/20/202334C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所

31、提出的问题也很明确例3.19求斐波那契数列(Fibonacci)的前20个数。#includevoidmain()inti,a,b,c;a=0;b=1;printf(%10d%10d,a,b);for(i=3;i=20;i+)c=a+b;printf(%10d,c);if(i%5=0)printf(n);a=b;b=c;printf(n);返 回011235813213455891442333776109871597258441813/20/202335C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确5、break语

32、句break语句的两个用途:跳出switch语句;跳出本层循环。表达式2break;.假(0)真(非0)for表达式1表达式3switch表达式语句组1break;语句组2break;语句组nbreak;语句组break;.常量1常量2常量ndefaultcase表达式break;假(0)真(非0)whiledobreak;.表达式假(0)真(非0)while3/20/202336C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.20break语句结束循环。#includevoidmain()inti;for(i

33、=1;i9)break;printf(n);123456789103/20/202337C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确例3.21求调和级数中第多少项的值大于10。调和级数的第n项形式为:1+1/2+1/3+1/n#include#defineLIMIT10voidmain()intn;floatsum;sum=0.0;n=1;for(;)sum=sum+1.0/n;if(sumLIMIT)break;n+;printf(n=%dn,n);n=12367返 回3/20/202338C语言程序设计-3在

34、整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确6、continue语句continue语句作用:立即结束本次循环,转去判断循环条件是否成立。表达式2continue;.假(0)真(非0)for表达式1表达式3真(非0)docontinue;.表达式假(0)while表达式continue;假(0)真(非0)while3/20/202339C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确返 回例3.22求输入的正数之和。#includevoidmain()in

35、ti,n,sum=0;for(i=1;i10;i+)scanf(%d,&n);if(n0)continue;sum=sum+n;printf(SUM=%dn,sum);SUM=553/20/202340C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确#include void main()int x,y,z;for(x=1;x=20;x+)for(y=1;y=33;y+)z=100-x-y;if(z%3=0)&(5*x+3*y+z/3=100)printf(cook=%dt hen=%dt chiken=%dn,x,

36、y,z);程序举例:程序举例:例3.23鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁,鸡母,鸡雏各几何?cock=4 hen=18 chick=78cock=8 hen=11 chick=81cock=12 hen=4 chick=84算法:不定方程问题。设算法:不定方程问题。设x、y、z分别表示翁、分别表示翁、母、雏三个量,则母、雏三个量,则x最多为最多为20,y最多为最多为33,且且z=100-x-y。其解不只一组。其解不只一组。3/20/202341C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题

37、也很明确#include void main()int m,i,n=0;for(m=101;m=200;m=m+2)if(n%10=0)printf(n);for(i=2;i=m)printf(%d ,m);n=n+1;printf(nprime number=%dn,n);程序举例:程序举例:例3.24求100200间的全部素数。101 103 107 109 113 127 131 137 139 149151 157 163 167 173 179 181 191 193 197199prime number=21 算法:算法:m不能被不能被2(m-1)之间任一整数之间任一整数数除,则数

38、除,则m为素数。为素数。3/20/202342C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确程序举例:程序举例:例3.25译密码。对英文字母AZ,az,按如下规律将电文变成密码:将字母A变成E,a变成e,即变成后第4个字母;W变成A,X变成B,Y变成C,Z变成D。小写字母也按上述规律转换,非字母不变。如“China!”转换为“Glmre!”。输入一行字符,要求输出其相应的密码。China!Glmre!#include void main()char c;while(c=getchar()!=n)if(c=a&c=A&cZ&cz)c=c-26;printf(%c,c);返 回3/20/202343C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确上机实验上机实验 根据教材第根据教材第100页上机操作页上机操作3/20/202344C语言程序设计-3在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确作业:书上94100页练习题3/20/202345C语言程序设计-3

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档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