收藏 分销(赏)

福建师范大学c++A卷试题.doc

上传人:a199****6536 文档编号:1223422 上传时间:2024-04-18 格式:DOC 页数:13 大小:103.01KB 下载积分:8 金币
下载 相关 举报
福建师范大学c++A卷试题.doc_第1页
第1页 / 共13页
福建师范大学c++A卷试题.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
福 建 师 范 大 学 软 件 学 院 2008级软件工程专业2009-2010学年第一学期期末考试卷(A卷) Final Examination Paper For Grade 2008 Faculty of Software, Fujian Normal University Semester 1, 2009-2010 Academic Year (120 minutes) Course C++ Programming Score from this exam 70﹪ Module C++ Programming Score from daily-performance 30﹪ Student No. Final Score Student Name PART Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Total-Score Score 一、选择题(每题2分,共30分) 1.d 2.c 3.b 4.a 5.b 6.b 7.d 8.a 9.c 10.d 11.c 12.a 13.b 14.c 15.b Score Marker Checker I. 选择题(每题2分,共30分) 1. 下列符号中,不可以作为变量名的是       d        。 A. list_p_9                     B. PA123        C. ready                    D. for 2. 下面的哪个保留字不能作为函数的返回类型? A. void B. int C. new D. long 3. 执行下面程序段的输出结果是             。 int x=4,y=-55; if (x>0) if (x>10) cout <<”AA”; else cout <<”BB”; else if (y<-8) if (y>-20) cout <<”CC”; else cout <<”DD”; A. AA            B. BB            C. CC            D. DD 4. 一个函数功能不太复杂,但要求被频繁调用,选用 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 5. 假定AB为一个类,则执行“AB  a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为                 。 A. 3              B. 4               C. 6               D. 9 6. 在公有继承的情况下,基类成员在派生类中的访问权限 A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 7. 已知一函数的原型是:int f(int ,int =0,double =0.0);则下列函数中可以加以重载的是           A. int f(int);       B. int f(int,int);      C. f(int,int,double);      D. f(int double); 8. 下列关于静态数据成员的描述中正确的是 A.静态数据成员是类的所有对象所共有的 B.静态数据成员要在构造函数内初始化 C.类的每个对象有自己的静态数据成员 D.静态数据成员不能通过类的对象调用 9. 派生类的构造函数的成员初始化列表中,不能包含 A.基类的构造函数。 B.派生类中对象成员的初始化。 C.基类中对象成员的初始化。 D.派生类中一般数据成员的初始化。 10. 关于虚析构函数的下述描述中, 是错误的。 A.基类中析构函数为虚析构函数,则派生类中的析构函数也为虚析构函数。 B.虚析构函数能保证delete运算符有效的释放基类及派生类对象。 C.将析构函数定义为虚析构函数是因为类中有虚函数。 D.虚析构函数并不能实现动态联编。 11. 一个_____ ____允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。 A.函数模板 B.模板函数 C.类模板 D.模板类 12. 通过 调用虚函数时,采用动态绑定。 A. 对象指针 B. 对象名 C. 成员名限定 D. 派生类名 13. 下列虚基类的说明中,正确的是___ ______ 。 A.class virtual B:public A B.class B:virtual public A C.virtual class B:public A D.class B:public A virtual 14. 下面是关于一个类的友元的说法,其中不正确的是 。 A.友元函数可以访问该类的私有数据成员 B.友元的声明必须放在类的内部 C.友元函数可以是类的成员函数 D.类与类之间的友元关系不能被继承 15. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a) C. operator+(AB a) D. AB & operator+( ) Score Marker Checker II. 填空题(每空2分,共20分) 1. 模板时构成 的基石。 2. C++的异常处理机制是通过关键词try、 和 实现的。 3. 一个 const 对象只能访问 __ ____ 成员函数。 4. 重载“<<”操作符时,应声明为 __ _____ 函数。 5. 利用应用程序向导AppWizard生成的单文档应用程序,一般包括四个基本类 、主框架窗口类、 和 。 6. Visual C++创建的基于MFC的应用程序可以分为单文档应用程序、 和 。 Score Marker Checker III. 程序填空(每空2分,共20分) 1 int*[row] 2 int[column] 3 *(*(p+i)+j) 4 []p[i] 5 template <class T> 6 T 7 template <class T> T Base<T>:: 8 complex &c1 9 real+c1.real,image+c1.image 10 complex &c1,complex &c2 1.动态分配一个二维数组,存放若干元素,并以指针的形式输出 #include <iostream.h> const int row=3; const int column = 3; int main() { int **p;//二级指针 p = new int *[row] ; for(int i=0;i<row;i++) p[i]= new int[column] ; for(i =0;i<row;i++) for(int j=0;j<column;j++) p[i][j]=i*j; for(i=0;i<row;i++) for(int j=0;j<column;j++) cout<< *(*(p+i)+j) <<" "; for(i=0;i<row;i++) delete []p[i] ; delete []p; return 0; } 2. #include <iostream.h> template <class T> class Base { public: Base( T i, T j ) { x = i; y = j; } T sum(); private: T x , y; }; template <class T> T Base<T>:: sum() //sum函数的定义 { return x + y; } void main() { Base<double> obj2(3.3,5.5); cout<< obj2.sum()<< endl; Base<int> obj1(3,5); cout<<obj1.sum()<< endl; } 3.#include <iostream.h> class complex { public: complex(){real = image =0;} complex(float a,float b) { real =a; image = b; } complex operator+( complex &c1 ) //重载为成员函数 { return complex( real+c1.real,image+c1.image ); } friend complex operator-( complex &c1,complex &c2 ) //重载为友元函数 { return complex(c1.real-c2.real,c1.image-c2.image); } private: float real; float image; }; IV. 写出下列程序的运行结果(每题5分,共10分) Score Marker Checker 1.#include <iostream.h> class Test {public: Test() { a = 10; cout<<"Test Constructor"<<endl; } ~Test() {cout<<"Test Destructor"<<endl;} int a; }; class Test1 { public: Test1(int x){a=x;cout<<"Test1 Constructor"<<endl;} int a; ~Test1() {cout<<"Test1 Destructor"<<endl;} }; class Test2 { public: Test2(int x,int y):n(x),m(y){cout<<"Test2 Constructor"<<endl;} void Display() { cout<<"n="<<n.a<<endl; cout<<"m="<<m<<endl; cout<<"t="<<t.a<<endl; } ~Test2() {cout<<"Test2 Destructor"<<endl;} private: int m; Test1 n; Test t; }; int main() { Test2 t2(3,5); t2.Display(); return 0; } 2.#include <iostream.h> class A0 { public: virtual ~A0() {cout<<"Destructor Function A0::~A0 is called"<<endl;} }; class B0:public A0 { public: virtual ~B0() {cout<<"Destructor Function B0::~B0 is called"<<endl;} }; class C0:public B0 { char *pid; public: C0(int k) {pid = new char[k];} virtual ~C0() { delete []pid; cout<<"Destructor Function C0::~C0() is called"<<endl; } }; void function(A0 *planta) {delete planta;} void main() { A0* planta = new C0(20); function(planta); } Score Marker Checker Ⅴ. 写程序 (6+14=20分) 1. 假设文件data.txt中存放有5个数据:9 20 2 -1 30,请用输入文件流打开该文件,读入数据到数组中存放,并用冒泡法进行排序,把排序后的结果分别输出到显示器屏幕和write.txt文件中。 2. 设计一个类point,表示二维坐标体系中的任意一点,把point类设计为基类,含有虚函数Area(),用来计算面积,在此基础上设计一个矩形类Rectangle。 要求用以下两种方法实现: (1)Rectangle类使用point类作为它的数据成员,定义point类的两个坐标点作为矩形对角坐标,假设矩形是和坐标轴平行或垂直的,请在main函数中输出矩形的面积。 (2)Rectangle以point类作为基类,Rectangle类的数据成员仍然是两个对角的坐标点。假设矩形是和坐标轴平行或垂直的,请在main函数中用多态调用输出矩形的面积。 第 13 页 共 13 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 大学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服