05顺序结构和两分支结构程序

上传人:L** 文档编号:141869967 上传时间:2020-08-13 格式:PPT 页数:42 大小:415KB
返回 下载 相关 举报
05顺序结构和两分支结构程序_第1页
第1页 / 共42页
05顺序结构和两分支结构程序_第2页
第2页 / 共42页
05顺序结构和两分支结构程序_第3页
第3页 / 共42页
05顺序结构和两分支结构程序_第4页
第4页 / 共42页
05顺序结构和两分支结构程序_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《05顺序结构和两分支结构程序》由会员分享,可在线阅读,更多相关《05顺序结构和两分支结构程序(42页珍藏版)》请在金锄头文库上搜索。

1、C程序设计 Programming in C,西安电子科技大学计算机学院 张淑平,上次课的主要内容,C语言提供了丰富的运算符,其中一些并非必要,只是为了表达的简洁性而引入的,使用时应尽量避免出现歧义。 、-、*、/、% =、+=、-=、*=、/=、%= +、- - 表达式是表达运算过程的基本结构,应掌握表达式的书写形式、含义和运算方式(涉及运算符的优先级、结合性,参看附录) 类型转换:强制类型转换、自动类型转换 C语言的输入和输出处理是以标准函数的方式由编译系统提供的,因此,每个C程序的开头都应有以下代码: #include 或者 #include stdio.h“ 字符数据输入、输出:get

2、char( )、putchar( ) 格式化输入、输出:scanf( )、printf( ) 格式:%格式字符,例如%d、%c、%f、%e,这次课的主要内容,顺序结构程序设计 逻辑运算及逻辑表达式 选择结构程序,顺序结构程序设计,对程序而言,顺序结构就是指按照书写顺序,自上而下顺次执行每一条语句,回顾顺序结构的含义,顺序结构程序例1,#include main(void) int inches, feet, fathoms; printf(input fathoms:); scanf(%d, ,开始,结束,英噚转换为英尺和英寸,顺序结构程序例2,#include /*输入圆半径radius,求

3、圆周长和圆面积。*/ #define PI 3.1415926 main() float radius,length,area; printf(input the radius of a circle:); scanf(%d, ,开始,结束,顺序结构程序例4.11,#include /*输入大写字母,输出小写字母。*/ main( ) char c1,c2; /*声明变量*/ c1 = getchar( ); /*输入一个大写字母*/ printf(“ %c, %dn ”,c1,c1); /*输出字母和其ASCII码值*/ c2 = c1 + 32; printf(“ %c, %dn ”,c2

4、,c2); /*输出对应的小写字母和ASCII码值*/ ,TC2.0,顺序结构程序设计小结,将需要使用的标准库函数包含到到程序中,格式为 #include /*包含标准输入输出函数库*/ #include /*包含常用的数学函数库*/,编写顺序结构程序的步骤: 声明变量名及类型; 为变量赋值,或为变量读取值; 运算; 输出运算结果。,将以上内容写在main函数中,一个简单的C程序就编写好了,用语句描述这些操作,一元二次方程求根,问题:求一元二次方程为ax2+bx+c=0的根,已知:,令:,则:,顺序结构程序例4.12,/*输入系数,求一元二次方程的根*/ #include #include m

5、ain( ) float a, b, c, disc, x1, x2, p, q; /*声明变量*/ scanf(a=%f,b=%f,c=%f, /*输出根*/ ,TC2.0,程序书写风格,使用空格和注释使代码更容易阅读 例如,在二元运算符两侧各加一个空格,以提高可读性,适当的缩进,简单C程序的框架,选择结构程序,选择结构,选择结构表达的含义是根据指定的条件(即产生真/假值的表达式),从两条路径中选择一条执行路径,回顾选择结构的含义,产生真/假值的表达式,关系运算的结果为真/假 六种关系运算:、=、bc”的逻辑表达式为: (ab) else max = b;,例如,用max表示整数a和b中的较

6、大者,选择结构2,选择语句的另一种形式“if.”,max = b; if (a b) max = a;,例如,用max表示整数a和b中的较大者,选择结构程序示例,问题:给定三角形的三个边长值a,b,c,求其面积。,我们已经知道,若已知a、b、c是三角形的边长,则其面积area可由下式计算:,其中,求三角形的面积,/*输入三角形的边长,求其面积*/ #include #include main() float a, b, c, s, area; /*声明变量*/ scanf(%f,%f,%f, ,TC2.0,输入的三个数能否表示三角形的边长?,选择结构程序示例,#include /*输入三角形的

7、边长,求其面积*/ #include main() float a, b, c, s, area, p; scanf(%f,%f,%f, ,TC2.0,就算是编写最简单的程序,也需要选择结构,程序中的复合语句,程序中的复合语句:一个顺序执行的语句序列,用“”和“”将这些语句括起来。,if (p = 0 ) printf(can not make a triangle!n); else area = sqrt(s*p); printf(narea = %7.2fn , area); ,逻辑表达式的短路计算,对于逻辑与运算,例如“a printf(input a character: ); c1

8、= getchar(); if (c1 = A ,TC2.0,if语句的内嵌语句,if (ab) max = a; else max = b;,if (ab) printf(%d,a);,if语句的条件成立/不成立时执行的语句是if语句的内嵌语句,内嵌语句用块表示,内嵌语句超过一条时,在程序中用复合语句表示 例如,若ab,则交换二者的值,if (ab) temp = a; a = b; b = temp; ,一个复合语句,逻辑上是一个整体,使用if语句的要点,if(表达式) 表达式为真时将执行的语句; else 表达式为假时将执行的语句; ,if语句的表达式要用括号括起来,为了避免出错,始终将

9、if的内嵌语句用块表示,if语句的嵌套,若if的内嵌语句还是if语句,则形成嵌套 例如,嵌套层次不宜过多,否则可能造成理解程序逻辑困难,if语句的嵌套举例1,例如,可用if语句分别表示每种情况,if (x 0) y = -1; else if (x = 0) y = 0; else y = 1; ,if (x 0) y = 1;,判断闰年的流程图,k能被4整除?,输入一个年份值k,开始,结束,输出k不是闰年,输出k是闰年,Y,N,k能被100整除?,Y,k能被400整除?,Y,N,N,输出k是闰年,输出k不是闰年,判断闰年的程序,#include main() int k; printf(wh

10、at year? ); scanf(%d, ,printf(%d is not a leap year!n ,k);,printf(%d is a leap year!n ,k);,printf(%d is a leap year!n,k); printf(%d is not a leap year!n ,k);,int k;,printf(what year? ); scanf(%d,程序书写风格,#include /*缩进*/ main( ) int k; printf(what year? ); scanf(%d, ,#include /*全部语句左对齐,不好的风格*/ main( )

11、int k; printf(what year? ); scanf(%d, ,int isLeap; isLeap = (k % 4 = 0) ,条件运算符和条件表达式,条件运算符号:?: 基本使用形式:表达式1?表达式2:表达式3,if (a b) max = a; else max = b;,例如,用max表示整数a和b中的较大者,max = (a b) ? a : b;,条件运算符的使用,例如:从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。,/*若输入大写字母,则输出小写字母;否则直接输出*/ #include main() char c1; prin

12、tf(input a character: ); c1 = getchar(); c1 = (c1 = A ,TC2.0,if语句小结,if语句用于表示两分支的选择结构,即需要根据判定条件以决定进行/不进行某计算,或者进行哪一种计算的处理步骤。 if语句有两种基本形式:,逻辑表达式的主要用途之一就是作为if语句的条件。,if (condition) /*True*/ 语句序列; ,if (condition) /*True*/ 语句序列; else /*False*/ 语句序列; ,if语句小结(续),(一种观点)尽量避免使用过度嵌套的if语句,if (expr1) statements1 e

13、lse if (expr2) statements2 else if (expr3) statements3 else if (expr4) statements4 .,悬挂的else,if (x 0) if (x 5) s = 0; else s = 1;,if (x 0) if (x 5) s = 0; else s = 1;,悬挂的else(续),if (x 0) if (x 5) s = 0; else s = 1; ,if (x 0) if (x 5) s = 0; else s = 1;,本次课主要内容,程序的顺序执行(顺序结构) 关系运算、逻辑运算及逻辑表达式 选择结构程序 if语句,作业,阅读例题4.12 、例题5.2、例题5.5 、例题5.6 作业题: 4.8 4.9 5.3 (3) (4) 5.5 5.6,预习教材5.4 5.5 预习第6章 6.1 6.2,

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号