C程序设计(第四版)(谭浩强编)教程-第4章 选择结构程序设计_第1页
C程序设计(第四版)(谭浩强编)教程-第4章 选择结构程序设计_第2页
C程序设计(第四版)(谭浩强编)教程-第4章 选择结构程序设计_第3页
C程序设计(第四版)(谭浩强编)教程-第4章 选择结构程序设计_第4页
C程序设计(第四版)(谭浩强编)教程-第4章 选择结构程序设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、C 程序设计选择结构8/12/2022C programming Part2 数据类型,运算符和表达式1 选择结构和条件判断生活中的条件判断场景:如果明天是晴天,我们去爬大蜀山。如果电机转速超过s1,则制动设备开始工作。如果实验结果正确,则进行下一实验,否则,修正参数后重复实验。一般判断过程:如果(条件)则 动作1否则 动作2对应C语言的if语句(如图):if(表达式)语句1else 语句2课后阅读86页例【4.1求一元二次方程的根】if语句实现选择结构【例】输入两个整数,输出其中的大数。 #include int main() int a, b; printf(input two numbe

2、rs: ); scanf(%d%d,&a,&b); if(ab) printf(max=%dn,a); else printf(max=%dn,b);if语句实现选择结构【例】判别键盘输入字符的类别 。 #includestdio.hint main() char c; printf(input a character: ); c=getchar(); if(c=0&c=A&c=a&c y)/* y为x和y的较大值 */ y = x;if (x y)/* d为x和y之间的距离 */ d = x - y;else d = y - x;if (x y);/* 合法,但没有实际操作 */if语句的嵌

3、套if语句的各子句都可以又是if语句应注意if-else的配对关系else总是与其上面最近的if配对可以用明确if-else的配对关系if(exp1)if(exp1) if(exp2) if(exp2) 语句1 语句1elseelse 语句2 语句2 例:#include int main()int result;printf(“input your score:”);scanf(“%d”,&result);if (result = 45) printf(Passn); else printf(Failn); 续上例:if语句中的复合语句如果if或者else分支中有多个语句,注意使用大括号,

4、即复合语句。if (result = 45) printf(Passedn); printf(“Congratulations!n) else printf(Failedn); printf(“Good luck !n); if语句嵌套if (result = 75) printf(Passed: Grade An); else if (result = 60) printf(Passed: Grade Bn); else if (result = 45) printf(Passed: Grade Cn); else printf(Failedn); 关系运算符 (Relational Ope

5、rators)运算符名称举例优先级(算术运算符)小于i100高=小于等于a大于f3.14=大于等于c=a=等于a=b低!=不等于x!=0(赋值运算符)关系表达式用关系运算符将两个表达式连接起来a+bc+d, (a=3)x注意区分等于(=)和赋值运算符(=)a=b, a=b关系表达式的值是逻辑值“真”或“假”C语言用整型表示逻辑值,“真”1、“假”0举例,a=3, b=2, c=1;d=ab;/* d=1 */f=abc;/* f=(ab)c 值为零 */逻辑运算符 (Logical Operators)运算符名称举例优先级!逻辑非!(ab)(算术运算符)(关系运算符)&逻辑与(xy)&(yz)

6、|逻辑或(x3)|(xb)&(n=cd)De Morgan定理!(a&b)(!a)|(!b)!(a|b) (!a)&(!b)!(a&b)|c) (!a|!b)&!c逻辑型变量(c99) 类型标识符: _Boolstdbool.h头文件中,把bool定义为该类型的别名 #define bool _Bool同时定义:#define true 1#define false 0 例:p96【注】在不支持c99标准的编译器上(如VC+6.0)不能使用。例 #include int main()_Bool b;b=2000;printf(hex:%04x,decimal:%dn,b,b);结果: hex:

7、0001,decimal:1(linux系统,gcc编译。)条件运算符 (Conditional Operator)条件运算符?:条件表达式exp1?exp2:exp3先判断exp1若exp1为“真”,表达式的值为exp2的值若exp1为“假”,表达式的值为exp3的值举例,max = (xy) ? x : y;同:if(xy) max = x;else max = y;分支程序设计举例求一元二次方程的根当a=0时,不是一元二次方程当a0时,方程的根为当b2-4ac0,方程有两个实根当b2-4ac0,方程有两个共轭复根例1:求一元二次方程的根switch语句switch (表达式) case

8、const-exp: 语句scase const-exp: 语句s. .case const-exp: 语句sdefault: 语句sswitch语句的说明先求switch后表达式的值,若此值与某个case后的常量表达式的值相等,则跳转到这个case后的语句;若没有相等的常量表达式,则跳转到default跳转后程序一直往下执行,不会因为遇到另一个case而直接跳出switch根据实际需要,可以没有default若需要跳出switch,可使用break语句case和default的顺序不影响执行结果switch语句举例 (1)switch (day) /* 打印星期的缩写 */ case 1:

9、printf(Mon.n); break; case 2: printf(Tue.n); break; case 3: printf(Wed.n); break; case 4: printf(Thu.n); break; case 5: printf(Fri.n); break; case 6: printf(Sat.n); break; default:printf(Sun.n); switch语句举例 (2)switch (deptno) /* 根据系编号打印学院 */ case 15: case 16: case 17: printf(商学院n); break; case 18: ca

10、se 25: printf(人文学院n); break; case 7: printf(地空学院n); break; default: printf(其他学院n); 错误的例子int a = 10; int b = 10; int c = 20; switch ( a ) case b: /* Code */ break; case c: /* Code */ break; default: /* Code */ break; / 【注】 case之后需要用常量表达式!switch语句例#include void playgame(); void loadgame(); void playmu

11、ltiplayer(); int main() int input; printf( 1. Play gamen );printf( 2. Load gamen );printf( 3. Play multiplayern );printf( 4. Exitn );printf( Selection: );scanf( %d, &input ); switch ( input ) case 1: playgame(); break; case 2: loadgame(); break; case 3: playmultiplayer(); break; case 4: printf( Than

12、ks for playing!n ); break; default: printf( Bad input, quitting!n ); break; return(0); 作业9月27日 书面homework:P111:1,2,3上机Labwork:实验指导 P97:3(2,4,5,6),4,5P104 : 2,4上机问题错误if语句的复合语句分支:例子:if(ab) printf(“ a is biggern”); printf(“ b is smallern);else printf(“ b is biggern”); printf(“ a is smallern);错误:分支中含一个语句以上要加大括号 -复合语句C程序的缩进格式对于函数,选择,循环控制,在进入下级的程序段时,为了使结构清晰,一般将下级的程序段向后缩进一段位置。清楚的定义一个块的开始和结束,建议使用一个TAB位置(或者几个空格)进行缩进 int function()程序块if(.)程序块else程序块for(.)程序块 indent格式化之前后对比#includeintmain ()

温馨提示

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

评论

0/150

提交评论