书签 分享 收藏 举报 版权申诉 / 136
上传文档赚钱

类型高级语言程序设计-第4章-程序的控制结构2课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:5782947
  • 上传时间:2023-05-08
  • 格式:PPT
  • 页数:136
  • 大小:4.05MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《高级语言程序设计-第4章-程序的控制结构2课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    高级 语言程序设计 程序 控制 结构 课件
    资源描述:

    1、2023-5-82/532023-5-83/53真真假假假假假真真当当P成立成立直到直到P为假为假2023-5-84/53真真假假假真真假假假假 Testing Condition FirstTesting condition later 2023-5-85/531,2,3,4,4,3,2,12023-5-86/53counter initialValuetest counter valueStep nStep xfalsetrueUpdate counter2023-5-87/53counter initialValuetest counter valueStep nStep xfalset

    2、rueUpdate countercounter initialValue2023-5-88/53Can you identify the input and output?Draw a flowchart for the following problem:读入读入5个整数,并显示它们的和个整数,并显示它们的和.Input:5 个整数个整数n1,n2,n3,n4,n5 Output:n1,n2,n3,n4,n5的和的和Input example:2 3 4 5 6Output example:202023-5-89/53Input n1Input n2Input n3input n4inpu

    3、t n5output sumsum n1+n2+n3+n4+n5n1Assume input example:2 3 4 5 6n2n3n4n5sumendThis flowchart does not use loop,hence we need to use 6 different variablesstart2023-5-810/53counter 1,sum 0counter6sum sum+nfalsetruecounter+output suminput n1countersum01 6true2n0+2222 6true32+3533 6true45+4944 6true59+5

    4、1455 6true614+62066=100Yprint sumendNAny problem?n1002023-5-812/53 当型循环当型循环Condition is tested first 条件或计数控制条件或计数控制Loop is controlled by condition or a counter Syntax Or真假假假执行循环体执行循环体 后面的语句后面的语句2023-5-813/53u特点特点:先判断表达式,后执行循环体(当型):先判断表达式,后执行循环体(当型)u说明说明:循环体有可能循环体有可能一次也不执行一次也不执行下列情况,下列情况,退出退出whilewhi

    5、le循环循环:u条件表达式不成立(为零)条件表达式不成立(为零)u循环体内遇循环体内遇break,return,gotobreak,return,goto无限循环无限循环:while(1)while(1)循环体循环体;2023-5-814/53例例 5 5 求求。源程序如下:。源程序如下:=1001nn循环控制变量循环控制变量:在表达式中出:在表达式中出现的变量称为循环控制变量。现的变量称为循环控制变量。必须注意的几个问题:必须注意的几个问题:循环控制变量必须有正确循环控制变量必须有正确的的初值初值;在循环体内应有在循环体内应有改变其值改变其值的语句的语句(););其值的改变应使得其值的改变应

    6、使得表达式表达式的值最终趋向于零的值最终趋向于零(循环结束(循环结束条件),否则将形成死循环。条件),否则将形成死循环。main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;2023-5-815/53例例 5 5 求求。源程序如下:。源程序如下:=1001nn注意注意:循环体如果包:循环体如果包含一个以上的语句,含一个以上的语句,应该用花括号括起来应该用花括号括起来,以复合形式出现,以复合形式出现,若不加花括号,则若不加花括号,则whilewhile语句的范围只到语句的范围只到whilewhile 后面的第一个语后面的第一个语句处。句处。main()in

    7、t i,sum=0;i=1;while(i=100)sum=sum+i;i+;2023-5-816/53int i,sum;i=1;sum=0;while(i=100)sum+=i;/*循环体缩进书写循环体缩进书写*/i+;/*使循环趋向结束使循环趋向结束*/循环条件:循环条件:循环结构中的条件表达式循环结构中的条件表达式循环体循环体:在每个循环周期均要执行一次在每个循环周期均要执行一次的语句序列。的语句序列。等价的循环体程序:等价的循环体程序:while(i=100)sum+=i+;/*循环体为一条语句循环体为一条语句*/思考题思考题:能否将上述循环体语句可否改为如下形式?:能否将上述循环体

    8、语句可否改为如下形式?while(i=100)+i;/*实现累加实现累加*/sum=sum+i;/*循环控制变量循环控制变量i增增1*/=1001iisum2023-5-817/53例例6-3 显示显示110的平方的平方#include main()int i=1;while(i=10)printf(%d*%d=%dn,i,i,i*i);i+;运行结果:运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=1002023-5-818/53循环体循环体main()int k=0;while(k+3)printf(“%3d”,k

    9、);printf(%3d,k);输出结果:输出结果:1 2 3 4循环体循环体说明说明:为什么输出结果不同。注意一个:为什么输出结果不同。注意一个关键问题关键问题:循环条件循环条件判断次数判断次数与循环体被与循环体被执行的次数执行的次数是不同的概是不同的概念,两者可能不相同;前缀、后缀念,两者可能不相同;前缀、后缀+运算的结合性问运算的结合性问题。请分析以上循环提中两个次数的不同。题。请分析以上循环提中两个次数的不同。2023-5-819/53n当型循环当型循环Condition is tested first n计数控制计数控制Loop is controlled by a countern

    10、Syntaxes(initial value;condition;update counter)statement;Or(initial value;condition;update counter)statement;statement;循环起始条件循环起始条件循环结束条件循环结束条件循环变量增值循环变量增值复合语句复合语句compound statement被当作一条语句看待被当作一条语句看待循环变量控制循环次数循环变量控制循环次数首先执行首先执行表达式表达式1。如果。如果表达式表达式2的值为的值为非非0,就重复,就重复执行执行语句语句和和表达式表达式3,直到,直到表达式表达式2的值为的值

    11、为0时止时止2023-5-820/53此处无此处无;表达式表达式2循环体循环体假假(0)真真(非非0)for表达式表达式1表达式表达式3n表达式表达式1和和表达式表达式3可以没可以没有或者是用逗号分隔的多个有或者是用逗号分隔的多个表达式的组合。但最好不要表达式的组合。但最好不要有太多的表达式组合有太多的表达式组合2023-5-821/53“while”和和“for”语句的相似性语句的相似性#include#include mainmain()()int counter;int counter;counter=1counter=1;while(while(counter=10counter=10

    12、)printf(printf(“%dn%dn”,counter);,counter);counter=counter+1counter=counter+1;printf(printf(“*nn”););#include#include main main()()int counterint counter;for for(counter=1counter=1;counter=10counter=10;counter+)counter+)printf(printf(“%dn%dn”,counter),counter);printf(printf(“*nn”);2023-5-822/53for(表

    13、达式表达式1;表达式表达式2;表达式表达式3)语句)语句只执行只执行1次次执行执行次数次数赋值表达式、还可赋值表达式、还可以是与循环变量无以是与循环变量无关的其它表达式,关的其它表达式,如逗号表达式如逗号表达式表达表达式可式可以是以是循环变量赋初值循环变量赋初值作用作用同循环体语同循环体语句执行次数句执行次数。(n 次)次)由循环条件确定。由循环条件确定。(设循环体执行(设循环体执行 n次次,则它执行,则它执行n+1次)次)赋值表达式赋值表达式、自增自减、自增自减表达式、及表达式、及其它表达式其它表达式关系表达式、逻辑关系表达式、逻辑表达式、也可以是表达式、也可以是数值和字符表达式数值和字符表

    14、达式,只要其值为非零,只要其值为非零,就执行循环体,就执行循环体循环变量增值循环变量增值循环结束条件循环结束条件只执行只执行1次次执行执行次数次数只执行只执行1次次执行执行次数次数赋值表达式、还可赋值表达式、还可以是与循环变量无以是与循环变量无关的其它表达式,关的其它表达式,如逗号表达式如逗号表达式表达表达式可式可以是以是赋值表达式、还可赋值表达式、还可以是与循环变量无以是与循环变量无关的其它表达式,关的其它表达式,如逗号表达式如逗号表达式表达表达式可式可以是以是循环变量赋初值循环变量赋初值作用作用循环变量赋初值循环变量赋初值作用作用2023-5-823/532023-5-824/53i 0,

    15、sum 0i 5sumsum+xfalsetruei+output suminput xint x,sum,i;sum=0;for(i=0;i 5;i+)scanf(“%d”,&x);sum=sum+x;printf(“%d”,sum);2023-5-825/53num1_printf(“have come to exitn”);1_212_3123_4123have come to exit_2023-5-826/532023-5-827/53int i,sum;for(i=1,sum=0;i=100;i+)sum+=i;for(i=1,sum=0;i=100;)sum+=i+;for(i=

    16、0,sum=0;i+100;)sum+=i;=1001iisum2023-5-828/53求数列求数列 50011n511111611的和。的和。该数列中每一项的分母都有规律该数列中每一项的分母都有规律,后一项为前后一项为前一项加一项加5,分母的通式为,分母的通式为:An=An-1+5,A1=1或:或:),(n511An100210=n#include/*6-6*/main()int i;float sum=0;for(i=0;i=100;i+)sum=sum+1.0/(1+i*5);printf(%f,sum);2023-5-829/53main()int i,n;float fact=1;

    17、/*将累乘器将累乘器fact初始化为初始化为1*/printf(“Input n:”);scanf(“%d”,&n);for(i=1;i=n;i+)fact*=i;/*实现累乘实现累乘*/printf(%d!=%0.0fn,n,fact);程序运行情况如下:程序运行情况如下:Input n:5 5!=120可以定义一个函数求任意正整数的阶乘可以定义一个函数求任意正整数的阶乘2023-5-830/53 for for语句的几种特殊格式:语句的几种特殊格式:(1 1)forfor(;)语句;(;)语句;这是一个死循环,一般采用这是一个死循环,一般采用条件表达式条件表达式加加breakbreak语句

    18、在循环体内语句在循环体内的适当位置,一旦满足循环条件时,用的适当位置,一旦满足循环条件时,用breakbreak语句跳出语句跳出forfor循环。循环。(2 2)forfor(;表达式(;表达式2 2;表达式;表达式3 3)语句;语句;使用条件是:循环控制变量的初值不是已知常量,而是在循环语使用条件是:循环控制变量的初值不是已知常量,而是在循环语句执行前通过计算得到的,例如:句执行前通过计算得到的,例如:(3 3)forfor(表达式(表达式1 1;表达式;表达式2 2;)语句;)语句;一般当循环控制变量呈非规则性变化,而且在循环体中存在更新一般当循环控制变量呈非规则性变化,而且在循环体中存在

    19、更新循环控制变量的语句在使用。例如:循环控制变量的语句在使用。例如:i=m-n;i=m-n;for for(;(;ikik;i+i+)语句;语句;forfor(i=1i=1;i=100 i=100;);)i=i i=i*2+12+1;2023-5-831/53例:例:#include main()int i=0;for(i=0;i10;i+)putchar(a+i);运行结果:运行结果:abcdefghij例:例:#include main()int i=0;for(;i10;i+)putchar(a+i);例例:#include main()int i=0;for(;i10;)putchar

    20、(a+(i+);例例:#include main()int i=0;for(;i10;putchar(a+i),i+);省略表达式省略表达式 1省略表达式省略表达式1、3省略循环体省略循环体2023-5-832/531.for1.for语句的三个表达式都是可以省略的,但分号语句的三个表达式都是可以省略的,但分号“;”绝对绝对不能省略不能省略。2.C2.C语言允许在循环体内改变循环变量的值,这在某些程序设计中是语言允许在循环体内改变循环变量的值,这在某些程序设计中是 很有用的。对于很有用的。对于forfor语句要特别注意语句要特别注意省略省略某一表达式形式的运用。某一表达式形式的运用。(4 4)

    21、forfor(逗号表达式(逗号表达式1 1;表达式;表达式2 2;逗号表达式;逗号表达式3 3)语句;)语句;在在forfor语句中,表达式语句中,表达式1 1和表达式和表达式3 3都可以是一项或多项。都可以是一项或多项。例如例如 :forfor(i=1i=1,j=1j=1;ijij;i+i+,j+j+)语句;语句;表达式表达式1 1同时为同时为 i i和和 j j 赋初值,表达式赋初值,表达式3 3同时改变同时改变 i i 和和j j 的的值。当有多于一项时,各项用逗号值。当有多于一项时,各项用逗号“,”分隔。分隔。for for语句的几种特殊格式:语句的几种特殊格式:2023-5-833/

    22、53main()int i,j,k;for(i=0,j=100;i=j;i+,j-)k=i+j;printf(%d+%d=%dn,i,j,k);#include/*6-7*/main()char c;for(;(c=getchar()!=n;)printf(%c,c);#include main()int i,c;for(i=0;(c=getchar()!=n;i+=3)printf(%c,i+c);表达式表达式 1、3为为逗号表达式逗号表达式结论:结论:for语句的功能强大。语句的功能强大。2023-5-834/53n直到型循环直到型循环Statements in the loop are

    23、executed first(at least once),and condition is tested latern条件或计数控制条件或计数控制 Loop is controlled by condition or a counter nSyntax2023-5-835/53表达式表达式假假真真2023-5-836/53nExample:printf(“Input start and end value:“);scanf(“%d%d”,&start,&end);printf(“%c(%d)n“,start,start);start+;(start=end);_?start?endInput

    24、 start and end value:_Input start and end value:65 67_Input start and end value:65 67A(65)_66=67Input start and end value:65 67A(65)B(66)_67=6767Input start and end value:65 67A(65)B(66)C(67)_68=672023-5-837/53真假假假真假假2023-5-838/53例例 while和和dowhile比较比较#include main()int i,sum=0;scanf(%d,&i);do sum+=i

    25、;i+;while(i=10);printf(%d,sum);#include main()int i,sum=0;scanf(%d,&i);while(i=10)sum+=i;i+;printf(%d,sum);结论:当结论:当 while后的表达式第一次的值为后的表达式第一次的值为“真真”时,两种结果相同,否则不同时,两种结果相同,否则不同。2023-5-839/5313、main()int i=0;do printf(“%4d”,i);while(+i2);14、main()int i=0;do printf(“%4d”,i);while(i+2);15、main()int i=0;do

    26、 printf(“%4d”,i+);while(i2);16、main()int i=0;do printf(“%4d”,+i);while(i 0sumsum+xfalseinput xsum 0input xoutput sum#include main()int sum,x;sum=0;scanf(“%d”,&x);(x 0)sum=sum+x;scanf(“%d”,&x);printf(“The sum:%dn”,sum);2023-5-853/53 int sum,x;sum=0;scanf(“%d”,&x);(x 0)sum=sum+x;scanf(“%d”,&x);printf(

    27、“nThe sum:%dn”,sum);?01_ 11 00+111333 01+3413232323 04+23271323-9-9-9 0The sum:272023-5-854/53x0sumsum+xfalsetrueinput xsum0input xoutput sumTry to understandWhat will happen if this statement is deleted?What happened if these 2 statements exchange placessumsum+xinput x?2023-5-855/53scanf()返回值为正确读入的

    28、数据项数返回值为正确读入的数据项数 2023-5-856/53#include int main()int sum=0,x,y;do scanf(%d%d,&x,&y);while(x0|y0);sum=x+y;printf(The sum=%dn,sum);return 0;2023-5-857/532023-5-858/532023-5-859/53累加求和变量赋初值累加求和变量赋初值根据累加项的规律计算累加项根据累加项的规律计算累加项作累加运算作累加运算打印总麦粒数打印总麦粒数2023-5-860/53累乘求积累加求和变量赋初值累乘求积累加求和变量赋初值根据后项总是前项的根据后项总是前项

    29、的2倍计算累加项倍计算累加项作累加运算作累加运算打印总麦粒数打印总麦粒数折合总麦粒体积数折合总麦粒体积数2023-5-861/53想一个想一个1100之间的数之间的数猜对猜对:right猜错猜错:wrong并提示并提示大小大小2023-5-862/532023-5-863/532023-5-864/532023-5-865/532023-5-866/532023-5-867/532023-5-868/532023-5-869/532023-5-870/532023-5-871/532023-5-872/532023-5-873/532023-5-874/53.7656543432122=202

    30、3-5-875/53!1.!31!21!111ne=2023-5-876/53 一个语句的循环体内包含另一个一个语句的循环体内包含另一个完整完整的循环结构,的循环结构,称为循环的嵌套。这种嵌套的过程可以有很多重。三种称为循环的嵌套。这种嵌套的过程可以有很多重。三种循环语句循环语句 whilewhile、dodowhilewhile、for for 可以互相嵌套,自由可以互相嵌套,自由组合。但是要注意的是,各循环语句所描述的循环结构组合。但是要注意的是,各循环语句所描述的循环结构必须完整,相互之间绝对必须完整,相互之间绝对不允许交叉不允许交叉。下面的形式是不。下面的形式是不允许的:允许的:循环的

    31、嵌套循环的嵌套正常情况下:正常情况下:应先执行内层的循环体操作,然应先执行内层的循环体操作,然后是外层循环。内层循环被执行后是外层循环。内层循环被执行的次数应为:的次数应为:内层次数内层次数外层次数外层次数 do do forfor(;)(;)whilewhile ;2023-5-877/53 外层循环 内层循环 内层循环 内层循环 合法的嵌套循环 2023-5-878/532023-5-879/53#include int main()int i,j;for(i=1;i=5;i+)/*start of outer loop-+*/printf(ni is now%dn,i);for(j=1;

    32、j=4;j+)/*start of inner loop|*/printf(j=%d,j);/*end of inner loop|*/*end of outer loop -+*/return 0;2023-5-880/532023-5-881/532023-5-882/532023-5-883/538172635445362718972645648403224168635649423528211475448423630241812645403530252015105363228242016128427242118151296318161412108642987654321987654321

    33、2023-5-884/53#include main()int m,n;for(m=1;m10;m+)printf(%4d,m);/*打印表头打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);for(m=1;m10;m+)for(n=1;n10;n+)printf(%4d,m*n);printf(n);81726354453627189726456484032241686356494235282114754484236302418126454035302520151053632282420161284272421181512963181614

    34、121086429876543219876543212023-5-885/53817263544536271896456484032241684942352821147363024181262520151051612849634219876543212023-5-886/53#include main()int m,n;for(m=1;m10;m+)printf(%4d,m);/*打印表头打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);for(m=1;m10;m+)for(n=1;n=m;n+)printf(%4d,m*n);printf(

    35、n);817263544536271896456484032241684942352821147363024181262520151051612849634219876543212023-5-887/53#include int main()int row;char ch;for(row=0;row 5;row+)for(ch=A+row;ch=E;ch+)printf(%c,ch);printf(n);return 0;ABCDEBCDECDEDEE2023-5-888/53*For each line(i:1-4)in the figure the number of space repe

    36、titions passed to display()is 4-i,and the number of asterisk repetitions is 2*i-1 2023-5-889/53【例例】:求出用数字:求出用数字0 09 9可以组成多少个没有重复的三位偶数。可以组成多少个没有重复的三位偶数。mainmain()()int nint n,i i,j j,k k;n=0n=0;for for(i=1i=1;i=9i=9;i+i+)/*百位数百位数*/for for(k=0k=0;k=8k=8;k=k+2k=k+2)/*个位数,个位数,k=k+2k=k+2为偶数为偶数*/if if(k!=

    37、ik!=i)forfor(j=0j=0;j=9j=9;j+j+)/*十位数十位数*/if if(j!=i&j!=kj!=i&j!=k)n+n+;printfprintf(“%dn%dn”,n n););2023-5-890/53=)2(5023)1(30zyxzyx2023-5-891/53#include main()int x,y,z;printf(Man t Women t Childernn);for(x=0;x=30;x+)for(y=0;y=30;y+)for(z=0;z=30;z+)if(x+y+z=30&3*x+2*y+z=50)printf(%3d t%5d t%8dn,x,

    38、y,z);2023-5-892/53#include main()int x,y,z;printf(Man t Women t Childernn);printf(%3d t%5d t%8dn,x,y,z);2023-5-893/53Determine the output of the following program:for(sum=0,i=0;i3;i+)for(j=i;j=5;j+)sum=sum+j;printf(“%d,”,sum);for(i=0;i3;i+)for(sum=0,j=i;j=5;j+)sum=sum+j;printf(“%d,”,sum);15 30 4415

    39、15 142023-5-894/53Determine the output of the following program:for(row=1,row=5;row+)for(j=1;j=row;j+)printf(“);for(j=1;j=5;j+)printf(“*“);printf(“n”);2023-5-895/532023-5-896/532023-5-897/532023-5-898/53count=1;while(count=3)printf(“请输入密码:请输入密码:);scanf(%d,&num);if(num=123456)printf(“可以取钱了!可以取钱了!);br

    40、eak;/*break out of the loop*/else printf(“密码错误密码错误!);count+;Note:The break statement violates pure structured programming principles because it provides a second,nonstandard exit from a loop.2023-5-899/53【例例】:从键盘上输入字符和数字,边输入边在屏幕上显示出来,:从键盘上输入字符和数字,边输入边在屏幕上显示出来,当输入当输入“*”星号时输入结束。星号时输入结束。省略了表达式省略了表达式2 2

    41、,所以是一个无限循,所以是一个无限循环,需要依靠环,需要依靠ifif语句退出循环。当语句退出循环。当条件为条件为“真真”时终止循环并打印时终止循环并打印“循环结束循环结束”。#include#include main main()()int iint i;char numbchar numb;forfor(i=1i=1;i+i+)scanfscanf(“%c%c”,&numb&numb););if if (numb=numb=*)breakbreak;else printfelse printf(“%c%c”,numbnumb););printfprintf(“循环结束循环结束”););202

    42、3-5-8100/532023-5-8101/53【例例】:计算:计算10010010001000之间有多少个各位数字之和为之间有多少个各位数字之和为5 5的数。的数。main main()()int iint i,s s,k k,count=0count=0;for for(i=100i=100;i=1000i=1000;i+i+)s=0s=0;k=ik=i;while while(k k)s=s+k%10s=s+k%10;k=k/10k=k/10;if if(s!=5s!=5)continue ;continue ;else count+else count+;printfprintf(“

    43、%d%d”,countcount););分析分析 条件:(条件:(1 1)10010010001000;(2 2)数字)数字i i的各位数字之和为的各位数字之和为5 5;双重循环:双重循环:外循环:条件(外循环:条件(1 1););内循环:条件(内循环:条件(2 2););条件(条件(2 2)的细化(数的各位之和)的细化(数的各位之和s s模型):模型):s=s+k%10s=s+k%10;k=k/10;k=k/10;2023-5-8102/532023-5-8103/53假假真真break表达式1表达式2循环语句的下一条语句循环语句的下一条语句假假真真 表达式1表达式2continue2023

    44、-5-8104/532023-5-8105/532023-5-8106/532023-5-8107/53n=1;while(n+10)if(n%3=0)continue;printf(“%d,”n);n=1;while(n+10)if(n%3=0)break;printf(“%d,”n);2,4,5,7,8,102,2023-5-8108/532023-5-8109/53n标号用表识符表示,取名规则同变量名标号用表识符表示,取名规则同变量名q不能用整数作标号不能用整数作标号其中其中n标号的作用域为标号所在函数,即只允许在本标号的作用域为标号所在函数,即只允许在本函数内的语句引用函数内的语句引用

    45、q只能出现在只能出现在goto所在函数内所在函数内,且唯一且唯一2023-5-8110/53例例6-1 用用if 和和goto语句构成循环,求语句构成循环,求=1001nn/*c5_1.c*/#include main()int i,sum=0;i=1;loop:if(i=100)sum+=i;i+;goto loop;printf(%d,sum);循环初值循环初值循环终值循环终值循环变量增值循环变量增值循环条件循环条件循环体循环体分析:分析:sum=sum+1=1sum=sum+2=1+2=3sum=sum+3=3+3=6sum=sum+4=6+4=10sum=sum+100=4950+10

    46、0=50502023-5-8111/532023-5-8112/532023-5-8113/532023-5-8114/532023-5-8115/53 假 真 假 真 开 始 输入 m mk=i=2 i=k m 被 i 整出 输出 m 不是素数 输出 m 是素数 结 束 i=i+1 2023-5-8116/53#include main()int m,i,k;printf(Please enter a number:);scanf(%d,&m);k=sqrt(m);for(i=2;i=k;i+)if(m%i=0)printf(No!n);goto end;printf(Yes!n);end:

    47、printf(Program is over!n);Please enter a number:6Program is over!No!2023-5-8117/53#include main()int m,i,k;printf(Please enter a number:);scanf(%d,&m);k=sqrt(m);for(i=2;i=k;i+)if(m%i=0)printf(No!n);goto end;printf(Yes!n);end:printf(Program is over!n);Please enter a number:5Program is over!Yes!2023-5

    48、-8118/532023-5-8119/53#include main()int m,i,k;printf(Please enter a number:);scanf(%d,&m);k=sqrt(m);for(i=2;i k)printf(Yes!n);else printf(No!n);printf(Program is over!n);Please enter a number:6Program is over!No!2023-5-8120/532023-5-8121/53#include main()int m,i,k,flag=1;/*标志变量标志变量flag初值置为初值置为1*/pr

    49、intf(Please enter a number:);scanf(%d,&m);k=sqrt(m);for(i=2;i=k&flag;i+)if(m%i=0)flag=0;if(flag)printf(Yes!n);else printf(No!n);printf(Program is over!n);2023-5-8122/532023-5-8123/532023-5-8124/532023-5-8125/532023-5-8126/532023-5-8127/532023-5-8128/532023-5-8129/532023-5-8130/532023-5-8131/532023-5-8132/532023-5-8133/532023-5-8134/532023-5-8135/532023-5-8136/53

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:高级语言程序设计-第4章-程序的控制结构2课件.ppt
    链接地址:https://www.163wenku.com/p-5782947.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库