资源描述:
《C语言程序设计 教学课件 作者 刘明才 第4章 C语言的控制结构.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章C语言的控制结构算法与程序顺序结构选择结构循环结构第页共44页4.1算法与程序算法程序第页共44页4.1.1算法有穷性一个算法通过有限步骤即可实现预定的目标,并且算法的每一步都可以在合理的时间内完成。确定性算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。有效性算法中的每一步都应当被执行,并得到确定的结果。例如,设b=0,则执行a/b是不能被执行的。有零个或多个输入算法可以有一个或多个输入,提供算法的操作数据,也可以没有输入。有一个或多个输出一个算法总要产生一个或多个输出数据,表示算法操作的计算结果。第页共44页程序一般由两部分组成。数据的描述对数据的描述,就是
2、指定数据的类型及数据的组织形式,即数据结构(datastructure)。操作的描述对操作的描述,即操作步骤,也就是算法(algorithm)。第页共44页4.1.2程序顺序结构流程图第页共44页选择结构流程图第页共44页循环结构流程图第页共44页程序设计的基本过程分析问题明确要解决的问题是什么,需要输入哪些数据,需要进行什么处理,最终要得到哪些处理结果。对要输入、输出的数据进行分析,确定数据类型。设计算法在对输入、输出的数据分析之后,要设计数据的组织方式,设计解决问题的操作步骤,并将操作步骤不断完善,最终得到一个完整的算法。实现程序选择一种程序设计语言,将算法设计后得到的数
3、据组织方式、算法具体步骤转化成用具体的程序设计语言来描述,实现整个算法。第页共44页4.2顺序结构【例】交换两个变量的值,并输出结果。程序如下:#includevoidmain(){inta,b,t;scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);t=a;a=b;b=t;printf("a=%d,b=%d",a,b);}运行情况如下:59↙a=5,b=9a=9,b=5第页共44页程序说明:交换两个变量的值,需要第三个变量的帮助,上面程序中的t就是这种变量,这个道理就像交换两杯水一样,需要第三个杯子的帮助。第页共
4、44页4.3选择结构if语句switch语句第页共44页4.3.1if语句if语句的单分支形式if语句单分支执行流程图第页共44页【例】输入一个实数,输出其绝对值。程序如下:#includevoidmain(){floatx;scanf("%f",&x);if(x<0)x=-x;printf("%f",x);}运行情况如下:-5.6↙5.600000第页共44页程序说明:给x输入一个实数,如果是负数,程序会执行if语句中的赋值语句“x=-x;”。如果x不是负数,则不执行if语句中的赋值语句“x=-x;”。第页共44页复合语句复合语句(compoundst
5、atement)是指用一对花括号括起来的语句序列,执行时按花括号中语句的先后次序依次执行。复合语句在C语言程序中的语法(syntax)地位相当于一条语句,常用于if语句、循环语句等。if语句中的分支语句可以是单独一条语句或一条复合语句。第页共44页【例】输入两个实数,按从小到大的顺序输出这两个数。程序如下:#includevoidmain(){floatx,y,t;scanf("%f%f",&x,&y);if(x>y){t=x;x=y;y=t;}/*当x>y时执行复合语句{t=x;x=y;y=t;}*/printf("%.2f,%.2f",x,y);}运
6、行情况如下:3.6-3.2↙-3.20,3.60第页共44页程序说明:当输入的值是x>y时,执行if语句中的复合语句“{t=x;x=y;y=t;}”,使x、y交换值。第页共44页if语句的双分支形式if语句双分支执行流程图第页共44页【例】从键盘输入一个字符,如果是数字字符,则输出“Itisanumber.”;否则,输出“Itisnotanumber.”。分析:判断某个字符变量ch是否为数字字符,可以根据该字符的ASCII码进行大小的比较,得出结果。判断条件是,既不小于字符‘0’又不大于字符‘9’,即(ch>='0'&&ch<='9')。程序如下:#include7、.h>voidmain(){charch;scanf("%c",&ch);if(ch>='0'&&ch<='9')printf("Itisanumber.");elseprintf("Iiisnotanumber.");}运行情况如下:9↙Itisanumber.第页共44页if语句的嵌套形式单分支嵌套形式if(表达式1)语句1elseif(表达式2)语句2…elseif(表达式n-l)语句n-lelse语句n第页共44页双分支嵌套形式if(表达式1)if(表达式2)语句1else语句2else