您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 自考c++程序设计课后答案参考
第一章一、选择题1.B;(typedef,typeid,typename,都为保留字);2.C;(标识符,应该以字母或,下划线开头);3.C;(标识符中有的特殊符号,只能有下划线);二、填空题1.cin,cout2.new,delete3.inta(55);三、改错题1.没有定义变量num;2.不能给变量x,声明指向常量的指针constint*p=&x;如果吧x定义为常量const,*p不能当作“左值”。3.p为常量指针,不能吧p作为“左值”,p=&y,错误。四、编程题1.分别用字符和ASCII码形式输出整数值65和66.#includeiostreamusingnamespacestd;voidmain(){chara='A',b='B';intascii_1=53,ascii_2=54;//ASCII码中的,5和6cout字符输出:(int)a,(int)bendl;coutASCII码输出:(char)ascii_2(char)ascii_1,;cout(char)ascii_1(char)ascii_1endl;}2.编写一个int型变量分配100个整形空间的程序。#includeiostreamusingnamespacestd;voidmain(){int*p;p=newint[100];for(inti=0;i100;i++){*(p+i)=i;}for(i=0;i100;i++){cout*(p+i),;}deletep;}3.编写完整的程序,它读入15个float值,用指针把它们存放在一个存储快里,然后输出这些值和以及最小值。#includeiostream#includealgorithm//用于数组排列的头文件usingnamespacestd;voidmain(){float*p;p=newfloat[15];cout输入15个float类型的值:endl;for(inti=0;i15;i++){cin*(p+i);}for(i=0;i15;i++){cout*(p+i),;}sort(p,p+15);cout\n最小的是:*(p)endl;deletep;}4.声明如下数组:inta[]={1,2,3,4,5,6,7,8};先查找4的位置,讲数组a复制给数组b,然后将数组a的内容反转,再查找4的位置,最后分别输出数组a和b的内容。#includeiostream#includealgorithm#includefunctionalusingnamespacestd;voidmain(){inta[]={1,2,3,4,5,6,7,8},b[8];cout数组a中‘4’的位置是:find(a,a+8,4)endl;//查找4的位置copy(a,a+8,b);//将数组a复制给数组breverse_copy(b,b+8,a);//把数组b,逆向复制给a,完成a的逆转cout数组a反转后,‘4’的位置是:find(a,a+8,4)endl;//在查找4的位置cout数字a的内容:endl;for(inti=0;i8;i++)couta[i],;cout\n数组b中的内容:endl;for(i=0;i8;i++)coutb[i],;}[color=#FF0000]第二章[/color]一、单项选择1.D;2.D;二、作图题1.已知一个学生类具有性别和年龄两个属性,男学生张明的年龄为12岁,女学生李红的年龄为11岁。给出这个学生类的类图和它们的对象图。(类)Student(对象)张明(对象)李红stringsex;sex(男);sex(女);intage;age(11);age(12);方法…方法…方法…2.一个圆具有圆心坐标和半径两个属性,并且能够给出圆面积,请画出这个圆类的类图。(类)Circularity(类)PointPointp;floatx;floatradii;floaty;floatgetX();floatgetAcreage();floatgetY();3.画出一个班级类的类图,为它设计必要的属性以表示这个类的特征。(类)PubClassstringno;//编号intnum;//人数…4.画出一种电话卡的类图,为它设计必要的属性。(类)Cardlongno;//编号floatbalance;//余额5.为上题的电话卡设计必要的成员函数,以便提供基本服务。(类)Cardlongno;//编号floatbalance;//余额floatgetBalance();//显示余额三、编程题1.使用多种方法编写将两个字符串连接在一起的程序。#includeiostream#includestringusingnamespacestd;voidmain(){//使用string类定义字符串,完成字符串连接stringstr1(C++),str2(程序设计);stringstr3;str3=str1+str2;//连接方式1coutstr3endl;//使用char数组定义字符串,完成连接charc1[]={c++},c2[]={program};charc3[20];inti=0,k=0;for(i=0;i20;i++)//初始化c3c3[i]='\0';i=0;while(c1[i]!='\0'){c3[k]=c1[i];i++;k++;}i=0;while(c2[i]!='\0'){c3[k]=c2[i];i++;k++;}coutc3endl;}2.已知一个string的对象str的内容为“Wearehere!”,使用多种方法输出“h”。#includeiostream#includefunctional#includealgorithm#includestringusingnamespacestd;voidmain(){stringstr1(Wearehere!);coutstr1[7]endl;//通过数组stringstr2=str1.substr(7,1);//通过得到子字符串coutstr2endl;char*p=find(str1.begin(),str1.end(),'h');//通过find函数if(p)cout*pendl;}[color=#F70909]第三章[/color]一、填空题1.函数原型声明;2.inline3.传值,传引用4.函数func返回引用5.int*fun(char,int);二、单项选择题1.A;2.C;3.D;三、改错题1.y=x*x-T;错误,T是类型,不是变量,不能参加运算;2.y没有类型。Tmax(Tx,Ty){return(xy)?(x):(y);}3.函数change的参数定义成了常量,只能使用参数,而无权修改他。voidchange(string&s){s=s+pig!;}四、编程题1.编写一个求方程ax2+bx+c=0的根的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。#includeiostream.h#includemath.hvoidequation_1(inta,intb,intc){doublex1,x2,temp;temp=b*b-4*a*c;x1=(-b+sqrt(temp))/(2*a*1.0);x2=(-b-sqrt(temp))/(2*a*1.0);cout两个不相等的实根endl;coutx1=x1,x2=x2endl;}voidequation_2(inta,intb,intc){doublex1,x2,temp;temp=b*b-4*a*c;x1=(-b+sqrt(temp))/(2*a*1.0);x2=x1;cout两个相等的实根endl;coutx1=x1,x2=x2endl;}voidequation_3(inta,intb,intc){doubletemp,real1,real2,image1,image2;temp=-(b*b-4*a*c);real1=-b/(2*a*1.0);real2=real1;image1=sqrt(temp);image2=-image1;cout两个虚根endl;coutx1=real1+image1jendl;coutx2=real2+image2jendl;}voidmain(){inta,b,c;doubletemp;cout输入a,b,c的值endl;cinabc;cout方程为:ax*x+bx+c=0endl;temp=b*b-4*a*c;if(temp0)equation_1(a,b,c);if(temp==0)equation_2(a,b,c);if(temp0)equation_3(a,b,c);}2.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。要求在短小而完全的程序中显示这个程序是怎样被调用的。#includeiostreamusingnamespacestd;charup(charc){if(c=97&&c=123)return(c-32);elsereturnc;}voidmain(){inti;charc[15]={'A','v','e','t','E','T','%','&','4','Y','e','i','@','9','^'};for(i=0;i15;i++)coutup(c[i]),;coutendl;}3.编写主程序条用带实数r和整数n两个参数的函数并输出r的n次幂。#includeiostream.h#includemath.hdoublepower(doublea,intb){inti;doubleresult=1.0;for(i=0;ib;i++)result=result*a;returnresult;}voidmain(){doubler;intn;coutr=;cinr;coutn=;cinn;coutr的n次幂是:power(r,n)endl;}4.编写有字符型参数C和整形参数N的函数,让他们显示出由字符C组成的三角形。其方式为第1行有1个字符C,第2行有2个字符C,等等。#includeiostreamusingnamespacestd;voidprint_triangle(charc,intn){inti,j;for(i=0;in;i++){for(j=0;j=i;j++){coutc;}coutendl;}}voidmain(){print_triangle('a',10);}5.编写一个ieqiu字符串长度的函数,strlen(),再用strlen()函数编写一个函数revers(s)的倒序递归程序,使字符串s逆序。#includeiostream#includestringusingnamespacestd;intstrlen(char*str){intlen=0;while(str[len]!='\0'){len++;}returnlen;}voidrevers(char*b){charc;intj,len;len=strlen(b);j=len/2-1;while(j=0){c=*(b+j);*(b+j)=*(b+len-j-1);*(b+len-j-1)=c;j--;}b[len]='\0';}voidmain(){charstr[]={1234567890
本文标题:自考c++程序设计课后答案参考
链接地址:https://www.777doc.com/doc-2118404 .html