4.3 KiB
C++ do-while 循环 课后作业
姓名: __________________
一、 填空题
do-while循环的核心思想是“先 ___________,后 ___________”。- 与
while循环不同,do-while循环的循环体代码保证至少会被执行 ______ 次。 do-while循环的语法结构在末尾的while(条件)之后必须有一个 ________。- 在猜数字游戏中,因为玩家无论如何都需要先输入一次猜测的数字,所以使用 ___________ 循环比
while循环更合适。 - 在 C++ 中,为了生成每次运行程序时都不同的随机数,我们需要使用
time(0)函数来获取当前的___________,并通过srand()函数设置随机数 ___________,为了使用这两个函数工具,需要包含<ctime>和<cstdlib>两个头文件。
二、 单项选择题
( ) 1. 关于 do-while 和 while 循环,下列说法正确的是?
A. 两者没有任何区别
B. while 循环的循环体至少执行一次
C. do-while 循环的循环体至少执行一次
D. do-while 循环先判断条件再执行
( ) 2. 观察下面的代码,它会输出多少个 "Hello"?
int i = 10;
do {
cout << "Hello" << endl;
i++;
} while (i < 10);
A. 0 个 B. 1 个 C. 10 个 D. 无限个
( ) 3. 哪个场景最适合使用 do-while 循环?
A. 遍历一个已知长度的数组
B. 计算 1 到 100 的累加和
C. 程序启动后,先显示菜单让用户选择,如果选择无效则重新显示
D. 从 100 倒数到 1
( ) 4. 要生成一个 [1, 50] 范围内的随机整数,正确的表达式是?
A. rand() % 49 B. rand() % 50
C. rand() % 50 + 1 D. rand() % 51
( ) 5. 在猜数字游戏中,do-while 循环的循环条件通常是?
A. guess == ans B. guess != ans
C. guess > ans D. guess < ans
( ) 6. 分析以下代码,最终输出结果是什么?
int n = 5;
do {
cout << n << " ";
n--;
} while (n > 5);
A. 什么都不输出 B. 5 C. 5 4 3 2 1 D. 导致死循环
( ) 7. 关于 srand(time(0)); 这行代码,下列描述错误的是?
A. 它的作用是初始化随机数种子 B. time(0) 提供一个不断变化的值
C. 它应该被放在 do-while 循环的内部,以保证每次循环都足够随机
D. 它能确保程序每次运行时,生成的随机数序列都不同
( ) 8. do-while 循环的条件判断发生在哪个时间点?
A. 每次循环体执行之前
B. 每次循环体执行之后
C. 仅在整个循环开始前判断一次
D. 仅在循环体执行到一半时
( ) 9. 以下哪个 do-while 的语法是正确的?
A. do while(x<5) { ... }
B. do { ... } while x<5;
C. do { ... } while(x<5)
D. do { ... } while(x<5);
( ) 10. 如果有一个程序需要反复验证用户输入的密码,直到输入正确为止,最合适的循环结构是?
A. if-else 结构
B. while 循环,并在循环外先获取一次输入
C. do-while 循环
D. 选项 B 和 C 都可以,但 C 更简洁优雅
三、 判断题 (对的打“√”,错的打“×”)
( ) 1. do-while 循环的循环条件即使初始就为 false,循环体也依然会执行一次。
( ) 2. 在任何情况下,一个 while 循环都可以被等价地改写为 do-while 循环。
( ) 3. rand() % 100 生成的随机数范围是 [0, 100],即包含0和100。
( ) 4. 在 do { ... } while(条件表达式); 结构中,在执行完循环体后,条件表达式 变为 false 时循环终止。
( ) 5. 因为 do-while 循环体至少执行一次,所以它永远不会导致“一次都不执行”的情况。
( ) 6. srand(time(0)); 这行代码的作用是生成一个随机数。
( ) 7. do-while 循环适合于需要先获取用户输入再进行判断的逻辑。
( ) 8. 如果忘记了 do-while 语句末尾的分号,程序将无法通过编译。
( ) 9. 在一个 do-while 循环体内,必须有能够影响到循环条件的语句,否则可能导致死循环。
( ) 10. while(guess != ans) 和 while(!(guess == ans)) 这两个循环条件是完全等价的。