计算机二级C语言循环结构练习题答案_第1页
计算机二级C语言循环结构练习题答案_第2页
计算机二级C语言循环结构练习题答案_第3页
计算机二级C语言循环结构练习题答案_第4页
计算机二级C语言循环结构练习题答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、一、选择题 1.答案选择:B 考点:while循环 分析:while(n>7满足条件则执行循环体,否则跳出循环。 (1N的值为10,n>7为真,执行循环体,n=n-1后n为9,输出n的值9 (2N的值为9,n>7为真,执行循环体,n=n-1后n为8,输出n的值8 (3N的值为8,n>7为真,执行循环体,n=n-1后n为7,输出n的值7 (4N的值为7,n>7为假,结束循环。 2.答案选择:A 考点:while和自减 分析:-i的运算口诀是先自减后引用,-i的值为i的初始值减一后的值。 (1k的值为5,进入循环,(-k)表达式的值为4(真),同时k的值改变为4,输出

2、表达式k-=3的值1,同时k的值为1。 (2k为1,表达式(-k的值为0, 结束循环。 3.答案选择:A 考点:while和&&运算 分析:&&必须左右两边表达式的值为真才真。 (1x=0,y=5,z=3,(z>0&&x<4值为真,进入循环体,执行y=y-1后y值为4,执行z-后z值为2, 执行x+后x值为1 (2x=1,y=4,z=2,(z>0&&x<4值为真,进入循环体,执行y=y-1后y值为3,执行z-后z值为1, 执行x+后x值为2 (3x=2,y=3,z=1,(z>0&&x&

3、lt;4值为真,进入循环体,执行y=y-1后y值为2,执行z-后z值为0, 执行x+后x值为3 (4x=3,y=2,z=0, (z>0&&x<4值为假,结束循环。 (5输出x,y,z的值3,2,0 4.答案选择:D 考点:while、switch和break 分析:switch(表达式中的表达式和case 表达式一致,则执行表达式后面的语句,否则执行default后面的语句。case或是default后面的语句中如果有break语句则跳出switch结构。 (1k=5,n=0,k>0为真,执行switch(5,因为没有case 5,因此执行default :

4、break;跳出switch(5,执行switch(5后面的语句,k-后k的值为4。 (2 k=4,n=0,k>0为真,执行switch(4,因为没有case 4,因此执行default : break;跳出switch(4,执行switch(4后面的语句,k-后k的值为3。 (3 k=3,n=0,k>0为真,执行switch(3,执行case 3:n+=k后n=3,执行完switch(3后继续执行switch(3后面的语句k-,那么k的值为2。 (4 k=2,n=3,k>0为真,执行switch(2,执行case 2 :,因为case 2后面直接跟着case 3,那么执行c

5、ase 3:n+=k后n=5,执行完switch(3后继续执行switch(3后面的语句k-,那么k的值为1。 (5 k=1,n=5,k>0为真,执行switch(1,执行case 1 :n+=k,那么n=6。由于case1后面没有break语句,因此顺序往下执行case 2。因为case 2后面直接跟着case 3,那么执行case 3:n+=k后n=7,执行完switch(3后继续执行switch(3后面的语句k-,那么k的值为0。 (6 k=0,n=7,k>0为假。 (7输出k的值为7。 5.答案选择:B 考点:while和scanf语句 分析:结合题目要求分析scanf中输

6、入的数据,做题时按照循环的步骤执行即可,顺着思路就能将题目解答出来,记住:只要有循环,那么一定是从条件开始慢慢往下分析的,不要急躁。 (1s=0,a=1,执行do:s+=1后s的值为1,a=a-2后a的值为- 1,判断(a!=n,由于题目说程序输出的值是2,不难发现程序中只有一条输出语句printf(“%d”,s,那么可以判定输出的结果一定是s的值,现在s的值为1不符合条件。因此(a!=n一定成立。继续执行。 (2s=1,a=-1,执行do:s+=1后s的值为2,a=a-2后a的值为-3,判断(a!=n,此时s的值为2,那么可以肯定(a!=n的值为假,也就是(a= =n为真,因为a此时为-3,

7、所以n的值为-3。结束循环。 6.答案选择:A 考点:while和scanf语句 分析:题目分析t值为1,s的值为0。从键盘中输入3后,n的值为3。 (1n=-3,t=1,s=0,执行do:s=s + t则s的值为1,执行t=t-2;t的值为-1.再判断表达式的值(t!=n的值为真,继续循环。 (2 n=-3,t=-1,s=1,执行do:s=s + t则s的值为0,执行t=t-2;t的值为-3.再判断表达式的值(t!=n的值为假,结束循环。 7.答案选择:A 考点:do-while循环 分析: (1x3; 先执行do:输出表达式x-=2的值1,同时x的值也改变成1,再判断表达式的值(!x,x的

8、值为1(真),(!x为假,循环结束。 8.答案选择:B 考点:使用循环计算阶乘 分析:阶乘的计算如果使用循环来计算,必须注意两点:其一必须规定好变量i的取值范围:从1到所要求阶乘的数字,例如5!中i要从1到5。其二用来存储阶乘积的变量必须赋初始化值为1,且不能将初始值赋值在循环体里面。 B选项每次进入循环体,都要先执行p=1;即1赋值给p.所以不能求出5!的值 9.答案选择:D 考点:for循环,找规律 分析:找规律的题目最好将循环的步骤用表达式的形式写出来,不要用值代替。 (1 i=1,s=0,i<10为真,执行s+=i+1,s=2,接着执行表达式3中的i+=2后i的值变为3 (2 i

9、=3,s=2,i<10为真,执行s+=i+1,s=2+4,接着执行表达式3中的i+=2后i的值变为5 (3 i=5,s=6,i<10为真,执行s+=i+1,s=2+4+6,接着执行表达式3中的i+=2后i的值变为7 (4 i=7,s=12,i<10为真,执行s+=i+1,s=2+4+6+8,接着执行表达式3中的i+=2后i的值变为9 (5 i=9,s=20,i<10为真,执行s+=i+1,s=2+4+6+8+10,接着执行表达式3中的i+=2后i的值变为11 (6 i=11,s=30,i<10为假,跳出循环。 (7 s=2+4+6+8+10刚好是自然数110中的偶

10、数之和。 变量i每次增量为2,变化过程为:1->3->5->7->9,语句s+=1每次执行使s增加的数为:2,4,6,8,10,所以s的值为自然数110中偶数的值。 10.答案选择:C 考点:整除 分析:1/10的值时0不是0.1,1.0/10的值为0.1。 C项s=s+1/n, 1/n首先运算,n为整型变量,1也是整型变量,当n=210时,1/n的值为整数0,故C不正确 11.答案选择:A 考点:循环的嵌套 分析:外循环每循环一次内循环将循环全部。 (1a=19,b=11,判断外循环中的条件(a!=b为真,执行内循环:判断内循环1中的条件(a>b为真,执行a-=

11、b则a=7,b=11继续判断内循 环1中的条件(a>b为假。 判断内循环2中的条件(b>a为真,执行b-=a则b=4,a=7继续判断内循环2中的条件(b>a为假。 (2a=7,b=4,判断外循环中的条件(a!=b为真,执行内循环:判断内循环1中的条件(a>b为真,执行a-=b则a=3,b=4继续判断内循环1中的条件(a>b为假。 判断内循环2中的条件(b>a为真,执行b-=a则b=1,a=3继续判断内循环2中的条件(b>a为假。 (3a=3,b=1,判断外循环中的条件(a!=b为真,执行内循环:判断内循环1中的条件(a>b为真,执行a-=b则a=

12、2,b=1继续判断内循环1中的条件(a>b为真,执行a-=b则a=1,b=1继续判断内循环1中的条件(a>b为假。 判断内循环2中的条件(b>a为假。 (4 a=1,b=1,判断外循环中的条件(a!=b为假,循环结束。 (5输出a和b的值为1,1。 12.答案选择:C 考点:break语句 分析:break语句只能出现在switch结构和循环结构中。 13.答案选择:C 考点:while循环和break语句 分析:谨记break跳出的是真个循环,如果是循环的嵌套那么就跳出内循环。 (1 x=15,判断:x>10为真,执行x+后x的值为16,判断(x%3为真,则继续执行i

13、f语句,x+后x的值为17,接着执行break语句,跳出循环。 (2 执行while后面的输出语句,输出x的值为17。 14.答案选择:D 考点:for、if和自加 分析:先判断for的表达式2是否成立,再判断if语句中的表达式是否真确。 (1x=0,判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为真,则执行if中的输出语句,输出+x的值为1,x的值为1。接着执行for中的表达式3,x+后x的值为2。 (2x=2,判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为假,则不执行if中的输出语句。接着执行for中的表达式3,x+后x的值为3。 (3x=3,

14、判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为真,则执行if中的输出语句,输出+x的值为4,x的值为4。接着执行for中的表达式3,x+后x的值为4。 (4x=5,判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为假,则不执行if中的输出语句。接着执行for中的表达式3,x+后x的值为6。 (5x=6,判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为真,则执行if中的输出语句,输出+x的值为7,x的值为7。接着执行for中的表达式3,x+后x的值为8。 (6x=8,判断:x<10为真,执行循环体:判断if中的表达式(x%3

15、=0为假,则不执行if中的输出语句。接着执行for中的表达式3,x+后x的值为9。 (7x=9,判断:x<10为真,执行循环体:判断if中的表达式(x%3=0为真,则执行if中的输出语句,输出+x的值为10,x的值为10。接着执行for中的表达式3,x+后x的值为11。 (8x=11,判断:x<10为假,结束循环。 (9最终输出的结果为:14710,记住中间不能加上空格 或是回车。 15.答案选择:D 考点:for和continue 分析:continue语句会提前结束此次循环体的执行,不会结束整个for语句的执行。当for结构中的表达式2中省略的情况下被当作永真,程序会一直执行下

16、去,一般会通过break或是continue来提前结束循环来保证程序不会陷入死循环。考试的时候经常需要我们来判断continue是否能结束死循环。 (1i=0,s=0,因为永真,执行for语句,判断第一个if中的表达式(i=3|i=5为假,不会执行continue。接着判断第二个if中的表达式(i=6为假,不会执行break语句。继续执行i+后i的值为1,s+=i后s的值为1。 (2i=1,s=1,因为永真,执行for语句,判断第一个if中的表达式(i=3|i=5为假,不会执行continue。接着判断第二个if中的表达式(i=6为假,不会执行break语句。继续执行i+后i的值为2,s+=i

17、后s的值为3。 (3i=2,s=3,因为永真,执行for语句,判断第一个if中的表达式(i=3|i=5为假,不会执行continue。接着判断第二个if中的表达式(i=6为假,不会执行break语句。继续执行i+后i的值为3,s+=i后s的值为6。 (4i=3,s=6,因为永真,执行for语句,判断第一个if中的表达式(i=3|i=5为真,执行continue。不再接着判断第二个if中的表达式(i=6,进入下次循环。 (5i=3,s=6,因为永真,执行for语句,判断第一个if中的表达式(i=3|i=5为真,执行continue。不再接着判断第二个if中的表达式(i=6,进入下次循环。 (6程

18、序将继续执行第四步(4一样的操作,陷入死循环。 16.答案选择:A 考点:循环、switch和break语句。 分析:注意循环的条件,注意break语句如果属于switch结构中的一天语句,那么仅仅跳出switch语句,不会跳出循环语句。 (1k=5,n=0,执行do:执行switch(5,由于没有case :5选项,那么执行default后面的表达式:n=0,k后k的值为4。因为default后面没有break,那么继续执行case 2,case 2紧跟着case 4,执行:n+=2后n的值为2,k后k的值为3,遇到break跳出switch(5,执行switch(5后面的输出语句,输出n的

19、值为2。判断(k>0&&n<5为真,继续循环。 (2k=3,n=2,执行do:执行switch(3,执行case 3:n+=1得到n的值为3,k后k的值为2,继续执行遇到break跳出switch(3,执行switch(3后面的输出语句,输出n的值为3。判断(k>0&&n<5为真,继续循环。 (3k=2,n=3,执行do:执行switch(2,执行case 2:case 4:n+=2得到n的值为5,k后k的值为1,继续执行遇到break跳出switch(2,执行switch(2后面的输出语句,输出n的值为5。判断(k>0&&

20、amp;n<5为假,结束循环。 (6最终结果为:235 17.答案选择:A 考点:死循环 分析:形成死循环的条件是:表达式的值为永真,例如:for(表达式1;表达式2;表达式3中缺省表达式2,while(1等情况。 (A 答案中的选项: (1n=0,do:+n后n的值为1,判断:n<=0为假,结束循环,不构成死循环。 18.答案选择:B 考点:循环和自加 分析: (1i=0,do:输出i的值为0,判断:i+的值为0,i=1,i+为0假结束循环。 (2执行do-while后面的输出语句:输出i的值为1。 (3最终输出的值为:0,1 19.答案选择:D 考点:for循环、if语句、co

21、ntinue 分析: (1 x=8,x>0为真,判断:x%3的值2为真,执行输出语句,输出x的值为8,x为7。遇到后面的continue语句结束本论循环,接着执行for结构中的表达式3,x后x的值为6。 (2 x=6,x>0为真,判断:x%3的值0为假,执行if后面的语句,输出x的值为5,x为5。接着执行for结构中的表达式3,x后x的值为4。 (3 x=4,x>0为真,判断:x%3的值1为真,执行输出语句,输出x的值为4,x为3。遇到后面的continue语句结束本论循环,接着执行for结构中的表达式3,x后x的值为2。 (4 x=2,x>0为真,判断:x%3的值2为

22、真,执行输出语句,输出x的值为2,x为1。遇到后面的continue语句结束本论循环,接着执行for结构中的表达式3,x后x的值为0。 (5 x=0,x>0为假,结束循环。 (6 最终输出的结果为:8,5,4,2 20.答案选择:C 考点:循环和if 分析: (1 y=9,y>0为真,判断:(y%3=0为真,输出y的值为8,y的值为8,接着执行表达式3,y后y的值为7。 (2 y=7,y>0为真,判断:(y%3=0为假不执行if结构,接着执行表达式3,y后y的值为6。 (3 y=6,y>0为真,判断:(y%3=0为真,输出y的值为5,y的值为5,接着执行表达式3,y后y

23、的值为4。 (4 y=4,y>0为真,判断:(y%3=0为假不执行if结构,接着执行表达式3,y后y的值为3。 (5 y=3,y>0为真,判断:(y%3=0为真,输出y的值为2,y的值为2,接着执行表达式3,y后y的值为1。 (6 y=1,y>0为假,判断:(y%3=0为假不执行if结构,接着执行表达式3,y后y的值为0。 (7 y=0,y>0为假,结束循环。 (8 最终输出结果为:852 21.答案选择:B 考点:循环的嵌套 分析:外循环没循环一次内循环将循环全部 (1 i=1,i<=3为真,执行内循环: j=3,j<=i为假,跳出内循环执行外循环中的表达

24、式3,i+后i的值为2 (2 i=2,i<=3为真,执行内循环: j=3,j<=i为假,跳出内循环执行外循环中的表达式3,i+后i的值为3。 (2 i=3,i<=3为真,执行内循环: j=3,j<=i为真,执行m=m%j则m的值为1,执行j+后j的值为4 j=4,j<=i为假,跳出内循环执行外循环中的表达式3,i+后i的值为4。 (3 i=4,i<=3为假,结束循环。 (4 输出m的值为1。 22.答案选择:B 考点:循环的嵌套 分析: (1 i=1,i<4为真,执行内循环: 1) j=1,j<4为真,输出:1*1=1,执行j+后j的值为2 2)

25、 j=2,j<4为真, 输出:1*2=2,执行j+后j的值为3 3) j=3,j<4为真,输出:1*3=3,执行j+后j的值为4 4) j=4,j<4为假 5) 输出换行,执行外循环中的i+后i的值为2 (2 i=2,i<4为真,执行内循环: 1) j=2,j<4为真,输出:2*2=4,执行j+后j的值为3 2) j=3,j<4为真,输出:2*3=6,执行j+后j的值为4 3) j=4,j<4为假 4) 输出换行,执行外循环中的i+后i的值为3 (3 i=3,i<4为真,执行内循环: 1) j=3,j<4为真,输出:3*3=9,执行j+后j

26、的值为4 2) j=4,j<4为假 3) 输出换行,执行外循环中的i+后i的值为4 (4 i=4,i<4为假,不执行内循环,结束循环。 (5 最终输出的结果为: 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 23.答案选择: 考点:循环结构和选择结构 分析: (1n=0,n<4成立,执行:n+后n的值为1,判断if中的表达式(n%3!=0为假,不执行continue,由于for结构中缺少表达式3,因此继续判断表达式2的真假。 (2n=1,n<4成立,执行:n+后n的值为2,判断if中的表达式(n%3!=0为假,不执行continue,由于for

27、结构中缺少表达式3,因此继续判断表达式2的真假。 (3n=2,n<4成立,执行:n+后n的值为3,判断if中的表达式(n%3!=0为真,执行continue,由于for结构中缺少表达式3,因此继续判断表达式2的真假。 (4n=3,n<4成立,执行:n+后n的值为4,判断if中的表达式(n%3!=0为假,不执行continue,由于for结构中缺少表达式3,因此继续判断表达式2的真假。 (5n=4,n<4成立,结束循环。 (6输出n的值为4。 24.答案选择: 考点:循环嵌套 分析: (一)使用嵌套循环输出特殊图案, * * * * 通过观察可以知道:第一行只有一个*号,却在*

28、的前面有三个空格。第二行有三个*号,*号前面有两个空格。第三行有五个*号,在*号前面仅仅有一个空格。第四行有七个*号,没有空格。从中可以得到如下规律: 用i代表行数,共有4行: i=1时,有4-i个空格,有2*i-1个*号 i=2时,有4-i个空格,有2*i-1个*号 i=3时,有4-i个空格,有2*i-1个*号 i=4时,有4-i个空格,有2*i-1个*号 结合程序即可得到正确结果。 25.答案选择: 考点:循环和选择结构 分析: (1 i=0,a=0,i<20成立,执行内层循环: 1 for( ; ; 永真,判断:(i%10=0为真,执行break语句,跳出内层循环。 2 执行for

29、( ; ; 后面的语句,i+=21得到i=21,a+=i得到a=21。 (2 i=21,a=21,i<20为假,结束循环。 (3 输出a的值为21。 26.答案选择: 考点:循环和选择结构 分析: (1 i=0,i<10成立,判断:i<1为真,执行continue,结束本轮循环。 (2 i=0,i<10成立,判断:i<1为真,执行continue,结束 本轮循环 (3 程序陷入死循环 二、填空题: 1.答案:-1 分析: (1x=2,(x-的值为2为真,x的值为1, (2x=1,(x-的值为1为真,x的值为0 (3x=0,(x-的值为0为假,x的值为-1,循环执行

30、结束 (4输出x的值为:-1 2.答案:11 分析: (1 i=0,sum=1,do:sum+=i后sum的值为1,i+后i的值为1,判断:i<5为真 (2 i=1,sum=1,do:sum+=i后sum的值为2,i+后i的值为2,判断:i<5为真 (3 i=2,sum=2,do:sum+=i后sum的值为4,i+后i的值为3,判断:i<5为真 (4 i=3,sum=4,do:sum+=i后sum的值为7,i+后i的值为4,判断:i<5为真 (5 i=4,sum=7,do:sum+=i后sum的值为11,i+后i的值为5,判断:i<5为假,结束循环。 (6 输出s

31、um的值为11。 3.答案:n=n/10 分析:假如输入的值为135,那么n=135 (1 n=135,do:s=n%10,那么s的值为5,输出s的值为5。接着我们要输出3才能将n逆序输出。在学习%和/的时候总结过:135/10=13,135%10=5,因此我们试着将后面的空填上n=n/10,那么n的值为13,判断(n!=0为真。 (2 n=13,do:s=n%10,那么s的值为3,输出s的值为3。执行n=n/10后n的值为1,判断(n!=0为真。 (3 n=1,do:s=n%10,那么s的值为1,输出s的值为1。执行n=n/10后n的值为0,判断(n!=0为假,结束循环。 (4 已经得到逆序

32、的结构为:531,说明我们所要填的空就是n=n/10。 4.答案:0 分析: (1 t=1,i=5,i>=0为真,执行t*=i则t的值为5,执行i-后i的值为4 (2 t=5,i=4,i>=0为真,执行t*=i则t的值为20,执行i-后i的值为3 (3 t=20,i=3,i>=0为真,执行t*=i则t的值为60,执行i-后i的值为2 (4 t=60,i=2,i>=0为真,执行t*=i则t的值为120,执行i-后i的值为1 (5 t=120,i=1,i>=0为真,执行t*=i则t的值为120,执行i-后i的值为0 (6 t=120,i=0,i>=0为真,执行t

33、*=i则t的值为0,执行i-后i的值为-1 (7 t=0,i=-1,i>=0为假,结束循环 (8 输出t的值为0 5.答案:5 分析: (1 s=0,i=1,i<3成立,由于循环体为空则执行表达式3,i+后i的值为2,s+=i后s的值为2。 (2 s=2,i=2,i<3成立,由于循环体为空则执行表达式3,i+后i的值为3,s+=i后s的值为5。 (3 s=5,i=3,i<3不成立,结束循环。 (4 输出s的值为:5 6.答案: 分析: (1 i=1,i<5成立 1 j=2,j<=i为假,不输出#,执行i+后i的值为2 (2 i=2,i<5成立 1 j=

34、2,j<=i为真,输出#,执行j+后j的值为3 2 j=3,j<=i为假,不输出#,执行i+后i的值为3 (3 i=3,i<5成立 1 j=2,j<=i为真,输出#,执行j+后j的值为3 2 j=3,j<=i为真,输出#,执行j+后j的值为4 3 j=4,j<=i为假,不输出#,执行i+后i的值为4 (4 i=4,i<5成立 1 j=2,j<=i为真,输出#,执行j+后j的值为3 2 j=3,j<=i为真,输出#,执行j+后j的值为4 3 j=4,j<=i为真,输出#,执行i+后i的值为5 4 j=5,j<=i为假,不输出#,执

35、行i+后i的值为5 (5 i=5,i<5不成立结束循环 (6 总共输出6 个# 7.答案:0 分析:输入1234567890<回车> (1判断(ch=getchar(= =0,即:判断(1= =0为假,结束循环。 8.答案:54321 分析:考查将一个正整数逆序输出。 9.答案:k<=n k+ 10.答案:ACE 分析: (1 i=a,i<f为真,输出:i-a+A的值为A,执行表达式3中的i+,+i后i的值为c (2 i=c,i<f为真,输出:i-a+A的值为C,执行表达式3中的i+,+i后i的值为e (3 i=e,i<f为真,输出:i-a+A的值为E,执行表达式3中的i+,+i后i的值为g (4 i=

温馨提示

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

评论

0/150

提交评论