第二章 程序基本结构.ppt_第1页
第二章 程序基本结构.ppt_第2页
第二章 程序基本结构.ppt_第3页
第二章 程序基本结构.ppt_第4页
第二章 程序基本结构.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/7/26,C语言编程,1。第2章程序基本结构,2.1关系和逻辑运算,2.2分支结构,2.3循环结构,2.4中断和继续语句,2.5 goto语句,2.6经典算法示例,2020/7/26,C语言编程,2.2.1关系和逻辑运算,2.1.1关系运算符和关系=描述:1。优先级:前四个相同,后两个相同,但前四个高于后两个;所有关系运算符的优先级都低于算术运算符,而高于赋值运算符。2.绑定:从左到右,ab-c,a (b-c),a=b=c,a=(b=c),a=b!=c,a=(b!=c),2020/7/26,C语言编程,3,2,关系表达式,使用关系运算符连接两个表达式。连接表达式可以是算术表达式、关系

2、表达式、逻辑表达式、赋值表达式或字符表达式。例如:a bc d,xy=c d,aA,关系表达式的值只能是1或0,当表达式为真时,该值为整数1;否则,它为“假”,值为整数0。因此,它可以被视为一个整数表达式。假设a=3,b=2,c=13,如果找到以下关系表达式的值:AB (AB)=C ABC F=AB=C,1,1,0,1,2020/7/26,C语言编程,4,2.1.2逻辑运算符和逻辑表达式,I!#包括void main() int a,b,temp打印(输入a,b :);扫描频率(%d%d,/*输出*/从小到大。示例2.1的C语言程序如下:复合语句:在相同条件下作为一个整体执行的多个语句。示例2

3、.2输入三个数字x1、x2和x3,并从小到大输出这三个数字。#包括main() int x1,x2,x3,tempScanf (%d% d% d ,输入:3 5 1输出:1,3,5,2020/7/26,C语言编程,16,2.2.2双分支结构,示例2.3:输入两个整数并输出较大的一个。算法:S :输入两个整数A,b S2:如果是ab,输出A,否则输出B,C语言单分支结构:if(表达式)语句1;Else语句2。2020/7/26,C语言编程,17,一般形式:if(表达式)语句1 else语句2,流程图:2020/7/26,C语言编程,18,示例2.3,输入两个整数,输出较大的一个。N-S流程图,#

4、包括主()int x1,x2;Scanf (%d% d ,2020/7/26,C语言编程,19,2.2.3多分支结构,一般形式:流程图:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式n)但它也可以是C语言中的任何数字表达式。如果(3)n=1;如果(a) printf(%d,a);如果(n=3-3)x=1;否则x=-1;2.表达式后面不能有标点符号!否则只能与if配对。只有其他东西本身不能单独用作陈述。if(X5);y=x;否则y=2 * x-1;if(X5);y=x;否则y=2 * x-1;会有语法错误,2020/7/26,C

5、语言编程,21,4,每个语句序列可以是一个语句或几个语句,但应该用花括号括起来形成一个复合语句。如果(ab)t=a;a=b;b=t。如果(bc,您不能在复合语句的花括号后写分号。复合语句在语法上是一个整体,相当于一个语句。2020/7/26,C语言程序设计,22,2 . 2 . 4 if语句的嵌套,包括一个或多个if语句在if语句的原始“语句”中,1。if(表达式1) if(表达式2)语句,2。if(表达式1)语句1 else if(表达式2)语句2,3。if(表达式1)语句1 else if(表达式2)语句2 else语句3,4。if(表达式1) if(表达式2)语句1 else语句2,歧义

6、?这种语言规定,else总是与它前面最近的不成对if配对。,if(表达式1) if(表达式2)语句1 else语句2,if(表达式1) if(表达式2)语句1 else语句2,2020/7/26,C语言编程,23,例如,(P269,6)输入3个数字来判断形成什么类型的三角形,if(a)b)C else if(x=0)y=0;否则y=1;程序2:如果(x=0)如果(x0)y=1;否则y=0;否则y=-1;程序3:y=-1;if (x!=0)如果(x0)y=1;否则y=0;校正程序3:y=-1;if (x!=0)如果(x0)y=1;否则y=0;2.5求二次方程ax2 bx c=0 A的根,B和C用

7、键盘输入。#包括float a、b、c、d、x1、x2、realpart、imagpart。scanf(%f%f%f ,a、b、c);if(fabs(a)1e-6),x1=(-b sqrt(disc)/(2 * a);x2=(-b-sqrt(圆盘)/(2 * a);printf(“具有不同的实根:%f,%fn”,x1,x2);否则real part=-b/(2 * a);image part=sqrt(-disc)/(2 * a);printf(“% f % fin”,realpart,imag part);prit nf(“% f-% fin”,realpart,imag part);202

8、0/7/26,C语言编程,27,1,条件运算符:(C语言中唯一的三项式运算符)的优先级高于赋值类,右组合,2。条件表达式的一般形式:表达式1?表达式2:表达式3,运算过程:首先求表达式1的值,如果为真(不是0),则求表达式2的值,整个表达式的值就是表达式2的值;如果表达式1为假(0),则获得表达式3的值,并且整个表达式的值是表达式3的值。例如:x=ab?a : b 1;x=(ab)?a :(b 1);如果(ab)x=a;否则x=B1;ab? cd?c : d,ab?a : (cd?C : d),2。条件运算符,2020/7/26,C语言编程,28,3,表达式2和表达式3可以是数值表达式,或者赋

9、值表达式可以通过函数ab获得?(a=100):(b=100) ab?Printf (%dn ,a) : printf (%dn ,b),4。当三个表达式的类型不一致时,条件表达式的类型表示为表达式2和表达式。例如xy?1:1.5,2。条件运算符,2020/7/26,C语言编程,29。示例2.6:输入一个字符,如果是大写字母,它将被转换为小写,如果不是,它将不会被转换。最后输出。#包括main()char ch;Scanf (%c ,*/,2020/7/26,c语言编程,30,3,switch语句,switch结构和else if结构是多分支选择的两种形式。否则如果:多条件并行测试,选择一个开关

10、:单条件测试,选择一个结果执行,2020/7/26,C语言编程,31,1,格式:开关(表达式)事例常量表达式1:语句1事例常量表达式2:语句2事例常量表达式n:语句n默认值:语句n 1,2。函数:首先计算表达式的值,并测试它是否与常量表达式的值相同。如果相同,流程将转到以下语句执行。如果不是,请查看是否有默认零件。如果有默认值,请执行以下语句。如果没有缺省值,switch语句什么也不做,流程转到它的后续语句。描述:1 .开关后括号中的表达式可以是整数或字符类型2。每个事例后的常量表达式的值必须互不相同;3.每个案例和违约的发生顺序不影响执行结果;4.当case后的语句是复合语句时,可以省略花括

11、号;示例2.7 void main () int x,y;在scanf(%d、和case)之后,常量表达式仅起语句标签的作用,并且通常在每个case之后都有一个断点,这使得流程跳出switch语句,否则流程进入下一个case(默认)继续执行;eg503.c,2020/7/26,C语言编程,33.6,多种情况下可以共享一组执行语句;案例6 :案例7 : printf(Resetn);打破;但不能写成:case 6,7: printf(Resetn);打破;7.switch语句可以嵌套;但是,当有多层switch语句时,break只能退出该层的switch语句体;2020/7/26,C语言程序设计

12、,34,程序示例:见教科书45,#包括主()整数分数,临时;printf(“输入分数:”);扫描(“%d”)、开关(温度)盒10:盒9:打印(“% A”);打破;案例8: printf(“B”);打破;案例7: printf( C );打破;第6:号案件:打破;默认值: printf(“E”);2020/7/26,C语言编程,35,2.3循环结构2.3.1,循环推导,示例2.8:编程计算1 23 100,2020/7/26,C语言编程,36,通用格式:while(表达式)语句;或一系列while(表达式)语句;2.3.2,正型循环,2020/7/26,C语言编程,37,示例2.8 #包含无效主

13、()int I=1,sum=0;而(I=100)sum=sum I;I .printf(“% d”,总和);描述:运算符的功能是将1添加到整数变量中。我的意思是第一个值加1;我的意思是先加1,然后取1的值。右绑定情况:int a=3,b;b=a;b=a;a=?b=?5,5,2020/7/26,C语言编程,38,示例2.9:输入一个字符,如果是大写字母,它将被转换为小写字母,如果不是,它将不会被转换。输入“0”结束程序。#包括void main()char ch;而(ch=getchar()!=0) ch=(ch=A,2020/7/26,C语言编程,39,通用格式:do语句序列;而(表达式);2

14、.3.3,直到类型循环do-while,示例2.10设计一个菜单。(参见教科书P49案例2.13),主()int x;请执行printf操作(“* * * * * * * * * * * * * * * * * * * n”);学生成绩管理系统;printf(=n );printf(1。为学生成绩输入“N”);printf(2。平均得分统计n”);printf(3。学生成绩调查;printf(4。学生成绩的修订;printf(0。系统出口n”);printf(“* * * * * * * * * * * * * * * * * * * n”);scanf(%d ,while(x!=0),202

15、0/7/26,C语言编程,41,while和do-while循环之间的比较,main() int sum=0,I=1;而(I=100)sum=sum I;I .printf (sum=%dn ,sum);main() int sum=0,I=1;/scanf (%d ,seek 1 2 3 100,2020/7 26,C语言编程,42,一般形式:for(表达式1;表达式2;表达式3)语句,执行过程:(1)求解表达式1 (2)求解表达式2,如果其值为真(其值不是0),执行循环体,并转到(3)。如果为假(值为0),结束循环并转到(5)。(3)求解表达式3 (4)返回并执行(2) (5)结束循环,并执行以下语句:for语句,2.3.4,for循环,2020/7

温馨提示

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

评论

0/150

提交评论