第21练 第5章 for语句《C语言程序设计》(电子工业出版社)一课一练
|
2份
|
7页
|
50人阅读
|
0人下载
内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第21练,内容涵盖第5章循环的控制的5.4 for 语句。
《C语言程序设计》(电子工业出版社)一课一练 第21练
第5章 循环的控制
5.4 for 语句
1、 单项选择题(本题共4小题)
1、关于for(表达式1; 表达式2; 表达式3) 语句的执行顺序,下列描述正确的是( )
A. 先执行循环体,再计算表达式 2,最后计算表达式 3
B. 先计算表达式 1,再计算表达式 2,若为真则执行循环体,最后计算表达式 3
C. 先计算表达式 3,再计算表达式 2,若为真则执行循环体,最后计算表达式 1
D. 先计算表达式 2,若为真则执行循环体,再计算表达式 1 和表达式 3
2、以下关于 for 语句表达式省略的写法,合法的是( )
A.int i=1;for(;i<=5;i++) { printf("%d ",i); }
B.for(int i=1;;i++) { printf("%d ",i); }
C.for(int i=1;i<=5;) { printf("%d ",i); i++; }
D. 以上写法都合法
3、执行以下 for 语句,会出现死循环的是( )
A.for(int i=0;i<5;i++) { printf("%d ",i); }
B.for(int i=5;i>0;i--) { printf("%d ",i); }
C.for(int i=0;i<5;) { printf("%d ",i); }
D.for(int i=0;i++<5;) { printf("%d ",i); }
4、以下 for 循环的循环体执行次数是( )
for(int i=2;i<=10;i+=2) { printf("%d ",i); }
A. 5 次
B. 4 次
C. 6 次
D. 10 次
2、 判断题(本题共3题)
1、for 语句的三个表达式(表达式 1、表达式 2、表达式 3)都可以省略,但省略后需要保证循环能正常结束或符合预期逻辑。( )
2、for 循环的循环体如果是多条语句,必须用大括号{}括起来,否则编译器会将所有后续语句都视为循环体。( )
3、for 语句的表达式 1 只能是赋值表达式,不能使用其他类型的表达式。( )
3、 填空题(本题共2题)
1、for 语句的一般格式中,表达式 1 用于____,表达式 2 是循环控制的判断条件,表达式 3 用于____。
2、若省略 for 语句中的表达式 2,程序会默认该表达式的值____,如果没有手动终止循环的逻辑,会导致程序进入死循环。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int sum = 0;
for(int i=1;i<=99;i+=2) {
sum += i;
}
printf("1+3+5+...+99 = %d", sum);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第5章的第21练,内容涵盖第5章循环的控制的5.4 for 语句。
《C语言程序设计》(电子工业出版社)一课一练 第21练
第5章 循环的控制
5.4 for 语句
1、 单项选择题(本题共4小题)
1、关于for(表达式1; 表达式2; 表达式3) 语句的执行顺序,下列描述正确的是( )
A. 先执行循环体,再计算表达式 2,最后计算表达式 3
B. 先计算表达式 1,再计算表达式 2,若为真则执行循环体,最后计算表达式 3
C. 先计算表达式 3,再计算表达式 2,若为真则执行循环体,最后计算表达式 1
D. 先计算表达式 2,若为真则执行循环体,再计算表达式 1 和表达式 3
【答案】B
【解析】for 语句的执行流程是:首先执行表达式 1 初始化循环变量,然后计算表达式 2 判断循环条件,若为真则执行循环体,循环体执行完毕后计算表达式 3 更新循环变量,之后重复判断表达式 2,直到其值为假时退出循环。
2、以下关于 for 语句表达式省略的写法,合法的是( )
A.
int i=1;
for(;i<=5;i++) { printf("%d ",i); }
B.
for(int i=1;;i++) { printf("%d ",i); }
C.
for(int i=1;i<=5;) { printf("%d ",i); i++; }
D. 以上写法都合法
【答案】D
【解析】根据 for 语句的语法规则,表达式 1、表达式 2、表达式 3 都可以单独省略:选项 A 省略了表达式 1,因为循环变量已在外部初始化;选项 B 省略了表达式 2,默认条件始终为真;选项 C 省略了表达式 3,在循环体内手动更新循环变量,三种写法均符合语法要求。
3、执行以下 for 语句,会出现死循环的是( )
A.
for(int i=0;i<5;i++) { printf("%d ",i); }
B.
for(int i=5;i>0;i--) { printf("%d ",i); }
C.
for(int i=0;i<5;) { printf("%d ",i); }
D.
for(int i=0;i++<5;) { printf("%d ",i); }
【答案】C
【解析】选项 C 中省略了表达式 3,循环变量 i 的值始终为 0,导致 i<5 的条件永远成立,程序会无限执行循环体,形成死循环;其他选项都有循环变量的更新逻辑,能正常退出循环。
4、以下 for 循环的循环体执行次数是( )
for(int i=2;i<=10;i+=2) { printf("%d ",i); }
A. 5 次
B. 4 次
C. 6 次
D. 10 次
【答案】A
【解析】循环变量 i 初始值为 2,每次自增 2,依次取值为 2、4、6、8、10,共执行 5 次;当 i=12 时,i<=10 的条件不成立,退出循环。
2、 判断题(本题共3题)
1、for 语句的三个表达式(表达式 1、表达式 2、表达式 3)都可以省略,但省略后需要保证循环能正常结束或符合预期逻辑。( )
【答案】√
【解析】根据 C 语言语法规则,for 语句的三个表达式均可单独省略:省略表达式 1 需提前初始化循环变量,省略表达式 2 默认条件为真,省略表达式 3 需在循环体内手动更新循环变量,只要逻辑合理就合法。
2、for 循环的循环体如果是多条语句,必须用大括号{}括起来,否则编译器会将所有后续语句都视为循环体。( )
【答案】×
【解析】若 for 循环体是多条语句,未用大括号括起来时,编译器只会将紧跟 for 后的第一条语句视为循环体,后续语句会脱离循环逻辑,不会被重复执行,因此必须用大括号形成复合语句。
3、for 语句的表达式 1 只能是赋值表达式,不能使用其他类型的表达式。( )
【答案】×
【解析】表达式 1 的作用是初始化循环变量,除了赋值表达式外,还可以使用逗号表达式同时初始化多个变量,比如for(int i=0,j=10;i<5;i++,j--),这种写法也是合法的。
3、 填空题(本题共2题)
1、for 语句的一般格式中,表达式 1 用于____,表达式 2 是循环控制的判断条件,表达式 3 用于____。
【答案】循环变量初始化;更新循环变量
【解析】表达式 1 通常为循环变量赋初始值,为循环开始做准备;表达式 3 一般通过自增、自减或赋值操作更新循环变量,确保循环条件最终会变为假,避免死循环。
2、若省略 for 语句中的表达式 2,程序会默认该表达式的值____,如果没有手动终止循环的逻辑,会导致程序进入死循环。
【答案】始终为真(非 0)
【解析】根据 C 语言 for 语句的语法规则,省略表达式 2 时,编译器会默认其值为真,循环会一直执行,直到遇到 break 语句或程序异常终止。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int sum = 0;
for(int i=1;i<=99;i+=2) {
sum += i;
}
printf("1+3+5+...+99 = %d", sum);
return 0;
}
【答案】
程序运行结果:
1+3+5+...+99 = 2500
【解析】
程序通过 for 循环遍历 1 到 99 的所有奇数,每次循环将当前奇数累加到 sum 中。循环变量 i 初始为 1,每次自增 2,共执行 50 次(1 到 99 共 50 个奇数),根据等差数列求和公式,和为 (1+99)*50/2=2500,最终输出该结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$