选择结构程序设计1.ppt_第1页
选择结构程序设计1.ppt_第2页
选择结构程序设计1.ppt_第3页
选择结构程序设计1.ppt_第4页
选择结构程序设计1.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 内容总结 w编写C语言程序的基本规则 wC语言程序的运行过程、VC的使用 w运算符、语句、标识符 w数据类型 wprintf(输出)、scanf(输入)的使用 wgetchar、putchar 的使用 printf和scanf的使用格式 格式: scanf(“格式控制”,地址表列) 格式: printf(“格式控制”,参数表列) 顺序结构、分支结构(选择)、循环 结构是C语言程序的基本结构 第二章 C语言程序的基本结构 2.1 2.1 分支结构分支结构 2.2 2.2 关系运算和逻辑运算关系运算和逻辑运算 2.3 2.3 循环结构循环结构 2.4 break2.4 break语句和语句和continuecontinue语句语句 第二章 C语言程序的基本结构 2.1 分支结构 w为什么需要分支结构 顺序结构只能解决一些简单的问题, 遇到需 要进行条件判断的问题,就必须采用分支 结构来处理。 w例: n个人所得税的计算 求三角形的面积(如果三个数不构成三角形 怎么办?) 2.1 分支结构 1 1、单分支结构、单分支结构 if (if (表达式表达式) ) 语句序列语句序列 表达式表达式 语句语句 真真( (非非0)0) 假假(0)(0) 例:例: x=1; y=2;x=1; y=2; if (xy) if (xy) t=x;x=y;y=t; t=x;x=y;y=t; 2 2、双分支结构、双分支结构 if (if (表达式表达式) ) 语句序列语句序列1 1 elseelse 语句序列语句序列2 2 表达式表达式 语句语句2 2 真真( (非非0)0)假假(0)(0) 语句语句1 1 反首页 例:例: 1. 1. if (ab)if (ab) x=a; x=a; else else x=b; x=b; 2. if (x=0)2. if (x=0) printf(“%.3fn“, x); printf(“%.3fn“, x); else else printf(“%.3fn“, -x); printf(“%.3fn“, -x); 3 3、多分支结构(、多分支结构(ifif语句嵌套)语句嵌套) if (if (表达式表达式1)1) 语句语句1 1 else if (else if (表达式表达式2)2) 语句语句2 2 else if ( else if (表达式表达式3)3) 语句语句3 3 else if (else if (表达式表达式n)n) 语句语句n n else else 语句语句n+1n+1 例:分段函数例:分段函数 x x 2x-12x-1 3x+53x+5 (xb)if (ab) t=a; t=a; a=b; a=b; b=t; b=t; if (a+bc *(a+b+c); area= area=sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c); printf(“areaprintf(“area=%.2fn“, area);=%.2fn“, area); elseelse printf(“Itprintf(“It is not a trilateral!n“); is not a trilateral!n“); 3 3、表达式后面不能有任何标点符号表达式后面不能有任何标点符号!每个语句都要以每个语句都要以“;” 结束结束,分号是语句的一部分。,分号是语句的一部分。 4 4、elseelse只能与只能与ifif配对使用配对使用。仅。仅elseelse本身不能单独作为一个语句使本身不能单独作为一个语句使 用。用。 if (x5)if (x5); ; y=x; y=x; elseelse y=2*x-1; y=2*x-1; if (x5)if (x5) ; ; y=x;y=x; elseelse y=2*x-1; y=2*x-1; 将出现语法错误将出现语法错误 复合语句的复合语句的花括号后不能再写分号花括号后不能再写分号。复合语句在语法上。复合语句在语法上 是一个整体,相当于一个语句。是一个整体,相当于一个语句。 w例1、输入一个字符,并输出。其中有一个 条件是如果该字符是小写的英文字母,则 需把它转换成大写字母再输出。 #include void main() char ch; scanf(“%c”, if (ch=a x=y;y=t; t=x;x=y;y=t; 2 2、双分支结构、双分支结构 if (if (表达式表达式) ) 语句序列语句序列1 1 elseelse 语句序列语句序列2 2 关于关于if if语句的说明语句的说明: 1 1、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在C C语言语言 中它也中它也可以是任意的数值表达式可以是任意的数值表达式。 if (3)if (3) n=1; n=1; if (a)if (a) printf(“%dprintf(“%d“, a);“, a); if (n=3-3)if (n=3-3) x=1; x=1; elseelse x=-1; x=-1; 2 2、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句, 但要但要用花括号括起来用花括号括起来构成复合语句构成复合语句。 if (ab)if (ab) t=a; t=a; a=b; a=b; b=t; b=t; if (a+bc *(a+b+c); area= area=sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c); printf(“areaprintf(“area=%.2fn“, area);=%.2fn“, area); elseelse printf(“Itprintf(“It is not a trilateral!n“); is not a trilateral!n“); 3 3、表达式后面不能有任何标点符号表达式后面不能有任何标点符号!每个语句都要以每个语句都要以“;” 结束结束,分号是语句的一部分。,分号是语句的一部分。 4 4、elseelse只能与只能与ifif配对使用配对使用。仅。仅elseelse本身不能单独作为一个语句使本身不能单独作为一个语句使 用。用。 if (x5)if (x5); ; y=x; y=x; elseelse y=2*x-1; y=2*x-1; if (x5)if (x5) ; ; y=x;y=x; elseelse y=2*x-1; y=2*x-1; 将出现语法错误将出现语法错误 复合语句的复合语句的花括号后不能再写分号花括号后不能再写分号。复合语句在语法上。复合语句在语法上 是一个整体,相当于一个语句。是一个整体,相当于一个语句。 上机注意事项 w =和=的区别 w a=1) ; 例例2.2 2.2 输入输入3 3个数个数a a,b b,c c,按由小,按由小到大的顺序输出。到大的顺序输出。 输入输入a , b, ca , b, c ab?ab? a ab b ac?ac? bc?bc? a ac c b bc c 输出输出a, b, ca, b, c 是是 是是 是是 否否 否否 否否 #include void main( )void main( ) intint a,b,c,t; a,b,c,t; scanf(“%d%d%d“, ); if (ab) if (ab) t=a; a=b; b=t; t=a; a=b; b=t; if (ac) if (ac) t=a; a=c; c=t; t=a; a=c; c=t; if (bc) if (bc) t=b; b=c; c=t; t=b; b=c; c=t; printf(“%d,%d,%dnprintf(“%d,%d,%dn“, a, b, c);“, a, b, c); Ex4_3.c 二、二、ifif语句的嵌套语句的嵌套 在在ifif语句的原语句的原“语句语句”中又包含一个或多个中又包含一个或多个ifif语句语句 1. 1. if ( if (表达式表达式1)1) if (if (表达式表达式2) 2) 语句语句 2. 2. if ( if (表达式表达式1) 1) 语句语句1 1 else else if (if (表达式表达式2) 2) 语句语句2 2 3. 3. if ( if (表达式件表达式件1) 1) 语句语句1 1 else else if (if (表达式表达式2) 2) 语句语句2 2 else else 语句语句3 3 4. 4. if if ( (表达式表达式1)1) if if ( (表达式表达式2) 2) 语句语句1 1 elseelse 语句语句2 2 二义性?二义性? 语言规定:语言规定:elseelse总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的if if配对。配对。 if (if (表达式表达式1)1) if ( if (表达式表达式2) 2) 语句语句1 1 else else 语句语句2 2 if (if (表达式表达式1)1) if ( if (表达式表达式2) 2) 语句语句1 1 elseelse 语句语句2 2 例例2.4 2.4 编程求解函数:编程求解函数: -1-1 0 0 1 1 (x0)(x0) y=y= 程序程序1 1: if (x=0) if (x=0) if (x0) y=1; if (x0) y=1; else y=0; else y=0; else y=-1;else y=-1; y=-1 y=0y=1 x=0x=0 x0x0 真假 真假 eg502.c if (x0) y=1;if (x0) y=1; 程序程序3 3: y=-1;y=-1; if (x!=0)if (x!=0) if (x0) y=1; if (x0) y=1; else y=0; else y=0; y=y=- -1 1 x!=0x!=0 x0x0 y=1y=0 真 真 假 假 -1-1 0 0 1 1 ( (x=0x=0) ) ( (x0)(x0) y=y= 改正程序改正程序3 3: y=-1;y=-1; if (x!=0)if (x!=0) if (x0) y=1; if (x0) y=1; else y=0;else y=0; y=-1 x!=0 x0 y=1 y=0 真 真 假 假 x x 2x-12x-1 3x+53x+5 (x=1 if(x=10) y=3*x+5; 有时必须用 if 嵌套解决 求二次方程ax2+bx+c=0 的根 if语句的嵌套要完全嵌套 if(表达式1) if(表达式1) else 语句序列; else 语句序列; 不可以是: if(表达式1) if(表达式1) else 语句序列; else 语句序列; if语句的使用格式简单,但要把实际生活中的问题转化有 时不简单 小提示: 例如: a能被2整除; a是奇数; 是3的倍数;a是大写 字母或小写字母等等; 三、 switch(多分支)语句 switchswitch语句是多分支选择结构。多分支选择结构可以用语句是多分支选择结构。多分支选择结构可以用if if 语语 句的嵌套来实现。句的嵌套来实现。 1 1、格式:、格式: switchswitch( (表达式表达式) ) casecase 常量表达式常量表达式1 1: 语句语句1;break;1;break; casecase 常量表达式常量表达式2 2: 语句语句2;break; 2;break; casecase 常量表达式常量表达式n n: 语句语句n;breakn;break; ; defaultdefault: 语句语句 n+1n+1 2 2、功能功能: 先计算表达式的值,测试该 先计算表达式的值,测试该 值是否与某常量表达式的值相同值是否与某常量表达式的值相同 、若有相同者,流程转向其后若有相同者,流程转向其后 面的语句执行面的语句执行 、若无,再看有没有若无,再看有没有defaultdefault部部 分:分:若有若有defaultdefault,则执行其后面则执行其后面 的语句;若无的语句;若无defaultdefault,则,则switchswitch 语句什么也不做,流程转向其后语句什么也不做,流程转向其后 继语句。继语句。 说明:说明: 1 1、switchswitch后面括号内的表达式可以是后面括号内的表达式可以是整型整型,也可以是,也可以是字符型字符型 2 2、各个、各个casecase后常量表达式的值必须互不相同;后常量表达式的值必须互不相同; 3 3、各个、各个casecase和和defaultdefault的出现次序不影响执行结果的出现次序不影响执行结果; ; 4 4、如果没有、如果没有breakbreak语句执行完一个语句执行完一个casecase后面的语句后,流程控后面的语句后,流程控 制转移到下一个制转移到下一个casecase继续执行继续执行 void main ( )void main ( ) intint x, y ; x, y ; scanf(“%dscanf(“%d“, “, switch(x) switch(x) case 1 : y=10; case 1 : y=10; printf(“%dnprintf(“%dn“, y) ;“, y) ; case 2 : y=20; case 2 : y=20; printf(“%dnprintf(“%dn“, y) ;“, y) ; case 3 : y=30; case 3 : y=30; printf(“%dnprintf(“%dn“, y) ;“, y) ; default : y=0; default : y=0; printf(“%dnprintf(“%dn“, y) ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论