《C程序设计》模拟试题二含答案_第1页
《C程序设计》模拟试题二含答案_第2页
《C程序设计》模拟试题二含答案_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+程序设计模拟试题(二)一、选择题(本大题共10小题,每小题2分,共20分)1.A.C.下列关于析构函数描述正确的是(D )。可以重载B.函数体中必须有delete语句返回类型是void类型D.不能指定返回类型2. 下面有关重载函数的说法中正确的是(C )0A. 重载函数必须具有不同的返回值类型B. 重载函数形参个数必须不同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同3. 下列关于单目运算符+、-的叙述中正确的是(D )。A. 它们的运算对象可以是任何变量和常量B. 它们的运算对象可以是char型变量和im型变星:,但不能是float型变量C. 它们的运算对象可以是int型变量

2、,但不能是double型变量和float型变量D. 它们的运算对象可以是char型变量、讪型变疑和float型变量4. 关于异常处理,下列说法中错误的是(B )。A. 在C+程序中,由throw表达式抛岀异常,throw抛出的可以是任何类型的数据B. 在一个try-catch结构中,只能有一个try语句块和一个catch语句块C. 当抛岀异常后,系统会寻找匹配的catch语句,转到离出现异常最近的try-catch结 构去处理D. 当某条语句抛出异常时,跟在其后的语句将被跳过转到catch语句处,此时在try 块中抛岀异常前创建的对象将被自动释放5. 对于公有继承,基类中的私有成员在派生类中将

3、(A )。A. 仍然是基类的私有成员B.成为派生类的私有成员C.可以被派生类的成员函数直接访问D.可以被派生类的对象直接访问6. 下面关于抽象类的说法中错误的是(C )。A. 抽象类是包含有纯虚函数的类B. 抽象类是一种特殊的类C. 抽象类可以左义自己的对象D. 抽象类可以派生新类7. 假定一条定义语句为"int a10, x, *pa=af若要把数组a中下标为3的元素值赋给 x,则不正确的语句为(D )。A. x=pa;B. x=*(a+3);C. x=a3;D. x=*pa+3;8. 若类X是类Y的友元类,则下列说法中正确的是(A )<>A. 类X的所有成员都可以访问

4、类Y的私有成员B. 类Y的所有成员都可以访问类X的私有成员C. 只有类Y的公有成员才能访问类X的私有成员D. 只有类X的公有成员才能访问类Y的私有成员9. 派生类的成员函数可以直接访问基类的(B )成员。A.所有B.公有和保护C.保护和私有D .公有和私有10. C+中函数返回值的类型是由(B )决泄的。A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果二、填空题(本大题共10小题,每小题2分,共20分)1. 在C+程序中使用的cin标识符是系统类库中泄义的istream类中的一个对象。2. 假定一个二维数组的定义语句为“int a4=3,4,2

5、,8,6;”,则元素a2l的值 为0。3. 在一个类的泄义中,包含有数据成员和成员函数的泄义。4. C+的基类指针可以访问派生类对象,但不能访问派生类对象的private成员。5. 假左A为一个类,inta()为该类的一个成员函数,若该成员函数在类泄义体外泄义, 则函数头为int AA:a()。6. 执行语句 “chara10="abcd",*p;p=a;” 后,*(p+4)的值是70'。7. 假定变量x定义为“intx=5;”,要将rx定义为x的引用(别名),应使用的语句为int& rx=x;08. 假定指针变量p左义为“int *p=ncw int;”,

6、要释放p所指向的动态内存,应使用的 语句是delete p;。9. 有如下类声明:class Foo int bar: ;则Foo类的成员bar的访问属性是privateo10. 有二维字符数组 “char s46= HzhangM,Mgao,Mtang',;lwangH); 执行程序 “coutvvs2;”后,屏幕上显示的是tango三、阅读下列程序,写出执行结果(本大题共5小题,每小题4分,共20分)1 #include<iostream.h>class Sampleint x,y:public:Sample()x=y=0;)Sample(int ajnt b)x=a;

7、y=b;void disp()cout«Hx=M«x«,y=M«y«endl;void main()Sample s(2,3), *p=&s;p->disp();运行结果:x=2,y=32. #include<iostream.h>class Sample(int x;public:SampleOf);Sample(int a)x=a;Sample(Sample &a)x=a.x+l;void disp()cout«nx=H«x«endI;;void main()Sample sl

8、(2),s2(sl );sl.dispO;s2.disp();运行结果:x=2x=33. #include<iostream.h>class Samplechar cl,c2:public:Sample(char a)c2=(c 1 =a)-32;void disp()cout«c 1 v v” 转换为 v«c2«end 1;void main()Sample aCa'),b(b);a. dispO;b. dispO;运行结果:a转换为Ab转换为B4. #include<iostream.h>class Sampleint x,y;

9、public:SampIe()x=y=O;)Sample(int aunt b)x=a;y=b; void disp() cout«"x="«x«",y="«y«endl;;void main()(Sample s 1 ,s2( 1,2),s3( 10,20);Sample *pa3=&sl.&s2,&s3;for(int i=0;i<3;i+)pai->disp();运行结果:x=O.y=Ox=l,y=2x=10,y=205. #include<iostream

10、.h>void swap(int &&);void main()int a= 15,b=22,c=9,d=30;cout«H15 22 9 30H; if(a<b)swap(a.b);if(b<c)swap(b,c);if(c<d) swap(c.d);if(a<b) swap(a.b);if(b<c) swap(b,c);if(a<b) swap(a.b); cout<<endl«a«H H«b«M M«c«H H«d«endl;vo

11、id swap(int &xJnt &y) /自立义函数代码从这里开始int temp;temp=x;x=y;y=temp;运行结果:15 22 9 3030 22 159四、完成程序题(本大题共5小题,每小题4分,共20分)1. 下面是一个实现两个数相加的程序,在下划线处填上正确的语句。#include<iostrcanih>int add(int xjnt y)return x+y;double add(double x,double y)return x+y;void main()int a=4,b=6;double c=26.d=74:cout«a

12、dd(a,b)«,V,«add(c,d)<<endl;2. 设il 一个函数用于计算两点之间的距离,在下划线处填上正确的语句。#include<iostream.h>#include<math.h>class Pointint x,y;public:Point(int j)x=i;y=j;int getx() return x:int gety() return y;void disp();float distance(Point &pLPoint &p2)Ifloat d;d=sqrt(p 1 .getx()

13、-p2.getx()*(p 1 .getx()-p2.getx()+(pLgety()-p2.gety()*(pl .gety()-p2.gety()»return d;void main()Point pl(2,2).p2(5,5);pl.dispO;cout«M与”;p2.disp();cout«H 之间距离=H«distance(pLp2)«endl;3. 根据程序的运行结果,在下划线处填上正确的语句。include <iostream.h>class Sampleprotected:int x;public:SampleO

14、x=0; Sample(int val) x=val; void operator+() x卄;;class Derivcd:public Sampleint y;public:Derived()x=0;y=o;Derived(int vail jnt vax=vall;y=va!2;void operator()x-;y;)void disp()cout«Hx=M« x «H y=H « y « endl;);void main ()Derived d(3,5);d.dispO;d+;d.disp ();d;d.dispO;运行结果:x=3

15、y=5x=4 y=5x=3 y=44. 左义函数模板用于计算一个数的绝对值,在下划线处填上正确的语句。#include<iostream.h>template <class T>T abs(T x)return (x>0?x:-x);void main()cout<<abs(-3)«,H«abs(-2.6)«endl;5. 将下而程序补充完整,使程序执行结果为9。include <iostream.h>class Classpublic:Class(int);int get();private:int x;Cl

16、ass:Class(int a)int Class:get()(return x*x;void main()Class a(3);cout«a.get()«endl;五、编程题(本大题共2小题,每小题10分,共20分)1.设计一个立方体类Box,计算并输出立方体的体积和表而积。解:Box类包含三个私有数拯成员a(立方体边长人volume(体积)和area(表而积),另有两个 构造函数以及scla()(设宜立方体边长)、getvolume()(ir算体枳)、getarea()(汁算表而积)和 disp()(输出结果)。本题程序如下:# include<iostream.

17、h>class Boxfloat a;float volume;float area;public:Box()Box(float r)a=r;void seta( float r)a=r:void getvolume() volume=a*a*a;void getarca()area=6*a*a;void disp()cout«M体积:,«volume«,表而枳:H«area«endl:;void main()Box objl(3.5),obj2;obj2.seta(5.4);objl.getvolumeO;objl.getarea();

18、cout«Hobjl=>M;objl.dispO;obj2.getvolume();obj2.gctarea();obj2.disp();)运行结果:0耳1=>体积:42.875,表而积:73.5obj2=> 体积:157.464,表而积:174.962.设计一个学生类student,包括学生姓名、成绩,设计一个友元函数,输出成绩对应 的等级:大于等于90:优;80-90:良:70-79:中:60-69:及格;小于60:不及格。解: #include<iostream.h>#include<string.h># include<iomanip.h>class studentchar namcflO;int deg;char level7;public:student(char naJnt d)strcpy(name.na);deg=d:char *gctname() retur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论