内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第20练,内容涵盖第5章循环的控制的5.3 do-while 语句。
《C语言程序设计》(电子工业出版社)一课一练 第20练
第5章 循环的控制
5.3 do-while 语句
1、 单项选择题(本题共5小题)
1、关于 do…while 语句的执行逻辑,下列说法正确的是( )
A. 先执行循环体,再判断条件表达式,为真时继续循环
B. 先判断条件表达式,为真时执行循环体
C. 循环体可能一次都不执行
D. 循环体只能是单条语句,不能是复合语句
【答案】A
【解析】do…while 属于 "直到型" 循环,执行顺序是先执行一次循环体,再判断条件表达式,若表达式为真则继续循环;选项B 是 while 语句的逻辑,选项 C 错误,do…while 循环体至少执行一次,选项 D 错误,多条语句用大括号括起来可作为复合循环体。
2、以下两段代码,当输入 n=0 时,输出结果不同的是( )
代码 1:
int n=0, sum=0;
while(n>0) { sum +=n; n--; }
printf("%d", sum);
代码 2:
int n=0, sum=0;
do { sum +=n; n--; } while(n>0);
printf("%d", sum);
A. 代码 1 输出 0,代码 2 输出 0
B. 代码 1 输出 0,代码 2 输出 - 1
C. 代码 1 输出 - 1,代码 2 输出 0
D. 两段代码输出相同
【答案】D
【解析】while 循环先判断条件,n=0不满足n>0,循环体一次都不执行,sum=0;do-while 循环先执行一次循环体,执行sum +=n即sum=0+0=0,再执行n--使n=-1,之后判断条件不成立退出循环,最终sum=0。因此两段代码输出结果相同。
3、以下两段代码,当 n=-1 时,输出结果不同的是( )
代码 1:
int n=-1, sum=0;
while(n>0) { sum +=n; n--; }
printf("%d", sum);
代码 2:
int n=-1, sum=0;
do { sum +=n; n--; } while(n>0);
printf("%d", sum);
A. 代码 1 输出 0,代码 2 输出 - 1
B. 代码 1 输出 0,代码 2 输出 0
C. 代码 1 输出 - 1,代码 2 输出 0
D. 两段代码输出相同
【答案】A
【解析】代码 1 中 while 初始条件 n>0 为假,循环体不执行,sum 保持 0;代码 2 中 do…while 先执行循环体,sum=0+(-1)=-1,n 变为 - 2,再判断 n>0 为假退出,因此代码 2 输出 - 1,两段结果不同。
4、下列 do…while 代码中,存在语法错误的是( )
A.
int i=0;
do { printf("%d",i); i++; } while(i<5);
B.
int i=0;
do { printf("%d",i); } while(i++<5);
C.
int i=0;
do {
printf("%d",i);
i++;
} while(i<5);
D.
int i=0;
do printf("%d",i); i++; while(i<5);
【答案】D
【解析】do…while 循环中,若循环体是多条语句,必须用大括号括起来;选项 D 中 do 后面直接跟两条语句,没有大括号,编译器只会将printf("%d",i);视为循环体,i++;会脱离循环逻辑,导致语法错误。
5、执行以下 do…while 代码,循环体执行次数是( )
int a=3;
do {
printf("%d ",a);
a--;
} while(a>0);
A. 2 次
B. 4 次
C. 3 次
D. 无限次
【答案】C
【解析】初始 a=3,先执行循环体输出 3,a 变为 2;判断 a>0 为真,执行循环体输出 2,a 变为 1;判断 a>0 为真,执行循环体输出 1,a 变为 0;判断 a>0 为假,退出循环,共执行 3 次。
2、 判断题(本题共3题)
1、do…while 循环属于 "直到型" 循环,其循环体至少会被执行一次。( )
【答案】√
【解析】do…while 语句的执行逻辑是先执行循环体,再判断条件表达式,无论初始条件是否成立,循环体都会先执行一次。
2、do…while 语句中,while (表达式) 的末尾可以省略分号,不会影响程序编译。( )
【答案】×
【解析】do…while 语句的语法要求,while (表达式) 后面必须添加分号,否则会出现语法错误,导致程序无法编译通过。
3、任何 while 循环都可以直接替换为 do…while 循环,程序运行结果完全一致。( )
【答案】×
【解析】当 while 循环的初始条件为假时,循环体不执行;而替换为 do…while 循环后,循环体至少执行一次,此时运行结果会不同,因此二者不能无条件互换。
3、 填空题(本题共2题)
1、do…while 语句属于____循环结构,其核心特征是先执行循环体,再判断循环条件。
【答案】直到型
【解析】直到型循环的逻辑是 "执行循环体直到条件不成立",do…while 完全符合这一特征,区别于 while 的 "当型" 循环。
2、在 do…while 语句中,如果循环体包含多条语句,必须用____将这些语句括起来,形成复合语句。
【答案】大括号({})
【解析】这是 C 语言语法的要求,若不用大括号,编译器只会将 do 后面的第一条语句视为循环体,后续语句会脱离循环逻辑,导致程序运行异常。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int i=1, sum=0;
do {
sum += i;
i++;
} while(i<=10);
printf("1+2+...+10 = %d", sum);
return 0;
}
【答案】
程序运行结果:
1+2+...+10 = 55
【解析】
程序先执行循环体,将 i 的值累加到 sum 中,i 每次自增 1。第一次执行后 sum=1,i=2;之后循环继续,直到 i=11 时,i<=10 的条件不成立,退出循环。最终 sum 累加了 1 到 10 的所有整数,结果为 55。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第20练,内容涵盖第5章循环的控制的5.3 do-while 语句。
《C语言程序设计》(电子工业出版社)一课一练 第20练
第5章 循环的控制
5.3 do-while 语句
1、 单项选择题(本题共5小题)
1、关于 do…while 语句的执行逻辑,下列说法正确的是( )
A. 先执行循环体,再判断条件表达式,为真时继续循环
B. 先判断条件表达式,为真时执行循环体
C. 循环体可能一次都不执行
D. 循环体只能是单条语句,不能是复合语句
2、以下两段代码,当输入 n=0 时,输出结果不同的是( )
代码 1:
int n=0, sum=0;
while(n>0) { sum +=n; n--; }
printf("%d", sum);
代码 2:
int n=0, sum=0;
do { sum +=n; n--; } while(n>0);
printf("%d", sum);
A. 代码 1 输出 0,代码 2 输出 0
B. 代码 1 输出 0,代码 2 输出 - 1
C. 代码 1 输出 - 1,代码 2 输出 0
D. 两段代码输出相同
3、以下两段代码,当 n=-1 时,输出结果不同的是( )
代码 1:
int n=-1, sum=0;
while(n>0) { sum +=n; n--; }
printf("%d", sum);
代码 2:
int n=-1, sum=0;
do { sum +=n; n--; } while(n>0);
printf("%d", sum);
A. 代码 1 输出 0,代码 2 输出 - 1
B. 代码 1 输出 0,代码 2 输出 0
C. 代码 1 输出 - 1,代码 2 输出 0
D. 两段代码输出相同
4、下列 do…while 代码中,存在语法错误的是( )
A.
int i=0;
do { printf("%d",i); i++; } while(i<5);
B.
int i=0;
do { printf("%d",i); } while(i++<5);
C.
int i=0;
do {
printf("%d",i);
i++;
} while(i<5);
D.
int i=0;
do printf("%d",i); i++; while(i<5);
5、执行以下 do…while 代码,循环体执行次数是( )
int a=3;
do {
printf("%d ",a);
a--;
} while(a>0);
A. 2 次
B. 4 次
C. 3 次
D. 无限次
2、 判断题(本题共3题)
1、do…while 循环属于 "直到型" 循环,其循环体至少会被执行一次。( )
2、do…while 语句中,while (表达式) 的末尾可以省略分号,不会影响程序编译。( )
3、任何 while 循环都可以直接替换为 do…while 循环,程序运行结果完全一致。( )
3、 填空题(本题共2题)
1、do…while 语句属于____循环结构,其核心特征是先执行循环体,再判断循环条件。
2、在 do…while 语句中,如果循环体包含多条语句,必须用____将这些语句括起来,形成复合语句。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int i=1, sum=0;
do {
sum += i;
i++;
} while(i<=10);
printf("1+2+...+10 = %d", sum);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$