第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,最终输出该结果。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第21练 第5章 for语句《C语言程序设计》(电子工业出版社)一课一练-第1页
1

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。