C程序设计教程(第二版式)1-3

上传人:平*** 文档编号:48808061 上传时间:2018-07-20 格式:PPT 页数:125 大小:1.04MB
返回 下载 相关 举报
C程序设计教程(第二版式)1-3_第1页
第1页 / 共125页
C程序设计教程(第二版式)1-3_第2页
第2页 / 共125页
C程序设计教程(第二版式)1-3_第3页
第3页 / 共125页
C程序设计教程(第二版式)1-3_第4页
第4页 / 共125页
C程序设计教程(第二版式)1-3_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《C程序设计教程(第二版式)1-3》由会员分享,可在线阅读,更多相关《C程序设计教程(第二版式)1-3(125页珍藏版)》请在金锄头文库上搜索。

1、第3章 结构化程序设计l3.1 结构化程序设计思想l3.2 语句与分程序 l3.3 顺序结构程序设计 l3.4 关系运算符与逻辑运算符l3.5 选择结构程序设计l3.6 循环结构程序设计3.1 结构化程序设计思想3.1.1 结构化程序设计思想的产生 20世纪60年代“软件危机” 的产生 是否在程序设计中使用“goto”语句的争论 Corrado Bhm和Guiseppe Jacopini.就证明了只 要有顺序、选择和循环三种形式的控制结构, 就足以导出其它各式各样的程序结构,从而在 理论上奠定了结构化程序设计的基础。3.1.2 结构化程序设计的三种基本结构(1) 顺序结构顺序结构就是一组逐条执

2、行的可执行语 句。按照书写顺序,自上而下的执行。(2) 选择结构(分支结构)选择结构是一种先对给定条件进行判 断,并根据判断的结果执行相应命令的结 构。(3) 循环结构循环结构是指多次重复执行同一组命令的结构。具有循环结构的程序一般必须指定循环的终止条件,以便对程序的循环进行有 效的控制,以免进入无限循环(或称死循 环)的状态。C程序的执行部分由执行语句构成。 执行语句的种类表达式语句函数调用语句控制语句复合语句(或称分程序)空语句 3.2 语句与分程序 最简单的可执行语句。只要在表达 式后面加上分号就可以了。 例如: +i; x=y;有效的表达式语句一般都要有赋值 运算, 否则,不做任何赋值

3、运算的表达 式大多数是无意义的。 表达式语句 函数调用语句由函数名、实际参数以及分号构成。例如:printf(“welcome“);printf是函数名,“welcome”是实际参数。函数名既可以是C语言提供的库函数名,也可以是我们自己定义的函数名。控制语句控制语句是用于控制程序流程的语句,控制语句一般指那些改变了顺序结构的语句。C语言的控制语句分支语句(if 和 switch)循环语句(while、do-while、for)转向语句(break、goto、continue、return)。熟练掌握控制语句是学会程序设计的基础。复合语句和分程序结构复合语句是用 和 把数据说明语句和若干 个有序

4、的执行语句组合在一起而构成。其一般格式为 数据说明;语句;复合语句在语法上相当于一个简单语句,在 程序中可以作为一个独立语句来看待,因此又 称为分程序。 空语句 C语言中有一个很特殊的语句,即空语句。空 语句,顾名思义,就是什么也不存在的语句,只 有一个分号:;尽管空语句不会有任何命令执行,但仍然是 一个有用的语句。常用于循环语句中,使循环体 为空。例如:for (sum=0,i=0;i、=、=10)scanf(“%d“,if (xb将两个数的位置 调换;否则,保持不变。#include “ stdio.h“/*-swap a and b-*/void main() int a,b,temp;

5、scanf(“%d%d“,if (ab) temp=a; a=b; b=temp;printf(“%d,%dn“,a,b);例3.6请判断下面程序的执行结果,并解释该程序 的功能。#include “stdio.h“void main() int a=10,b=20,x;x=a;if (a=A printf(“max is %d.n“,*x);elsex=printf(“max is %d.n“,*x);#include “stdio.h“/*-max-*/void main()int a=30,b=20,*x;if (ab) x=printf(“max is %d.n“,*x);else x

6、=printf(“max is %d.n“,*x);3.5.4 else if 形式 例如我们要解决这样一个问题:输入一个股票今天和昨天的收盘价,如果今天的收盘价大于 昨天的收盘价,提示“上涨”;如果今天的收盘价 小于昨天的收盘价,提示“下跌”;如果今天的收盘价刚好等于昨天的收盘价,提示“平盘”。判断条件的结果实际上是三种情况,我们先用if else 解决这个问题:用if else解决这个问题:#include “stdio.h“/*-price of stock-*/ void main() float x,y;printf(“nPlease input price of stock yes

7、terday:“); /*提示用户输入昨天的股票价格*/scanf(“%f“, /*接收昨天的股票价格 */printf(“nPlease input price of stock today:“); /*提示用户输入今天的股票价格*/scanf(“%f“, /*接收今天的股票价格 */if (x=y) /*若今天的股票价格等于昨天的股票价格 */printf(“Equality!n“); /*输出提示:平盘 */else if (x55) group=4; /*岁数大于55岁在第四组 */else if (age40 ) group=3; /*岁数大于40岁在第三组 */else if (a

8、ge17) group=2; /*岁数大于17岁在第二组 */else group=1; /*岁数小于等于17岁在第一组 */printf(“Group is %c!n“,group);3.5.3 嵌套的if语句 修改例3.12,排除不可能的岁数 。#include “stdio.h“/* sport group */void main() int age; char group;printf(“Please input age:“); /*提示用户输入岁数 */scanf(“%d“,if (age0 /*岁数大于55岁在第四组 */else if (age40 ) group=3; /*岁数

9、大于40岁在第三组 */else if (age17) group=2; /*岁数大于17岁在第二组 */else group=1; /*岁数小于等于17岁在第一组 */printf(“Group is %c!n“,group);elseprintf(“Data Error!n“);if (表达式1) if (表达式2)语句1;else 语句2; if (表达式1) if (表达式1) printf(“Please input one integer:“); /*输入一个整数 */scanf(“%d“,if (x0) /*如果x大于0 */ if (x%2=0) /*如果x是偶数 */prin

10、tf(“positive and evenn“);else /*x是奇数 */printf(“positive and oddn“);3.5.4 switch语句switch语句属于多路分支结构。 switch的常用形式: switch (条件表达式) case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;case 常量表达式3:语句3;break; case 常量表达式n:语句n;break;default 语句n+1; break; 功能:首先计算条件表达式的值,然 后找到与其相等的常量表达式的case分支 去执行语句,然后退出switch语句,若没有与条

11、件表达式相等的常量表达式,则执 行default语句后面的语句n+1。default 语 句可省略。若语句i后不含break,继续执 行下一条语句i+1,不用判断常量表达式。 例3.14假设花店里有四种花:玫瑰(rose) 、 百合(lily)、康乃馨(carnation)和兰 花 (orchid),其单价分别是4.50、20.00、 2.00和6.00。编写程序,首先显示一个简易 菜单,将花店里有的花列出来,请用户选择 , 然后请用户输入要买的数量,计算用户应付 的费用并输出。#include “stdio.h“ void main() int kind,amount;double fee;

12、printf(“n# Welcome you! #“);/*显显示简简易菜单单 */printf(“nn“);printf(“n 1-rose.“);printf(“n 2-lily.“);printf(“n 3-carnation.“);printf(“n 4-orchid.“);printf(“nn“);printf(“nplease choose what you want buy:“); /*提示用户输户输 入买买花的品种 */scanf(“%d“,printf(“nplease enter amount you want buy:“); /*提示用户输户输 入买买花的数量 */sca

13、nf(“%d“,switch (kind) /*根据用户选户选 的种类类和数量计计算费费用 */case 1:fee=amount*4.50;break;case 2: fee=amount*20.00;break;case 3: fee=amount*2.00;break;case 4: fee=amount*6.00;break;default:printf(“error choose“);printf(“nplease pay your fee %.2lf:“,fee); /*输输出费费用 */注意: (1) case分支中的语句i后面的break语句一般 情况下不要省略,因为没有break语句,程序 不能跳出switch语句,而是执行下一条case语 句后面的语句,直到遇到break才能终止 switch的执行。 switch (s) case +:a=a+b;case - :a=a*b;break;case *:a=a-b;break;case /:a=a/b;break (2) 条件表达式和常量表达式的数据类型必须 一致,常量表达式中不能包含变量。实际上, switch语句的重点就在于如何构造条件表达式, 并让它的值正好能够匹配n

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

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

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