• 126.50 KB
  • 2022-04-22 11:20:38 发布

《C++程序设计》课后习题参考答案.doc

  • 24页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案习题1参考答案一、选择题1.C2.C二、填空题1.面向过程,面向对象2.编辑,编译,链接,运行3.机器语言,汇编语言,高级语言。4.数据,操作处理方法5."\0"三、简答题1.简述三代计算机语言各自的特点。解答如下:机器语言是用二进制指令表示的、计算机能够直接识别和执行的语言。由于计算机可以直接执行机器语言,执行速度快是机器语言的主要优点。在计算机发展初期,软件工程师使用机器语言来编写程序。在计算机指令集不断增大的情况下,机器语言不易记忆,不便于学习,软件开发难度大、周期长、易出错,软件维护工作量大等缺点更加突出,机器语言已不能胜任编程工作。汇编语言是用一些易读的助记符表示机器指令操作码,如ADD、CALL等。使用汇编语言编写程序提高了编程速度,也比较容易编写出质量较高的程序,检查、维护也比较容易。但汇编语言抽象层次低,程序员编写程序工作量大。高级语言屏蔽了机器语言的细节,提高了语言抽象层次。程序中采用了具有一定含义的数据命令和容易理解的执行语句。高级语言不受计算机种类的限制,通用性强,易于理解、学习和掌握。使用高级语言减少了大量的编程工作量。目前使用比较广泛的高级语言有Basic、Fortran、Pascal和C语言。C++是一种功能强大、应用更广泛的高级语言。2.简述C语言程序实现的过程。解答如下:用C++语言编写好一个完整的程序后,第一步要上机运行编辑程序,输入源程序;第二步是对源程序进行编译生成目标代码文件,目标代码文件名与源程序文件名相同,而扩展名改为obj;第三步运行连接程序,将目标代码文件与C++的库文件相连接,生成可执行文件,可执行文件名与源程序文件名相同,而扩展名为exe;第四步运行可执行文件,实现程序所具有的功能。习题2参考答案一、选择题1.C2.B3.B4.D二、填空题 1.?:2.4字节,1字节,4字节,8字节3.154.6,605.26,256.256,227.3.96E2,3.96E5三、简答题1.C++基本数据类型有哪几种?程序设计如下:C++的基本数据类型有bool(布尔型,又称逻辑型)、char(字符型)、int(整型)、float(浮点型,表示实数)和double(双精度浮点型,简称双精度型)等5种。2.定义符号变量与定义变量有何异同?程序设计如下:定义符号常量和定义变量都要指定数据类型,系统将为其分配一定的存储空间。其不同之处在于:定义符号常量必须给出常量值,且以后不能修改本常量的值;而变量可以在定义变量的同时赋初值,以后可以修改该变量。3.什么叫常量?什么是变量?程序设计如下:常量就是在程序的运行过程中该量是不可修改的量;变量在程序的运行过程中允许对该变量的值进行修改。习题3参考答案一、选择题1.A2.C3.D4.D5.C二、填空题1.true2.true3.114.j<10和k%35.k<=x三、编程题1.编写找出a=18,b=35,c=21,d=96中最大值的程序。程序设计如下:#includevoidmain(){inta=18,b=35,c=21,d=96,max;max=a>b?a:b;max=max>c?max:c;max=max>d?max:d;cout<<"max="<voidmain() {intx;cinx;switch(x){case65:cout<<"A\n";break;case66:cout<<"B\n";break;case67:cout<<"C\n";break;default:cout<<"END\n";}}3.编写输入一个整数并且该数按小于10,10~99,100~999,1000以上分类并显示的C++程序,例如:输入335时,显示“335is100to999”。程序设计如下:#includevoidmain(){inta;cina;if(a>=100){if(a>=1000)cout<voidmain(){floatx=1,y=2,p,k,s=0;for(k=1;k<=20;k++){s+=y/x;p=x+y;x=y;y=p;} cout<<"2/1+3/2+5/3+8/5+…="<voidmain(){inti,j,k;for(i=1;i<5;i++){for(k=4;k>=i;k--)cout<<"";for(j=1;j<=2*i-1;j++)cout<<"*";cout<0;i--){for(k=1;k<=4-i+1;k++)cout<<"";for(j=1,j<=2*i-1;j++)cout<<"*";cout<voidmain(){inta[5],t;for(inti=0;i<5;i++)cina[i];for(i=0;i<5/2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<5;i++)cout<voidmain(){inta[3][3],i,j,suml=0,sum2=0;cout<<"输入数组元素:\n";for(i=0;i<3;i++)for(j=0;j<3:j++)cina[i][j];for(i=0;i<3;i++){sum1+=a[i][i];sum2+=a[i][2-i];}cout<<"sum1="<voidmain(){charstr[80],c1,c2=′′;inti=0,num=0;cin.getline(str,78);while(str[i](="\o") {c1=str[i];if(i==0)c2=();elsec2=str[i-1];if(c1!=""&&c2=("")num++;i++}cout<<"共有"<#includevoidmain(){inti,j,m,a[15];for(i=0;i<15;i++)cina[i];for(j=1;j<14;j++)for(i=0;i<15-j;i++)if(a[i]>a[i+1]){m=a[i];a[i]=a[i+1];a[i+1]=m;}for(i=0;i<15;i++)cout<#includevoidmain(){constN=5;inta[N][N],b[N],i,j;cout<<"请为数组a:输入数据:"<0)strcpy(max,s[i]);if(strcmp(min,s[i])>0)strcpy(min,s[i]);}cout<<"最大字符串是:"<12){cont<<"错误的月份号"<"<intGetSum(intn);voidmain(){intnum;intsum=0;cout<<"Pleaseenteranumber:";cinnum;sum=GetSum(num);cout<=0&&a){t=sqrt(t);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a);return1;}return0;}3.编写一个函数,分别求出一维整型数组a[n]中所有值为奇数的元素个数和所有值为偶数的元素个数。程序设计如下:#includeintGetcount(char*p){intcount=0;//记录大写字母字符个数的变量,设初值为0while(*p!=NULL)//如为大写字母,则总数加1{if(*p>="A"&&*p<="z")count++;p++;}returncount;}voidFunc(inta[],intn,int"&ox,int&ex){inti=0;ox=0;//参数引用,返回数组中值为奇数的元素个数ex=0;//参数引用,返回数组中值为偶数的元素个数while(iy?x:y;voidmain(){intx,y,z,absmax;cinxyz;absmax=max(abs(x),abs(y)); absmax=max(abs(absmax),abs(z));cout<<"Theabsolutevalueofmaximalnumberis:";cout<#defineN4intmain(){int[N][N];for(inti=0;istructdate{intyear;intmonth;intday;};structstudent{intnumber;charname[10];datebirth;};voidmain(){structstudentstu1;cinstu1.numberstu1.name;cinstu1.birth.yearstu1.birth.monthStu1.birth.day;cout<#includevoidmain(){ structstudy{intmid;intend;intaverage;}math;cinmath.midmath.end;math.average=(math.mid+math.end)/2;cout<structstu{intnum;intmid:intend;intave;}s[3];voidmain(){inti;structstu*p;for(p=s;pnump->midp->end;p->ave=(p->mid+p->end)/2;}for(p=s;pnum<<"\t"<mid<<"\t"<end<<"\t"<ave<#includeintcount(char*str){inti,num=0;for(i=0;str[i];i++){if((str[i]>="a"&&str[i]<="z")||(str[i]>="A"&&str[i]<="z"))num++;}returnnum;}intmain(){chartext[100];cout<<"输入一个英语句子:"<#include#defineN8floatgrades[N];//存放成绩的数组intmain(){inti;floattotal,average;//提示输入成绩for(i=0;iintGetSum(intn);classPerson{public:Person(constchar*n){name=newchar[strlen(n)+1];strcpy(name,n);}voidPrint()const{cout<<"Name:"<classX{public:virtualvoidDisplay(intx,floaty){cout<classP{public:virtualvoidfun(){cout<<"P::fun()called.\n";}};classQ:publicP{public:virtualvoidfun(){cout<<"Q::fun()called.\n";}};voidmain(){Qq;P&a=q;Void(P::*pf)()=P::fun;(a.*pf)();}习题12参考答案1.设计一个函数模板Max用于求一个数组中最大的元素,并用整型数组和字符数组检验其正确性。程序设计如下:#includetemplateTMax(Ta[],intn){Ttemp=a[0];for(inti=1;i用于存储某一类型的数据,并用整型数据和字符串数据检验其正确性。程序设计如下:#includetemplateclassStore{Titem;public:TGetItem();voidSetItem(Tx);};templateTStore::GetItem(){returnitem;}templatevoidStore::SetItem(Tx){item=x;}voidmain(){intn=1011;Stores1;s1.SetItem(n);charstr()="这是字符串";Stores2;s2.SetItem(str);cout<<"n="<函数模板,完成对整型和字符数组进行排序。程序设计如下:#includetemplatevoidSort(Ta[],intn)//Sort()函数模板{Ttemp;for(inti=1;i0&&tempvoidDisplay(Ta[],intn)//Display()函数模板{for(inti=0;i>3.write,put4.get,getline,read5.rdstate()三、编程题定义一个数据文件,并向其中输入数据。程序设计如下: #includeStructDatas{intmm,dd,yy;};voidmain(){Datasdays={12,8,63};Ofstreamtfile("datas.dat",ios::binary);Tfile.write((char*)&days,sizeofdays);}'