C 程序设计基础 第2章 程序控制结构

上传人:E**** 文档编号:89391541 上传时间:2019-05-24 格式:PPT 页数:68 大小:1.45MB
返回 下载 相关 举报
C 程序设计基础 第2章 程序控制结构_第1页
第1页 / 共68页
C 程序设计基础 第2章 程序控制结构_第2页
第2页 / 共68页
C 程序设计基础 第2章 程序控制结构_第3页
第3页 / 共68页
C 程序设计基础 第2章 程序控制结构_第4页
第4页 / 共68页
C 程序设计基础 第2章 程序控制结构_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《C 程序设计基础 第2章 程序控制结构》由会员分享,可在线阅读,更多相关《C 程序设计基础 第2章 程序控制结构(68页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 程序控制结构 2.1 顺序结构 2.2 选择结构 2.3 循环结构 2.4 控制转向语句 2.5 程序实例,2,按照语句出现的先后顺序依次执行。,2.1 顺序结构,3,2.1.1 定义语句,说明语句 在C+程序中,一个标识符(变量名、常量名、函数名、对象名等)在使用之前必须先定义,通知编译器为其分配存储空间,或告诉编译器它的存在及其特征。 例如: int a=0,b=3; const double pi=3.14159; int sum(int,int); float score 503;,4,2.1.2 表达式语句,形式: ; 可以进行的操作通常包括赋值操作,复合赋值操作,增量、

2、减量操作,函数调用操作和输入输出操作。 例如:,i+; -j; abs(x); coutij;,sum=a+b; a=b=c; i=1,j=2; b*=c;,5,2.1.3 复合语句,形式: 作用:当程序中某个位置在语法上只允许一条语句,而在语义上要执行多条语句才能完成某个操作时,需要使用复合语句。,例如: if(x=0) couta; coutb; ,6,2.1.4 空语句,形式: ; 作用: 当程序中某个位置在语法上需要一条语句,而在语义上又不 要求执行任何动作时,可放上一条空语句。 一般适用于在循环语句中做空循环体 例如:,for (m = 0; m1000; m+) ;,7,2.1.5

3、 基本输入输出,在C+中,所有输入输出是通过输入输出流来实现的。 在C+中,将数据从一个对象到另一个对象的流动抽象为“流”。在iostream库中包含一个标准输入流对象cin和一个标准输出流对象cout,分别用来实现从键盘读取数据,以及将数据在屏幕上输出。 要使用cin和cout,需要在C+程序开头加上如下包含命令: #include / 新标准中的头文件名 using namespace std; / 引入std名字空间中的标识符,8,1. 标准输入流cin,cin负责从键盘读取数据,使用提取运算符“”就可以将键盘键入的数据读入到变量中。 语法格式: cin变量1变量2变量n; 变量可以是任

4、意数据类型,输入时各个数据之间用空格键、Tab键或Enter键分隔。 例如: int a,b; cinab; 键盘上输入:9 3,9,键盘,3,键盘,9,2. 标准输出流cout,负责将数据输出到屏幕上,使用插入运算符“”就可以将数据显示在屏幕上当前光标所在位置。 语法格式: cout表达式1表达式2表达式n; 表达式可以是任意类型的,数据输出的格式由系统自动决定。,10,11,12,【例2.1】 cout应用示例,#include using namespace std; int main() int m=2,n=8; double pai_1=3.14159265; float pai_2

5、=3.141f; char ch1=A,ch2=B; bool ok=true; cout“m=“mendl; cout“n=“nendl; cout“pai_1=“pai_1“ , pai_2=“pai_2endl; cout“ch1=“ch1“ , ch2=“ch2endl; cout“ok=“okendl; cout“!ok=“!okendl; return 0;,图2.2 cout应用示例,13,【例2.2】 使用格式控制符输出数据,#include #include using namespace std; int main() int a=35; double b=12.34567

6、89; cout“1234567890123“endl; coutdeca hexa octaendl; coutbendl; coutsetprecision(4)bendl; coutsetw(10)bendl; coutsetw(10)setfill(#)bendl; coutsetiosflags(ios:scientific)bendl; coutsetprecision(3)bendl; coutsetprecision(2)bendl; return 0; ,14,2.2 选择结构,按照给定条件有选择地执行程序中的语句 C+中: if语句:实现n分支,要求n个表达式。 switc

7、h语句:实现多分支,只用1个表达式。,15,2.2.1 if语句,1if语句(单分支) 语法格式: if(表达式) 语句 说明: (1)表达式是任意的数值、字符、关系、逻辑表达式,它表示条件,以true(非0)表示真,false(0)表示假。表达式必须用圆括号括起来。 (2)内嵌语句,可以是单条语句,或复合语句。,执行顺序,16,7,3,7,7,3,【例2.3】输入两个整数a和b,按从小到大的顺序输出这两个数。,分析 若ab,则将a、b交换,否则不交换。两数交换可采用借助于第三个变量间接交换的方法,if(ab) t=a;a=b;b=t;,17,#include using namespace

8、std; int main() int a,b,t; coutab; if(ab) t=a;a=b;b=t; coutabendl; return 0; ,a=a+b;b=a-b;a=a-b;,a=a+b;b=a-b;a=a-b;,18,2if- else语句(双分支),if(表达式) 语句1 else 语句2,19,【例2.4】输入一个年份,判断是否为闰年。,分析 闰年的年份可以被4整除而不能被100整除,或者能被400整除。,#include using namespace std; int main() int year; coutyear; if(year%4=0 ,20,3if- e

9、lse if 语句(多分支),if(表达式1) 语句1 else if(表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,21,【例2.5】根据x的值,计算分段函数y的值。y的计算公式为:,22,#include #include using namespace std; int main() double x,y; coutx; if(x0) y=fabs(x); else if(x10) y=exp(x)*sin(x); else if(x20) y=pow(x,3); else y=(3+2*x)*log(x); cout“y=“yendl; return

10、0; ,图2.10 计算分段函数,23,4if语句的嵌套形式,if或else后面的内嵌语句本身又是一个if语句 例如:,if (表达式1) if (表达式2) 语句1 else 语句2 else if (表达式3) 语句3 else 语句4,24,(1) 为了增强程序的可读性,建议采用锯齿型的书写形式。 (2) if语句嵌套时,else子句总是与在它前面、距它最近、且尚未匹配的if配对。 (3)为明确匹配关系,避免匹配错误,建议将内嵌的if语句一律用“ ”括起来。,if(x0) if(y0) cout“x与y均大于0“; else cout“x大于0,y小于等于0“;,注意:,如何使之与第一个

11、if配对?,25,【例2.6】从键盘上输入两个字符,比较其大小,输出大于、等于和小于的判断结果。,#include using namespace std; int main() char ch1,ch2; coutch1ch2; if(ch1!=ch2) if(ch1ch2) coutch1“大于“ch2endl; else coutch1“小于“ch2endl; else coutch1“等于“ch2endl; return 0; ,26,2.2.2 switch语句,switch (表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语

12、句n default: 语句序列n+1 ,注意:表达式只能是整型、字符型或枚举型,27,28,【例2.7】将输入的百分制成绩按以下规定转换成相应的等级:,成 绩 等级 10090 优秀 8980 良好 7970 中等 6960 及格 590 不及格,29,#include using namespace std; int main() float score; coutscore; if(score=0 ,共用同一个语句组,思考:若省去break语句,情况会怎样?,30,2.3 循环结构,按照给定规则重复地执行程序中的语句,2.3.1 while 语句,while (表达式) 语句,循环条件,

13、其值为true(非0)、false(0),循环体,31,【例2.8】求 1+2+3+100,#include using namespace std; int main() int i(1),sum(0); /定义变量,初始化 while(i=100) /构造循环 sum+=i; / 循环体,多次执行 i+; cout“sum=“sumendl; return 0; ,0,1,1,2,真,3,3,真,6,4,真,10,5,真,真,100,真,101,真,5050,假,sum5050,1,2,3,3,6,4,100,5050,101,循环结束!,实际上是将i不停地累加到一起,32,【例2.9】求

14、出满足不等式的最小n值:,#include using namespace std; int main() int i=0; double s=0; while(s5) s+=double(1)/+i; cout“n=“iendl; return 0; ,33,2.3.2 do-while语句,do 语句 while (表达式);,34,【例2.10】 求自然数1100之和,要求用do-while语句实现。,#include using namespace std; int main() int i(1),sum(0); do sum+=i; i+; while(i=100); cout“su

15、m=“sumendl; return 0; ,int i(1),sum(0); while(i=100) sum+=i; i+; ,循环体和条件表达式都相同,35,while(12) cout2); / 输出一行文字信息,注意: dowhile首先执行循环体,然后再判断表达式,至少执行一次循环体。当第一次循环表达式的值为真时,while与dowhile的结果完全一样,否则结果不相同。,36,【例2.11】输入一个自然数,将该数的每一位数字按反序输出。例如:输入12345,输出54321。,#include using namespace std; void main() unsigned long int num,digital; coutnum; do digital=num%10; num/=10; cout0); coutendl; ,37,for(表达式1;表达式2;表达式3 ) ,表达式2,执行,非0,0,退出 循环,表达式1,表达式3,表达式1; while(表达式2) ; 表达式3; ,2.3.3 for 语句,38,【例2.12】求自然数1100之和,要求用for语句实现。,#include using namespace std; int main() int

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

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

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