版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1C语言程序设计语句与控制流语言程序设计语句与控制流C C语言是一种很好的结构化程序设计语言是一种很好的结构化程序设计语言,它提供了比语言,它提供了比FORTRANFORTRAN、PASCLEPASCLE更丰更丰富的流程控制语句,还提供了将多个语富的流程控制语句,还提供了将多个语句组合成一个语句的复合语句。句组合成一个语句的复合语句。第三章 语句与控制流第1页/共58页以上语句添加标号,构成标号语句,以上语句添加标号,构成标号语句,标号语句标号语句forfor循环循环for( ) for( ) 直到型循环直到型循环do do while( ) while( ) 当循环当循环while(
2、) while( ) 循循环环无条件转移语句无条件转移语句break,continue,return,gotobreak,continue,return,goto多分支选择语句多分支选择语句switchswitch条件分支语句条件分支语句if( )if( )else else 分分支支转转移移流流程程控控制制语语句句花括号括起来的语句花括号括起来的语句复合语句复合语句只有一个分号的语句只有一个分号的语句空语句空语句表达式加分号构成表达式加分号构成表达式语句表达式语句函数调用加分号构成函数调用加分号构成函数调用语句函数调用语句简单的顺简单的顺序执行语序执行语句句以上语句添加标号,构成标号语句,以
3、上语句添加标号,构成标号语句,标号语句标号语句forfor循环循环for( ) for( ) 直到型循环直到型循环do do while( ) while( ) 当循环当循环while( ) while( ) 循循环环无条件转移语句无条件转移语句break,continue,return,gotobreak,continue,return,goto多分支选择语句多分支选择语句switchswitch条件分支语句条件分支语句if( )if( )else else 分分支支转转移移流流程程控控制制语语句句花括号括起来的语句花括号括起来的语句复合语句复合语句只有一个分号的语句只有一个分号的语句空语句
4、空语句表达式加分号构成表达式加分号构成表达式语句表达式语句函数调用加分号构成函数调用加分号构成函数调用语句函数调用语句简单的顺简单的顺序执行语序执行语句句C 语 句 的 分 类第2页/共58页以上语句添加标号,构成标号语句,以上语句添加标号,构成标号语句,标号语句标号语句forfor循环循环for( ) for( ) 直到型循环直到型循环do do while( ) while( ) 当循环当循环while( ) while( ) 循循环环无条件转移语句无条件转移语句break,continue,return,gotobreak,continue,return,goto多分支选择语句多分支选择
5、语句switchswitch条件分支语句条件分支语句if( )if( )else else 分分支支转转移移流流程程控控制制语语句句花括号括起来的语句花括号括起来的语句复合语句复合语句只有一个分号的语句只有一个分号的语句空语句空语句表达式加分号构成表达式加分号构成表达式语句表达式语句函数调用加分号构成函数调用加分号构成函数调用语句函数调用语句简单的顺简单的顺序执行语序执行语句句以上语句添加标号,构成标号语句,以上语句添加标号,构成标号语句,标号语句标号语句forfor循环循环for( ) for( ) 直到型循环直到型循环do do while( ) while( ) 当循环当循环while(
6、 ) while( ) 循循环环无条件转移语句无条件转移语句break,continue,return,gotobreak,continue,return,goto多分支选择语句多分支选择语句switchswitch条件分支语句条件分支语句if( )if( )else else 分分支支转转移移流流程程控控制制语语句句花括号括起来的语句花括号括起来的语句复合语句复合语句只有一个分号的语句只有一个分号的语句空语句空语句表达式加分号构成表达式加分号构成表达式语句表达式语句函数调用加分号构成函数调用加分号构成函数调用语句函数调用语句简单的顺简单的顺序执行语序执行语句句C 语 句 的 分 类第3页/共
7、58页一、空语句与复合语句一、空语句与复合语句空语句空语句:只有一个分号的语句,属于不进行任:只有一个分号的语句,属于不进行任何操作的语句何操作的语句。过滤掉输入字符流中的空白、回车换行和制表符的过滤掉输入字符流中的空白、回车换行和制表符的语句。循环体是一个空语句:语句。循环体是一个空语句:while(c=getchar()= |c=while(c=getchar()= |c= n|c=n|c= t)t); ;计算字符串的长度语句计算字符串的长度语句,其,其循环体是一个空语句:循环体是一个空语句:for( i=0; ai!=for( i=0; ai!= 0; i+ ) ;0; i+ ) ;第4
8、页/共58页复合语句复合语句:在程序中用大括号括起来的若干语在程序中用大括号括起来的若干语句成为复合语句。句成为复合语句。一般形式:一般形式:数据说明部分;数据说明部分;执行语句部分;执行语句部分; 执行语句可以是简执行语句可以是简单语句、构造语句,单语句、构造语句,还可以是复合语句。还可以是复合语句。 在复合语句内部定在复合语句内部定义的变量,其作用域义的变量,其作用域仅限于该复合语句的仅限于该复合语句的内部;内部;第5页/共58页例例11:比较:比较a, b a, b 的大小,且把大者赋给变量的大小,且把大者赋给变量x x,小的小的赋给变量赋给变量y y,并打印输。并打印输。# #incl
9、ude include void main()void main()int a,b,x,y;int a,b,x,y;a=2; b=3;a=2; b=3;if(ab)if(ab)x=a; y=b;x=a; y=b; elseelsex=b; y=a;x=b; y=a; printf(x=%d y=%dprintf(x=%d y=%d n,x, y);n,x, y); 运行结果:运行结果:x=3 y=2x=3 y=2 第6页/共58页二、条件语句二、条件语句(ifif)1. 两种基本形式两种基本形式:基本形式基本形式1 1:if(if(表达式)语句表达式)语句1 1 else else 语句语句2
10、 2表达式表达式?语句语句1语句语句2非零(真)非零(真)零零表达式表达式?语句语句1语句语句2非零(真)非零(真)零零表达式?表达式?语句语句1非零(真)非零(真)零零表达式?表达式?语句语句1非零(真)非零(真)零零基本形式基本形式2 2:if(if(表达式)语句表达式)语句1 1第7页/共58页例例22:比较:比较a, b a, b 的大小,且把大者赋给变量的大小,且把大者赋给变量x x,小小的赋给变量的赋给变量y y,并打印输。并打印输。# #include include void main()void main()int a,b,x,y; a=2; b=3;int a,b,x,y;
11、 a=2; b=3;if(ab)if(ab)x=a; y=b; x=a; y=b; else else x=b; y=a;x=b; y=a; printf(x=%d y=%dprintf(x=%d y=%d n,x, y);n,x, y); 运行结果:运行结果:x=3 y=2x=3 y=2第8页/共58页2. if语句的嵌套语句的嵌套(1 1)在基本形式)在基本形式1 1的的elseelse后的语句后的语句2 2位置层层位置层层嵌套基本形式嵌套基本形式1 1语句。语句。基本形式基本形式1 1:if(if(表达式)语句表达式)语句1 1else else 语句语句2 2基本形式基本形式2 2:i
12、f(if(表达式)语句表达式)语句1 1ifif(表达式表达式1 1) 语句语句1 1else ifelse if(表达式表达式2 2)语句)语句2 2else ifelse if(表达式表达式n n)语句语句n nelse else 语句语句n+1;n+1;第9页/共58页2. if语句的嵌套语句的嵌套基本形式基本形式1 1:if(if(表达式)语句表达式)语句1 1else else 语句语句2 2基本形式基本形式2 2:if(if(表达式)语句表达式)语句1 1ifif(表达式表达式1 1)ifif(表达式表达式2 2)ifif(表达式表达式2 2)语句)语句1 1else else 语
13、句语句2 2else else 语句语句3 3else else 语句语句4 4(2 2)在基本形式)在基本形式1 1的语句的语句1 1位置层层嵌套基本位置层层嵌套基本形式形式1 1。第10页/共58页2. if语句的嵌套语句的嵌套基本形式基本形式1 1:if(if(表达式)语句表达式)语句1 1else else 语句语句2 2基本形式基本形式2 2:if(if(表达式)语句表达式)语句1 1ifif(表达式表达式1 1)ifif(表达式表达式2 2)语句)语句1 1else else 语句语句2 2(3 3)在基本形式)在基本形式1 1的语句的语句1 1位置嵌套基本形式位置嵌套基本形式2
14、2elseelse究竟与哪一个究竟与哪一个ifif配对?配对? 第11页/共58页基本形式基本形式1 1: if(if(表达式)语句表达式)语句1 1 else else 语句语句2 2基本形式基本形式2 2: if(if(表达式)语句表达式)语句1 1 语法规定语法规定elseelse总是与它前面最接近的还没总是与它前面最接近的还没有配对的有配对的ifif配对;配对; 进入进入ifif语句后,不管其层层嵌套有多复杂,语句后,不管其层层嵌套有多复杂,最多只执行其中的一个语句。最多只执行其中的一个语句。注意:注意:第12页/共58页第13页/共58页void main()void main()i
15、nt snum, score; char grade;int snum, score; char grade;scanf(%d%d,&snum, &score );scanf(%d%d,&snum, &score );if(score94)if(score94)grade=5;grade=5;else if(score79)else if(score79)grade=4;grade=4;else if(score59)else if(score59)grade=3;grade=3;elseelsegrade=2;grade=2;printf(%d %cprintf(%d %c n,snum,
16、grade );n,snum, grade ); 分层缩进对齐的形式,分层缩进对齐的形式,便于阅读,便于调试。便于阅读,便于调试。elseelse总是与它前面最接总是与它前面最接近的还没有配对的近的还没有配对的ifif配对配对进入进入ifif语句后至多执行语句后至多执行其中的一个语句,即使嵌其中的一个语句,即使嵌套形式也不例外;套形式也不例外;第14页/共58页三、多分之选择语句三、多分之选择语句(switchswitch)switch(switch(表达式表达式)case case 常量表达式常量表达式1 1:语句:语句1 1case case 常量表达式常量表达式2 2:语句:语句2 2c
17、ase case 常量表达式常量表达式n n:语句语句n n default : default :语句语句n+1 n+1 switchswitch语句形式:语句形式:功能:根据表功能:根据表达式的值是否达式的值是否与某常量表达与某常量表达式式i i相同,来选相同,来选择执行若干语择执行若干语句中的一个语句中的一个语句或一个语句句或一个语句序列。若要真序列。若要真正起到多分支正起到多分支选择执行功能选择执行功能,须配合使用,须配合使用breakbreak语句。语句。第15页/共58页switch(switch(表达式表达式)case case 常量表达式常量表达式1 1:语句:语句1; 1;
18、breakbreak; ; case case 常量表达式常量表达式2 2:语句:语句2; 2; breakbreak; ; case case 常量表达式常量表达式n n:语句语句n; n; breakbreak; ; defalt : defalt :语句语句n+1 n+1 真正能起到多分支选择执行功能的形式:真正能起到多分支选择执行功能的形式:breakbreak语句用于终止语句用于终止switch switch 语语句的执行,跳出句的执行,跳出switch switch 结构结构。第16页/共58页说明:说明: 表达式和常量表达式表达式和常量表达式i i要求是要求是整形或字符形,且两者
19、类型相整形或字符形,且两者类型相同;同; 常量表达式常量表达式i i的值必须互不相的值必须互不相同,它们只起相当于语句入口同,它们只起相当于语句入口标号的作用,没有条件判断分标号的作用,没有条件判断分支执行的功能;支执行的功能; 执行时若常量表达式执行时若常量表达式i i的值与的值与表达式相等,就顺序执行其后表达式相等,就顺序执行其后的语句,否则执行的语句,否则执行defaltdefalt后后的语句的语句n+1n+1;switch(switch(表达式表达式)case case 常量表达式常量表达式1 1:语句语句1; 1; breakbreak; ; case case 常量表达式常量表达式
20、2 2:语句语句2; 2; breakbreak; ; case case 常量表达式常量表达式n n:语句语句n; n; breakbreak; ; defalt : defalt :语句语句n+1 n+1 第17页/共58页void main()void main()char grade;char grade;scanf(%c,&grade );scanf(%c,&grade );switch(grade)switch(grade)case A: printf(grade85case A: printf(grade85 n);n);case B: printf(grade75case B:
21、 printf(grade75 n);n);case C: printf(grade60case C: printf(grade60 n);n);case D: printf(grade60case D: printf(grade85grade85grade75grade75grade60grade60grade60grade85case A: printf(grade85 n); break; n); break; case B: printf(grade75case B: printf(grade75 n); break; n); break; case C: printf(grade60
22、case C: printf(grade60 n); break; n); break; case D: printf(grade60case D: printf(grade85grade85第19页/共58页 多个多个casecase可以共用一组执行语句可以共用一组执行语句void main()void main()char grade;char grade;scanf(%c,&grade );scanf(%c,&grade );switch(grade)switch(grade)case A:case A:case B:case B:case C: printf(grade60case C
23、: printf(grade60 n); break; n); break; case D: printf(grade60case D: printf(grade85grade85第20页/共58页void main()void main()double x, y; char operate;double x, y; char operate;scanf(%lf,&x);scanf(%lf,&x);while(operate=getchar()!=)while(operate=getchar()!=)scanf(%lf,&y);scanf(%lf,&y);switch(operate)swit
24、ch(operate)case +: x+=y; break;case +: x+=y; break;case case - -: x: x- -=y; break;=y; break;case *: x*=y; break;case *: x*=y; break;case /: x/=y; break;case /: x/=y; break; printf(%fprintf(%f n,x);n,x); 例例44模拟袖珍计算器的加减乘除四则运算编程,读模拟袖珍计算器的加减乘除四则运算编程,读入数据,并按算式计算结果。入数据,并按算式计算结果。输入:输入:10.8+0.1310.8+0.13*
25、*10=10=输出:输出:109.300000109.300000第21页/共58页void main()void main()double x, y; double x, y; char operate;char operate;scanf(%lf,&x);scanf(%lf,&x);while(operate=getchar()!=)while(operate=getchar()!=)scanf(%lf,&y);scanf(%lf,&y);switch(operate)switch(operate)case +: x+=y; break;case +: x+=y; break;case c
26、ase - -: x: x- -=y; break;=y; break;case *: x*=y; break;case *: x*=y; break;case /: x/=y; break;case /: x/=y; break; printf(%fprintf(%f n,x);n,x); 输入:输入:10.8+0.13*10=10.8+0.13*10=输出:输出:109.300000109.300000设问设问:若去掉:若去掉breakbreak语语句执行结果将如何?句执行结果将如何? 输入:输入:10.8+0.1310.8+0.13* *10=10=输出:输出:10.810.8第22页/
27、共58页void main()void main()double x, y; char operate;double x, y; char operate;scanf(%lf,&x);scanf(%lf,&x);while(operate=getchar()!=)while(operate=getchar()!=)scanf(%lf,&y);scanf(%lf,&y);switch(operate)switch(operate)case +: x+=y; break;case +: x+=y; break;case case - -: x: x- -=y; break;=y; break;ca
28、se *: x*=y; break;case *: x*=y; break;case /: x/=y; break;case /: x/=y; break; printf(%fprintf(%f n,x);n,x); 说明三个问题:说明三个问题:1)1) switchswitch语句的应用;语句的应用;2)2) 数据的输入与读取数据技巧(输入数据的输入与读取数据技巧(输入缓冲区概念);缓冲区概念);3)3) 该程序的运算是一步步进行的,相该程序的运算是一步步进行的,相当于计算器,没有运算符优先级处当于计算器,没有运算符优先级处理功能。理功能。说明三个问题:说明三个问题:1)1) switchs
29、witch语句的应用;语句的应用;2)2) 数据的输入与读取数据技巧(输入数据的输入与读取数据技巧(输入缓冲区概念);缓冲区概念);3)3) 该程序的运算是一步步进行的,相该程序的运算是一步步进行的,相当于计算器,没有运算符优先级处当于计算器,没有运算符优先级处理功能。理功能。第23页/共58页四、循环语句四、循环语句(1 1)当循环()当循环(whilewhile语句)语句)while( while( 表达式表达式 ) )语句语句特点特点:先判断后执行,它:先判断后执行,它对循环体可能一次也不执对循环体可能一次也不执行。通常用于事先不能确行。通常用于事先不能确定循环次数的情况。定循环次数的情
30、况。零零非零非零表达式?表达式?语句(循环体)语句(循环体)零零非零非零表达式?表达式?语句(循环体)语句(循环体)第24页/共58页# #include include void main()void main()int i,sum=0;int i,sum=0;i=1;i=1;while( i=100 )while( i=100 )sum=sum+i;sum=sum+i;i+;i+; printf(%dprintf(%d n,sum);n,sum); 例例5 5 求求。源程序如下:。源程序如下: 1001nn循环控制变量循环控制变量:在表达式中出:在表达式中出现的变量称为循环控制变量。现的变
31、量称为循环控制变量。必须注意的几个问题:必须注意的几个问题:循环控制变量必须有正确循环控制变量必须有正确的初值;的初值;在循环体内应有改变其值在循环体内应有改变其值的语句;的语句;其值的改变应使得表达式其值的改变应使得表达式的值最终趋向于零(循环结束的值最终趋向于零(循环结束条件),否则将形成死循环。条件),否则将形成死循环。第25页/共58页# #include include void main()void main()int i,sum=0;int i,sum=0;i=1;i=1;while( i=100 )while( i=100 )sum=sum+i;sum=sum+i;i+;i+;
32、 printf(%dprintf(%d n,sum);n,sum); 例例5 5 求求。源程序如下:。源程序如下: 1001nn注意注意:循环体如果包:循环体如果包含一个以上的语句,含一个以上的语句,应该用花括号括起来应该用花括号括起来,以复合形式出现,以复合形式出现,若 不 加 花 括 号 , 则若 不 加 花 括 号 , 则whilewhile语句的范围只到语句的范围只到whilewhile后面的第一个语后面的第一个语句处。句处。输出结果:输出结果:50505050第26页/共58页(2 2)直到型循环()直到型循环(dodowhilewhile语句)语句)dodo语句语句while( w
33、hile( 表达式表达式 ) );特点特点:先执行后判断,循:先执行后判断,循环体至少执行一次。适用环体至少执行一次。适用于循环体至少执行一次,于循环体至少执行一次,且总次数不确定的情况。且总次数不确定的情况。零零非非零零表达式?表达式?语句(循环体)语句(循环体)零零非非零零表达式?表达式?语句(循环体)语句(循环体)第27页/共58页# #include include void main()void main()int i,sum=0;int i,sum=0;i=1;i=1;dodosum=sum+i;sum=sum+i;i+;i+;while( i=100 );while( i=100
34、 );printf(%dprintf(%d n,sum);n,sum); 例例5 5 求求。源程序如下:。源程序如下: 1001nn说 明说 明 : dodowhilewhile语句与语句与whilewhile语句语句类似,只不过是将类似,只不过是将条件表达式从语句条件表达式从语句的开始移到了尾部的开始移到了尾部,因此循环体至少,因此循环体至少执行一次执行一次输出结果:输出结果:50505050第28页/共58页第29页/共58页输出结果:输出结果:50505050第30页/共58页第31页/共58页第32页/共58页while(c=while(c=getchargetchar()!=EOF)
35、()!=EOF)+ncnc; ;if(c=if(c= n) +n) +nlnl; ;if(c= |c=if(c= |c= n|c=n|c= t)t)inwordinword=NO;=NO;else if(else if(inwordinword=NO)=NO)inwordinword=YES; +=YES; +nwnw; ; printfprintf(%d %d %d(%d %d %d n,n,nlnl, ,nwnw, ,ncnc);); 输入:输入:count lineswords D输出:输出:2 3 18EOFEOF为文件结束标志为文件结束标志UNIXUNIX系统为系统为ctrl+dct
36、rl+d 微机系统为微机系统为ctrl+z ctrl+z 第33页/共58页第34页/共58页13543)(23 xxxxf设设其中:其中:1)1) 已知牛顿迭代:已知牛顿迭代:)(/ )(1kkkkxfxfxx 2)2)589)(2 xxxf3)3) 允许误差允许误差( (计算精度计算精度) ):当:当的绝对值小于的绝对值小于1 1E E- -6 6时,时,就作为方程的解。就作为方程的解。)(/ )(kkkxfxfd 1 kx4)4) 采用高效的计算表达式形式,以提高计算速度。采用高效的计算表达式形式,以提高计算速度。)13*) 5*) 4*3(13543)(23 xxxxxxxf5*) 8
37、*9(589)(2 xxxxxf第35页/共58页采用精度作为循环结采用精度作为循环结束标志,是编程中经常束标志,是编程中经常使用的方法之一使用的方法之一# #include include #define EPS 1E#define EPS 1E- -6 6void main()void main()double x,d;double x,d;/d/d为允许误差为允许误差printfprintf(x=);(x=);scanfscanf(%lf,&x);(%lf,&x);dodod=d=- -(3*x(3*x- -4)*x4)*x- -5)*x+13)/(9*x5)*x+13)/(9*x- -
38、8)*x8)*x- -5);5);x=x+d;x=x+d;while(while(fabsfabs(d)EPS);(d)EPS);printfprintf(the root is %f(the root is %f n,x);n,x); 输入:输入:x=2x=2输出:输出:the root is -1.548910the root is -1.548910第36页/共58页(四)循环的嵌套(四)循环的嵌套 一个循环体内又包含另一个完整的循环结一个循环体内又包含另一个完整的循环结构,称为循环嵌套。内层循环中还可以继续嵌构,称为循环嵌套。内层循环中还可以继续嵌套循环,这就是多重循环。套循环,这就是
39、多重循环。 三种循环(三种循环(while, dowhile, do- -while, forwhile, for)可以可以互相多重嵌套,还可以与分支选择语句(互相多重嵌套,还可以与分支选择语句(if, if, switchswitch)构成互相多重嵌套。构成互相多重嵌套。 在语法结构上必须注意:在语法结构上必须注意:全包含不交叉!全包含不交叉! 在语法结构上必须注意:在语法结构上必须注意:全包含不交叉!全包含不交叉! 在语法结构上必须注意:在语法结构上必须注意:全包含不交叉!全包含不交叉! 在语法结构上必须注意:在语法结构上必须注意:全包含不交叉!全包含不交叉!第37页/共58页第38页/共
40、58页例例1010百鸡问题:鸡翁一值钱五百鸡问题:鸡翁一值钱五; ;鸡母一值钱三鸡母一值钱三; ;鸡雏鸡雏三值钱一。百钱买百鸡三值钱一。百钱买百鸡, ,问鸡翁、鸡母、鸡雏各几何?问鸡翁、鸡母、鸡雏各几何?采用枚举的算法思想,对每一种可能的组合进行判断。采用枚举的算法思想,对每一种可能的组合进行判断。void main()int cock, hen, chicken;for(cock=0; cock=100; cock+)for(hen=0; hen=100; hen+)for(chicken=0; chicken=100; chicken+)if( cock+hen+chicken=100 &
41、cock*5+hen*3+chicken/3.0=100 )printf(%d %d %dn,cock,hen,chicken);void main()int cock, hen, chicken;for(cock=0; cock=100; cock+)for(hen=0; hen=100; hen+)for(chicken=0; chicken=100; chicken+)if( cock+hen+chicken=100 &cock*5+hen*3+chicken/3.0=100 )printf(%d %d %dn,cock,hen,chicken);结果:结果: 0 2 5 754 18
42、784 18 788 11 818 11 8112 4 8412 4 84第39页/共58页第40页/共58页 循环次数的计算:外循环执行一次内循环需要执行循环次数的计算:外循环执行一次内循环需要执行100100次,依次类推,因此内层循环体次,依次类推,因此内层循环体ifif语句需要一百万语句需要一百万次判断。因此有必要考虑优化算法。次判断。因此有必要考虑优化算法。101101次次101101次次101101次次void main()int cock, hen, chicken;for(cock=0; cock=100; cock+)for(hen=0; hen=100; hen+)for(c
43、hicken=0; chicken=100; chicken+)if( cock+hen+chicken=100 &cock*5+hen*3+chicken/3.0=100 )printf(%d %d %dn,cock,hen,chicken);第41页/共58页优 化 算 法 减优 化 算 法 减少判断次数:少判断次数:void main()int cock, hen, chicken;for(cock=0; cock=20; cock+)for(hen=0; hen=33; hen+)for(chicken=0; chicken=100-cock-hen; chicken+)if( coc
44、k+hen+chicken=100 &cock*5+hen*3+chicken/3.0=100 )printf(%d %d %dn,cock,hen,chicken);cockcock数不会大于:数不会大于:1001005=205=20henhen数不会大于数不会大于 :1001003=333=33chickenchicken数应为数应为 :100100- -cockcock- -henhen第42页/共58页void main()int cock, hen, chicken;for(cock=0; cock=20; cock+)for(hen=0; hen=33; hen+)for(chic
45、ken=0; chicken=100-cock-hen; chicken+)if( cock+hen+chicken=100 &cock*5+hen*3+chicken/3.0=100 )printf(%d %d %dn,cock,hen,chicken);要求程序按层次缩进,同层对齐的格式书写,要求程序按层次缩进,同层对齐的格式书写,便于阅读调试。便于阅读调试。第43页/共58页(五)(五)returnreturn语句语句ReturnReturn语句形式:语句形式:return( return( 表达式表达式 ););或或return;return;功能:功能: 将程序控制(执行流程控制)返
46、回到主调将程序控制(执行流程控制)返回到主调函数的调用处。函数的调用处。 在有表达式时,将表达式的值带回到主在有表达式时,将表达式的值带回到主调函数的调用处。无表达式时,调用处的值是调函数的调用处。无表达式时,调用处的值是不确定的。不确定的。第44页/共58页例例1111编一函数,返回任一实数的符号。当自变量编一函数,返回任一实数的符号。当自变量X X的的值大于值大于0 0时返回时返回1 1;自变量;自变量X X的值等于的值等于0 0时返回时返回0 0;自变量;自变量X X的值小于的值小于0 0时返回时返回- -1 1。#include int sign(double x)if( x0 ) r
47、eturn(-1);else return(x=0)?0:1);void main()double a;scanf(lf,&a);printf(sign= %dn, sign(a); 在一个函数中,在一个函数中,根据需要可多处设根据需要可多处设置置returnreturn语句,但语句,但最多只执行其中的最多只执行其中的一个。一个。输入:输入:-123-123输出:输出:sign= -1sign= -1第45页/共58页(六)(六)breakbreak中断语句中断语句breakbreak语句形式:语句形式:break;break;功能功能: : 强迫终止循环的执行使提前退出循环;强迫终止循环的执
48、行使提前退出循环; 中断中断switchswitch语句的执行。语句的执行。while( )break;while( )break;switch( )break;switch( )break;dobreak; while( );dobreak; while( );for( )break;for( )break;while( )break;while( )break;while( )break;while( )break;switch( )break;switch( )break;switch( )break;switch( )break;dobreak; while( );dobreak; w
49、hile( );dobreak; while( );dobreak; while( );for( )break;for( )break;for( )break;for( )break;注意注意: :不能用于循环语句和不能用于循环语句和switchswitch语句之外的任何地方。语句之外的任何地方。第46页/共58页(七)(七)(七)(七)continuecontinuecontinuecontinue语句语句语句语句continuecontinue语句形式:语句形式:continue;continue;功能功能: :结束本次循环,即跳过循环体中本语句结束本次循环,即跳过循环体中本语句下面尚未执
50、行的语句,接着进行下一次是否继下面尚未执行的语句,接着进行下一次是否继续循环的判断。(只能用于循环体)续循环的判断。(只能用于循环体)while( )continue;while( )continue;docontinue; while( );docontinue; while( );for( )continue;for( )continue;while( )continue;while( )continue;while( )continue;while( )continue;docontinue; while( );docontinue; while( );docontinue; while
51、( );docontinue; while( );for( )continue;for( )continue;for( )continue;for( )continue;第47页/共58页breakbreak与与continuecontinue语句的区别语句的区别breakbreak是中断包含是中断包含breakbreak语句的最内层的整个循环语语句的最内层的整个循环语句的执行,终止本层循环,或句的执行,终止本层循环,或switchswitch语句;语句;continuecontinue只是中断当前循环体的本次执行,而不是只是中断当前循环体的本次执行,而不是终止整个的循环。终止整个的循环。wh
52、ile( )break;while( )break;switch( )break;switch( )break;dobreak; while( );dobreak; while( );for( )break;for( )break;while( )break;while( )break;while( )break;while( )break;switch( )break;switch( )break;switch( )break;switch( )break;dobreak; while( );dobreak; while( );dobreak; while( );dobreak; while
53、( );for( )break;for( )break;for( )break;for( )break;while( )continue;while( )continue;docontinue; while( );docontinue; while( );for( )continue;for( )continue;while( )continue;while( )continue;while( )continue;while( )continue;docontinue; while( );docontinue; while( );docontinue; while( );docontinue;
54、 while( );for( )continue;for( )continue;for( )continue;for( )continue;第48页/共58页例例1212求求1 1指定数之间的素数。素数是大于指定数之间的素数。素数是大于1 1,且除,且除了了1 1和它本身外,不能被其它任何整数除的整数。和它本身外,不能被其它任何整数除的整数。讨论讨论:根据素数的定义可知:根据素数的定义可知2 2,3 3,5 5,7 7,1111,1313,1717等是素数。等是素数。1 1,4 4,6 6,8 8,1010,1212,1414,1515不是素数。不是素数。为了判断某数为了判断某数i i是否为素数,一个最简单的办法是用是否为素数,一个最简单的办法是用2 2,3 3,4 4,5 5,i i- -1 1这些数逐个去除这些数逐个去除i i,看能否除尽。看能否除尽。若被其中一个数除尽了,则若被其中一个数除尽了,则i i不是素数,否则(全部除不是素数,否则(全部除不尽)不尽)i i是素数。当是素数。当i i较大时,用这种办法,除的次数较大时,用这种办法,除的次数太多。太多。第49页/共58页例例1212
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度远程英语教育兼职外教合同3篇
- 二零二五年酒店员工福利待遇转让合同示例3篇
- 二零二五版寄卖合同范本:农产品寄售协议书3篇
- 二零二五版植物营养肥料试验与研究服务合同3篇
- 二零二五年度酒类批发市场租赁销售合同2篇
- 二零二五年度耕地承包与农村土地承包权登记发证合同2篇
- 二零二五年度红色文化遗址保护与修复合同3篇
- 二零二五版趸购电合同:电力批发市场交易合同2篇
- 二零二五版高端社区地下车库经营权转让合同3篇
- 二零二五年度智能化办公大楼安全防范系统合同2篇
- 一年级科学人教版总结回顾2
- 格式塔心理咨询理论与实践
- 精神发育迟滞的护理查房
- 有效排痰的护理ppt(完整版)
- 鲁教版七年级数学下册(五四制)全册完整课件
- 英语六级词汇(全)
- 算法向善与个性化推荐发展研究报告
- 聚合物的流变性详解演示文稿
- 电气设备预防性试验安全技术措施
- 医院出入口安检工作记录表范本
- 内科学教学课件:免疫性血小板减少症(ITP)
评论
0/150
提交评论