版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 1 B. 2 C. 11 D. 10 3已知定义了类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. 对于常成员函数,下面描述正确的选项是( )。CA. 类的成员函数可以操作常对象 B
4、. 类的成员函数不能操作常对象C. 只有常成员函数可以操作常对象 D. 在常成员函数中,常对象可以被更新8.有如下类定义:class MyBASEint k;public:void set(int n) k=n;int get( ) const return k;class MyDERIVED: protected MyBASEprotected;int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get( ) constreturn MyBASE:get( )+j;则类MyDERIVED中保护成员个数是( )。BA4 B3 C2 D
5、19. 有下列代码: 1 class Fred; 2 class Barney 3 Fred x; 4 Fred *p; 5 ; 6 class Fred 7 Barney y; 8 ;有错误的地方是( )。BA. 第1行: class Fred; B. 第3行: Fred x; C. 第4行: Fred *p; D. 第7行: Barney y;10. 需要一种逻辑功能一样的函数,而编制这些函数的程序文本完全一样,区别只是数据类型不同。对于这种函数,下面不能用来实现这一功能的选项是()。 DA宏函数 B为各种类型都重载这一函数 C模板 D友元函数11为正确执行以下程序,则函数定义正确的是(
6、)。B#include <iostream.h> void main() print(2,3.4);A. template <class T >void print(T arg1, T arg2) cout << "arg1: " << arg1 << endl; cout << "arg2: " << arg2 << endl; B. template <class T1, class T2>void print(T1 arg1, T2 arg2
7、) cout << "arg1: " << arg1 << endl; cout << "arg2: " << arg2 << endl;C. void print(int arg1, int arg2) cout << "arg1: " << arg1 << endl; cout << "arg2: " << arg2 << endl; D. template <c
8、lass T>void print(T arg1, int arg2) cout << "arg1: " << arg1 << endl; cout << "arg2: " << arg2 << endl; 12以下基类哪个表示抽象类( )。CAclass MyClassvirtual void vf(int);Bclass MyClassvoid vf(int)=0;Cclass MyClassvirtual void vf( )=0;Dclass MyClassvirtua
9、l void vf(int) ;13下面关于虚函数和函数重载的叙述不正确的是()。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下列
10、关于虚函数的说法,错误的是( )。BA. 需要通过基类的对象、指针或者引用来调用虚函数 B. 派生类中的虚函数必须与基类中的虚函数同名,但参数的个数可以不一样 C. 一个函数如果被定义成虚函数,经历多次派生后,其虚特性将不会保持D. 设置虚函数的目的是消除二义性16有如下程序:#include<iostream>using namespace std;class Baseprivate:void fun1( ) const cout<<”fun1”;protected:void fun2( ) const cout<<”fun2”;public:void f
11、un3( ) const cout<<”fun3”;class Derived : protected Base public:void fun4( ) const cout<<”fun4”;int main()Derived obj;obj.fun1( ); /obj.fun2( ); /obj.fun3( ); /obj.fun4( ); /其中没有语法错误的语句是( )。DA B C D17. 有如下类定义: class AAint a; public:int getRef( ) const return &a; /int getValue( ) cons
12、t return a;/void set(int n) consta=n;/friend void show(AA aa) const cout<<a;/;其中的四个函数定义中正确的是 ( )。 BA B C D18. 下面程序使用new与delete命令,下面是对这段程序的叙述,其中正确的是( )。C#include <iostream.h>int main( ) long *p , i; p=new long; if(!p) cout<<”Allocation errorn”;return 1;*p=1000;i=(long)p;cout<<
13、”Here is integer at p:”<<*p<<”n”;cout<<”Here is i: “<<i<<”n”;delete p;return 0;A. 有错误,编译不能通过B 正确,执行结果为:1000 1000C 正确,但执行结果的第二个数值不定D 正确,执行结果的各个数值均不为100019. 要求打开文件test.dat,可读出数据,正确的语句是( )DA. ifstream myFile(“test.dat”, ios:in); B. fstream myFile (“test.dat”, ios:in);C. if
14、stream myFile; myFile.open(“test.dat”, ios:in); D. 以上都正确20. read函数的功能是从输入流中读取()。 DA一个字符 B. 当前字符 C. 一行字符 D. 指定若干字节试题二、程序填空题(每空1 分,共20 分)。1.【程序说明】以下程序能实现求a2+b2+c2 。其中a、b、c 的值由对象的初始化值提供。该程序使用静态成员实现。运行结果:Number=5Number=10Number=15Result=350#include <iostream>using namespace std;class myclasspublic
15、:myclass(int x);void getnumber();static void Result();private:int a; (1) ; /定义静态数据成员sum;myclass:myclass(int x)a=x; (2) ;void myclass:getnumber()cout<<"Number="<<a<<endl;void myclass: Result() cout<<"Result="<<sum<<endl; (3) ;int main()myclass o
16、b1(5),ob2(10),ob3(15);ob1.getnumber();ob2.getnumber();ob3.getnumber(); (4) ; /调用Result输出结果return 0;(1)_ (2)_ (3)_ (4)_2.【程序说明】请完成该类的实现。#include <iostream>using namespace std;class pointpublic: (5) ; point(int x, int y) (6) ; (7) ; (8) return x; int getY()return y;void setX(int xx)x=xx; void se
17、tY(int yy)y=yy;private:int x,y;class ArrayofPointspublic:ArrayofPoint(int n):numofPoints(n) (9) ; (10) Elements(int n) return arrayn;private:point* array; int numofPoints;void main()ArrayofPoints a(5); a.Elements(0).setX(3); cout<< (11) ; / 输出第一个点的横坐标 (5)_ (6)_ (7)_ (8)_(9)_ (10)_ (11)_ 3.【程序说
18、明】已知定义了Clock类,请派生一个带“AM”、“PM”的新时钟类NewClock。以下程序输出为:8:23:34 PM#include<iostream>using namespace std;enum AMPMAM=1,PM;class Clockpublic: Clock(int=0, int=0, int s=0);void ShowTime()cout<<Hour<<":"<<Minute<<":"<<Second;private: int Hour,Minute,Sec
19、ond;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.
20、txt中的非负偶数挑出来,写到文件Test2.txt中。请将下列程序补充完整。 (17) ; #include <iostream>using namespace std;int main()int b;ifstream infile; (18) (19) outfile.open("Test2.txt");infile>>b;while(b>=0) (20) outfile<<b<<','infile>>b;infile.close();outfile.close();return 0;(1
21、7)_ (18)_ (19)_ (20)_答案:(17) include<fstream> (18) ofstream outfile;(19)infile.open("Test1.txt") (20)if(b%2=0);试题三、程序阅读题(每题5分,共20分) 程序1 下面程序的运行结果是_。#include<iostream>using namespace std;class Bpublic:void f1()cout<<"B:f1"<<endl;class D:public Bpublic:void
22、f1()cout<<"D:f1"<<endl;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 <iostream>using namespace std;class myclass private: int x,y;static long sum;public: myclass(int a,int b) x=a;y=b;void getx
23、y() sum*=x*y;cout<<"sum="<<sum<<endl; ;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=2sum=24sum=7203 程序3 下面程序的运行结果是_。#include <iostream.h>class Bpublic:B()B(int i)b=i;virtual void
24、 virfun()cout<<"B: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()cout<<"D:virfun() called.n"void fun(B *obj)obj->virfun();void main()D *pd=new D;fun(pd);4. 程序4 下面程序的运行结果是_程序:#include<iostream> using namespace s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州省黔南州都匀市2023-2024学年八年级上学期期末考试数学试卷(答案不全)
- 养老院老人生活照顾人员激励制度
- 养老院老人健康监测人员社会保险制度
- 《开场白的艺术》课件
- 挽回婚姻协议书(2篇)
- 拆架子免责协议书(2篇)
- 《生化课件生物氧化》课件
- 2025年甘肃货运资格证考题
- 2025年黑龙江货运从业资格考试题目及答案大全解析
- 2025年拉萨货运从业资格证结业考试答案
- 2023年电力营销人员试题库
- 当代国际政治与经济 期末复习课件高中政治统编版选择性必修一
- 第三单元《天气》-2024-2025学年三年级上册科学单元测试卷(教科版)
- 静脉炎的预防与处理(读书报告)
- 潮湿相关性皮炎的护理
- 中国舞台机械行业市场现状、前景分析研究报告(智研咨询发布)
- 奠基仪式策划方案
- 颜色科学与技术智慧树知到答案2024年西安理工大学
- 《线性代数》全套教学课件
- 消防应急预案电子版
- 广西桂林市(2024年-2025年小学三年级语文)部编版期末考试(上学期)试卷(含答案)
评论
0/150
提交评论