南邮《高级语言程序设计》期末总复习模块二三种基本结构及流程控制.doc

上传人:丁** 文档编号:1655347 上传时间:2019-11-01 格式:DOC 页数:7 大小:40KB
返回 下载 相关 举报
南邮《高级语言程序设计》期末总复习模块二三种基本结构及流程控制.doc_第1页
第1页 / 共7页
南邮《高级语言程序设计》期末总复习模块二三种基本结构及流程控制.doc_第2页
第2页 / 共7页
南邮《高级语言程序设计》期末总复习模块二三种基本结构及流程控制.doc_第3页
第3页 / 共7页
点击查看更多>>
资源描述
模块二:三种基本结构及流程控制C程序的三种基本结构是顺序结构、选择结构、循环结构。这三种结构分别需要借助于特定的语句控制实现。(1)顺序结构:赋值语句和函数调用语句是控制该结构的主要语句。函数调用语句中最常用的是:scanf( )、printf( )、getchar( )、putchar( )等用于控制输入输出的语句。注意用scanf( )输入变量值时要严格按照格式控制串的形式要求输入,用printf( )输出时要进行相应的格式控制,需要熟记几种格式转换说明符:%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、float v1234.5678;,输出格式为:输出总宽度为10,精度为3,则应使用语句printf(_);实现;若输出语句为:printf(“%.3f”,v);,输出的内容为:_(2)选择结构:用if.else、switch语句配合复合语句、break语句控制实现。If语句有三种形式:单分支if、双分支if、嵌套if,注意else应与其前最靠近的未匹配过的if相对应,而与对齐的形式无关,每一个else实际上都隐含了一个条件,要充分利用这些条件分析程序;if后的条件通常是关系表达式,但是实际上可以是任何表达式,仅以该表达式是0或非0来判断条件的假和真。注意:if ( )及else后面都只能控制一条语句,经常需要用到复合语句。switch语句中特别要注意的是:(1)switch后面的表达式类型应当为整型、字符型、枚举型,而不可以是float或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; else 语句2;2、设以下所有变量均为整型,下列程序所实现的分段函数是? if (x0) y=1; else y=0; if (xb)c=a;a=b;b=c;4、设有声明int a=1, b=2,则下面程序段的输出结果是? 如果是内层的每个case后有break,而外层没有break,输出结果是?switch (a)case 1:printf(#n);switch (b)case 1: printf(*n); case 2: printf(*n); case 3: printf(*n); break;case 2: printf(#n); break;(3)循环结构:常用while、dowhile、for三种流程控制语句实现,注意while和for属于当型循环,dowhile属于直到型循环,若while后的条件为非0则继续循环,若为0则结束,三种循环是可以相互转化的。这里特别强调的是:循环的退出一般是条件为0(for的表达式2,如果表达式2缺省,则表示永真条件、while或do while后的表达式就可以表示条件,如:while (A) ,这就是一个永真条件)时不进入循环体,但是在循环体内也可以用一定条件下的break语句退出本层循环。如果表示条件的表达式值永远不可能为0,则为一个死循环,这一点要注意!在循环语句中可以用break表示退出本层次循环、continue表示忽略本次循环体中的后续语句,重新开始下一次循环条件的判断,以便决定是否要继续循环。循环体只有一条语句,注意复合语句的正确使用,不要误用分号形成循环体为空语句,例如:for (i=0;i3;i+); s+=i;注意:有关退出的几个操作:(1)在循环结构中用break结束本层循环、在switch语句中用break结束本层switch中当前分支的执行;(2)在函数体内的return语句结束本函数的调用,返回到调用点;(3)库函数exit结束程序的执行,返回到操作系统,该函数在头文件中练习:1、若已有定义int i,则对于如下循环语句,循环体执行的次数分别为_。for( i=0 ; ; i+ )printf(%d ,i);for( ; i=0 ; i+ )printf(%d ,i);for( i=0 ; i0 ; i+ )printf(%d ,i); i=0; while (i=1) i+;2、下列程序运行后,x和y的值分别是?#include void main()int x=1,y=2;for(;x7 )printf(x=%d y=%dn,x,y);break;if ( x= =6 ) continue;y *= x;这一模块中有很多经典算法,下面几个是同学们必须非常熟悉的:(1) 质数问题 判断一个整数是否为质数(用一层循环可以解决)会定义函数实现,函数原型:int prime(int n); 判断参数n是否为质数,如果是,返回1,如果不是,返回0。 找出一定范围内所有的质数(用两层循环可以解决)会定义函数实现,函数原型:void prime(int low,int high); 找出从low到high范围内的所有质数,是质数则输出。如果函数需要返回该范围内的质数个数,则应该将返回值类型修改为int。能按一定的格式输出(2)求最大公约数问题可以用辗转相减或相除的方法都可以得到。会定义函数实现,函数原型:int gcd(int m,int n);在辗转相除法中,当余数为0时的除数即为最大公约数,注意循环控制方式的不同可能导致返回值的不一样。求最小公倍数:a*b/gcd(a,b)(3)求和问题:掌握求和问题中条件的控制方式、累加的方式: 可以根据求和的项数要求来求解,例如:求100项之和; 可以根据每一项的精度进行求解,例如:求到这一项的绝对值不超过1E-6为止,注意这时的循环条件应该为:while(fabs(term)=1E-6),如果用do.while循环,条件也是这样表示。 注意分子、分母、当前项、和分别用一个变量表示,正确定义变量的类型,正确解决变符号问题:s=-s;(4)输出规则图形式问题分析行号与当前行前导空格数、符号个数、符号形状之间的关系,正确控制换行。(5)利用循环可以控制输入数据的范围,这在实验三的P23页。int a,b;do scanf(”%d%d”,&a,&b); while (ab|b1000);实现输入的a,b范围是:10=a=b=1000
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!