一、判断题(每小题2分,共20分)
1. switch结构case语句后的多个语句必须放在花括号中。 答案:F。
2. 要在if选择结构体中包括多条语句,就要把这些语句放在花括号中。复合语句可以放
在程序中出现单个语句的任何地方。 答案:T
3. 空语句就是在正常语句出现的地方放一个分号(;),表示不采取任何操作。 答案:T
4. do/while重复结构执行循环体之后再测试循环条件,因此,do/while结构至少执行循
环体一次。 答案:T
5. break语句在while、for和do/while结构中执行时,将使程序立即退出这些结构。 答案:T
6. 大多数程序中,每个case面的语句之后要包括一个break语句。几个case可以不执行
相同语句。 答案:F
7. continue语句用于循环语句中,并不终止本层循环,而只是绕过本次循环。 答案:T
8. 如果表达式x>y为true或ay&&a
9. for重复结构处理计数器控制循环的所有细节。for结构的一般格式如下:
for(expression1, expression2, expression3) statement
其中expression1初始化循环控制变量,expression2是循环条件,expression3递增 控制变量。 答案:F
10.goto语句只能从循环体内跳到循环体外,不能从循环体外跳到循环体内。 答案:T
二、选择题 (每题3分,共45分)
1. 若k为整型,以下while循环体中的语句执行( )。
k=2;
while(k=0) {
cout< k--; cout<<\} A. 无限次 B. 0次 C. 1次 D. 2次 答案:B 2. 在下列选项中,会构成死循环的是( )。 A. int i=100; B. for(;;); C. int k=10000; D. int s=36; 答案:B 3. 为了避免在嵌套的条件语句if?else中产生二义性,C++规定else子句总是与( ) 配对。 A.其之前最近且尚未配对的if语句 B.其之前最近的if语句 C.其之后最近的if语句 D.缩排位置相同的if语句 答案:A 4. C++中循环语句while和do?while的主要区别是( )。 A. do?while的循环体至少无条件执行一次 B. while的循环控制条件和do?while的循环控制条件的控制方式是相反的 C. do?while允许从外部转到循环体内,while不允许 D. while的循环体不能是复合语句 答案:A 5. 对于省略了循环控制表达式2的循环语句“for(表达式1; ; 表达式3)”,可理解为 ( )。 A. for(表达式1; false; 表达式3) B. for(表达式1; true; 表达式3) C. for(表达式1; 表达式1; 表达式3) D. for(表达式1; 表达式3; 表达式3) 答案:B 6. 执行语句“for(i=1; i<4; i++)?”,后变量i的值为( )。 A. 1 B. 3 C. 4 D. 未知 答案:C 7. 下面关于for循环语句的叙述中,正确的是( )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环的循环体可以包含多条语句,但必须用大括号括起来 答案:D 8. 若有以下程序段: for(m=1; m<=100; m++) { cin>>y; if (y<0) continue; cout< 则下面正确的说法是( )。 A. 当y<0时整个循环结束 B. 当y>=0时什么也不输出 C. cout语句永远也不执行 D. 最多输出100个非负整数 答案:D 9. 以下程序段中的do?while循环(m=-1; do { m=m*m; }while(!m); A. 是死循环 B. 执行一次 C. 执行两次 D. 执行无数次 答案:B 10. 语句“whilea(!x) ...”等价于(A. while(x==0) ? B. while(x!=1) ? C. while(x!=0) ... D. while(x==1) ... 答案:A 11. 设有程序段 int k=10; )。 。 )while(k=0) k=k-1; 则下面描述中正确的是( ) A. 循环执行10次 B. 无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 答案: C 12. 若给定条件表达式(M)?(a++):(a--),则其中表达式M( )。 A. 和(M==0)等价 B. 和(M==1)等价 C. 和(M!=0)等价 D. 和(M!=1)等价 答案: C 13. 下列描述正确的是( ) A. 表示m>n为true或n&&m B. switch语句结构中必须有default语句 C. if语句结构中必须有else语句 D. 如果至少有一个操作数为true,则包含“||”运算符的表达式为true 答案: D 14. 以下for语句中不是死循环的是( ) A. for(int i=0;i<1;++i); B. for(int i=0;;++i); C. for(int i=1;i>0;++i); D. for(;;); 答案: A 15. 有以下程序 #include { int a=5,b=0,c=0; if(a=b+c)cout<<″***″< 下列选项叙述正确的是( ) A. 有语法错不能通过编译 B. 可以通过编译但不能通过连接 C. 输出*** D. 输出$$$ 答案: D 三、程序填空题 (本大题35分) 1. 本题分值:每空3分,共6分。 题目描述:输入一个字符,如果是小写英文字母,则将其循环后移5个位置后输出,输出, 如'a'变成'f','v'变成'a';如果不是小写字母, 原样输出。 代码: #include char c; cin>>c; if (c>='a' && c<='u') __(1)__ ; else if (c>='v' && c<='z') __(2)__ ; cout< 答案: (1) c+=5 (2) c-=21 2.本题分值:每空2分,共6分。 题目描述:服装店经营套服,也单件出售。若购买数量不少于50套,则每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条 45元。现在输入所买上衣c和裤子t的数量,计算应付款m。 代码: #include int c, t, m; cin>>c>>t; //请输入上衣和裤子的数量 if( __(1)__ ) //完全配套时 if ( c>=50 ) m=c*80; else m=c*90; else if ( __(2)__ ) if ( t>=50 ) m=t*80+(c-t)*60; else m=t*90+(c-t)*60; else if ( __(3)__ ) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; cout< 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++作业2-控制结构在线全文阅读。
相关推荐: