第六章 循环控制_第1页
第六章 循环控制_第2页
第六章 循环控制_第3页
第六章 循环控制_第4页
第六章 循环控制_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、C程序设计 第六章第六章 循环控制循环控制2022-3-12116.3 while循环循环If (grade=60) printf(“passedn”);else printf(“failedn”); 说明:这条说明:这条if语句执行一次,可以处理一个学生的成绩。如果语句执行一次,可以处理一个学生的成绩。如果需要处理的是若干学生的成绩,那么就要重复执行该需要处理的是若干学生的成绩,那么就要重复执行该if语句若干次。语句若干次。类似的问题在现实中经常遇到,为了减轻编程人员的负担,我们引入了循环程序设计的思想C程序设计 第六章第六章 循环控制循环控制2022-3-1212循环程序设计(while循

2、环)while(while(表达式表达式) )语句;语句;或:或:while(while(表达式表达式) ) 语句序列;语句序列; 循环条件循环体C程序设计 第六章第六章 循环控制循环控制2022-3-1213while循环语句执行过程:循环语句执行过程: 先计算先计算while后面的表达式(循环条件)的值,如果其后面的表达式(循环条件)的值,如果其值为值为“真真”则执行循环体,则执行循环体, 在执行完循环体后,再次计算在执行完循环体后,再次计算while后面的表达式(循后面的表达式(循环条件)的值,如果其值为环条件)的值,如果其值为“真真”则继续执行循环体,则继续执行循环体,如果表达式的值为

3、假,退出此循环结构。如果表达式的值为假,退出此循环结构。C程序设计 第六章第六章 循环控制循环控制2022-3-1214while语句的执行流程语句的执行流程expr循环体假(0)真(非0)whileC程序设计 第六章第六章 循环控制循环控制2022-3-1215例:求例:求1100之间所有数之和之间所有数之和 循环结构的三个术语:循环结构的三个术语: 1、循环条件:循环条件:循环结构中的条件表达式如循环结构中的条件表达式如while (i=100)其中,其中,i=100就是循环条件。就是循环条件。 2、循环体:循环体:在每个循环周期均要执行一次的语句序列。在每个循环周期均要执行一次的语句序列

4、。如如while下用下用 括起来的语句序列。括起来的语句序列。 3、循环控制变量:循环控制变量:能够决定控制条件是真是假的量。能够决定控制条件是真是假的量。 如如while(i=100)中的变量中的变量is=0;i=1;while(i=100) s=s+i ; i+;C程序设计 第六章第六章 循环控制循环控制2022-3-1216 要写出一个正确的循环结构,对控制变量要做三方面要写出一个正确的循环结构,对控制变量要做三方面的工作:的工作: 1、对循环控制变量赋初值。、对循环控制变量赋初值。 2、将循环控制变量写入正确的控制条件。、将循环控制变量写入正确的控制条件。 3、对循环控制变量值的更新。

5、、对循环控制变量值的更新。 如:如:x=1; /* 给给x赋初值赋初值 */ while(x=10) /*条件条件*/ s=s+x; x+; /*对对x的值做更新、调整的值做更新、调整*/ C程序设计 第六章第六章 循环控制循环控制2022-3-1217使用使用while语句需要注意以下几点:语句需要注意以下几点:1)while语句的特点是语句的特点是先计算表达式的值,然后根据先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句表达式的值决定是否执行循环体中的语句。因此,如。因此,如果表达式的值一开始就为果表达式的值一开始就为“假假”,那么循环体一次也,那么循环体一次也不执行。不执行

6、。2)当循环体为多个语句组成,必须用)当循环体为多个语句组成,必须用括起来,形括起来,形成复合语句。成复合语句。3)在循环体中应有)在循环体中应有使循环趋于结束的语句使循环趋于结束的语句,以避免,以避免“死循环死循环”的发生。的发生。C程序设计 第六章第六章 循环控制循环控制2022-3-1218例例2 用用while循环求循环求 1001nn算法:算法:S0: sum=0,i=1(循环初值循环初值)S1: sum=sum+i, i=i+1(循环体)(循环体)S2: 如果如果i小于或等于小于或等于100,返回重新执行步骤,返回重新执行步骤S1及及S2;否则,算法结束(循环控制)。否则,算法结束

7、(循环控制)。sum中的值就是中的值就是1+2+100的值。的值。C程序设计 第六章第六章 循环控制循环控制2022-3-1219流程图YNi=1,sum=0i=100sum=sum+ii=i+1开始开始打印打印sum结束结束YC程序设计 第六章第六章 循环控制循环控制2022-3-12110#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体具体程序:具体程序:C程序设计 第六章第六章 循环控制循环控制2022-3-12111例例3.输入两个正整数输

8、入两个正整数m和和n,求其最大公约数和最小公倍数。,求其最大公约数和最小公倍数。辗转相除法:辗转相除法:(1)将两个数中大的那个放在)将两个数中大的那个放在n中,小的放在中,小的放在m中。中。(2)求出)求出n被被m除后的余数除后的余数r。(3)把除数作为新的被除数,把余数作为新的除数。)把除数作为新的被除数,把余数作为新的除数。(4)若余数为)若余数为0,则执行步骤(,则执行步骤(5),否则执行步骤(),否则执行步骤(2)。)。(5)输出)输出m,m即为最大公约数。即为最大公约数。(6)输出最小公倍数)输出最小公倍数p/n。(p=原原m*n)C程序设计 第六章第六章 循环控制循环控制2022

9、-3-12112main()int p,r,n,m,temp; printf(“please enter n, m:”); scanf(“%d,%d”,&n,&m); if(nm) temp=n;n=m;m=temp; p=n*m; while(m!=0) r=n%m; n=m;m=r; printf(“最大公约数最大公约数:%dn”,n); printf(“最小公倍数最小公倍数:%dn”,p/n);输入两个正整数输入两个正整数m和和n,求其最大公约数和最小公倍数。,求其最大公约数和最小公倍数。C程序设计 第六章第六章 循环控制循环控制2022-3-121136.4 do-wh

10、ile循环语句dowhile语句v一般形式:do 循环体语句;循环体语句; while(表达式表达式);v执行过程执行过程:(1)执行执行do后面循环体语句。后面循环体语句。(2)计算计算while后面的表达式的值,如果其值为后面的表达式的值,如果其值为“真真”则则 继续执行循环体,如果表达式的值为继续执行循环体,如果表达式的值为假,退出此循环结构。假,退出此循环结构。循环条件C程序设计 第六章第六章 循环控制循环控制2022-3-12114do循环体expr假(0)真(非0)whilev执行流程:v特点:先执行循环体,后判断表达式v说明:l至少执行一次循环体ldowhile可转化成while

11、结构expr循环体假(0)真(非0)循环体While循环C程序设计 第六章第六章 循环控制循环控制2022-3-12115例例 用用dowhile循环求循环求 1001nn#include main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum);C程序设计 第六章第六章 循环控制循环控制2022-3-12116例例 while和和dowhile比较比较#include main() int i,sum=0; scanf(%d,&i); do sum+=i;i+; while(i=10); printf(%d

12、,sum);#include main() int i,sum=0; scanf(%d,&i); while(i=10) sum+=i;i+; printf(%d,sum);思考:如果输入9和11,两个循环得到的结果有什么不同?为什么?C程序设计 第六章第六章 循环控制循环控制2022-3-12117 C语言中语言中for循环能更好地体现循环的三个要点:(循环循环能更好地体现循环的三个要点:(循环控制变量的初始化、循环控制条件、循环控制变量的更控制变量的初始化、循环控制条件、循环控制变量的更新)新)6.5 for循环for结构:结构:for(初始化表达式初始化表达式1;条件表达式;条件

13、表达式2;修正表达式;修正表达式3)循环体循环体等价等价while形式形式初始化表达式初始化表达式1;while(条件表达式条件表达式2) 循环体;修正表达式循环体;修正表达式3C程序设计 第六章第六章 循环控制循环控制2022-3-12118for语句的执行过程(重点强调)语句的执行过程(重点强调)(1)计算初始化表达式)计算初始化表达式1。(2)计算条件表达式)计算条件表达式2,若其值为非,若其值为非0(循环条件成立),(循环条件成立),则转则转3)执行循环体;若其值为)执行循环体;若其值为0(循环条件不成立),(循环条件不成立),则转则转5)结束循环。)结束循环。(3)执行循环体)执行循

14、环体 (4)计算修正表达式)计算修正表达式3,然后转,然后转2)判断循环条件是否成)判断循环条件是否成立立 (5)结束循环,执行)结束循环,执行for循环之后的语句循环之后的语句 注:注:for是关键词,其后有是关键词,其后有3个表达式,各个表达式用个表达式,各个表达式用“;”分隔。分隔。3个表达式可以是任意的表达式,通常主要用于个表达式可以是任意的表达式,通常主要用于for循环控制。循环控制。C程序设计 第六章第六章 循环控制循环控制2022-3-12119表达式2循环体真/y/非0假/n/0计算表达式1计算表达式3for 循环的执行流程循环的执行流程C程序设计 第六章第六章 循环控制循环控

15、制2022-3-12120/*程序功能:求程序功能:求n!*/main() int i, n; long fact=1; /*将累乘器将累乘器fact初始化为初始化为1*/ printf(“Input n: ”); scanf(“%d”, &n); for(i=1; i=n; i+) /*实现累乘实现累乘*/ fact *= i; printf(%d ! = %ldn, n, fact); 求求n的阶乘的阶乘n!(n!=1*2*n)C程序设计 第六章第六章 循环控制循环控制2022-3-12121for语句的几点说明语句的几点说明 :1. for语句中表达式语句中表达式1,表达式,表达

16、式2,表达式,表达式3都可以省略,都可以省略,甚至三个表达式都同时省略,但是起分隔作用的甚至三个表达式都同时省略,但是起分隔作用的“;”不能省略。不能省略。2.如果省略表达式如果省略表达式1,即不在,即不在for语句中给循环变量赋初值,语句中给循环变量赋初值,则应该在则应该在for语句前给循环变量赋初值。语句前给循环变量赋初值。main() for(i=1,fact=1.0; i=n; i+) fact=fact*i; main() i=1;fact=1; for(; i=n; i+) fact=fact*i; C程序设计 第六章第六章 循环控制循环控制2022-3-121223.如果省略表达

17、式如果省略表达式2,即不在表达式,即不在表达式2的位置判断循环终止条件,的位置判断循环终止条件,循环无终止地进行,也就是认为表达式循环无终止地进行,也就是认为表达式2始终为始终为“真真”。则应该在其它位置(如:循环体)安排检测及退出循环的机制。则应该在其它位置(如:循环体)安排检测及退出循环的机制。main() for(i=1,fact=1.0; ; i+) fact=fact*i; if(i=n)break; 循环终止条件循环终止条件C程序设计 第六章第六章 循环控制循环控制2022-3-121234.如果省略表达式如果省略表达式3,即不在此位置进行循环变量的修改,即不在此位置进行循环变量的

18、修改,则应该在其它位置(如:循环体)安排使循环趋向于结束的工作。则应该在其它位置(如:循环体)安排使循环趋向于结束的工作。main() for(i=1,fact=1.0; i=n; ) fact=fact*i; i+; 循环变量的修改循环变量的修改C程序设计 第六章第六章 循环控制循环控制2022-3-121245.表达式表达式1可以是设置循环变量初值的表达式(常用),可以是设置循环变量初值的表达式(常用),也可以是与循环变量无关的其它表达式;也可以是与循环变量无关的其它表达式;表达式表达式1,表达式,表达式3可以是简单表达式,也可以是逗号表达式。可以是简单表达式,也可以是逗号表达式。 for

19、(i=1,fact=1.0; ; i+) for(i=0,j=100; i=j; i+,j-) aiaj6.表达式表达式2一般为关系表达式或逻辑表达式,一般为关系表达式或逻辑表达式,也可以是数值表达式或字符表达式,事实上只要是表达式就可以。也可以是数值表达式或字符表达式,事实上只要是表达式就可以。for( ; (c=getchar()!=n ; i+=c); for( ; (c=getchar()!=n ; i+=c) printf(“%c”,c);C程序设计 第六章第六章 循环控制循环控制2022-3-12125循环小结几种循环的比较几种循环的比较 C语言中,三种循环结构都可以用来处理同一个

20、问题,但在具体使用时存在一些细微的差别。如果不考虑可读性,一般情况下它们可以相互代替。(1)循环变量初始化:循环变量初始化:while和do-while循环,循环变量初始化应该在while和do-while语句之前完成;而for循环,循环变量的初始化可以在表达式1中完成。(2)循环条件:循环条件:while和do-while循环只在while后面指定循环条件;而for循环可以在表达式2中指定。(3)循环变量修改使循环趋向结束循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于结束的操作;for循环可以在表达式3中完成。C程序设计 第六章第六章 循环控制循环控制

21、2022-3-12126(4)for循环可以省略循环体,将部分操作放到表达式2,表达式3中,for语句功能强大。(5)while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判断表达式。(所以while、for循环是典型的当型循环,而do-while循环可以看作是直到型循环)。 (6)三种基本循环结构一般可以相互替代,不能说哪种更加优越。具体使用哪一种结构依赖于程序的可读性和程序设计者个人程序设计的风格(偏好)。思考题:思考题: 将将50-100之间的不能被之间的不能被3整除的数输出(用三种循环结构实现)整除的数输出(用三种循环结构实现) C程序设计 第六章第六章

22、 循环控制循环控制2022-3-12127/* 用用while语句实语句实现现 */main() int i=50; while(i=100) if(i%3!=0)printf(“%4d”,n);i+; /* 用用do-while语句语句实现实现 */main() int i=50; do if(i%3!=0)printf(“%4d”,n);i+; while(i=100)/* 用用for语句实现语句实现 */main() int i; for(i=50; i=100; i+)if(i%3!=0)printf(“%4d”,n);C程序设计 第六章第六章 循环控制循环控制2022-3-12128

23、6. 6 循环的嵌套循环的嵌套 一个循环体内又包含一个完整的循环结构,称为循环的嵌套;嵌套的层次可是双重的或多重的。 C四种形式的循环可以互相嵌套,但绝不能出现交叉现象。正确的循环嵌套形式:正确的循环嵌套形式: 外循环 内循环 外循环 内循环1 内循环2三重循环C程序设计 第六章第六章 循环控制循环控制2022-3-12129错误的循环交叉形式:错误的循环交叉形式: 例:do-while嵌套 例:do-while、for混合嵌套 do do do for(e1;e2;e3) while(e1); while(e); while(e); C程序设计 第六章第六章 循环控制循环控制2022-3-1

24、2130例:求110之间任意5个整数的阶乘值 main( ) int i, j, n; long fact; for(i=1; i=5; i+) scanf(%d, &n); fact=1; for(j=1; j=n; j+) fact=fact*j; printf(%d!=%ldn, n, fact); (单步跟踪;监视i、j、n、fact)YSC程序设计 第六章第六章 循环控制循环控制2022-3-12131例:按下列形式打印乘法九九表 i: 1 1*1=1 2 2*1=2 2*2=4 3 3*1=3 3*2=6 3*3=9 4 4*1=4 4*2=8 4*3=12 4*4=16

25、9 9*1=9 9*2=18 9*3=27 9*9=81 j 1 2 3 9被乘数i取值19;i每取一值,乘数j取值1iC程序设计 第六章第六章 循环控制循环控制2022-3-12132 main( ) int i, j, k; for(i=1; i=9; i+) for(j=1; j=i; j+) k=i*j; printf(%d*%d=%-4d, i, j, k); printf(“n”); C程序设计 第六章第六章 循环控制循环控制2022-3-12133break语句 功能:在循环语句和switch语句中,终止并跳出循环体或开关体 说明:break只能终止并跳出最近一层的结构break

26、不能用于循环语句和switch语句之外的任何其它语句之中6.8 break语句与continue语句C程序设计 第六章第六章 循环控制循环控制2022-3-12134exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)whileC程序设计 第六章第六章 循环控制循环控制2022-3-12135expr2break;.假(0)真(非0)forexpr1expr3switchexpr语句组1break;语句组2break;语句组nbreak;语句组break;.const 1const 2const ndefaultcase C程序设计 第六章第六章 循环控

27、制循环控制2022-3-12136例例 break举例:输出圆面积,面积大于举例:输出圆面积,面积大于100时停止时停止#define PI 3.14159main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); C程序设计 第六章第六章 循环控制循环控制2022-3-12137例例 break举例:小写字母转换成大写字母举例:小写字母转换成大写字母,直至输入非小字母字符直至输入非小字母字符#include main() int i,j; char c; while(1) c=getchar()

28、; if(c=a & c=z) putchar(c-a+A); else break; printf(“n”);C程序设计 第六章第六章 循环控制循环控制2022-3-12138continue语句v功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断v仅用于循环语句中exprcontinue;假(0)真(非0)while真(非0)docontinue;.expr假(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3C程序设计 第六章第六章 循环控制循环控制2022-3-12139例例 求输入的十个整数中正数的个数及其平均

29、值求输入的十个整数中正数的个数及其平均值#include main() int i, num=0, a; /*num做为计算器做为计算器*/ float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);C程序设计 第六章第六章 循环控制循环控制2022-3-12140例例 判断判断m是否素数是否素数读入读入mk= mi=2当当i km被被i整除整

30、除真真假假用用break结束循环结束循环i=i+1i k+1真真假假输出输出:m”是素数是素数” 输出输出:m”不是素数不是素数”C程序设计 第六章第六章 循环控制循环控制2022-3-12141求求 (即求即求1!+2!+.+20!)201!nnmain( ) float s=0,t; int i,j; for(i=1;i=20;i+) t=1; for(j=1;j=i;j+) t*=j; sum+=t; printf(“1!+2!+.+20!=%en”,sum); 双重循环方法双重循环方法C程序设计 第六章第六章 循环控制循环控制2022-3-12142单重循环法:单重循环法:main(

31、) float s=0,t=1; int n; for(n=1;n=20;n+) t*=n ; s+=t; printf(“1!+2!+.+20!=%en”,s); C程序设计 第六章第六章 循环控制循环控制2022-3-12143打印所有的打印所有的“水仙花数水仙花数”。所谓的水仙花数是指一个三位数,其各位数。所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。比如字的立方和等于该数本身。比如153=1*1*1+5*5*5+3*3*3。main( ) int i,j,k,n; printf(“水仙花数是水仙花数是:”); for(n=100;n1000;n+) i=n/1000;

32、j=n/10-i*10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(“%4d”,n); printf(“n”);C程序设计 第六章第六章 循环控制循环控制2022-3-12144 例:用字符*打印出钻石图案分析:将上半三角、下半三角分别处理,找出行 数、空格数、星号数之间的关系; 前四行: 行 空格 星号 1 3 1 2 2 3 3 1 5 4 0 7 规律: i 4i i21 后三行: 1 1 5 2 2 3 3 3 1 规律: i i 7i2 * * * * * * * * * * * * * * * * * * * * * * * * * C程序设计

33、第六章第六章 循环控制循环控制2022-3-12145打印出以下图案:打印出以下图案:* * * * * * * * * * * * * * * * * * * * * * * * *main( ) int i,j,k; for(i=0;i=3;i+) for(j=0;j=2-i;j+) printf(“ “); for(k=0;k=2*i;k+) printf(“*”);printf(“n”);for(i=0;i=2;i+) for(j=0;j=i;j+) printf(“ “); for(k=0;kb) a=b, b=c; c=a; printf(“a=%d,b=%d,c=%d”,a,b,

34、c);A)a=10,b=50,c=10B)a=10,b=30,c=10C)a=50,b=30,c=10D)a=50,b=30,c=50答案:答案:A。注意。注意a=b,b=c;是一个语是一个语句,可见因为句,可见因为ab为假,为假,if语句什么语句什么都不做,最后有都不做,最后有c=a;,所以,所以a,b值不值不变,变,c值改为值改为10C程序设计 第六章第六章 循环控制循环控制2022-3-121472、下述程序()、下述程序() include main() int x=0,y=0,z=0; if(x=y+z) printf(“*”); else printf(“#”);A)有语法错误,不

35、能通过编译)有语法错误,不能通过编译B)输出)输出*C)可以编译,不能通过连接,因而)可以编译,不能通过连接,因而不能执行不能执行D)输出)输出#答案:答案:D。在。在C语言中,比较容易混淆的运语言中,比较容易混淆的运算是算是“”和和“”,尤其在,尤其在if语句中更语句中更是如此。是如此。y+z的值为的值为0,因此表达式,因此表达式x=y+z使使得变量得变量x值为值为0,此赋值表达式的值也为,此赋值表达式的值也为0,逻辑含义为假,因此执行逻辑含义为假,因此执行else之后的子句!之后的子句!注意以下运算:注意以下运算:1)=和和2)&和和&3)|和和|C程序设计 第六章第六章

36、循环控制循环控制2022-3-121483、下述程序段中,正确的是()、下述程序段中,正确的是()A)int x=0,y=10; B) int x=0,y=10; switch(x) switch(x) case y:x+;break; case x0:y=1;break; case y+2:x+=10;break; case x=0:break; case y-1:x=-7;break; case x0:y=-1;break;C)#define y 20 D)int x=0,y; int x=10,z; switch(x) switch(x) case 3: case 12:z=3;brea

37、k; case 1:y=2;break; case y+1:x+=10;break; case 2:break; case y-8:y-=3;break;答案:答案:D。 case后面的表达式,后面的表达式,C语言要语言要求必须是常量或者常量表达式,而不能求必须是常量或者常量表达式,而不能使用关系、逻辑等表达式使用关系、逻辑等表达式C程序设计 第六章第六章 循环控制循环控制2022-3-121494、若执行程序时输入、若执行程序时输入“Adescriptor”,以下程序的输出结果是(),以下程序的输出结果是() #include void main() char c; int v00,v10,

38、v20; do switch(c=getchar() case a:caseA: case e:caseE: case i:caseI: case o:case O: case u:case U:v1; default:v0;v2; while(c!n);printf(“nv0%d,v1%d,v2%d”,v0,v1,v2);A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=12答案:答案:D。分析:程序中,多个分析:程序中,多个case共用一个共用一个break语语句中止。根据句中止。根据switch流程可以

39、看出,若输流程可以看出,若输入一个元音字母,程序执行入一个元音字母,程序执行v1+,并继续,并继续执行执行v0+和和v2+;如果输入的是非元音字;如果输入的是非元音字母,执行母,执行v0+和和v2+。可见,程序执行结。可见,程序执行结束后,束后,v1中存放的是元音字母的个数,而中存放的是元音字母的个数,而v0和和v2都是所有字符的个数。需要注意的都是所有字符的个数。需要注意的是最后的回车符也计算在内!是最后的回车符也计算在内!(如果修改相如果修改相关条件输入关条件输入Adescriptor#,将,将while(c!=#)作为结束条件,则作为结束条件,则#不要计算在内。不要计算在内。C程序设计

40、第六章第六章 循环控制循环控制2022-3-121505、以下程序的输出结果是、以下程序的输出结果是_ #includemain( ) int i,j,k,a=3,b=2; i(a=b+)?a:b; ja;k=b; printf(“i%d,j%d,k%dn”,i,j,k);1)求出关系表达式)求出关系表达式a=b+的值为:真的值为:真2)由于关系表达式值为真,因此进行)由于关系表达式值为真,因此进行a运算,运算,i的赋值为的赋值为1。3)执行)执行ja和和kb后,分别得到后,分别得到j1,k3。i=1,j=1,k=3C程序设计 第六章第六章 循环控制循环控制2022-3-121516、下列程序

41、的输出结果为()、下列程序的输出结果为()#includemain( ) int i=0,j=0,a=6; if(i0)|(j0)a; printf(“i=%d,j=%d,a=%dn”,i,j,a);由于表达式(由于表达式(i0)的值为真,对于)的值为真,对于“或或”运算来说只要运算符运算来说只要运算符“|”左边的值为真,已确定了整个表达式的值为真,因而不再去做左边的值为真,已确定了整个表达式的值为真,因而不再去做“|”运算符右边的运算,所以运算符右边的运算,所以j的运算并未进行,因此输出结果的运算并未进行,因此输出结果为:为:i1,j0,a7;C程序设计 第六章第六章 循环控制循环控制202

42、2-3-121523.9求下面算术表达式的值。求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4 其中其中x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,其中其中a=2,b=3,x=3.5,y=2.5;3.12写出下面表达式运算后写出下面表达式运算后a的值,设的值,设a=12,a和和n都已定义为整型变量。都已定义为整型变量。(1)a+=a;(2)a-=2 (3) a*=2+3(4)a/=a+a (5) a%=(n%=2),n的值为的值为5 (6)a+=a-=a*=a;C程序设计 第六章第六章 循环控制循环控制2022-3-121

43、534.6用下面的用下面的scanf函数输入数据,使得函数输入数据,使得a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问如问如何输入?何输入?(代表空格)代表空格) main() int a,b; float x,y; char c1,c2; scanf(“a=%db=%d”,&a,&b); scanf(“%f %e”,&x,&y); scanf(“%c %c”,&c1,&c2); printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn”,a,b,x,y,c1,c2);输入输入 a=3 b=7 8.5 71.82 A a 注意:第三个scanf双引号中第一个字符为空格C程序设计 第六章第六章 循环控制循环控制2022-3-121545.3、写出下面各逻辑表达

温馨提示

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

评论

0/150

提交评论