东南大学四系c++作业第2章1流程控制语句答案.docx
- 文档编号:10891828
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:18
- 大小:151.05KB
东南大学四系c++作业第2章1流程控制语句答案.docx
《东南大学四系c++作业第2章1流程控制语句答案.docx》由会员分享,可在线阅读,更多相关《东南大学四系c++作业第2章1流程控制语句答案.docx(18页珍藏版)》请在冰豆网上搜索。
东南大学四系c++作业第2章1流程控制语句答案
东南大学四系C++作业━━第2章
(1)━━流程控制语句答案
流程控制语句
【学习要点】
1.掌握算法描述的三种基本结构。
2.掌握if-else条件语句及其应用,掌握if语句的嵌套结构。
3.掌握switch开关语句及其应用,掌握break在switch语句中的作用。
4.掌握while循环语句及其应用。
5.掌握do-while循环语句及其应用。
6.掌握for循环语句及其应用。
7.掌握循环语句的嵌套结构。
8.掌握break语句、continue语句在循环结构中的作用。
9.掌握return语句、goto语句、exit()函数、abort()函数的作用及其应用。
-------------------------------------------------------------------------------------------------------------------------------------------------
【例题分析】
1.若intx=3,执行以下循环语句后,输出的结果是______。
docout<<(x-=2)<<‘\t’;
while(!
(--x));
A.1
B.1-2
C.1-1
D.死循环
【答案】B
【解析】先执行一次do后面的循环体语句,遇到while,判断下次循环是否进行,即求解while后面表达式的值,若表达式的值为true,则再次回到do…;若表达式的值为false,则跳出整个do-while语句。
2.若intx=10,执行以下switch语句后,x的值是______。
switch(x){case9:
x+=1;
case10:
x+=1;
case11:
x+=1;
defaule:
x+=1;}
A.10
B.11
C.12
D.13
【答案】D
【解析】从上往下在case分支的常量表达式值中,寻找与之值相等的分支作为执行入口,并从该分支的语句序列开始执行下去,其后的每个case分支(包括default分支)中的语句序列都有可能执行到,直到遇到break语句才跳出switch语句,或遇到switch语句的结束括号“}”为止。
3.以下三条语句,正确的论断是______。
(1)if(a)s1;elses2;
(2)if(a==0)s2;elses1;
(3)if(a!
=0)s1;elses2;
A.三者相互等价
B.只有
(2)和(3)等价
C.只有
(1)和(3)等价
D.三者相互不等价
【答案】A
【解析】先求解if后面表达式的值,若表达式的值为true,则执行if后面的语句;若表达式的值为false,则执行else后面的语句。
4.退出一个循环语句(不能终止当前函数的执行)的有效措施是______。
A.用break语句
B.用continue语句
C.用return语句
D.调用函数exit
(1)
【答案】A
【解析】break是结束循环;continue是结束本次循环;return是从当前执行的函数返回其主调函数;exit
(1)是终止整个程序的执行。
5.下面程序的运行结果是______。
#include<>
voidmain()
{inti=0,x=0,y=0;
do{i++;
if(i%3!
=0){x+=i;i++;}
y+=i++;
}while(i<5);
cout<<"x="< } 【答案】输出: x=5y=7 6.下面程序的运行结果是______。 #include<> voidmain() {intx,y=10; while(x=y-1){y-=2; if(y%3==0){x++;continue;} elseif(y<4)break; x++;} cout<<"x="< } 【答案】输出: x=3y=2 7.下面程序的运行结果是______。 #include<> voidmain() {inti,j,m; for(i=1;i<=6;i++) {for(j=i+1;j<=8;j++) {if(j==4){cout<<"Bye! ”;break;} m=i*j; cout< cout< } } 【答案】第1行输出: 1×2=21×3=3Bye! 第2行输出: 2×3=6Bye! 第3行输出: Bye! 第4行输出: 4×5=204×6=244×7=284×8=32 第5行输出: 5×6=305×7=355×8=40 第6行输出: 6×7=426×8=48 【解析】当j的值为4时,break语句结束的是内层循环,外层for循环继续执行。 8.完善下列程序,程序功能是: 输入一个自然数,输出其各因子的连乘形式。 (如输入自然数12,输出12=1×2×2×3) #include<> voidmain() {inti=2,n; cout<<"输入一个自然数: "; cin>>n; cout< do{if(n%i==0) {cout<<“×”< _________①_________;} elsei++; }while(_________②_________); cout< } 【答案】①n=n/i 【答案】②n! =1 9.编写程序: (要求用if-else语句实现)键盘输入某班同学的一门成绩,统计该班级的不及格、60~69、70~79、80~89、90分以上的各个档次的人数,并将该班同学的原始成绩,以及统计出来的各个档次人数写入数据文件中,原始成绩按一行4个数据的格式写入中。 (要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入流结束符Ctrl+Z作为统计结束条件。 ) 【答案】编写程序如下: #include<> #include<> voidmain() {intx,n=0,c9=0,c8=0,c7=0,c6=0,c0=0; ofstreamoutf(“”); cout<<“请输入成绩: ”; cin>>x; while(cin) {outf< n++; if(n%4==0)outf< if(x>=90)c9++; elseif(x>=80)c8++; elseif(x>=70)c7++; elseif(x>=60)c6++; elsec0++; cin>>x;} outf<<“\n总人数=”< outf<<“90分以上人数=”< outf<<“80~89分之间人数=”< outf<<“70~79分之间人数=”< outf<<“60~69分之间人数=”< outf<<“不及格人数=”< (); } 10.编写程序: 键盘输入某班同学的一门成绩,找出最高分和最低分,并统计出全班的平均成绩。 (要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入负数作为统计结束条件。 ) 【答案】编写程序如下: #include<> #include<> voidmain() {floatscore,max,min,sum=0; intnum=0; cout<<“请输入成绩: ”; cin>>score; max=min=score; while(score>=0){num++;sum+=score; if(score>max)max=score; if(score cin>>score;} if(num){cout<<"学生人数="< cout<<"平均成绩="< cout<<"最高分="< cout<<"最低分="< elsecout<<"无输入数据,无法统计! "< } 11.编写程序: 输出下面的图案。 @ @@@ @@@@@ @@@@@@@ @@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@ @@@@@@@ @@@@@ @@@ @ 【答案】编写程序如下: #include<> voidmain() {inti,j,n=7; for(i=1;i<=n;i++)//输出前7行图案 {for(j=1;j<=7-i;j++)cout<<‘’;//内循环 for(j=1;j<=2*i-1;j++)cout<<‘@’;//内循环 cout< for(i=1;i<=n-1;i++)//输出后6行图案 {for(j=1;j<=i;j++)cout<<‘’;//内循环 for(j=1;j<=13-2*i;j++)cout<<‘@’;//内循环 cout< } ------------------------------------------------------------------------------------------------------------------------------------------------- 【思考题】 ㈠选择题 1.若intx=3,执行以下循环语句后,输出的结果是______。 while(! (--x))cout<<(x-=2)<<‘\t’; A.0 B.0-3 C.循环体一次都没做 D.死循环 【答案】 2.若intx=10,执行以下switch语句后,x的值是______。 switch(x){case10: x+=1; case9: x+=1; case11: x+=1; defaule: x+=1;} A.11 B.12 C.13 D.14 【答案】 ------------------------------------------------------------------------------------------------------------------------------------------------- ㈡填空题 1.若inti=1;while(i++<5);则执行语句后i的值______。 【答案】 2.break语句只能用在______、______两种语句中。 【答案】 【答案】 3.程序的三种基本的控制结构是______、______、______。 【答案】 【答案】 【答案】 4.continue语句只能用在______语句中。 【答案】 5.exit()函数的作用是______。 【答案】 6.abort()函数的作用是______。 【答案】 7.return语句的作用是______。 【答案】 8.若inti=1;for(;;i++);则循环的执行次数是______。 【答案】 ------------------------------------------------------------------------------------------------------------------------------------------------- ㈢完善程序题 1.求150~200之间所有能被7整除的数,要求每行输出四个数。 #include<> #include<_________①_________> voidmain() {intn,k=1; cout<<“150~200之间被7整除的数: \n”; for(n=150;n<=200;n++) if(_________②_________) {cout< if(_________③_________)cout< k++;} cout< } 【答案】① 【答案】② 【答案】③ 2.将整数反转输出。 #include<> voidmain() {intn; cout<<“请输入一个整数: ”; cin>>n; while(n! =0) {cout<<_________①_________; n=_________②_________;} cout< 【答案】① 【答案】② ------------------------------------------------------------------------------------------------------------------------------------------------- ㈣写出下列程序的输出结果 1.下面程序的运行结果是______。 #include<> voidmain() {inti=0,x=0,y=0; while(i<5){i++; if(i%3==0){x+=i;i++;} y+=i++;} cout<<"x="< } 【答案】输出: 2.下面程序的运行结果是______。 #include<> voidmain() {intx,y=10; while(x=y-1){y-=2; if(y%3! =0){x++;break;} elseif(y<4)continue; x++;} cout<<"x="< } 【答案】输出: 3.下面程序的运行结果是______。 #include<> voidmain() {inti,j,m; for(i=1;i<=5;i++) {for(j=i+1;j<=6;j++) {if(j==4)continue; m=i*j; cout< cout< } } 【答案】第1行输出: 第2行输出: 第3行输出: 第4行输出: 第5行输出: ------------------------------------------------------------------------------------------------------------------------------------------------- ㈤编程题 1.编写程序: (要求用switch语句实现)键盘输入某班同学的一门成绩,统计该班级的不及格、60~69、70~79、80~89、90分以上的各个档次的人数,并将该班同学的原始成绩,以及统计出来的各个档次人数写入数据文件中,原始成绩按一行6个数据的格式写入中。 (要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入流结束符Ctrl+Z作为统计结束条件。 ) 编写程序如下: 【答案】 #include #include usingnamespacestd; intmain() { fstreamfout("D: \\vc++\\"); intc9=0,c8=0,c7=0,c6=0,c0=0,n=0; intgrade; cout<<"pleaseenterstudent'sgrade: "; cin>>grade; while(cin) { fout<<""< n++; if(n%6==0) fout< switch(grade/10) { case10: case9: c9++;break; case8: c8++;break; case7: c7++;break; case6: c6++;break; default: c0++; /* case5: case4: case3: case2: case1: case0: c0++;break;*/ } cin>>grade; } fout< fout<<"总人数为: "< fout<<"不及格人数为: "< fout<<"60~69人数为: "< fout<<"70~79人数为: "< fout<<"80~89人数为: "< fout<<"90以上人数为: "< (); } 2.编写程序: 在文件中有某班同学的一门成绩,从中找出最高分和最低分,并统计出全班的平均成绩,将结果输出到显示器。 (要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定。 ) 编写程序如下: 【答案】 #include #include usingnamespacestd; intmain() { ifstreamfi("D: \\vc++\\"); floatgrade,max,min,sum=0; intnum=0; fi>>grade; max=min=grade; while(fi) { num++; sum+=grade; if(grade>max)max=grade; if(grade fi>>grade; } if(num) { cout<<"thetotalstudenti'numberis: "< cout<<"thehighestgradeis: "< cout<<"thelowestgradeis: "< cout<<"theavaragegradeis: "< } else cout<<"thereisnodata"< (); } 3.编写程序: 输出图案: @@@@@@@@@ @@@@@@@ @@@@@ @@@ @ @@@ @@@@@ @@@@@@@ @@@@@@@@@ 编写程序如下: 【答案】 #include usingnamespacestd; intmain() { inti,j,n=5; for(i=1;i<=n;i++) { for(j=1;j<=i-1;j++)cout<<""; for(j=1;j<=11-2*i;j++)cout<<"@"; cout< } for(i=1;i<=n-1;i++) { for(j=1;j<=4-i;j++)cout<<""; for(j=1;j<=2*i+1;j++)cout<<"@"; cout< } return0; } -------------------------------------------------------------------------------------------------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 c+ 作业 流程 控制 语句 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)