c++期终考试201420152部分答案_第1页
c++期终考试201420152部分答案_第2页
c++期终考试201420152部分答案_第3页
c++期终考试201420152部分答案_第4页
c++期终考试201420152部分答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、浙江工业大学期终考试命题稿2014 /2015 学年第 二 学期课程名称C+程序设计使用班级信息学院教师份数学生份数500命题人陈晋音审核人张健命题总页数页每份试卷需用白纸大张命题注意事项 :一、命题稿请用 A4 纸电脑打印 ,或用教务处印刷的命题纸 ,并用黑墨 水书写 ,保持字迹清晰 ,页码完整。二、两份试题必须同等要求 ,卷面上不要注明 A、B 字样 ,由教务处抽 定 A、 B 卷。三、命题稿必须经学院审核 ,并在考试前两周交教务处浙江工业大学 2014/2015 学年第二学期试卷课程 C+程序设计 姓名 班级 授课教师题序一二三四五六七八总评计分试题一、选择题 (每题 1分,共20分)1

2、、所谓数据封装就就是将一组数据与与这组数据有关的操作组装在一起,形成一个实体 ,这个实体定义成() 。 AA、 类B、对象C、 函数体D 、 数据块2.假定 A就是一个类 ,则执行“ A*p=new A10; ”语句时共调用该类构造函数的次数就是()。 DA、 1B、2C、 11D 、 103.已知定义了类 Person,则Person类的复制构造函数声明应定义正确的就是()。 BA 、 void Person(Person& p);B、Person(const Person& p);C、 Person Person(Person& p)D、Person(Person p);4.下列不能作为类

3、的成员的就是()。BA、 自身类对象的指针B、自身类对象C、 自身类对象的引用D 、 另一个类的对象5.下述静态数据成员的特征中 ,() 就是 错误 的。BA 、 说明静态数据成员时前边要加修饰符 staticB、静态数据成员在类内进行初始化C、引用静态数据成员时 ,要在静态数据成员名前加类名与作用域运算符D、静态数据成员就是所有对象共用的6. 已知类A就是类 B的友元 ,类B就是类C的友元 ,则()。DA. 类 A 一定就是类 C的友元B. 类C一定就是类 A 的友元C. 类 C的成员函数可以访问类 B 的对象的任何成员D. 类 A 的成员函数可以访问类 B的对象的任何成员7、对于常成员函数

4、 ,下面描述正确的选项就是 ( ) 。 CA、类的成员函数可以操作常对象B、 类的成员函数不能操作常对象C、 只有常成员函数可以操作常对象D、 在常成员函数中 ,常对象可以被更新8、有如下类定义 :class MyBASEint k;public:void set(int n) k=n; int get( ) const return k; ;class MyDERIVED: protected MyBASE protected;int j;public:void set(int m,int n)MyBASE:set(m);j=n; int get( ) constreturn MyBASE:

5、get( )+j; ;则类 MyDERIVED 中保护成员个数就是 ()。BA.4 B.3 C.2 D.19、 有下列代码1 class Fred;2 class Barney 3Fred x;4Fred *p;5 ;6 class Fred 7Barney y;8 ;有错误 的地方就是 ()。BA、 第 1行: class Fred;C、 第 4行: Fred *p;B、 第 3行: Fred x;D、 第7行: Barney y;10、 需要一种逻辑功能一样的函数 ,而编制这些函数的程序文本完全一样 ,区别只就是数据类型不同。对于这种函数 ,下面不能用来实现这一功能的选项就是A.宏函数C.

6、模板11.为正确执行以下程序 ,则函数定义正确的就是 #include () 。 DB.为各种类型都重载这一函数D.友元函数()。 Bvoid main() print(2,3 、 4);A 、 template void print(T arg1, T arg2) cout arg1: arg1 endl; cout arg2: arg2 endl;B、template void print(T1 arg1, T2 arg2) cout arg1: arg1 endl; cout arg2: arg2 endl;C、void print(int arg1, int arg2) cout ar

7、g1: arg1 endl;cout arg2: arg2 endl; D、template void print(T arg1, int arg2) cout arg1: arg1 endl;cout arg2: arg2 endl; 12. 以下基类哪个表示抽象类 () 。CA. class MyClassvirtual void vf(int);B. class MyClassvoid vf(int)=0;C. class MyClassvirtual void vf( )=0;D.class MyClassvirtual void vf(int) ;13. 下面关于虚函数与函数重载的叙

8、述 不正确 的就是 () 。AA、虚函数不就是类的成员函数B、虚函数实现了 C+ 的多态性C、函数重载允许非成员函数 ,而虚函数则不行D、函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定,该表达式14. 如果表达式 +i*k 时中的“ +”与“ * ”都就是重载的友元运算符 ,则采用运算符函数调用格式 还可表示为 ()。 BA)operator*(i 、 operator+(),k)B)operator*(operator+(i),k)C)i 、 operator+() 、 operator*(k)D)k、 operator*(operator+(i)15. 下列关于虚函数的说法

9、 ,错误的就是 ()。BA、需要通过基类的对象、指针或者引用来调用虚函数B、派生类中的虚函数必须与基类中的虚函数同名,但参数的个数可以不一样C、一个函数如果被定义成虚函数 ,经历多次派生后 ,其虚特性将不会保持D、设置虚函数的目的就是消除二义性16. 有如下程序 : #include using namespace std;class Base private:void fun1( ) const cout ”fun1 ”; protected:void fun2( ) const cout ”fun2 ”; public:void fun3( ) const cout ”fun3 ”; ;c

10、lass Derived : protected Basepublic:void fun4( ) const cout ”fun4 ”; ;int main()Derived obj;obj 、 fun1( );/obj 、 fun2( );/obj 、 fun3( );/obj 、 fun4( );/其中没有语法错误的语句就是 () 。DD.D.A. B.C.17、有如下类定义 : class AAint a;public:int getRef( ) const return &a;/ int getValue( ) const return a;/ void set(int n) cons

11、ta=n; / friend void show(AA aa) const couta;/ ;其中的四个函数定义中正确的就是 ()。 BA. B.C.18、下面程序使用 new与 delete命令 ,下面就是对这段程序的叙述 ,其中正确的就是 ()。C #include int main( )long *p , i;p=new long;if(!p) cout ”Allocation errorn return 1;*p=1000;i=(long)p; cout ”Here is i: “i ”n”; delete p;cout ”Here is i”*p ”n”;return 0;A、 有错

12、误 ,编译不能通过B. 正确 ,执行结果为 :1000 1000C. 正确 ,但执行结果的第二个数值不定D. 正确 ,执行结果的各个数值均不为 100019、要求打开文件 test、 dat,可读出数据 ,正确的语句就是 ( )DA、 ifstream myF ile( te“st、 dat ”, ios:in);B、fstream myFile (、“dteastt”, ios:i;n )C、ifstream myFile; my ( “test、dat ”, ios:in);D、以上都正确20、read函数的功能就是从输入流中读取 ()。 DA. 一个字符B、 当前字符 C、 一行字符D、

13、 指定若干字节试题二、程序填空题 (每空 1 分,共20 分)。1、【程序说明】以下程序能实现求 a2+b2+c2 。其中 a、 b、 c 的值由对象的初始化值提供。该程序使用静 态成员实现。运行结果 :Number=5Number=10Number=15Result=350#include using namespace std;class myclasspublic:myclass(int x);void getnumber();static void Result();private:int a;(1); / 定义静态数据成员 sum;myclass:myclass(int x)a=x;

14、(2)void myclass:getnumber()coutNumber=aendl;void myclass: Result() coutResult=sumendl;(3) ;int main()myclass ob1(5),ob2(10),ob3(15);ob1、 getnumber();ob2、 getnumber();ob3、 getnumber();(4) ; /调用 Result输出结果return 0;(1) (2) (3) (4)2、【程序说明】请完成该类的实现。#include using namespace std;class pointpublic:(5) ; poi

15、nt(int x, int y) (6) ;(7) ;(8) return x;int getY()return y;void setX(int xx)x=xx;void setY(int yy)y=yy;private: int x,y;class ArrayofPoints public:ArrayofPoint(int n):numofPoints(n) (9) ;(10) Elements(int n) return arrayn; private: point* array;int numofPoints;void main() ArrayofPoints a(5);a、 Eleme

16、nts(0)、 setX(3);cout (11) ; / 输出第一个点的横坐标 (5)(6)(7) (8)(9)3、【程序说明】已知定义了(10)Clock类 ,请派生一个带“(11)AM ”、“PM ”的新时钟类 NewClock 。以下程序输出为:8:23:34 PM #includeusing namespace std;enum AMPMAM=1,PM;class Clock public:Clock(int=0, int=0, int s=0); void ShowTime()coutHour:Minute:Second; private:int Hour,Minute,Secon

17、d;Clock:Clock( (12) )Hour=h;Minute=m;Second=s;class (13) public:NewClock();NewClock(Clock c,AMPM ap)(14) void ShowTime()(15) ; /(16) ;private:AMPM Ap;int main()NewClock nc(Clock(8,23,34),AMPM(2);nc、 ShowTime(); return 0;(12) (13) (14) (15)(16)4、【程序说明】文件 Test1、txt中有一批非负整数 ,结尾以“ -1”结束,要求将 Test1、txt中的非

18、负偶数挑出来 写到文件 Test2、 txt中。请将下列程序补充完整。(17) ;#include using namespace std;int main()int b;ifstream infile;(18)(19)out(Test2 、txt); infileb; while(b=0)(20)outfilebb;in();out();return 0;_ (20)(20)if(b%2=0);(17) (18) (19)答案 :(17) include (18) ofstream outfile;(19)in(Test1 、 txt)试题三、程序阅读题 (每题 5分,共20分) 程序 1

19、下面程序的运行结果就是 。#include using namespace std;class B public:void f1()coutB:f1endl;class D:public B public:void f1()coutD:f1endl;void f(B& rb)rb、f1();int main( )D d;B b,&rb1=b,&rb2=d; f(rb1); f(rb2); return 0;B:f1B:f12、 程序 2 下面程序的运行结果就是 #include using namespace std; class myclassprivate:int x,y; static

20、long sum;public:myclass(int a,int b)x=a;y=b;void getxy()sum*=x*y; coutsum=sumendl;long myclass : sum=1;int main()myclass ob1(1,2);ob1、 getxy();myclass ob2(3,4); ob2、getxy();myclass ob3(5,6); ob3、getxy(); return 0; sum=2 sum=24 sum=7203 程序 3 下面程序的运行结果就是 #include class B public:B()B(int i)b=i; virtual

21、 void virfun()coutB:virfun() called 、 n; private: int b;class D:public Bpublic: D() D(int i,int j):B(i)d=j; private: int d; void virfun() coutvirfun();void main()D *pd=new D; fun(pd);4、 程序 4 下面程序的运行结果就是 程序 :#include using namespace std; class Sampleint n; public:Sample() Sample(int i)n=i; Sample &operator =(Sample s);int disp() coutn=n

温馨提示

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

评论

0/150

提交评论