【C语言二级考试】循环结构设计

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.具体循环结构如下:

  1. 第一次循环:初始状态:*a=0,*b=5。判断0<5为真,进入循环体,*a变为1,*b变为4
  2. 第二次循环:*a=1,*b=4。判断1<4为真,进入循环体,*a变为2,*b变为3
  3. 第三次循环:*a=2,*b=3。判断2<3为真,进入循环体,*a变为3,*b变为2
  4. 第四次循环:*a=3,*b=2。判断3<2为假,执行getchar( )读取字符'a',继续循环,*a变为4,*b变为1
  5. 第五次循环:*a=4,*b=1。判断4<1为假,执行getchar( )读取字符'b',继续循环,*a变为5,*b变为0
  6. 第四次循环:*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语句

分析:

  1. while的第一次循环:j的初始值为0,j<3成立,进入while循环。自增1后,j==1为真,执行continue语句,结束当次循环,进入下次循环
  2. while的第二次循环:j=1,j<3成立,进入while循环体。自增1后,j==1为假,执行for循环语句:
    1. for第一次循环:i=0时,a=a*10+i=0,i<1成立,b=a=0;
    2. for第二次循环:i=1时,a=a*10+i=1;
    3. for第三次循环:i=2时,i>1成立,执行break语句,跳出for循环
  3. while的第三次循环:j=2,j<3成立,进入while循环体。自增1后,j==1为假,再次执行for循环语句:
    1. for第一次循环:i=0时,a=a*10+i=10,i<1成立,b=a=10;
    2. for第二次循环:i=1时,a=a*10+i=101;
    3. for第三次循环:i=2时,i>1成立,执行break语句,跳出for循环
  4. while的第四次循环:j=3,j<3不成立,不执行while循环

最后输出a,b的值分别为101和10。

第三套17题(理解)

本题考查二维数组的遍历嵌套循环

  • 函数fun的功能:

    fun函数接收一个整型指针参数b,并将b指向的元素值与b之后第3个元素的值进行交换

  • 主函数main的功能:

    1. 声明并初始化一个长度为6的整型数组a,其初始值为{1,2,3,4,5,6}。
    2. 使用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

相关推荐
风象南4 分钟前
SpringBoot 控制器的动态注册与卸载
java·spring boot·后端
醇醛酸醚酮酯22 分钟前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
jioulongzi27 分钟前
记录一次莫名奇妙的跨域502(badgateway)错误
开发语言·python
我是一只代码狗30 分钟前
springboot中使用线程池
java·spring boot·后端
hello早上好43 分钟前
JDK 代理原理
java·spring boot·spring
PanZonghui1 小时前
Centos项目部署之Java安装与配置
java·linux
向阳@向远方1 小时前
第二章 简单程序设计
开发语言·c++·算法
JeffersonZU1 小时前
Linux/Unix进程概念及基本操作(PID、内存布局、虚拟内存、环境变量、fork、exit、wait、exec、system)
linux·c语言·unix·gnu
沉着的码农1 小时前
【设计模式】基于责任链模式的参数校验
java·spring boot·分布式
Mr_Xuhhh2 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构