- 619.50 KB
- 2022-04-29 13:53:01 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'课后习题答案第1章C++及其开发环境概述一、问答题1.结构化程序设计主要有哪些劣势?【答案】(1)程序的开发效率低下(2)程序的可重用性差(3)程序的维护成本高(4)无法适应信息的快速膨胀和多样化2.面向对象的程序设计有哪些优点?【答案】(1)程序的开发效率高(2)程序代码的可重用性高(3)程序易于维护3.C++的发展经历了哪些阶段?【答案】C++语言起源于C语言。1980年初期,美国贝尔实验室的BjarneStroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&TC++2.0版,并经过多次改进和完善,发展成为现在的C++。4.C++主要有哪些特点?【答案】(1)C++可以被看成C语言的一个超集,是对C的增强和扩展。因此,许多C代码可以不经修改即可为C++所用。自然,也可以利用C++开发环境来开发C程序。(2)C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。(3)C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。5.一个C++程序一般由哪几部分构成?【答案】①预处理命令。C++提供了三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。②全局声明部分。此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。③函数。一个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。101
课后习题答案6.使用VisualC++开发C++程序时一般要经过哪几个步骤?每个步骤的作用是什么?相应地产生哪些文件?【答案】(1)编写程序C++是一种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。我们可以利用VisualC++、TurboC++等编译软件来编写C++源程序。(2)编译程序计算机不能识别高级语言,为了将源程序翻译成计算机可识别的二进制指令,需将源程序进行编译,编译之后的文件称作“目标文件”,以.obj作为后缀。编译时以每个源程序单元为单位,每一个源程序文件编译成一个目标文件。因此,如果一个工程中有多个源程序单元,系统会分别将其编译成多个目标文件。另外,编译时系统会自动进行错误检查,一旦检查出有错误,便不会生成目标文件,需改正后重新编译。(3)连接目标文件一个程序中可能会包含很多文件,编译后会生成很多独立的目标文件,此时系统的“连接程序”将这些目标文件和库文件以及系统提供的其他信息连接起来,形成二进制可执行文件,以.exe为后缀。(4)运行程序运行二进制可执行文件,得到运行结果。如运行结果不正确,则需修改源文件,之后重新编译运行。二、分析运行结果1.#includeusingnamespacestd;intmain(){cout<<"My"<<"sister";cout<<"is"<<"a";cout<<"beautifulgirl!"<usingnamespacestd;intmain(){inta,b,c;101
课后习题答案cin>>a>>b;c=a+b;cout<<"a+b="<=-100&&y<=-10)&&!(y>=10&&y<=100)(6)sqrt(pow((x-10),2)+pow((y-20),2))<35(7)a+b>c&&b+c>a&&c+a>b(8)(year%4==0)&&(year%100!=0)||(year%400==0)四、阅读下列程序,写出执行结果(1)#includeusingnamespacestd;voidmain(){inta=1,b=2,x,y;cout<b;y=x--&&b;cout<usingnamespacestd;voidmain(){intx,y,z,f;x=y=z=1;f=--x||y--&&z++;cout<<"x="<usingnamespacestd;voidmain(){intx,i,j,k;cout<<"pleaseinputx:";cin>>x;i=x/100;j=(x-i*100)/10;k=x-i*100-j*10;cout<usingnamespacestd;voidmain(){floatx,y,b;cout<<"pleaseinputx,y:";cin>>x>>y;b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2);cout<=)0if(x!=0)if(x==0)y=0;if(x>0)y=1;elsey=-1;elsey=0C.if(x<=0)D.y=-1;if(x<0)y=-1;if(x<=0)elsey=0;if(x<0)y=-1;elsey=1;elsey=1;【答案】C2.假设i=2,执行下列语句后i的值为()。switch(i)101
课后习题答案{case1:i++;case2:i--;case3:++i;break;case4:--i;default:i++;}A.1B.2C.3D.4【答案】B3.已知inti=0,x=0;下面while语句执行时循环次数为()。while(!x&&i<3){x++;i++;}A.4B.3C.2D.1【答案】D4.已知inti=3;下面do~while语句执行时循环次数为()。do{i--;cout<=0);C.inta=5;while(a){a--;};D.inti=3;for(;i;i--);【答案】B二、阅读下列程序,写出执行结果1.#includevoidmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;101
课后习题答案elseif(!b)if(!c)x=15;elsex=25;cout<voidmain(){inta=0,b=1;switch(a){case0:switch(b){case0:cout<<"a="<voidmain(){inti=1;while(i<=10)if(++i%3!=1)continue;elsecout<voidmain(){inti=0,j=5;do{i++;j--;if(i>3)break;}while(j>0);cout<<"i="<voidmain(){inti,j;for(i=1,j=5;ivoidmain(){inti,s=0;for(i=0;i<5;i++)switch(i){case0:s+=i;break;case1:s+=i;break;case2:s+=i;break;default:s+=2;}cout<<"s="<voidmain(){inti,j,x=0;for(i=0;i<=3;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}cout<<"x="<voidmain(){inta,b,c,t;cout<<"a,b,c=";cin>>a>>b>>c;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}cout<voidmain(){charfirst,second;cout<<"Firstinput(s,rorp):";cin>>first;cout<<"Secondinput(s,rorp):";cin>>second;switch(first){case"s":switch(second){case"s":cout<<"Scissortiesscissor."<voidmain()101
课后习题答案{intm,i=2;cout<<"pleaseinputm:";cin>>m;while(i<=m)if(m%i==0){cout<voidmain(){inti;for(i=100;i<=200;i++){if((i%3==2)&&(i%5==3)&&(i%7==2))cout<voidmain(){inti,j,s;for(i=1;i<=1000;i++){s=0;for(j=1;jvoidmain(){inti,j,k;for(i=1;i<=5;i++){for(k=1;k<=5-i;k++)cout<<"";for(j=1;j<=2*i-1;j++)cout<<"*";cout<usingnamespacestd;voidincx();voidincy();voidmain(){incx();incy();incx();incy();incx();incy();}voidincx(){intx=0;cout<<"nx="<<++x;}voidincy(){staticinty=0;cout<<"ny="<<++y;}【答案】x=1y=1x=1y=2x=1y=3(2)#includeusingnamespacestd;inti=3;intfun1(intn)101
课后习题答案{cout<shortintDivider(unsignedshortinta,unsignedshortintb){if(b==0)return-1;elsereturna/b;}intmain(){unsignedshortintone,two;shortintanswer;cout<<"Entertwonumbers.nNumberone:";101
课后习题答案cin>>one;cout<<"Numbertwo:";cin>>two;answer=Divider(one,two);if(answer>-1)cout<<"Answer:"<#includevoidmain(){doublef,c,b;cout<<"请输入华氏温度:"<>f;cout<<"对应的摄氏温度为:"<101
课后习题答案#includeintprime(inti);//判断一个数是否是质数的函数voidmain(){inti;cout<<"请输入一个整数:";cin>>i;if(prime(i))cout<#includeintfn1(inti,intj);//求最大公约数的函数voidmain()101
课后习题答案{inti,j,x,y;cout<<"请输入一个整数:";cin>>i;cout<<"请输入另一个整数:";cin>>j;x=fn1(i,j);y=i*j/x;cout<0)次幂。【源程序】#include101
课后习题答案longGetPower(intx,inty);intmain(){intnumber,power;longanswer;cout<<"Enteranumber:";cin>>number;cout<<"Towhatpower?";cin>>power;answer=GetPower(number,power);cout<#includedaynum(int,int,int);voiddate(intyear,intmonth,intday){cout<>year>>month>>day;date(year,month,day);}运行结果为:请输入年/月/日:19840305↙1984030565101
课后习题答案第5章数组与字符串一、选择题:(1)以下一维数组a的正确定义是()。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10cin>>n;inta[SIZE];inta[n];【答案】D(2)以下能对具有10个元素的一维数组a进行正确初始化的语句是()。A.inta[10]=(0,0,0,0,0);B.inta[10]={10*1};C.inta[]={0};D.inta[10]={};【答案】B(3)在定义inta[10];之后,对a的引用正确的是()。A.a[10]B.a[6.3]C.a(6)D.a[10-10]【答案】D(4)以下对二维数组a进行不正确初始化的是()。A.inta[2][3]={0};B.inta[][3]={{3,2,1},{1,2,3}};C.inta[][]={{3,2,1},{1,2,3}};D.inta[2][3]={{3,2,1},{1,2,3}};【答案】C(5)在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是()。A.4B.1C.2D.5【答案】D(6)为了判断两个字符串s1和s2是否相等,应当使用()。A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s2)==0)D.if(strcpy(s1,s2))【答案】C(7)定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则以下语句的输出结果是()。for(i=0;i<3;i++)cout<