南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制_第1页
南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制_第2页
南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制_第3页
南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制_第4页
南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、【最新卓越管理方案您可自由编辑】(流程管理)南邮高级语言程序设计期末总复习模块二:三种基本结构及流程控制20XX年XX月多年的企业咨询顾问经验r经过实战险证可以落地执行的卓越管鹿方素,信得您不戟拥有模块二:三种基本结构及流程控制C程序的三种基本结构是顺序结构、选择结构、循环结构。这三种结构分别需要借助于特定的语句控制实现。(1)顺序结构:赋值语句和函数调用语句是控制该结构的主要语句。函数调用语句中最常用的是:scanf()、printf()、getchar()、putchar()等用于控制输入输出的语句。注意用scanf()输入变量值时要严格按照格式控制串的形式要求输入,用printf()输出

2、时要进行相应的格式控制,需要熟记几种格式转换说明符:%c、%s、%d、%f、%lf(当变量为double类型时,于scanf中必须用%lf,但输出时用%f就能够了)。练习:1、已知a、b、c为int型变量,用于输入的语句为:scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若想使a的值为1,b的值为2、c的值为3,应当怎样输入?如果提供的输入方法为1,2,3<回车>,则对应的输入语句是什么?2、floatv=1234.5678输出格式为:输出总宽度为10,精度为3,则应使用语句printf();实现;若输出语句为:pri

3、ntf(%“.3f”,v);,输出的内容为:(2)选择结构:用if.else、switch语句配合复合语句、break语句控制实现。If语句有三种形式:单分支if、双分支if、嵌套if,注意else应和其前最靠近的未匹配过的if相对应,而和对齐的形式无关,每壹个else实际上均隐含了壹个条件,要充分利用这些条件分析程序;if后的条件通常是关系表达式,可是实际上能够是任何表达式,仅以该表达式是0或非0来判断条件的假和真。注意:if()及else后面均只能控制壹条语句,经常需要用到复合语句。switch语句中特别要注意的是:(1)switch后面的表达式类型应当为整型、字符型、枚举型,而不能够是f

4、loat或double型,因为表达式的取值必须是离散值。(2)找到和表达式匹配的常量后开始执行,直到遇到break或语句结束才会停止。因此每壹个分支后如果没有及时用break,则继续向下执行,这样,switch结构能够选择多个分支执行(3)这些常量的顺序调整不影响程序的正确性,只要每个分支执行的功能固定就能够了。练习:1、已知变量tf为整型,下面的条件语句中,五种表达有壹种和其它四个不等价,它是?A、if(tf)语句1;else语句2;B、if(tf=0)语句2;else语句1;C、if(tf!=0)语句1;else语句2;D、if(!tf)语句2;else语句1;E、if(tf=1)语句1;

5、else语句2;2 、设以下所有变量均为整型,下列程序所实现的分段函数是?if(x>0)y=1;elsey=0;if(x<0)y=-1;3 、下列程序段执行后,a、b的值是?a=1;b=2;c=0;if(a>b)c=a;a=b;b=c;4、设有声明inta=1,b=2,则下面程序段的输出结果是?如果是内层的每个case后有break,而外层没有break,输出结果是?switch(a)case1:printf("#n");switch(b)case1:printf("*n");case2:printf("*n");c

6、ase3:printf("*n");break;case2:printf("#n");break;(3)循环结构:常用while、do-while、for三种流程控制语句实现,注意while和for属于当型循环,do-while属于直到型循环,若while后的条件为非0则继续循环,若为0则结束,三种循环是能够相互转化的。这里特别强调的是:循环的退出壹般是条件为0(for的表达式2,如果表达式2缺省,则表示永真条件、while或dowhile后的表达式就能够表示条件,如:while(A),这就是壹个永真条件)时不进入循环体,可是于循环体内也能够用壹定条件下

7、的break语句退出本层循环。如果表示条件的表达式值永远不可能为0,则为壹个死循环,这壹点要注意!于循环语句中能够用break表示退出本层次循环、continue表示忽略本次循环体中的后续语句,重新开始下壹次循环条件的判断,以便决定是否要继续循环。循环体只有壹条语句,注意复合语句的正确使用,不要误用分号形成循环体为空语句,例如:for(i=0;i<3;i+);s+=i;注意:有关退出的几个操作:(1)于循环结构中用break结束本层循环、于switch语句中用break结束本层switch中当前分支的执行;(2)于函数体内的return语句结束本函数的调用,返回到调用点;(3)库函数ex

8、it结束程序的执行,返回到操作系统,该函数于<stdlib.h>头文件中练习:1 、若已有定义inti,则对于如下循环语句,循环体执行的次数分别为 for(i=0;i+)printf("%d",i); for(;i=0;i+)printf("%d",i); for(i=0;i<0;i+)printf("%d",i); i=0;while(i=1)i+;2、下列程序运行后,x和y的值分别是?#include<stdio.h>voidmain()intx=1,y=2;for(;x<10;x+)x+=2;

9、if(x>7)printf("x=%dy=%dn",x,y);break;if(x=6)continue;y*=x;这壹模块中有很多经典算法,下面几个是同学们必须非常熟悉的:(1)质数问题 判断壹个整数是否为质数(用壹层循环能够解决)会定义函数实现,函数原型:intprime(intn);判断参数n是否为质数,如果是,返回1,如果不是,返回0。 找出壹定范围内所有的质数(用俩层循环能够解决)会定义函数实现,函数原型:voidprime(intlow,inthigh);找出从low到high范围内的所有质数,是质数则输出。如果函数需要返回该范围内的质数个数,则应该将返回

10、值类型修改为int。能按壹定的格式输出(2)求最大公约数问题能够用辗转相减或相除的方法均能够得到。会定义函数实现,函数原型:intgcd(intm,intn);于辗转相除法中,当余数为0时的除数即为最大公约数,注意循环控制方式的不同可能导致返回值的不壹样。求最小公倍数:a*b/gcd(a,b)(3)求和问题:掌握求和问题中条件的控制方式、累加的方式: 能够根据求和的项数要求来求解,例如:求100项之和; 能够根据每壹项的精度进行求解,例如:求到这壹项的绝对值不超过1E-6为止,注意这时的循环条件应该为:while(fabs(term)>=1E-6),如果用do.while循环,条件也是这样表示。 注意分子、分母、当前项、和分别用壹个变量表示,正确定义变量的类型,正确解决变符号问题:s=-s;(4)输出规则图形式问题分析行号和当前行前

温馨提示

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

评论

0/150

提交评论