您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 作业━━第2章━━流程控制语句
流程控制语句【学习要点】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.1B.1-2C.1-1D.死循环【答案】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.10B.11C.12D.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.下面程序的运行结果是______。#includeiostream.hvoidmain(){inti=0,x=0,y=0;do{i++;if(i%3!=0){x+=i;i++;}y+=i++;}while(i5);coutx=x\ty=yendl;}【答案】输出:x=5y=76.下面程序的运行结果是______。#includeiostream.hvoidmain(){intx,y=10;while(x=y-1){y-=2;if(y%3==0){x++;continue;}elseif(y4)break;x++;}coutx=x\ty=yendl;}【答案】输出:x=3y=27.下面程序的运行结果是______。#includeiostream.hvoidmain(){inti,j,m;for(i=1;i=6;i++){for(j=i+1;j=8;j++){if(j==4){coutBye!”;break;}m=i*j;couti×”j=m\t;}coutendl;}}【答案】第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)#includeiostream.hvoidmain(){inti=2,n;cout输入一个自然数:;cinn;coutn=1;do{if(n%i==0){cout“×”i;_________①_________;}elsei++;}while(_________②_________);coutendl;}【答案】①n=n/i【答案】②n!=19.编写程序:(要求用if-else语句实现)键盘输入某班同学的一门成绩,统计该班级的不及格、60~69、70~79、80~89、90分以上的各个档次的人数,并将该班同学的原始成绩,以及统计出来的各个档次人数写入数据文件data1.txt中,原始成绩按一行4个数据的格式写入data1.txt中。(要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入流结束符Ctrl+Z作为统计结束条件。)【答案】编写程序如下:#includefstream.h#includeiomanip.hvoidmain(){intx,n=0,c9=0,c8=0,c7=0,c6=0,c0=0;ofstreamoutf(“data1.txt”);cout“请输入成绩:”;cinx;while(cin){outfsetw(8)x;n++;if(n%4==0)outfendl;if(x=90)c9++;elseif(x=80)c8++;elseif(x=70)c7++;elseif(x=60)c6++;elsec0++;cinx;}outf“\n总人数=”nendl;outf“90分以上人数=”c9endl;outf“80~89分之间人数=”c8endl;outf“70~79分之间人数=”c7endl;outf“60~69分之间人数=”c6endl;outf“不及格人数=”c0endl;outf.close();}10.编写程序:键盘输入某班同学的一门成绩,找出最高分和最低分,并统计出全班的平均成绩。(要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入负数作为统计结束条件。)【答案】编写程序如下:#includeiostream.h#includeiomanip.hvoidmain(){floatscore,max,min,sum=0;intnum=0;cout“请输入成绩:”;cinscore;max=min=score;while(score=0){num++;sum+=score;if(scoremax)max=score;if(scoremin)min=score;cinscore;}if(num){cout学生人数=numendl;cout平均成绩=sum/numendl;cout最高分=maxendl;cout最低分=minendl;}elsecout无输入数据,无法统计!endl;}11.编写程序:输出下面的图案。@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@【答案】编写程序如下:#includeiostream.hvoidmain(){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‘@’;//内循环coutendl;}for(i=1;i=n-1;i++)//输出后6行图案{for(j=1;j=i;j++)cout‘’;//内循环for(j=1;j=13-2*i;j++)cout‘@’;//内循环coutendl;}}-------------------------------------------------------------------------------------------------------------------------------------------------【思考题】㈠选择题1.若intx=3,执行以下循环语句后,输出的结果是______。while(!(--x))cout(x-=2)‘\t’;A.0B.0-3C.循环体一次都没做D.死循环【答案】???2.若intx=10,执行以下switch语句后,x的值是______。switch(x){case10:x+=1;case9:x+=1;case11:x+=1;defaule:x+=1;}A.11B.12C.13D.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整除的数,要求每行输出四个数。#includeiostream.h#include_________①_________voidmain(){intn,k=1;cout“150~200之间被7整除的数:\n”;for(n=150;n=200;n++)if(_________②_________){coutsetw(12)n;if(_________③_________)coutendl;k++;}coutendl;}【答案】①???【答案】②???【答案】③???2.将整数反转输出。#includeiostream.hvoidmain(){intn;cout“请输入一个整数:”;cinn;while(n!=0){cout_________①_________;n=_________②_________;}coutendl;【答案】①???【答案】②???------
本文标题:作业━━第2章━━流程控制语句
链接地址:https://www.777doc.com/doc-2709163 .html