C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析

上传人:文**** 文档编号:252752271 上传时间:2024-11-19 格式:PPT 页数:95 大小:522.03KB
返回 下载 相关 举报
C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析_第1页
第1页 / 共95页
C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析_第2页
第2页 / 共95页
C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析_第3页
第3页 / 共95页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第3章 C语言程序的控制结构,第3章 C语言程序的控制结构,1,本章导读,本章包括知识点:,算法的描述方法,数据的输入输出函数调用格式,if语句及switch语句的使用,3种循环结构,break、continue和goto语句的作用,常用算法:如递推法、穷举法等,C程序的基本风格,本章导读本章包括知识点:,2,3.1 算法,3.1.1 算法的概念,3.1.2 算法的表示方法,3.1 算法 3.1.1 算法的概念,3,3.1.1 算法的概念,著名的计算机科学家沃思(Nikiklaus Wirth)曾经提出过:,数据结构+算法=程序,数据结构,(data structure):即对数据的描述和组织形式。,算法,(algorithm):对操作或行为的描述,即操作步骤。,广义地说,算法就是做某一件事的步骤或程序。,3.1.1 算法的概念著名的计算机科学家沃思(Nikikl,4,计算机解题的算法大致包括这两大类算法:,非数值运算算法和数值运算算法,。,算法特性,:,有穷性,。算法的步骤必须是有限的,每个步骤都在有限的时间内做完,执行有限个步骤后终止。,确定性,。算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性。例如:“如果成绩大于等于90分,则输出A;如果成绩小于等于90分,则输出B”,当成绩为90分时,既会输出A,又会输出B,这就产生了不确定性。,有效性,。算法的每一步操作都应该能有效执行。如一个数被0除就是无效不可行的,应避免。,计算机解题的算法大致包括这两大类算法: 算法特性 :,5,算法特性,没有输入或有多个输入,。例如:求1+2+3+100时,不需要输入任何信息就能求出结果;而要求1+2+3+n时,必须从键盘输入n的值,才能求出结果。,有一个或多个输出,。算法的目的是为了求解,“解”就是算法的输出。没有输出的算法是没有意义的。,算法特性 没有输入或有多个输入。例如:求1+2+3+,6,3.1.2 算法的表示方法,常用方法有:,自然语言、传统流程图、NS流程图、伪代码,等,1用自然语言表示算法,自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。用自然语言表示算法,通俗易懂,但文字冗长,在表达上不够严格,引起理解上的歧义性,不易转化为程序,描述复杂的算法不很方便。因此,除了很简单的问题外,,一般不用自然语言描述算法,。,3.1.2 算法的表示方法 常用方法有:自然语言、传,7,用自然语言表示的求1+2+3+6的算法如下:,算法1,:,S1:计算1+2得到3;,S2:将第一步中的运算结果3与3相加得到6;,S3:将第二步中的运算结果6与4相加得到10;,S4:将第三步中的运算结果10与5相加得到15;,S5:将第四步中的运算结果15与6相加得到21。,用自然语言表示的求1+2+3+6的算法如下:,8,算法2,:,S1:定义循环变量i=1,用于保存和的变量s,并置初值为0;,S2:判断i的值是否小于等于6,若是则执行S3,否则跳转到S4执行;,S3:将i的值累加到s,然后变量i自身加1,转到S2执行;,S4:输出s的值。,算法1是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如1+2+3+10000,再用这种方法是行不通的;算法2是比较简单的算法,且易于在计算机上执行操作。,算法2:,9,2用传统流程图表示算法,流程图是一个描述程序的控制流程和指令执行情况的有向图,用流程图表示算法,直观形象,易于理解。,美国国家标准化协会(ANSI)规定了一些,常用符号,如图所示,2用传统流程图表示算法流程图是一个描述程序的控制流程,10,用传统流程图描述计算1+2+3+6的算法,用传统流程图描述计算1+2+3+6的算法,11,3用NS结构化流程图表示算法,1973年美国学者I.Nassi和B.Schneiderman提出了一种新型流程图NS结构化流程图,这种流程图一方面,取消了带箭头,的流程线,这样算法被迫只能从上到下顺序执行,避免了算法流程的任意转向,适于结构化程序设计;另一方面,这种流程图,节省篇幅,,因而很受欢迎。,用NS流程图描述的计算1+2+3+6的算法,3用NS结构化流程图表示算法用NS流程图描述的计算1+2+,12,4用伪代码表示算法,伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。它使用起来灵活,,无固定格式和规范,无图形符号,,只要写出来自己或别人能看懂就行,由于它与计算机语言比较接近,便于向计算机语言算法(即程序)过渡。,用伪代码描述的1+2+3+6算法如下:,begin,/*算法开始*/,1=i,0=s,while i6, s+i=s,i+1=i,print s,end,/*算法结束*/,在程序设计中读者可根据需要和习惯任意选用。,4用伪代码表示算法 伪代码使用介于自然语言和计算机语,13,3.2 C语句的分类,C语言的语句可分为5大类:,控制语句,函数调用语句,表达式语句,复合语句,空语句,3.2 C语句的分类C语言的语句可分为5大类:,14,1控制语句,控制语句用来实现对程序流程的选择、循环、转向和返回等进行控制。C语言中共有9种控制语句,包括12个关键字,可以分为以下几类:,选择语句,:ifelse和switch(包括case 和default)。,循环语句,:for、while和dowhile。,转向语句,:continue、break和goto。,返回语句,:return。,本章的3.5、3.6和3.7中将陆续介绍这些控制语句。,1控制语句控制语句用来实现对程序流程的选择、循环、转向,15,2函数调用语句,函数调用语句是由一个函数调用加一个分号构成的语句。,它的一般形式是:,函数名(实参表),;,例如:,printf(“This is a C Program”);,/*用于输出双引号中的字符串*/,c=getchar();,/*用于从键盘读入一个字符*/,m=max(a,b,c);,/*用于求取a、b、c三者之间的最大值并将结果赋给m*/,2函数调用语句函数调用语句是由一个函数调用加一个分,16,3表达式语句,由一个表达式加上一个分号构成。,如:,A+; x=1;,p+=q*4+5; y=42?6:1;,3表达式语句由一个表达式加上一个分号构成。如:A+;,17,用一对花括号,把若干条语句括起来,就形成了一条复合语句。形式如下:,4复合语句,复合语句的形式为:,语句1;语句2;语句n;,例如:,z=x+y; z+; u=z/100; printf(“%f”,u);,花括号中的语句,可以是简单语句、空语句、复合语句、流程控制语句,所有这些语句括在一起,在语法上看成是一条语句,执行时顺序执行花括号中的每条语句。复合语句多用于流程控制语句中。,用一对花括号,把若干条语句括起来,就形成了一,18,5空语句,仅仅以分号“;”作为标识。,空语句的形式为:,;,/*,空语句*,/,空语句本身没有实际功能,只是表示什么操作都不做。设置空语句的目的,一是在未完成的程序设计模块中,暂时放一条空语句,留待以后对模块逐步求精实现时再增加语句;二是实现空循环等待;三是实现跳转目标点等。,5空语句仅仅以分号“;”作为标识。空语句本身没有实际功,19,例如:,int max(int a, int b),/*,求两个整数的最大值,*/,;,/*,此处的空语句表示在以后添加内容,,,保证当前的程序正常运行,*/,例如:,20,例如:,实现空循环,while( getchar()!=n),;,/*此语句表示只要从键盘输入的字符不是回车键则重新输入*/,例如:,实现跳转到目标点,int i=0, sum=0;,ex:,;,sum+=i+;,if( x100 ) goto ex;,空语句出现的位置是有限制的。预处理命令、函数头和花括号“”之后都不允许出现空语句。,注意,例如:实现空循环空语句出现的位置是有限制的。预处理命令、函数,21,3.3 输入和输出语句,3.3.1 字符的输入和输出,3.3.2 格式化输入和输出,3.3 输入和输出语句3.3.1 字符的输入和输出,22,C语言不提供输入和输出语句,输入和输出通过调用C的标准库函数来实现。C的标准函数库中提供许多用于标准输入和输出的库函数(附录D),使用这些标准输入和输出库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。,在调用标准输入输出库函数时,文件开头应有以下预编译命令:,# include ,或 # include “stdio.h”,其中,h为head之意,std为standard之意,i为input之意,o为output之意。,C语言不提供输入和输出语句,输入和输出,23,3.3.1 字符的输入和输出,计算机的控制台是键盘和显示器,从控制台输入和输出字符的最简单的函数是getchar()和putchar()。,1getchar函数,使用格式,:,变量,getchar( ),;,功能:从键盘读入一个字符,返回该字符的,ASCII,值,可以将该结果赋值给字符变量或整型变量,并自动将用户击键结果回显到屏幕上。,3.3.1 字符的输入和输出计算机的控制台是键盘和显示,24,2putchar函数,使用格式,:,putchar,(变量);,功能:把字符写到屏幕的当前光标位置。,例,3.1,演示如何使用,getchar(),和,putchar(),函数。,#include,main( ), char c;,c=getchar( );,/*,从键盘读入一个字符,按回车键结束输入,该字符被存入变量,c*/,putchar(c);,2putchar函数使用格式:putchar(变量,25,getchar,函数无参数,它从标准输入设备(键盘)上读入一个字符,直到输入回车键才结束,回车前的所有输入字符都会逐个显示在屏幕上。函数值为从输入设备输入的第,1个字符,空格、回车和Tab都能被读入。,putchar函数的参数是待输出的字符,这个字符可以是可打印字符,也可以是转义字符。,例如:,putchar(x42);,/*输出字母B*/,putchar(0x42);,/*直接用ASCII码值输出字母B*/,注意,注意,26,3.3.2 格式化输入和输出,前面的getchar和putchar函数形式简单,使用方便,但只能输入输出一个字符,且不能定制输入输出格式。格式化输入输出函数既能输入输出各种类型的数据,又能定制输入输出格式。,3.3.2 格式化输入和输出前面的getchar和,27,例3.2从屏幕上输出一个整数。,#include,main(), int a,b;,a=10;,b=20;,printf(output a and b:);,/*输出双引号中的字符串*/,printf(a=%d ,b=%dn,a,b);,/*输出a和b的值*/,输出结果是:,output a and b:a=10,b=20,例3.2从屏幕上输出一个整数。输出结果是:,28,1printf函数,格式:,printf(格式控制字符串);,或,printf(格式控制字符串 ,输出表列);,功能:向计算机系统默认的输出设备输出若干个任意类型的数据。,1printf函数格式:,29,例如:格式转换说明符,printf(,a=,%d,b=,%d,n,a,b,);,普通字符输出表列,一般情况下,格式控制字符串包括两种数据,一种是,普通字符,,这些字符在输出时,照原样输出,;另一种是,格式转换说明符,,用于控制要输出的内容,以何种方式进行输出显示,,格式转换说明符由,“%”开始,,并以,一个格式字符结束。,例如:格式转换说明符一般情况下,格式控制字符,30,表31printf函数的格式转换说明符,表31printf函数的格式转换说明符,31,说明:,“,输出表列,”是需要输出的一些数据。,可以是表达式,各个数据之间用逗号隔开。,以下的printf函数都是合法的:,printf(I am a student.n);,printf(%d,3+2);,注意: 输出数据的,数据类型,与,格式转换说明符,必须,顺序匹配,,否则会引起输出错误。,如:printf( %d,%f,3.89 , 6); 错误!,一般情况下,格式转换说明符与输出项个数相同。,如果格式转换说明符的个数,大于,输出项的个数,则多余的格式将,输出不定值,。如果格式转换说明符的个数,小于,输出项的个数,则,多余的输出项不输出。,说明:,32,例3.3 有以下程序,#include ,main(), int a666 , b=888;,printf( %dn , a,b);,程序的输出结果是()。,A)错误信息B)666,C)888D)666,888,思考:如果将输出语句改为 printf(“ %d,%dn”, a); 输出结果会怎样?,例3.3 有以下程序思考:如果将输出语句改为 prin,33,格式转换说明符的完整形式如下:,% - 0 m.n l或h 格式字符,格式转换说明符的完整形式如下:% - 0 m,34,例3.4 printf函数修饰符的使用。,#include,main(),int a=123;,float y=456.78;,char ch=A;,char s=Programing; /*s,为字符数组,*/,printf(%7d,%-4d,%04dn,a,a,a);,printf(%f,%8f,%8.1f,%.2f,%.2en,y,y,y,y,y);,printf(%3cn,ch);,printf(%sn%12sn%8.5sn%2.5sn%.3sn,s,s,s,s,s);,例3.4 printf函数修饰符的使用。#include,35,程序输出结果,说明:在Visual C+中,调用printf函数时,float类型的参数是先转化为double类型再传递的,所以%f可以输出float和double两种类型的数据,,不必用%lf输出double类型的数据,。,程序输出结果 说明:在Visual C+中,调用print,36,2scanf函数,格式,:,scanf,(格式控制字符串,地址表列);,功能:从标准输入设备(键盘)输入若干个任意类型的数据。,例如:scanf(,%d,%f,”,&a,&b,);,地址表列,格式控制字符串,分隔符,2scanf函数格式:scanf(格式控制字符串, 地,37,表33scanf函数的格式转换说明符,表33scanf函数的格式转换说明符,38,地址表列,是由若干变量的地址组成的列表,参数之间用逗号隔开。函数scanf要求必须指定,用来接收数据的地址,,否则,虽然编译程序不会出错,但会导致数据不能正确地读入指定的内存单元。对普通变量而言,可以在,变量前使用“”符号,,用于取变量的地址,而对于指针变量而言,直接使用指针变量名称即可。,地址表列是由若干变量的地址组成的列表,参数之间用逗号隔开。函,39,表34scanf函数的修饰符,注:scanf函数没有精度.n修饰符,即用scanf函数输入实型数据时不能规定精度。,表34scanf函数的修饰符注:scanf函数没有精度.,40,输入数据的,分隔符,的指定:,一般以,空格、TAB或回车符,作为分隔符(在格式控制符之间为空格、TAB或无任何符号时);,其他字符作为分隔符,:格式控制字符串中两个格式控制符之间的字符为上述三种字符以外的字符时,输入数据时要,原样输入,。,例如,输入语句“scanf(“%d,%d”,”,要想在输入数据后使a=3,b=4,则应输入“3,4”。,输入数据的分隔符的指定:,41,例,3.5格式输入输出的使用。,#include ,main(),int a,b,k;,float s,f;,char c1,c2,m10;,scanf(%d,%d,%f,%s,/*m,是数组名,,,表示地址,*/,scanf(%3d%*4d%f,scanf(%*c%3c%2c,printf(a=%d,b=%d,s=%f,m=%sn,a,b,s,m);,printf(k=%d,f=%f,c1=%c,c2=%cn,k,f,c1,c2);,例3.5格式输入输出的使用。#include =0时,其绝对值为x,而x0时其绝对值是为-x。,选择结构分支条件通常用关系表达式或逻辑表达式来表示,实现程序流程的语句由C语言的if语句或switch语句来完成,3.5 选择程序控制结构对于要先做判断再选择的问题就要,53,图38 选择结构流程图,图38表示,当条件P为真(成立)时执行A框,否则执行B框。无论P是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框。无论走哪条路径,在执行A框或B框之后,都脱离本选择结构。,图38 选择结构流程图图38表示,当条件P为真(成立),54,3.5.1 if语句,1单分支结构,2,双分支结构,3,多分支结构,3.5.1 if语句1单分支结构,55,1单分支结构,if形式:,if(表达式)语句S,图39单分支结构的流程图,1单分支结构if形式:图39单分支结构的流程图,56,执行过程,:系统首先计算表达式的值,如果表达式结果不为0,则执行语句S,否则跳过语句S,继续执行其后的其他语句。,说明,:,“if”是C语言的关键字;“表达式”可以任意合法的C语言表达式,可以是关系表达式或逻辑表达式,也可以是任意的数值类型(包括整型、实型、字符型等);表达式两侧的括号不能省略。,语句S可以是一条语句,也可以是任意合法的复合语句,其位置比较灵活,可以直接出现在if同一行的后面,也可以出现在if的下一行。,执行过程:系统首先计算表达式的值,如果表达式结果不为0,则执,57,例3.9 写出以下程序执行后的输出结果,#include ,main( ), int a=4, b=3, c=5, t=0;,if (ab) t=a; a=b; b=t;,if (ac) t=a; a=c; c=t;,printf ( %d %d %dn , a, b, c);,输出结果为:5 0 3,例3.9 写出以下程序执行后的输出结果输出结果为:5 0,58,分析,:程序第一行在定义a、b、c、t四个变量的同时进行了初始化。接下来第一个if语句的表达式ab为假(0),if其后的语句“t=a;”不执行,值得注意的是“a=b; b=t;”不属于if的语句,将被执行,执行后a值为3,b值为0;然后第二个if语句的表达式ac为真,则执行语句“t=a;”,t值变为3,接着执行“a=c;”,a值变为5,再接着执行“c=t;”,c值变为3;因此,输出结果为:5 0 3。,分析:程序第一行在定义a、b、c、t四个变量的同时进行了初始,59,例3.10计算并输出一个整数的绝对值。,分析,:计算一个整数的绝对值的关键就是判断该数是否小于0。,#include ,main(),int x,y;,scanf(%d, /*,输入一个整数,*/,y=x; /*x,大于等于,0,时,,y=x*/,if(x0)y=-x; /*,若,xb),max =a;,else,max=b;,将例3.10用双分支结构实现,程序代码如下:,#include ,main(),int x,y;,scanf(%d,/*,输入一个整数,*/,if(x0) y=-x;,/*,若,x=a&ch=z),/*,判断,ch,是否为小写字母*,/,ch=ch-32;,/*ch,为小写字母,将其转换为大写*,/,else,ch=ch+32;,/*ch,为大写字母,将其转换为小写*,/,putchar(ch);,/*,输出,ch*/,用第一种方式实现的程序如下:,65,运行时,输入:,a,输出:,A,思考:用字符处理函数怎样实现程序?,运行时,输入:思考:用字符处理函数怎样实现程序?,66,3,多分支结构,if-else-if,形式:,if,(表达式,1,)语句,S1,else if,(表达式,2,)语句,S2,else if,(表达式,n,)语句,Sn,else,语句,Sn+1,3多分支结构if-else-if形式:,67,C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析,68,图311 双分支结构的流程图,图311 双分支结构的流程图,69,执行过程,:,if-else-if,结构实际上是由多个,if-else,结构组合而成的,系统首先计算表达式,1,,其值为真(不为,0,)时,执行语句,S1,;否则,计算表达式,2,,其值为真(不为,0,)时,执行语句,S2,;,如果,if,后的所有表达式都不为真,则执行语句,Sn+1,,并结束整个分支结构。选择结构执行完成后继续执行其后的其他语句。,执行过程:if-else-if结构实际上是由多个if-els,70,例3.12从键盘输入x的值,并通过如下的数学关系式求出相应的y值。,分析,:该题的意图是根据输入的,x,值,判断,x,所属的区间,求出,y,值并输出。程序实现的步骤是:,从键盘输入一个数;,判断,x,所属的区间,求出,y,值;,输出结果。,例3.12从键盘输入x的值,并通过如下的数学关系式求出相应,71,#include ,main( ), int x, y;,scanf (%d,if (xb),if (ac ) max=a;,else max=c;,else,if (b c) max= b;,else max=c;,printf (max = %d, max);,#include ,81,注意,注意,if,与,else,的配对关系,。内嵌结构中,,else,总是与它上面最近的、未配对的,if,配对,组成一对,if-else,语句。,如果,if,与,else,的数目不一样,为了避免在,if,与,else,配对时出错,建议读者,使用“”来限定内嵌,if,语句的范围,。如下形式的嵌套语句:,if,(表达式,1,),if,(表达式,2,)语句,1,else,语句,2,这里,“”限定了内嵌,if,语句的范围,因此,else,与第一个,if,配对。,思考:如果没有“”,,else,与哪个,if,配对?,注意注意if与else的配对关系。内嵌结构中,else总是,82,例,3,.,15,设变量,a、b、c、d和y都已正确定义并赋值。若有以下if 语句,if ( ab ),if ( c= d ) y=0;,else y=1;,该语句所表示的含义是()。,A) B),C) D),例3.15设变量a、b、c、d和y都已正确定义并赋值。若有,83,3.5.2 switch语句,当问题的分支较多(一般大于3个),用if-else-if结构解决时由于分支过多,结构冗长,程序逻辑关系不清晰,通常使用开关语句(switch语句)来简化程序设计。开关语句就像多路开关一样,使程序控制流程形成多个分支,根据一个表达式可能产生的不同结果值,选择其中的一个或几个分支语句去执行。因此,它常用于各种,分类统计、菜单等程序设计,。,3.5.2 switch语句当问题的分支较多(一般大于,84,switch语句的一般形式,switch (表达式), case 常量表达式1:语句1; break;,case 常量表达式2:语句2; break;,case 常量表达式n:语句n ; break;,default : 语句n+1; break;,switch语句的一般形式 switch (表达式),85,switch结构流程图,执行过程,:,计算switch后圆括号内表达式的值,然后用该值逐个与case后的常量表达式值进行比较。当找到相匹配的值时,就执行该case后面的语句。若所有case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。,执行完一个case后面的语句后,如果遇到break语句,则跳出switch语句;如果没有break语句,程序转到下一个case处继续执行,并不再进行判断。,switch结构流程图 执行过程:,86,说明,:, switch、case、default、break均是关键字。上述格式中花括号括起来的部分称为switch语句体。switch语句体中可以没有break语句和default部分。, switch后的表达式可以是整型或字符型,不能为实型。每一个case后面的常量表达式的值必须互不相同,常量表达式中不能有变量。, default最多只有一个,位置任意。各个case 和default的出现次序不影响执行结果。,多个case可以共用一组执行语句。,说明:,87,例3.16若有定义:float x=1.5; int a=1, b=3, c=2; 则正确的switch语句是()。,A) switch (x), case 1.0: printf(“*n”);,case 2.0: printf(“*n”);,B) switch (int) x) ;, case 1: printf(“*n”);,case 2 : printf(“*n”);,C) switch (a+b), case 1 : printf(“*n”);,case 2+1: printf(“*n”);,D) switch (a+b), case 1 : printf(“*n”);,case c : printf(“*n”);,例3.16若有定义:float x=1.5; int a,88,例3.17将例3.13用switch语句实现。,#include ,main(),int grade;,printf(Please input grade:);,scanf(%d,switch(grade), case 4:printf(Excellent); break;,case 3: printf(Good); break;,case 2: printf(Average); break;,case 1: printf(Poor); break;,case 0: printf(Failing);break;,default: printf(Illegal grade); break;,思考:如果每个case语句之后没有break语句,程序运行的输出结果有何变化?,例3.17将例3.13用switch语句实现。#inclu,89,3.5.3 案例研究:个人所得税计算,例3.18,依法纳税是每个公民应尽的义务,我国于1980年9月颁布施行个人所得税法,开始征收个人所得税,同时确定了个税800元的起征点。25年来,我国职工工资收入和居民消费价格指数都有较大提高,加之近年教育、住房、医疗等改革的深入,消费支出明显增长,早已超过了个人所得税法规定的每月800元的减除费用标准。2005年10月27日第十届全国人民代表大会常务委员会第十八次会议将个人所得税起征点进行了调整,由800元调至1600元。2008年3月开始上调到此标准,目前是月收入超过2000元起征。全月应纳税所得额(月收入减去三险一金)与税率对照表,(,此表对实际用表作了简化处理)如下表所示。,3.5.3 案例研究:个人所得税计算例3.18依法纳税是,90,C程序设计ppt课件_第3章-C语言程序的控制结构(1)解析,91,算法1,:用单分支if语句编程。,算法2,:用if-else双分支结构在if子句中嵌入if语句的形式编程。,算法3,:用if-else-if结构,在else子句中嵌入if语句的形式编程。,算法1:用单分支if语句编程。,92,说明,:,由于if或else子句中只允许有一条语句,因此,需要多条语句时必须用复合语句,即把需要执行的多条语句用一对大括号括起来,否则出错。, if子句中内嵌if语句时,因为else子句总是与距离它最近的且没有配对的if相结合,而与书写的缩进格式无关,所以如果内嵌的if语句没有else分支,即不是完整的if-else形式时,极易发生配对错误。为了避免这类错误的发生,有两种有效方法:一是将if子句的内嵌if语句用一对大括号括起来,如上例算法2程序;二是尽量采用在else子句中内嵌if语句的形式编程,如上例中算法3程序。,说明:,93,程序测试,对程序所有的5个分支的情况分别进行测试,检验程序中的每条路径是否都能按预定要求正确工作,这种测试方式称为,白盒测试,。测试中所用的数据称为,测试用例,。选取测试用例的,原则,是:尽量让测试数据覆盖程序的每条语句、每个分支和每个判断条件。,程序测试对程序所有的5个分支的情况分别进行测试,检验程序中的,94,待续,待续,95,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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