第4章程序程控制_第1页
第4章程序程控制_第2页
第4章程序程控制_第3页
第4章程序程控制_第4页
第4章程序程控制_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 程序流程控制 内容提要n本章主要介绍c语言提供的各种程序流程控制结构n包括选择结构n循环结构n其他转移控制语句。通过本章学习n重点进行程序设计能力的训练,能编制完整的较为复杂的程序。结构化程序设计的概念 n结构化程序设计方法就是只采用3种基本的程序控制结构来编制程序,从而使程序具有好的结构。这3种基本结构就是顺序结构、选择结构和循环结构,见图4-1。顺序结构n如图4-1(a)所示,s1和s2是一条语句或一个语句序列。在顺序结构中,s1和s2被依次执行,即只有当s1执行完成之后才执行s2。n前3章中编制的简单程序,采用的都是顺序结构。这些程序在执行时,总是从第一个语句开始,顺序执行各个语

2、句,直到所有的语句都执行完,程序运行结束。选择结构n如图4-1(b)所示。程序执行到选择结构时,首先对条件进行判断,当条件成立或不成立时分别执行s1或s2,二者择其一。n不管执行哪一个语句序列,执行结束后,控制都转移到同一出口的地方。采用选择结构,可以使程序不是仅解决某一个问题,而是可解决某一类问题,编制这样的通用程序,可以收到事半功倍的效果。循环结构 n如图4-1(c)所示。程序执行到循环结构时,将会判断循环的条件是否成立。如果循环条件成立,将反复执行语句序列s1(也称循环体),直到条件不成立时终止循环,控制转移到循环体外,继续执行后续的部分。n采用循环结构,可以大大减少编程的复杂性和工作量

3、,用较短的程序完成大量的处理工作。计算机算法的一个重要特点,就是将一个复杂的问题变成简单问题的多次重复。 选择结构n用if-else语句构成二分支选择结构 n用if-else语句构成多分支选择结构 n用条件表达式实现的选择结构 n用switch语句构成多分支选择结构 n用switch和break联合构成多分支选择结构 循环结构 n for循环 nwhile循环 ndo-while循环 n循环的嵌套 转移控制语句 nbreak语句 ncontinue语句在循环结构中的作用 ngoto语句和标号 本章总结n本章应掌握结构化程序设计的3种基本程序控制结构。n在深入理解各种选择结构和循环结构执行流程的

4、基础上,正确使用if语句组织二分支选择结构;用嵌套if、if-else if-else或switch语句组织多分支选择结构n用for语句、while语句、do-while语句及其嵌套形式组织循环结构,并解决一些简单的实际问题。n本章的难点是:选择结构和循环结构中测试表达式的正确构造和使用;选择结构和循环结构中空语句和复合语句的使用;switch选择结构和各种循环结构中转移控制语句break和continue的使用。 本章习题n一、选择题n1. 结构化程序设计使用的基本程序控制结构为_。na. 模块结构、选择结构和递归结构 b. 条件结构、顺序结构和过程结构nc. 顺序结构、选择结构和循环结构

5、d. 转移结构、嵌套结构和递归结构n2. 若要求在if后一对圆括号中表示a不等于0的关系,下列能正确表示这一关系的表达式是_。na. a0 b. !a c. a=0 d. an3. 下面的程序_。n main()n int x=3,y=0,z=0;n if (x=y+z) printf(*);n else printf(#);n na. 有语法错误,不能通过编译nb. 输出*nc. 可以通过编译,但不能通过连接,因而不能运行nd. 输出# 本章习题n4. 下面的程序运行时,若从键盘输入3和4,则输出为_。n main()n int a,b,s;n scanf(%d%d,&a,&

6、b);n s=a;n if (s5) printf(%dn,a);n else printf(%dn,a-);n na. 7 b. 6 c. 5 d. 4本章习题n6. 若所有变量均已正确定义,下列程序段运行后x的值是_。na=b=c=0; x=35;nif (!a) x-;nelse if (b) ;nif (c) x=3;nelse x=4;na. 34 b. 4 c. 35 d. 3n7. 若所有变量均已正确定义,下面的程序段所表示的数学函数关系是_。ny=-1;nif (x!=0)nif (x0) y=1;nelse y=0;n n 1(x0) 1(x0)na. y= 0(x=0) b

7、. y= 1(x=0)n 1(x0) 0(x0)n n 0(x0) 1(x0)nc. y= 1(x=0) d. y= 1(x=0)n 1(x0) 0(x0)本章习题n8. 下列与y=(x0?1:x0) y=1; b. if (x)n else if (x0) y=1;n else y=0; else if (x=0)n if (x0) y=1; if (x0) y=1;n else if (x=0) y=0; else y= 1;n else y= 1;本章习题n9. 若定义:float x; int a,b;,则下列4组switch语句中正确的是_。na. switch (x) b. swi

8、tch (x)n case 1.0: printf(*n); case 1,2: printf(*n);n case 2.0: printf(*n); case 3: printf(*n);n nc. switch (a+b) d. switch (a+b);n case 1: printf(*n); case 1: printf(*n);n case 1+2: printf(*n); case 2: printf(*n);n 本章习题n10. 以下程序的输出结果是_。nmain()n int a=0,i;nfor (i=1; i5; i+)n switch (i)n case 0:ncase

9、 3: a+=2;ncase 1:ncase 2: a+=5;ndefault: a+=5;n n n printf(%dn,a);nna. 37 b. 13 c. 10 d. 20本章习题n二、填空题n1. 以下两条if语句可合并成一条if语句为_。n if (ab) printf(*y=%dn,y);n else printf(#x=%dn,x);本章习题n2. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。n main()n float x,amax,amin;n scanf(%f,&x);n amax=x;n amin=x;n while ( )n if ( xamax ) amax=x;n if (_) amin=x;n scanf(%f,&x);n n printf(namax=%fnamin=%fn,amax,amin);n 本章习题n三、编程题n1. 从键盘输入100个整

温馨提示

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

评论

0/150

提交评论