ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:29.57KB ,
资源ID:10695187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10695187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言程序设计循环结构程序设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言程序设计循环结构程序设计.docx

1、c语言程序设计循环结构程序设计第一章 CH5 循环结构程序设计5.1 读程序1.有如下程序#include main() int num=0;while(num=2) num+;printf(%dn,num);运行结果为:123详见教材循环结构当循环条件num=2成立的时候,执行循环体 num+;printf(%dn,num);中的语句。循环初值num为0;循环条件num=2成立第1次循环:执行num+;即将num中的值加1,执行后num为1; 执行printf(%dn,num);在屏幕上输出num中的值,即输出1,之后换行此时num中的值为1,循环条件num=2成立第2此循环:执行num+;

2、即将num中的值加1,执行后num为2; 执行printf(%dn,num);在屏幕上输出num中的值,即输出2,之后换行此时num中的值为2,循环条件num=2成立第3此循环:执行num+;即将num中的值加1,执行后num为3; 执行printf(%dn,num);在屏幕上输出num中的值,即输出3,之后换行此时num中的值为3,循环条件num=2不成立,结束循环。2.有如下程序#include main( ) int sum=10,n=1;while(n3) sum=sum-n; n+; printf(“%d,%d”,n,sum); 运行结果为:3,7当循环条件n3成立的时候,执行循环体

3、sum=sum-n; n+; 中的语句。循环初值sum为10,n为1;循环条件n3成立第1次循环:执行sum=sum-n=10-1=9; 执行n+,即将n中的值加1,执行后n为2;此时n中的值为2,sum中的值为9,循环条件n3成立,继续执行循环第2次循环:执行sum=sum-n=9-2=7; 执行n+,即将n中的值加1,执行后n为3;输出此时n,sum中的值,即为3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号3. 有如下程序#include main() int num,c; scanf(%d,&num);

4、 do c=num%10; printf(%d,c); while(num/=10)0);printf(n); 从键盘输入23,则运行结果为:32详见教材循环结构;复合的赋值运算符do while(表达式);先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号定义整型变量num,c;为num赋一个整型值;执行c=num%10; printf(%d,c); 直到循环条件(num/=10)0不成立;输出换行已知为num赋值23第1次执行循环体执行c=num%10=23%10=3;执行printf(%d,c);输出3判断循环条件 num/=10等价于num=num/10; 因此num

5、=23/10=2, 2大于0,因此循环条件(num/=10)0成立,继续执行循环体。执行完第1次循环时,num为2,c为3第2次执行循环体执行c=2%10=2;执行printf(%d,c);再输出2判断循环条件num=2/10=0,0等于0,因此循环条件(num/=10)0不成立。结束循环4.有如下程序#include main() int s=0,a=5,n;scanf(%d,&n);do s+=1; a=a-2; while(a!=n);printf(%d,%dn,s,a); 若输入的值1,运行结果为: 2,1 详见教材循环结构;复合的赋值运算符执行 s+=1; a=a-2; 直到循环条件

6、a!=n不成立;已知为n赋值1,s为0,a为5第1次执行循环体执行s+=1;等价于s=s+1=0+1执行a=a-2; a=5-2=3判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。执行完第1次循环时,s为1,a为3第2次执行循环体执行s+=1;等价于s=s+1=1+1=2执行a=a-2; a=3-2=1判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。执行完第2次循环时,s为2,a为1输出此时s,a中的值,结果为2,15.有如下程序#include main() int x, y =0;for(x=1;x=10) break; y=y+x; printf(“%d

7、 %d”,y,x);运行结果为:10 5详见教材for语句详见教材break,continue语句for(表达式1;表达式2;表达式3)(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5)(3) 求解表达式3 (4) 转回上面 (2)继续执行(5) 循环结束,执行for语句下面的一个语句 break,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环)此题 表达式1为x=1,表达式2(循环条件)为x=10,表达式3为x+初值x为1,y为0,循环条件(即表达式2)x=10成立,进入循环体

8、第1次循环 执行if语句。0小于10,if语句的条件表达式不成立,不执行break;执行y=y+x; y=0+1=1转向表达式3,执行x+, x=x+1=1+1=2。循环条件x=10成立,进入第2次循环第2次循环 执行if语句。1小于10,if语句的条件表达式不成立,不执行break;执行y=y+x; y=1+2=3转向表达式3,执行x+, x=x+1=2+1=3。循环条件x=10成立,进入第3次循环第3次循环 执行if语句。3小于10,if语句的条件表达式不成立,不执行break;执行y=y+x; y=3+3=6转向表达式3,执行x+, x=x+1=3+1=4。循环条件x=10成立,进入第4

9、次循环第4次循环 执行if语句。6小于10,if语句的条件表达式不成立,不执行break;执行y=y+x; y=6+4=10转向表达式3,执行x+, x=x+1=4+1=5。循环条件x=10成立,进入第5次循环第5次循环 执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x);输出当前的y与x.结果为10 56.有如下程序#include main() int y=9; for(;y0;y- -)if(y%3=0) printf(%d”,- -y); 运行结果为:852详见教材,自增自

10、减符号此题 表达式1被省略,表达式2(循环条件)为y0,表达式3为y-初值y为9,循环条件(即表达式2)y0成立,进入循环体第1次循环 执行if语句。9%3=0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为8,然后在输出,因此屏幕上输出8转向表达式3,执行y-, y=y-1=8-1=7。循环条件y0成立,进入第2次循环第2次循环 执行if语句。7%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)转向表达式3,执行y-, y=y-1=7-1=6。循环条件y0成立,进入第3次循环第3次循环 执行if语句。6%3=0,if语句的条件表达

11、式成立,执行printf(%d”,- -y),即y先自减1变为5,然后在输出,因此屏幕上输出5转向表达式3,执行y-, y=y-1=5-1=4。循环条件y0成立,进入第4次循环第4次循环 执行if语句。4%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)转向表达式3,执行y-, y=4-1=3。循环条件y0成立,进入第5次循环第5次循环 执行if语句。3%3=0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为2,然后在输出,因此屏幕上输出2转向表达式3,执行y-, y=y-1=2-1=1。循环条件y0成立,进入第5次循环第6次循环

12、执行if语句。1%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)转向表达式3,执行y-, y=1-1=0。循环条件y0不成立,循环结束。7.有如下程序#include main() int i,sum=0; i=1;do sum=sum+i; i+; while(i=10);printf(“%d”,sum);运行结果为: 558.有如下程序#include #define N 4main() int i; int x1=1,x2=2;printf(n);for(i=1;i=N;i+) printf(%4d%4d,x1,x2);if(i%2=0) printf(n)

13、;x1=x1+x2;x2=x2+x1;运行结果为:1 2 3 58 13 21 34此题 首先为整型变量赋初值x1=1,x2=2表达式1为i=1,表达式2(循环条件)为i=N即i=4,表达式3为i+循环变量初值i为1,循环条件(即表达式2)i=4成立,进入第1次循环第1次循环 执行printf(%4d%4d,x1,x2);因此屏幕上输出1 2执行if语句。1%2不为0,if语句的条件表达式不成立,不执行printf(n);执行x1=x1+x2=1+2=3;此时x1中的值已变为3执行x2=x2+x1=2+3=5。转向表达式3,执行i+, i为2。循环条件i=4成立,进入第2次循环第2次循环 执行

14、printf(%4d%4d,x1,x2);因此屏幕上输出3 5执行if语句。2%2=0,if语句的条件表达式成立,执行printf(n);换行执行x1=x1+x2=3+5=8;此时x1中的值已变为8执行x2=x2+x1=5+8=13。转向表达式3,执行i+, i为3。循环条件i=4成立,进入第3次循环第3次循环 执行printf(%4d%4d,x1,x2);因此屏幕上输出8 13执行if语句。3%2不为0,if语句的条件表达式不成立,不执行printf(n);执行x1=x1+x2=8+13=21;此时x1中的值已变为21执行x2=x2+x1=21+13=34。转向表达式3,执行i+, i为4。

15、循环条件i=4成立,进入第4次循环第2次循环 执行printf(%4d%4d,x1,x2);因此屏幕上输出21 34执行if语句。4%2=0,if语句的条件表达式成立,执行printf(n);换行执行x1=x1+x2=21+34=55;此时x1中的值已变为55执行x2=x2+x1=34+55=89。转向表达式3,执行i+, i为5。循环条件i=4不成立,结束循环9.有如下程序#include main( ) int x, y; for(x=30, y=0; x=10, y10; x-, y+) x/=2, y+=2; printf(“x=%d,y=%dn”,x,y);运行结果为:x=0,y=1

16、210.有如下程序#include #define N 4main( ) int i,j; for(i=1;i=N;i+) for(j=1;ji;j+) printf( ); printf(*); printf(n);运行结果为:* * *详见教材符号常量用宏处理指令定义符号常量N为4,在编译过程中,遇到N即视为整数4。外层for循环,表达式1为i=1,表达式2(循环条件)为i=N,表达式3为 i+内层for循环,表达式1为j=1,表达式2(循环条件)为ji, 表达式3为j+首先计算外层循环的表达式1,i为1,使得循环条件i=4成立,进入外层for循环体外层for循环第1次 此时i为1 内层循

17、环j=1,使得循环条件ji不成立,因此不执行内层循环体(不输出空格) 执行printf(*); 执行printf(n);换行 至此外层循环体执行完,计算外层循环的表达式3,i+,此时i为2. 使得循环条件i=4成立,再次进入外层for循环体 外层for循环第2次 此时i为2 内层循环j=1,使得循环条件ji成立第1次执行内层循环体printf( );执行内层循环表达式3,j+为2,ji不成立,跳出内层循环 执行printf(*); 执行printf(n);换行 至此外层循环体执行完,计算外层循环的表达式3,i+,此时i为3. 使得循环条件i=4成立,进入外层for循环体外层for循环第3次 此

18、时i为3 内层循环j=1,使得循环条件ji成立第1次执行内层循环体printf( );执行内层循环表达式3,j+为2,ji成立,再次执行内层循环第2次执行内层循环体printf( );执行内层循环表达式3,j+为3,ji不成立,跳出内层循环 执行printf(*); 执行printf(n);换行 至此外层循环体执行完,计算外层循环的表达式3,i+,此时i为4. 使得循环条件i=4成立,进入外层for循环体外层for循环第4次 此时i为4 内层循环j=1,使得循环条件ji成立第1次执行内层循环体printf( );执行内层循环表达式3,j+为2,ji成立,再次执行内层循环第2次执行内层循环体pr

19、intf( );执行内层循环表达式3,j+为3,ji成立,再次执行内层循环第3次执行内层循环体printf( );执行内层循环表达式3,j+为4,ji不成立,跳出内层循环 执行printf(*); 执行printf(n);换行 至此外层循环体执行完,计算外层循环的表达式3,i+,此时i为5. 使得循环条件i=4不成立,跳出外层for循环体11.有如下程序main()int i;for(i=1;i40;i+)if(i+%5=0)if(+i%8=0)printf(%d ,i);printf(n);执行后的输出结果是_C_。A、5 B、24 C、32 D、4012.请读程序:#include#inc

20、ludemain() float x,y,z;scanf(%f%f,&x,&y);z=x/y;while(z) if(fabs(z)1.0) x=y; y=z; z=x/y; else break;printf(%fn,y);若运行时从键盘上输入3.6 2.4(表示回车),则输出的结果是_B_。A、1.500000 B、1.600000 C、2.000000 D、2.40000013.有以下程序main()int k=4,n=0;for(;nk;)n+;if(n%3!=0) continue;k-;printf(%d,%dn,k,n);程序运行后的输出结果是_C_。A、1,1 B、2,2 C、

21、3,3 D、4,414.有如下程序main()int x=23;doprintf(%d,x-);while(!x);该程序的执行结果是_B_。A、321 B、23 C、不输出任何内容 D、陷入死循环15.有以下程序main() int s=0,a=1,n;scanf(%d,&n);dos+=1;a=a-2;while(a!=n);printf(%dn,s);若要使程序的输出值为2,则应该从健盘给n输入的值是_B_。A、-1 B、-3 C、-5 D、016.有以下程序段int n,t=1,s=0;scanf(%d,&n);dos=s+t;t=t-2;while(t!=n);为使此程序不陷入死循环

22、,从键盘输入的数据应该是_D_。A、任意正奇数 B、任意负偶数 C、任意正偶数 D、任意负奇数17.有以下程序main() int i=0,s=0;doif(i%2) i+; continue; i+;s+=i;while(i8;y=+i)printf(%d %d ,x-,y);A、10 1 9 2 B、9 8 7 6 C、10 9 9 0 D、10 10 9 121.以下程序的输出结果是_B_。main() int i, k,a10,p3;k=5;for(i=0;i10;i+) ai=i;for(i=0;i3; i+) pi=ai*(i+1);for(i=0;i3; i+) k+=pi*2;

23、printf(%dn,k);A、20 B、21 C、22 D、2322.设变量已正确定义,则以下能正确计算f=n!的程序段是_D_。A、f=0;for(i=1;i=n;i+) f*i;B、f=1;for(i=1;i1;i+) f*i;D、f=1;for(i=n;i=2;i-) f*=i;23.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0)s=a;for(b=1;b=c;b+) s=s+1;则上述程序段功能等价的赋值语句是_ B _。A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c;24.有以下程序main()int i,s=0;for(

24、i=1;i10;i+=2) s+=i+1;printf(%dn,s); 程序执行后的输出结果是_D_。A、自然数19的累加和 B、自然数110的累加和C、自然数19中奇数之和 D、自然数110中偶数之和25.有如下程序main() int i,sum;for(i=1;i=3;sum+) sum+=i;printf(%dn,sum);该程序的执行结果是_C_。A、6 B、3 C、死循环 D、026.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是_A_。for(i=5;i;i-)for(j=0;j4;j+) A、20 B、25 C、24 D、3027.有以下程序main()in

25、t k=5;while(-k) printf(%d,k-=3);printf(n);执行后的输出结果是_A_。A、1 B、2 C、4 D、死循环28.以下程序中,while循环的循环次数是_D_。main() int i=0;while(i10)if(i6) n-;printf(%d,n);该程序段的输出结果是_B_。A、987 B、876 C、8765 D、987631.有以下程序main()int p7=11,13,14,15,16,17,18; int i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);执行后输出结果是_D_。A、58 B、56 C、45 D、2432.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是_A_。A、while(ch=getchar()!=N printf(%c,ch) ;B、while(ch=getchar()!=N printf(%c,ch) ;C、while(ch=getchar()=N printf(%c,ch);D、while(ch=getchar()=N printf(%c,ch);33.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2