C语言二级考试------循环结构程序设计
五.循环结构程序设计
1.for循环结构
2.while和do-while循环结构
3.continue语句和break语句
4.循环的嵌套
知识点参考【C语言】循环-CSDN博客
文章目录
1.for循环
第三套16题(易错)
该程序包含一个名为fun的函数,该函数接收两个整型变量a和b,并在一个for循环中根据a和b指向的值的大小以及getchar( )读取的字符是否为'@'来决定循环是否继续执行。在循环体内,a指向的值自增1,b指向的值自减1.具体循环结构如下:
- 第一次循环:初始状态:
*a=0,*b=5
。判断0<5为真,进入循环体,*a变为1,*b变为4
- 第二次循环:
*a=1,*b=4
。判断1<4为真,进入循环体,*a变为2,*b变为3
- 第三次循环:
*a=2,*b=3
。判断2<3为真,进入循环体,*a变为3,*b变为2
- 第四次循环:
*a=3,*b=2
。判断3<2为假,执行getchar( )读取字符'a',继续循环,*a变为4,*b变为1
- 第五次循环:
*a=4,*b=1
。判断4<1为假,执行getchar( )读取字符'b',继续循环,*a变为5,*b变为0
- 第四次循环:
*a=5,*b=0
。判断5<0为假,执行getchar( )读取字符'@',循环结束最终i的值为5,j的值为0.选C。
2.while和do-while循环结构
第一套32题
本题考查点是while循环体
对于while(条件表达式)循环体,我们是先判断,若满足条件表达式则执行循环体,若不满足则退出循环。当遇到不满足条件时,我们执行了条件表达式,并没有执行循环体。
c//while先判断后执行 while(condition){ statement(s); } //do while先执行一次再判断 do{ statement(s); }while(condition);
故while条件表达式的执行次数总是比循环体的执行次数多一次。故本题答案为A
第一套39题(易错)
本题考查的是do 循环体while
- 该循环先执行循环体内容,然后执行条件表达式,所以条件表达式的执行次数与循环体的执行次数一样。
故本题答案为D。
第二套12题
考查点同上。
第一个循环中:do执行n次,while条件表达式执行n次,循环体执行n-1次
第二个循环中:while条件表达式执行n次,do执行n-1次,循环体执行n-1次
第三套11题
本题考查for循环计算。
选B。
3.continue语句和break语句
第三套13题
本题考查break语句 和continue语句。
- break语句,终止循环或switch语句,程序流将继续执行紧接着循环或switch的下一条语句。
- continue语句,告诉一个循环立刻停止本次循环迭代,重新开始下次循环迭代。
4.循环的嵌套
第三套15题(易错)
本题考查的是while和for嵌套循环 和continue,break语句。
分析:
- while的第一次循环:j的初始值为0,j<3成立,进入while循环。自增1后,j==1为真,执行continue语句,结束当次循环,进入下次循环。
- while的第二次循环:j=1,j<3成立,进入while循环体。自增1后,j==1为假,执行for循环语句:
- for第一次循环:i=0时,a=a*10+i=0,i<1成立,b=a=0;
- for第二次循环:i=1时,a=a*10+i=1;
- for第三次循环:i=2时,i>1成立,执行break语句,跳出for循环。
- while的第三次循环:j=2,j<3成立,进入while循环体。自增1后,j==1为假,再次执行for循环语句:
- for第一次循环:i=0时,a=a*10+i=10,i<1成立,b=a=10;
- for第二次循环:i=1时,a=a*10+i=101;
- for第三次循环:i=2时,i>1成立,执行break语句,跳出for循环。
- while的第四次循环:j=3,j<3不成立,不执行while循环
最后输出a,b的值分别为101和10。
第三套17题(理解)
本题考查二维数组的遍历 和嵌套循环。
函数fun的功能:
fun函数接收一个整型指针参数b,并将b指向的元素值与b之后第3个元素的值进行交换。
主函数main的功能:
- 声明并初始化一个长度为6的整型数组a,其初始值为{1,2,3,4,5,6}。
- 使用do...while循环调用fun函数,分别将a的第0,1,2个元素与第3,4,5个元素交换。
分析:do...while循环执行3次,分别是i=0,i=1,i=2,每次将a+i的值传给fun函数,将a+i指向的元素与a+i后第三个元素的值进行交换,a[2]与a[5]交换。执行完do...while循环后,数组a中的元素依次是:4,5,6,1,2,3.选B
第三套18题(易错)
同上。
- 外层循环for(i=0;i<4;i+=2)表示i从0开始,每次增加2,直到i小于4为止,即i的取值为0和2.
- 内层循环for(j=1;i+j<5;j++;j++)表示j从1开始,每次增加2,直到i+j小于5为止。
故答案为D
第三套19题
同上。选A
第三套20题
本题考查无限循环。
- 如果条件永远不为假,则循环将变成无限循环。当条件表达式不存在时,它被假设为真。
选A