三种基本结构的程序设计.ppt

上传人:本田雅阁 文档编号:2625763 上传时间:2019-04-22 格式:PPT 页数:47 大小:1.87MB
返回 下载 相关 举报
三种基本结构的程序设计.ppt_第1页
第1页 / 共47页
三种基本结构的程序设计.ppt_第2页
第2页 / 共47页
三种基本结构的程序设计.ppt_第3页
第3页 / 共47页
三种基本结构的程序设计.ppt_第4页
第4页 / 共47页
三种基本结构的程序设计.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《三种基本结构的程序设计.ppt》由会员分享,可在线阅读,更多相关《三种基本结构的程序设计.ppt(47页珍藏版)》请在三一文库上搜索。

1、 第三章 三种基本结构的程序设计 l程序基本结构及C程序语句分类 l顺序结构程序设计 l选择结构程序设计 l循环结构程序设计 l典型例题精讲 C语言与程序设计 第三章 三种基本结构的程序设计 C语句 和其它高级语级语 言一样样,C语语言的语语句用来向计计算 机系统发统发 出操作指令,一个语语句经编译经编译 后产产生若干 条机器指令。一个实际实际 的程序应应当包含若干个语语句。 C语语句都是用来完成一定操作任务务的,声明部分的内 容不应应称为语为语 句。 考虑虑:int a;和 int a=1; 前者不是一个C语语句,它不产产生机器操作,而只是对对 变变量定义义。 后者是一个C语语句,为为表达式

2、语语句(a=1为赋值为赋值 表达式 ) 2 C语言与程序设计 第三章 三种基本结构的程序设计 C语句分类 表达式语语句:由一个表达式加上一个分号构成一个 语语句,最典型的是赋值语赋值语 句。如: i+; k=k+2; m=n=j=3; a=1; x+y;也是,但无实际实际 意义义。 函数调调用语语句:由一次函数调调用加一个分号构成一 个语语句,例如:printf(“s=%dn”,s); 空语语句:只有一个分号的语语句,什么也不做,有时时 用来做被转转向点,或循环语环语 句中的循环环体。 复合语语句:可以用 把一些语语句括起来成为为复合语语 句,又称分程序。在语语法上相当于一条语语句。 注:后面

3、没有分号(;) 3 C语言与程序设计 第三章 三种基本结构的程序设计 C语句分类 控制语语句,完成一定的控制功能(9种) if( ) else (条件语语句) for( ) (循环语环语 句) while( ) (循环语环语 句) dowhile( ) (循环语环语 句) continue (结结束本次循环语环语 句) break (中止执执行switch语语句或循环语环语 句 ) switch (多分支选择语选择语 句) goto (无条件转转向语语句) return (从函数返回语语句) 4 C语言与程序设计 第三章 三种基本结构的程序设计 C语句 5 C语言与程序设计 第三章 三种基本结

4、构的程序设计 程序的三种基本结构 结结构化程序:由三种基本结结构(顺顺序、条件、循环环) 反复嵌套构成的程序。 结结构化程序设计设计 基本思想:(函数) “自顶顶向下、逐步求精、模块块化” 6 第三章 三种基本结构的程序设计 l程序基本结构及C程序语句分类 l顺序结构程序设计 l选择结构程序设计 l循环结构程序设计 l典型例题精讲 C语言与程序设计 第三章 三种基本结构的程序设计 顺序结构程序设计 赋值语赋值语 句:变变量表达式; if (a=b)0) 不能写成 if (a=b;)0) x=a; x=a; int a=b=c=10;正确? 是错误错误 的,应该应该 写成: int a,b,b;

5、 a=b=c=10; 或者:int a=10,b=10,c=10; 顺顺序结结构就是一个操作执执行完成后就接着执执行紧紧随 其后的下一操作。 8 与赋值表达式有何区别 C语言与程序设计 第三章 三种基本结构的程序设计 顺序结构例:输入三角形的三条边长,求其面积 #include #include void main() float a,b,c,p,s; printf(“Input a,b,c=“); scanf(“%f,%f,%f“, p=1.0/2*(a+b+c); s=sqrt(p*(p-a)*(p-b)*(p-c); printf(“s=%6.2fn“,s); 9 面积公式: 其中 注意

6、:sqrt( )是求平方根的函数。 必须把头文件“math.h”包含到程 序中来。凡是在程序中用到数学 函数库中的函数,都应当包含 math.h头文件。 运行结结果: Input a,b,c=3,4,5 s= 6.00 C语言与程序设计 第三章 三种基本结构的程序设计 顺序结构例:输入两个整数,交换其值。 #include void main() int a,b,t; printf(“Input a,b=“); scanf(“%d,%d“, printf(“old data: a=%d,b=%dn“,a,b); t=a;a=b;b=t printf(“new data: a=%d,b=%dn“

7、,a,b); 10 运行结结果: Input a,b=5,10 old data: a=5,b=10 new data: a=10,b=5 如果是你,如何交换 第三章 三种基本结构的程序设计 l程序基本结构及C程序语句分类 l顺序结构程序设计 l选择结构程序设计 l循环结构程序设计 l典型例题精讲 C语言与程序设计 第三章 三种基本结构的程序设计 选择结构程序设计if语句 12 if语语句是用来判定所给给定的条件是否满满足,根据判 定的结结果决定执执行给给出的两种操作之一。 lif(表达式1) 语语句1 else if (表达式2) 语语句2 else if (表达式3) 语语句3 else

8、if (表达式m) 语语句m else 语语句n 表达式 语语句 假(0) 真(非0) lif(表达式) 语语句 lif(表达式) 语语句1 else 语语句2 表达式 真 语句1语句2 假 C语言与程序设计 第三章 三种基本结构的程序设计 if语句-例1:输入两个整数,由大到小输出 #include void main() int a,b; printf(“Input a,b=“); scanf(“%d,%d“, if(a void main() char c; printf(“Input a character:“); c=getchar(); if(c=0 scanf(“%d”, if(

9、x0) y=1; else y=0; printf(“x=%d,y=%dn”,x,y) ; Y=1 Y=0Y=-1 X=0 X0 Y N NY 在if语语句中又包含一个或多个if语语句称为为if语语句的嵌套。 一般形式如下: if ( ) if ( ) 语语句1 else 语语句2 else if ( ) 语语句3 else 语语句4 内嵌if 内嵌if 配对关系:else总是与 它上面的最近的if配对 例:表示一个函数: if(x0) y=1; else y=0; 如何改 C语言与程序设计 第三章 三种基本结构的程序设计 条件运算符:exp1 ? exp2 : exp3 若if语语句中,在表

10、达式为为“真”和“假”时时,且都只执执行 一个赋值语赋值语 句给给同一个变变量赋值时赋值时 ,可以用简单简单 的 条件运算符来处处理。 条件运算符要求有3个操作对对象,称三目运算符,它 是C语语言中唯一的一个三目运算符。 条件表达式的一般形式为为: 表达式1 ? 表达式2 : 表达式3 它的执执行过过程如右图图: 16 表达式1 条件表达式 取表达式2的值 条件表达式 取表达式3的值 真假 ch若为为大写转为转为 小写,否则则不变变: ch=(ch=A while(i void main() /程序1 int x=2; while(x-) printf(“%dn“,x); #include v

11、oid main() /程序4 int x=0; while(x-) x-; printf(“%dn“,x); #include void main() /程序3 int x=2; while(x) printf(“%dn“,x); #include void main() /程序2 int x=2; while(x-); printf(“%dn“,x); 1 0 -1 (死循环) 2 2 -1 C语言与程序设计 第三章 三种基本结构的程序设计 dowhile语句 一般形式: do 语语句 while(表达式); 执执行过过程:先执执行循环环体中的语语句,然后再判断表达 式是否为为真, 如果为

12、为真则继续则继续 循环环;如果为为假, 则终则终 止循环环。(do-while循环环至少要执执行一次循环语环语 句) 24 这里语句要理解为一条 语句(包括复合语句和空 语句) 例:求自然对对数e的近似值值。其中: int n=1,i=1; float e=1 do n*=i; e+=1./n; i+; while(1./n=1e-7); C语言与程序设计 第三章 三种基本结构的程序设计 while语句和dowhile语句的对比 例:输输入一个自然数,求从该该自然数到10的和。 25 main() int sum=0,i; scanf(“%d”, while(i10) break; int i

13、=0; for(;) if(i10) break; printf(“%d“,i); i+; 这样写正确吗 还有更多吗,请大家思 考 C语言与程序设计 第三章 三种基本结构的程序设计 goto语句 是一种无条件转转移语语句, 使用格式为为: goto 标号;/在程序的某处有:标号:语句 其中标标号是一个有效的标识标识 符,这这个标识标识 符加上一个 “:”一起出现现在函数内某处处, 执执行goto语语句后,程序将跳 转转到该标该标 号处处并执执行其后的语语句。 l标标号必须须与goto语语句处处于同一个函数中,但可以不在 一个循环层环层 中。 l通常goto语语句与if条件语语句连连用, 当满满

14、足某一条件时时, 程序跳到标标号处处运行。 lgoto语语句通常不用,主要因为为它将使程序层层次不清,且 不易读读,但在多层层嵌套退出时时, 用goto语语句则则比较较合理 29 C语言与程序设计 第三章 三种基本结构的程序设计 用goto构成循环:求1+2+.+100的值 30 #include main() int i,sum=0; i=1; loop: if(i main() int i,sum=0; i=1; loop: sum+=i; i+; if(i100) goto loop;; printf(“%d“,sum); C语言与程序设计 第三章 三种基本结构的程序设计 break语句

15、和continue语句 break语语句 功能:在循环语环语 句和switch语语句中,终终止并跳出循环环 体 说说明: 只能终终止并跳出最近一层层的结结构 只能用于循环语环语 句和switch语语句 continue语语句 功能:结结束本次循环环,跳过过循环环体中尚未执执行的语语 句,进进行下一次是否执执行循环环体的判断 说说明:仅仅用于循环语环语 句中 31 C语言与程序设计 第三章 三种基本结构的程序设计 程序分析: 32 #include/1 void main() int i,x=0; for(i=0;i/3 void main() int i,x=0; for(i=0;i/2 vo

16、id main() int i,x=0; for(i=0;i void main() int n=0; float h=0.5; while(1) n+; h=2*h; if(h=8848000) break; printf(“n=%dn“,n); for(; h=h*2,n+) if(h void main() int i,j; for(i=1;i void main() int i=1,j; while(iy); (2)if(xy) m=x (3)if(xy) ; else m=y; else m=y; else m=y; (4)if(x=1) m=x; (5)if(xy) else m=

17、y; else m=y; 40 C语言与程序设计 第三章 三种基本结构的程序设计 例2:修改程序 计计算 1+1/1*2+1/2*3+1/n*(n+1)的值值,最后一项值项值 小于 0.001 41 #include void main() int m=n=1; float s=1; while(1/m=.001 是n! ?:m=n*(n-1) 整除?:1./m 格式错误:f C语言与程序设计 第三章 三种基本结构的程序设计 例3:求解一元二次议程:ax2+bx+c=0(教材P96) 另外一种分法: a=0 b=0 c=0:方程无穷穷解; c0:方程无解; b0:有一个解-c/b; a0 b2

18、-4ac=0,方程有两个相等的实实数根; b2-4ac0,方程有两个不等的实实数根; b2-4ac void main() int i,f1,f2; f1=1; f2=1; for(i=1;i #include main() int m,i,k; scanf(“%d“, k=sqrt(m); for(i=2;i=k+1) printf(“%d is a prime numbern“,m); else printf(“%d is not a prime numbern“,m); 45 素数(质质数):大于1,并且除1和自身之外不能被其他自然数整除 的整数:2,3,5,7. 为为什么只要验证验证 到平方根处处 C语言与程序设计 第三章 三种基本结构的程序设计 练习: 求100以内的素数 因式分解 求1000以内的完美数(等于除自身外的因子之和的 数),如61+2+3 用二分法求方程2x3-4x2+3x-6=0的一个近似根(迭 代前后两个数的差距小于1e-6 ) 输输出右边边的图图形: 46 第三章 三种基本结构的程序设计 l程序基本结构及C程序语句分类 l顺序结构程序设计 l选择结构程序设计 l循环结构程序设计 l典型例题精讲 本章到此结束 ,大家有什么 问题和建议?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1