结构化程序设计.ppt
《结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《结构化程序设计.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、结构化程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第第第3 3章章章章 结构化程序设计结构化程序设计结构化程序设计结构化程序设计 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本章导读返回本章导读3.2 选择结构程序设计选择结构程序设计3.3 循环结构程序设计循环结构程序设计3.4 结构化程序
2、设计方法与综合实训结构化程序设计方法与综合实训3.1 顺序结构程序设计顺序结构程序设计 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本章目录返回本章目录3.1.2 顺序结构语句顺序结构语句3.1.3 程序实训程序实训3.1.1 顺序结构的顺序结构的C程序实例程序实例3.1 3.1 顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计3.1.1 C3.1.1 C程序实例程序实例程序实例程序实例 C C C C C C语语语语
3、语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本节目录返回本节目录C程序实例【例3.1】编程实现:输入一个长方形的二边长,求长方形的面积并输出。/*程序名为l3_1.cpp。*/#includestdio.hmain()floata,b,s;scanf(%f%f,&a,&b);s=a*b;printf(Theareaofrectangleis%5.2f.n,s);返回本节目录返回本节目录程序运行情况如下:输入:3.04.0输出:Theareaofrectanglei
4、s12.00.这个程序属于顺序结构,程序是按照书写的顺序自上而下一步步执行,程序中的每一条语句都被执行一次,且仅能被执行一次。【例【例【例【例3.13.1】编程】编程】编程】编程 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)3.1.2 3.1.2 顺序结构语句顺序结构语句顺序结构语句顺序结构语句1 1 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aa
5、l ll C CC+6 66.0 00环环环环环环境境境境境境)C语言的顺序结构语句可以分为四大类:1.表达式语句表达式的后面加一个分号就构成了一个语句,例如:sum=a+b;。事实上,C语言中有使用价值的表达式语句主要有3种:(1)赋值语句。例如:sum=a+b;(2)自动增1、减1运算符构成的表达式语句。例如:i+;(3)逗号表达式语句。例:x=1,y=2;2.空语句语句仅有一个分号“;”,它表示什么也不做。一般和后面章节所讲循环语句结合使用起到延时作用。3.复合语句由和把一些变量定义和执行语句组合在一起,称之为复合语句,又称语句块。复合语句的语句形式如下:语句1;语句2;语句n;返回本节
6、目录返回本节目录返回本节目录返回本节目录例如:inta=0,b=1,sum;sum=a+b;printf(%d,sum);【注意】与C语言中的其他语句不同,复合语句不以分号作为结束符,若复合语句的后面出现分号,那不是该复合语句的组成成分,而是单独的一个空语句。在复合语句起始部分可以有变量定义,如:inta=0,b=1,sum;,也可以没有。复合语句的内可能会有多个语句,但在语法上把它整体上视为一条语句看待。4.函数调用语句由一个函数调用加上一个分号组成一个语句,如:scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);3.1.2 3.1.2 顺序结构语句顺序结构语句
7、顺序结构语句顺序结构语句2 2 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)C程序实例【例3.2】由键盘输入两个整数给变量a和b,然后输出a和b,在交换a和b中的值后,再输出a和b,验证两个变量中的数值是否正确地进行了交换。/*程序名为l3
8、_2.cpp。*/#includestdio.hmain()inta,b,t;printf(Enteraandb:n);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);程序运行情况如下:Enteraandb:123456a=123,b=456a=456,b=123返回本节目录返回本节目录3.1.3 3.1.3 程序实训程序实训程序实训程序实训【例【例【例【例3.23.2】返回本节目录返回本节目录注意:在程序中交换两个变量a和b的值,不可以简单地用:a=b;b=a;两条语句来实现。假设a和b的
9、值分别为23和78,赋值语句a=b;将使a的值变为78,接下来的b=a;使b的值变为78,这样,a和b的值最终都变为78。所以在本例中引入了中间变量t,用来临时存放a的值,这样才能完成变量a和b的正确交换。【例3.3】输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,以便验证处理是否正确。/*程序名为l3_3.cpp。*/#includestdio.hmain()doublex;printf(Inputx:n);scanf(%lf,&x);3.1.3 3.1.3 程序实训程序实训程序实训程序实训【例【例【例【例3.33.3】C C C C C C
10、语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)3.1.3 3.1.3 程序实训程序实训程序实训程序实训【例【例【例【例3.33.3】C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本节目录返回本节目录printf(1)x=%fn,x);/*将x输出*/x=x*100;x=x+0.5;x=(int)x;x=x
11、/100;/*将x扩大100倍,加上0.5之后取整,再缩小100倍*/printf(2)x=%fn,x);/*将四舍五入后的x输出*/程序运行情况如下:Inputx:3.14159则输出的结果为:(1)x=3.141590(2)x=3.1400003.1.3 3.1.3 程序实训程序实训程序实训程序实训【例【例【例【例3.43.4】C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本节目录返回本节目录【例3.4】从键盘上输入一大写英文字母,
12、要求改用相应的小写字母输出。/*程序名为l3_4.cpp。*/#includestdio.hmain()charc1,c2;scanf(%c,&c1);printf(Theuppercaseis%c.n,c1);c2=c1+a-A;printf(Thelowercaseis%c.n,c2);程序运行时:输入:B输出:TheuppercaseisB.Thelowercaseisb.3.2 3.2 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua a
13、al ll C CC+6 66.0 00环环环环环环境境境境境境)3.2.1 选择结构的选择结构的C程序实例程序实例3.2.2 if 语句语句3.2.3 switch 语句语句3.2.4 程序实训程序实训 返回本章目录返回本章目录3.2.1 3.2.1 选择结构的选择结构的选择结构的选择结构的 C C程序实例程序实例程序实例程序实例 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)返回本节目录返回本节目录【例3.5】请输入两个整数a,b,比较
14、a+b和ab哪个大,输出判断结果。/*程序名为l3_5.cpp。*/#includestdio.hmain()inta,b,s1,s2;printf(请输入两个整数a,b:);scanf(%d,%d,&a,&b);s1=a+b;s2=a*b;/*求两个数的和、积*/if(s1s2)printf(a+b)(a*b)/n);/*语句A*/elseprintf(a+b)=(a*b)n);/*语句B*/C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)
15、运行结果为:请输入两个整数a,b:2,3(a+b)s2,则执行语句A(跳过语句B不执行),否则,就跳过语句A执行语句B。可见if语句在程序中起到了改变语句执行顺序的作用。if语句就是我们在下一节中要介绍的条件分支语句。3.2.1 3.2.1 选择结构的选择结构的选择结构的选择结构的 C C程序实例结果程序实例结果程序实例结果程序实例结果 返回本节目录返回本节目录3.2.23.2.2 if if if if 语句语句语句语句 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0
16、00环环环环环环境境境境境境).if语句的一般形式返回本节目录返回本节目录2.if-else中的复合语句3.非关系、非逻辑表达式构成的条件表达式4.if语句的嵌套.if.if.if.if语句的一般形式语句的一般形式语句的一般形式语句的一般形式1 1 1 1 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)1if语句的一般形式:if语句有两种形式:(1)不含else子句的if语句语句形式如下:if()例如if(ab)t=a;a=b;b=t;其中
17、,if是C语言的关键字,表达式两侧的圆括号不可少,最后是一条语句,称为if子句。如果在if子句中需要多个语句,则应该使用花括号把一组语句括起来组成复合语句,这样在语法上仍满足一条语句的要求。执行过程:首先计算紧跟在if后面一对圆括号中的表达式的值,如果该表达式的值为非零(“真”),则执行其后的if子句,然后去执行if语句后的下一个语句。如果该表达式的值为零(“假”),则跳过if子句,直接执行if语句后的下一个语句。返回返回3.2.23.2.2目录目录.if.if.if.if语句的一般形式语句的一般形式语句的一般形式语句的一般形式2 2 2 2 C C C C C C语语语语语语言言言言言言程程
18、程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)(2)含else子句的if语句语句形式如下:if()else执行过程:首先计算的值,如果该表达式的值为非零(真),则执行,如果该表达式的值为零(假),则跳过,直接执行,两者执行其一后再去执行if语句后的下一个语句。返回返回3.2.23.2.2目录目录 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境
19、境境).if.if.if.if语句的一般形式实例语句的一般形式实例语句的一般形式实例语句的一般形式实例【例3.6】求分段函数的值,如果x0,y=2x+1,否则,y=0。#includestdio.hmain()/*程序名为l3_6.cpp。*/intx,y;/*变量y存放f(x)的值*/printf(请输入x的值:);scanf(%d,&x);if(x=0)y=2*x+1;elsey=0;printf(当x=%d时,f(x)=%d,x,y);返回返回3.2.23.2.2目录目录.if.if.if.if语句的一般形式实例语句的一般形式实例语句的一般形式实例语句的一般形式实例 C C C C C
20、C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)运行结果:请输入x的值:3当x=3时,f(x)=7因为输入x=3,那么x=0为真,所以输出2*3+1=7。C语言中有一种特有的条件运算符“?:”,我们在前面章节已作介绍,它在某种程序上可以起到逻辑判断的作用。本例中的if语句也可用条件运算符表达式实现如下:y=x=0?2*x+1:0;但有些判断不能用条件表达式完成,或者很繁琐、表达不清晰。返回返回3.2.23.2.2目录目录2.if-else2.if-else2.i
21、f-else2.if-else中的复合语句中的复合语句中的复合语句中的复合语句 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)2.if-else中的复合语句如果两个分支中需要执行的语句不止一条,必须用“”括起来,作为一个复合语句使用。若只是一条语句,“”可以省略。【注意】(1)if后面的一定要有括号;(2)if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句的一部分,与if配对使用,因此程序中不可以没有if而只有e
22、lse;(3)只能执行与if有关的语句或者执行与else有关的语句,而不可能同时执行两者;(4)如果和是非复合语句,那么该语句一定要以分号结束,(5)if语句的表达式可以是任意类型的C语言的合法的表达式,但计算结果必须为整型、字符型或浮点型之一。返回返回3.2.23.2.2目录目录3.3.3.3.非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式1 1 1 1 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal
23、ll C CC+6 66.0 00环环环环环环境境境境境境)3.非关系、非逻辑表达式构成的条件表达式【例3.10】以赋值表达式为分支条件的实例。/*程序名为l3_10.cpp。*/#includestdio.hmain()ints;if(s=2)printf(hello);elseprintf(error);if后面圆括号中的表示分支条件的类型不限于逻辑/关系表达式,可以是任意的C语言有效表达式(如赋值表达式,算术表达式等等),因此也可以是作为表达式特例的常量或变量。返回返回3.2.23.2.2目录目录 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计
24、计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境境境境)3.3.3.3.非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式2 2 2 2【例3.10】中的条件表达式是一个赋值表达式,并不是判断s是否等于2。相当于if(2)printf(hello);,这是合法的。由于该条件表达式的值是非零值,恒为真,故本程序的printf(error);无论如何都不会被执行。if语句最终执行哪一个分支,取决于条件表达式的计算结果。同一个条件的也可以用多种表达方式
25、。【例3.11】以变量为分支条件的实例。/*程序名为l3_11.cpp。*/#includestdio.hmain()intx,y;scanf(%d,&x);if(x)y=1;elsey=-1;返回返回3.2.23.2.2目录目录3.3.3.3.非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式非关系、非逻辑表达式构成的条件表达式3 3 3 3 C C C C C C语语语语语语言言言言言言程程程程程程序序序序序序设设设设设设计计计计计计 (V VVi iis ssu uua aal ll C CC+6 66.0 00环环环环环环境境境
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 程序设计
限制150内