收藏 分销(赏)

C++(2)试题A卷及其答案.doc

上传人:二*** 文档编号:4416398 上传时间:2024-09-19 格式:DOC 页数:9 大小:49KB
下载 相关 举报
C++(2)试题A卷及其答案.doc_第1页
第1页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、姓名 学号 学院 专业 座位号 ( 密 封 线 内 不 答 题 )密封线线_ _ 诚信应考 ,检验 作弊 将带来严格 后果! 华南理工大年夜 学期末检验 低级 语言 次序 方案 2试卷A本卷须知:1. 考前请将密封线内各项信息填写明晰 ; 2. 所有 答案 写在答题纸上,答在不的 所在 无效; 3. 试卷可做草稿纸,试卷必须 与答题纸同时提交;4检验 办法 :闭卷; 5. 本试卷共五大年夜 题,总分值100分,检验 时辰 120分钟。一.单项选择 题每题2分,共20分精选可编辑 1在C+中,有关类跟 东西 精确 说法是( A )。3A东西 是类的一个实例 B东西 是类的存储空间C一个类只能有一

2、个东西 D类是次序 包,东西 是存储空间2在类定义 中,称为接口的成员是( C )。A. 所有 类成员B. private或protected的类成员C. public的类成员D. public或private的类成员3. 一个类的友员函数可以 通过( D )访征询 该类的所有 成员。A静态数据 B析构造函数 Cthis指针 D类东西 参数4. 下面描画差错 的选项是( B )。A自定义 构造函数该当 是公有成员函数 B构造函数可以 是虚函数C构造函数在树破 东西 时自动 调用 实行 D构造函数可以 重载5. 在类的承袭关系 中,基类的 B 成员在派生类中可见。A. 所有 B. public跟

3、 protectedC. 只要 publicD. 只要 protected6设B类是A类的派生类,有说明语句 A a, *ap; B b, *bp; 那么以下精确 语句是 C 。A. a=b;B. b=a;C. ap=&b;D. bp=&a;7C+中,以下 D 语法办法 不属于运行 时的多态。A. 按照if语句的求值决定 次序 流程 B. 按照基类指针指向东西 调用 成员函数C. 按照switch语句的求值决定 次序 流程 D. 按照参数个数、典范 调用 重载函数8. 假设 对A类定义 一个重载“+号运算符的成员函数,以便完成 两个A类东西 的加法,并前去 相加后果,那么该成员函数的函数原型为

4、( B )。AA operator +( const A &A1, const A &A2 ); BA A: operator +( const A &A2 );CA:operator +( A &A2 ); DA A:operator +( );9. 一个类模板定义 了静态数据成员,那么( A )。A每一个实例化的模板类都有一个自己的静态数据成员。B每一个实例化的东西 都有一个自己的静态数据成员。C它的典范 必须 是类模板定义 的抽象 典范 。D所有 模板类的东西 公享一个静态数据成员。10读一个C+数据文件,要创破 一个( A )流东西 。AifstreamBofstreamCcin Dc

5、out二简答题每题4分,共20分1有右图所示类格。类X中有数据成员int a。按照以下函数注释的编译信息,分析int X:a的访征询 特点 ,class Y对class X跟 class Z对class Y的承袭性质 。class Xclass Yclass Z void Y:funY() coutaendl; /精确 void Z:funX() coutaendl; /差错 void main() X x; Y y; Z z; coutx.aendl;/精确 couty.aendl;/差错 coutz.aendl;/差错 int X:a是class X的public数据成员,class Y为

6、protected承袭class X,class Z为private承袭class Y。2有人定义 一个教师类派生一个老师 类。他认为 “姓名跟 “性不是教师、老师 共有的属性,声明 为public,“职称跟 “工资 是教师特有的,声明 为private。在老师 类中定义 特有的属性“班级跟 “效果。因而 有class teacher public:char name20; char sex; private:char title20; double salary;class student : public teacher private: char grade20 ; int score;

7、你认为 如斯 定义 适合吗?请做出你认为 公正 的类构造定义 。class person public:char name20; char sex;class teacher : public person private:char title20; double salary;class student : public person private: char grade20 ; int score;3有类定义 class Test int a,b; public:Test ( int m, int n ) a=m; b=n; void Set( int m, int n ) a=m; b

8、=n; /;有人认为 “Test跟 Set函数的功能 一样,只要 定义 其中 一个就够了。这种说法精确 吗?什么缘故 ?带参数的构造函数用于树破 东西 数据初始化,成员函数用于次序 运行 时修负数据成员的值。4假设 有声明 template class Tclass /*/ ;树破 一个Tclass东西 用以下语句Tclass Tobj;有差错 吗?假设 出错 ,请分析缘故,并写出一个精确 的说明语句。不 实例化类属参数。Tclass Tobj;5C+的文本文件可以 用binary办法 打开 吗?假设 有以下语句fstream of(d:testfile, ios:out|ios:binary

9、);double PI=3.1415;请写出把PI的值写入文件d:testfile末了 的语句。可以 。of.seekp(0,ios:end);of.write(char*)&PI, sizeof(double);三.阅读 以下次序 ,写出实行 后果每题6分,共24分 1.#include /运算符重载enum BoolConst False=0 , True=1 ;/定义 列举 典范 class Boolean public:Boolean(BoolConst x = False) logic = x; void print() const logic? cout TRUE : cout F

10、ALSE ; friend Boolean operator +(const Boolean & obj1, const Boolean & obj2);friend Boolean operator *(const Boolean & obj1, const Boolean & obj2); protected: BoolConst logic;Boolean operator+ ( const Boolean & obj1, const Boolean & obj2 ) return (obj1.logic|obj2.logic)?Boolean(True):Boolean(False);

11、 Boolean operator* ( const Boolean & obj1, const Boolean & obj2 ) return (obj1.logic & obj2.logic) ? Boolean(True) : Boolean(False); void main() Boolean a(False), b(True), c, d ; c = a * b; d = a + b; a.print(); b.print(); c.print(); d.print(); coutendl; FLASE TRUE FALSE TRUE 2.#include /模板,静态数据成员te

12、mplate class List public: List(T x=0) data = x; void append(List *node ) node-next=this; next=NULL; total+; List *getnext() return next; T getdata() return data; static int total; private: T data; List *next;template int List:total=0;void main() int i, n=5; List headnode; List *p, *last; last = &hea

13、dnode; for( i=1; i=n; i+ ) p = new List(i*2); p-append( last ); last = p; p = headnode.getnext(); while( p ) cout getdata() getnext(); coutendl; couttotal=List:totalendl;24 6 8 10Total=53.#include /类成员#includeclass Point public: Point(int x1=0, int y1=0) x = x1; y = y1; coutPoint构造函数n; int GetX() re

14、turn x; int GetY() return y; private: int x;int y;class Distance public: Distance(Point xp1, Point xp2); double GetDis() return dist; private: Point p1; Point p2; double dist;Distance:Distance(Point xp1, Point xp2): p1(xp1), p2(xp2) coutDistance构造函数n; double x = double(p1.GetX() - p2.GetX(); double

15、y = double(p1.GetY() - p2.GetY(); dist = sqrt(x * x + y * y);void main() Point myp1(0,0), myp2(0,20); Distance mydist(myp1,myp2); coutThe distance is mydist.GetDis()endl;Point构造函数Point构造函数 Distance构造函数 The distance is 204. 写出data.txt中的后果跟 屏幕表示 的后果。#include void main() int a=10; double x=50.5; char s

16、tr10, fname20 = d:data.txt; fstream iofile(fname,ios:out); if(!iofile) return; iofileData:ta+10 xstrax; coutstring=strna=a, x= xendl;Data.txt Data:20 50.5输出string= Data:a=20, x=50.5四. 按照次序 输出填空。每空2分,共24分1./成员跟 友员#includeclass Time public: Time(int h, int m) hours=h; minutes=m; _(1)_ Time12();void _(

17、2)_ Time24(Time time);friend void private: int hours, minutes;_(3)_ Time12()void Time:if(hours12) couthours-12:minutesPMn ; else couthours:minutesAMn ;void Time24(Time time) cout _(4)_ ; time.hours:time.minutesn void main()Time T1(20,30), T2(10,45); T1.Time12(); Time24(T1); T2.Time12(); Time24(T2);次

18、序 输出:8:30PM20:3010:45AM10:452. /虚承袭#includeclass A public: A(const char *s)coutst; A();class B: (5) A virtual public public: B(const char *s1, const char *s2):A(s1)couts2t;class C: (6) virtual public A public: C(const char *s1, const char *s2):A(s1) couts2t;class D:public B, public C public: D(const

19、 char *s1,const char *s2,const char *s3,const char *s4) : (7) A(s1),B(s1,s2),C(s1,s3) couts4t;void main() D *ptr=new D(class A,class B,class C,class D); delete ptr;次序 输出:class Aclass Bclass Cclass D3. #include /承袭#includeclass studentID public:studentID _(8)_/(int d=0)构造函数的默认 参数 value=d; coutvaluet;

20、 ; protected: int value; ;class student : public studentID public: student _(9)_ (char *pname=no name,int ssID=0):studentID(ssID) strncpy(name, pname, sizeof(name); namesizeof(name)-1=0; coutnamen; ; protected: char name20;void main() student s1(Ranry,9818) , s2(Jenny), s3; 次序 输出:9818Ranry0Jenny0 no

21、 name4. /多态#include class p_class int num ; public : void set_num( int val ) num=val; void show_num( ) ;void p_class : show_num( ) coutnum t;void main() p_class ob3, *p ; for( int i=0; ishow_num( ); p=ob (11) ; p-show_num( ); p=ob+2 (12) ; p-show_num( ); p=ob+1次序 输出:15 45 30五、完成 次序 。第1小题4分,第2小题8分,共1

22、2分1按照次序 输出,以最小办法 补偿 A类跟 B类的成员函数。#include class A public : /A类的成员函数virtual A()coutA_object destroyed.n;class B : public A public : /B类的成员函数B()coutB_object destroyed.n;void main ( ) A * p=new B ; delete p; 输出:B_object destroyed.A_object destroyed.2给出基类Figure定义 跟 main 函数如下:class Figure protected : doub

23、le x,y; public: void set(double i, double j=0) x=i; y=j; virtual void showarea()const = 0 ;#includevoid main() Triangle t; Square s; t.set(10.48,50); t.showarea(); s.set(888,100); s.showarea(); 编写派生类Triangle跟 Square的最小定义 ,以便在main 函数中调用 派生类函数showarea()的差异 完成 版本求直角三角形跟 矩形的面积。class Triangle : public Figure public : void showarea()const cout Triangle with high x and base y; cout has an area of x*0.5*yn; ;class Square : public Figure public: void showarea()const coutSquare with dimension x*y; cout has an area of x*yn; ;低级 语言 次序 方案 C+II试卷第 9 页 共 9 页

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服