【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

相关推荐
许野平24 分钟前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨28 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
无极程序员33 分钟前
PHP常量
android·ide·android studio
狂奔solar36 分钟前
yelp数据集上识别潜在的热门商家
开发语言·python
duration~39 分钟前
Maven随笔
java·maven
zmgst43 分钟前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
跃ZHD1 小时前
前后端分离,Jackson,Long精度丢失
java
朱一头zcy1 小时前
C语言复习第9章 字符串/字符/内存函数
c语言
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
blammmp1 小时前
Java:数据结构-枚举
java·开发语言·数据结构