班级: 姓名: 学号: 分数:
题号
二
三
四
总分
分
试卷说明:套试题四题全部题目答答题纸写方均效
(答题纸套试卷第8页)
单项选择题(题2分40分)
1关C++C语言关系描述中( D )错误
A.C语言C++语言子集 B.C语言C++语言兼容
C.C++语言C语言进行改进 D.C++语言C语言面象
2已知:int m10 列表示引方法中( A )正确
A.int &xm B.int &y10 C.int &z D.float &t&m
3考虑面函数原型声明:void testDefaulParam(int aint b7char z'*')
面函数调中合法( C )
A.testDefaulParam(5) B.testDefaulParam(58)
C.testDefaulParam(5'#') D.testDefaulParam(00'*')
4系统调重载函数时根条件确定重载函数调列选项中作( A )
A.函数返回值类型 B.参数类型 C.函数名称 D.参数数
5列关C++类说法中正确( D )
A.类种户定义数类型
B.类中成员函数类友元函数存取类中私成员
C.类中果做特说明成员访问权限均私
D.类中果做特说明成员访问权限均公
6已知X类程序执行语句X array[3]时调( D )次构造函数
A.0 B.1 C.2 D.3
7关析构函数说法正确( B )
A.析构函数仅
B.析构函数构造函数样形参
C.析构函数功系统释放象前作存清理工作
D.析构函数函数类型
8类定义容允许象限制存取( C )
A.private 部分 B. protected 部分 C.public 部分 D.
9关常数成员说法正确( )
A.常数成员定义形式般常变量定义形式相常数成员定义必须出现类体中
B.常数成员必须进行初始化更新
C.常数成员通构造函数成员初始化列表进行初始化
D.常数成员定义时直接初始化
10运运算符delete删动态象时( )
A.系统首先该动态象调构造函数释放占存
B.系统首先释放该动态象占存调构造函数
C.系统首先该动态象调析构函数释放占存
D.系统首先释放动态象占存调析构函数
11类外pa形式访问派生类象p基类成员a中a( D )
A.私继承公成员 B.公继承私成员
C.公继承保护成员 D.公继承公成员
12公继承方式关派生类象基类象关系正确叙述( )
A.派生类象赋基类象
B.派生类象初始化基类引
C.派生类象直接访问基类中成员
D.派生类象址赋指基类指针
13设置虚基类目( B )
A.简化程序 B.消二义性 C.提高运行效率 D.减少目标代码
14C++中实现动态态性( D )
A.联函数 B.重载函数 C.模板函数 D.虚函数
15说明虚函数( )
A.析构函数 B.构造函数 C.类成员函数 D.
16果类少纯虚函数称该类( )
A.抽象类 B.派生类 C.纯基类 D.
17面关友元描述中错误( )
A.友元函数访问该类私数成员
B.类友元类中成员函数类友元函数
C.友元提高程序运行效率
D.类类间友元关系继承
18列运算符中( )运算符C++中重载
A.&& B.[] C. D.new
19模板实际类模板实例化成( )
A.函数 B.象 C.类 D.抽象类
20假定MyClass类该类拷贝构造函数声明语句( )
A.MyClass(MyClass x) B.MyClass&(MyClass x)
C.MyClass(MyClass &x) D.MyClass(MyClass *x)
二填空题(前16空空1分2空空2分20分)
1类象关系表述:类象 象类
2C++中三种继承方式说明符号 果加说明默认继承方式
3果想保留公基类复制必须关键字 公基类声明虚基类
4void fun()定义类A友元函数应类A定义中加入语句
5类静态成员分
6运算符重载求保持原操作数数 语法结构
7通关键字 声明模板通关键字 指定函数模板类型参数类型参数类型关键字
8列出C++中两种户定义数类型:
9构造函数作
10置增运算符++重载类成员函数(设类名A)形式
三阅读面3程序写出程序运行时输出结果:(13分)
1#include
using namespace std
void fun(int &aint &b)
{ int p
pa ab bp
}
void exchange(int &aint &bint &c)
{ if(a if(a
int main()
{ int a12b89c56
exchange(abc)
cout< return 0
}
2#include
using namespace std
class Date
{public
Date(intintint)
Date(intint)
Date(int)
Date()
void display()
private
int month day year
}
DateDate(int mint dint y)month(m)day(d)year(y) { }
DateDate(int mint d)month(m)day(d) {year2009}
DateDate(int m)month(m){day1 year2010 }
DateDate() {month1 day1 year2010 }
void Datedisplay(){cout<
{ Date d1(12312009)
Date d2(1231)
Date d3(1)
Date d4
d1display()
d2display()
d3display()
d4display()
return 0 }
3#include
using namespace std
class A
{ public
A(){cout<
{ public
B(){cout<
{ public
C(){cout<
{ C c1
return 0
}
四编程题(27分)
1(10分) 已知复数类Complex声明:
class Complex
{public
Complex() 参构造函数
Complex(double ) 转换构造函数
Complex(double double)两形参构造函数
friend Complex operator+(Complex& Complex&) +运算符进行重载
friend ostream& operator<<(ostream& Complex&) <<运算符进行重载
friend istream& operator>>(istream& Complex&) >>运算符进行重载
private
double realimag
}
求:(1)写出该类构造函数类外定义代码
(2)写出运算符+<<>>进行重载运算符重载函数定义
2(17分)列Shape类表示形状抽象类area( )求图形面积函数total( )通求形状图形面积总函数
class Shape
{public
virtual double area()0
}
double total(Shape *s[ ] int n)
{ double sum00
for(int i0 i
return sum
}
求:(1)Shape类派生圆类(Circle)正方形类(Square)圆类新增数成员半径(radius)正方形类新增数成员边长(a)圆类正方形类构造函数修改显示数成员值函数求面积函数
(2)写出main()函数计算半径55圆边长99正方形面积(必须通调total函数计算)
面象程序设计C++期末考试试卷(B)标准答案
班级: 姓名: 学号: 分数:
题号
二
三
四
总分
分
单项选择题(题2分40分)
15.D A C A D 610.D B C D C
1115.D C B D B 1620.A D C C C
二填空题(前16空空1分2空空2分20分)
1. 抽象 实例
2. public private _ ___ protected private _ ___
3. virtual ___ 4. friend void fun(A &a) _
5. 静态数成员 静态成员函数 6. 结合性 优先级_ ___
7. Template class(typename) 8. 类 结构体 ___
9. 创建象时初始化象数成员 ___
10. A operator++(int) ___
三阅读程序(13分)
1a89b56c12
212312009
12312009
112010
112010
3constructing A
constructing B
constructing C
destructing C
destructing B
destructing A
四编程题(27分)
1(10分)
ComplexComplex(){real0imag0}
ComplexComplex(double r){realr}
ComplexComplex(double rdouble i){realrimagi}
Complex operator+(Complex &c1Complex &c2)
{ Complex c
crealc1real+c2real cimagc1imag+c2imag
return c
}
ostream& operator << (ostream& outputComplex& c)
{ output<<(<
}
istream& operator >> (istream& inputComplex& c)
{ cout< input>>creal>>cimag
return input
}
2(17分)
class Circlepublic Shape
{public
Circle(double r){radiusr}
void set()
{ cout<
}
void show()
{ cout<
private
double radius
}
class Squarepublic Shape
{public
Square(double a){this>aa}
void set()
{ cout<
}
void show()
{ cout< double area(){return a*a}
private
double a
}
int main()
{
Circle C(55)
Cshow()
Square S(99)
Sshow()
Shape *s[]{&C&S}
cout<
}
面象程序设计C++期末考试试卷
选择题(题3分48分)
01列关C++函数叙述中正确( C )
A)函数少具参数 B)函数必须返回值
C)函数调前必须先声明 D)函数调
02列关类象叙述中错误( A )
A)类象 B)象类具体实例
C)类某类象抽象 D)类象关系种数类型变量关系
03C++中实现运行时态性(D )
A)联函数 B)重载函数 C)模板函数 D)虚函数
04列关运算符重载叙述中正确(B )
A)通运算符重载定义新运算符 B)运算符作成员函数重载
C)重载运算符+相应运算符函数名+ D)重载二元运算符时必须声明两形参
05语句 cout<
C)x变量 D)<<称作提取运算符
06类声明类MyDERIVED中保护数成员成员函数数( )
class MyBASE
{ private int k
public void set(int n){ kn}
int get( )const{ return k} }
class MyDERIVED protected MyBASE
{ protected int j
public void set(int m int n){ MyBASEset(m) jn}
int get( ) const { return MyBASEget( )+j } }
A)4 B)3 C)2 D)1
07已知类体中包含函数原型 Volume operator(Volume)const列关函数叙述中错误( B )
A)运算符重载运算符函数 B)函数重载运算符元运算符
C)成员函数 D)函数改变类数成员值
08执行程序段输出结果( C )
coutfill('*') coutwidth(6) coutfill('#') cout << 123 << endl
A)###123 B)123### C)***123 D)123***
09列函数原型中作类AA构造函数(B )
A)void AA(int) B)int AA() C)AA(int)const D)AA(int)
10面四选项中( A)声明虚函数
A)virtual B)public C)include D)using namespace
11实现运行时态性( D )
A)重载函数 B)构造函数 C)析构函数 D)虚函数
12实现动态联编必须通( )调虚函数
A)象指针 B)成员名限定 C)象名 D)派生类名
13( C )成员函数表示纯虚函数
A)virtual int vf(int) B)void vf(int)0
C)virtual void vf()0 D)virtual void vf(int){}
14类声明:class XA
{ private int x
public XA(int n){ xn} }
class XB public XA
{ private int y
public XB(int aint b) }
构造函数XB列定义中正确( )
A)XBXB(int aint b) x(a)y(b){ } B)XBXB(int aint b) XA(a)y(b){ }
C)XBXB(int aint b) x(a)XB(b){ } D)XBXB(int aint b) XA(a)XB(b){ }
15表达式 x+y*z中 + 作成员函数重载运算符* 作非成员函数重载运算符 operator+ 参数operator* 参数( )
A)22 B)21 C)12 D)11
16应列程序划线处填入正确语句( )
class Base
{ public
void fun(){cout<
{ void fun()
{ 显示调基类函数fun()
cout<
二填空题(空2分20分)
17继承态性 18友元 19私
20private私 21成员友元
22widthsetw 23抽象类
17面象程序设计四特点抽象封装_态性____继承性__
18非成员函数应声明类_友元___函数访问类private成员
19派生类中成员直接访问基类中_私成员
20class定义类时数成员成员函数默认访问权限私
21运算符重载函数类__友元_函数类__成员__函数普通函数
22流象成员函数控制输出格式时设置字段宽度流成员函数名称_width___作相控制符名称__setw__
23含纯虚函数类称__抽象类
三程序填空程序执行(题4分20分)
24程序定义计数器类counter重载运算符+请填空
class counter
{ private int n
public
counter() {n0}
counter(int i){ni}
____ 运算符重载函数
{ counter t tnn+cn return t }
void disp() {cout<
void main()
{ counter c1(5)c2(10)c3
c3c1+c2
c1disp() c2disp() c3disp() }
25列程序输出结果2请程序补充完整
class Base
{ public
____ void fun()
{ cout<<1 }
}
class Derived public Base
{ public
void fun( ) { cout<<2 }
}
int main( )
{ Base *p new Derived
p>fun( )
delete p
return 0 }
26写出执行面程序输出结果
void fun(int &x int y)
{ int tx xy yt }
int main( )
{ int a[2] {23 42}
fun(a[1]a[0])
stdcout< return 0 }
27写出执行面程序输出结果
class A { public A() { cout<class B { public B() { cout<class C public A
{ B b
public C() { cout<
int main( ) { C obj return 0 }
28写出执行面程序输出结果
class Base
{ private
char c
public
Base(char n)c(n){}
virtual ~Base(){cout<
class Derpublic Base
{ private
char c
public
Der(char n)Base(n+1)c(n){}
~Der(){cout<
int main()
{ Der(X) return 0 }
四编程题(12分)
29编写程序计算三角形正方形圆形三种图形面积求:
a)抽象出基类baseb)中说明虚函数求面积c)利派生类定义三角形正方形圆形d)编写函数测试
参考答案
选择题(题3分48分)
0105 C A D B D
0610 B B A D A
1116 D A C B C C
三程序填空程序执行(题4分20分)
24counter operator + (counter c)
25virtual
262323
27ABC
28XY
四编程题(12分)
29
#include
using namespace std
class base
{ public
virtual float area() const
{ return 0 }
}
class triangle public base
{ protected
float bianheight
public
triangle(float a0 float h0) { biana heighth }
virtual float area() const
{ return bian*height2 }
}
class square public base
{ protected
float bian
public
square(float a0) { biana }
virtual float area() const
{ return bian*bian }
}
class circle public base
{ protected
float radius
public
circle(float r0) { radiusr }
virtual float area() const
{ return 314*radius*radius }
}
int main()
{ triangle t(34) square s(5) circle c(2)
base *p
p&t cout<
}
面象程序设计C++期末考试试卷(A)
班级: 姓名: 学号: 分数:
题号
二
三
四
总分
分
试卷说明:套试题四题全部题目答答题纸写方均效
(答题纸套试卷第10页)
选择题(题2分40分)
1C++( )
A 面象程序设计语言
B 面程程序设计语言
C 支持面象程序设计支持面程程序设计混合型语言
D 非结构化程序设计语言
2面象程序设计思想特征中包括( )
A 封装性 B 态性 C 继承性 D 功分解逐步求精
3定义:string str 语句cin>>str 执行时键盘输入:
Microsoft Visual Studio 60
结果str( )
A Microsoft Visual Studio 60 B Microsoft
C Microsoft Visual D Microsoft Visual Studio 60
4考虑面函数原型声明:void testDefaulParam(int aint b7char z'*')
面函数调中合法( )
A testDefaulParam(5) B testDefaulParam(58)
C testDefaulParam(5'#') D testDefaulParam(00'*')
5列语句中函数int sum(int x int y)正确重载( )
A float sum(int x int y) B int sum(int a int b)
C float sum(float x float y) D double sum(int y int x)
6列表示引方法中( )正确
已知:int a1000
A int &xa B char &y C int &z1000 D float &t&a
7函数中求通函数实现种太复杂功求加快执行速度选( )
A 联函数 B 重载函数 C 递调 D 嵌套调
8列关C++类说法中正确( )
A 类种户定义数类型
B 类中成员函数类友元函数存取类中私成员
C 类中果做特说明成员访问权限均私
D 类中果做特说明成员访问权限均公
9已知X类程序执行语句:X array[3]时调( )次构造函数
A 0 B 1 C 2 D 3
10面说法中正确( )
A 类定义构造函数定义析构函数
B 类定义析构函数定义构造函数
C 构造函数析构函数名名字前加求反符号(~)
D 构造函数指定返回类型析构函数指定返回类型void类型
11已知:print( )函数类常成员函数返回值列表示中( )正确
A void print( ) const B const void print( )
C void const print( ) D void print(const)
12面描述中表达错误( )
A 公继承时基类中public成员派生类中public
B 公继承时基类中private成员派生类中private
C 公继承时基类中protected成员派生类中protected
D 私继承时基类中public成员派生类中private
13设置虚基类目( )
A 简化程序 B 消二义性 C 提高运行效率 D 减少目标代码
14面( )叙述符合赋值兼容规
A 派生类象赋值基类象
B 基类象赋值派生类象
C 派生类象初始化基类象
D 派生类象址赋值指基类指针
15关虚函数描述中( )正确
A 虚函数static类型成员函数
B 虚函数非成员函数
C 基类中说明虚函数派生类中应函数必说明虚函数
D 派生类虚函数基类虚函数具参数数类型
16面关友元描述中错误( )
A 友元函数访问该类私数成员
B 类友元类中成员函数类友元函数
C 友元提高程序运行效率
D 类类间友元关系继承
17列关静态数成员说法正确( )
A 类中定义公静态数成员通类象访问
B 类中定义静态数成员必须类外初始化
C 静态数成员象
D 普通成员函数直接访问类中静态数成员
18果表达式++i*k中++*重载友元运算符采运算符函数调格式表达式表示( )
A operator*(ioperator++()k) B operator*(operator++(i)k)
C ioperator++()operator*(k) D koperator*(operator++(i))
19面模板声明正确( )
A template
C template
20列类函数中( )类成员函数
A 构造函数 B 析构函数 C 友元函数 D 复制构造函数
二填空题(前14空空1分3空空2分20分)
1类象关系表述:类象 象类
2静态成员函数没隐含 C++程序中静态成员函数访问静态数成员访问非静态成员
3图1中ABCDEF均类中属单继承派生类 属继承派生类 类F基类 类A派生类
A
B
C
D
E
F
图1 类继承层次图
4果想保留公基类复制必须关键字 公基类声明虚基类
5实现角度讲态性划分两类:
6果类包含纯虚函数该类称
7void fun()定义类A友元函数应类A定义中加入语句
8列出C++中两种代码复方式:
9析构函数作
10假定A类名该类拷贝构造函数原型说明语句:
11置增运算符++重载类成员函数(设类名A)形式:
三阅读面4程序写出程序运行时输出结果(13分)
1
#include
using namespace std
void fun(int &a int &b)
{ int p
pa ab bp
}
void exchange(int &a int &b int &c)
{ if( a if( a
int main()
{ int a12b89c56
exchange(a b c)
cout< return 0
}
2
#include
using namespace std
class A {
public
A( ) { cout << A }
}
class B {
public
B( ) { cout <}
class C public A {
public
C( ) { cout << C }
private
B b
}
int main ( ) {
C obj
return 0
}
3
#include
using namespace std
class A
{public
A(){cout<
class B public A
{public
B(int i)
{ cout<
}
virtual ~B()
{ delete []buf
cout<}
private
char *buf
}
int main()
{ A *anew B(15)
delete a
return 0
}
4
#include
using namespace std
class A
{public
void f(){cout<
class B
{public
void f() {cout<
class C public A public B
{public
void g(){cout<
int main()
{ C cc
ccBf()
ccBg()
ccg()
return 0
}
四编程题(27分)
1(10分) 已知复数类Complex声明:
class Complex
{public
Complex() 参构造函数
Complex(double ) 转换构造函数
Complex(double double) 两形参构造函数
friend Complex operator+(Complex& Complex&) +运算符进行重载
friend ostream& operator<<(ostream& Complex&) <<运算符进行重载
friend istream& operator>>(istream& Complex&) >>运算符进行重载
private
double realimag
}
求:(1)写出该类构造函数类外定义代码
(2)写出运算符+<<>>进行重载运算符重载函数定义
2(17分)列Shape类表示形状抽象类area( )求图形面积函数total( )通求形状图形面积总函数
class Shape
{public
virtual double area()0
}
double total(Shape *s[ ] int n)
{ double sum00
for(int i0 i
return sum
}
求:(1)Shape类派生圆类(Circle)正方形类(Square)圆类新增数成员半径(radius)正方形类新增数成员边长(a)圆类正方形类构造函数修改显示数成员值函数求面积函数
(2)写出main()函数计算半径55圆边长99正方形面积(必须通调total函数计算)
面象程序设计C++期末考试试卷(A)标准答案
班级: 姓名: 学号: 分数:
题号
二
三
四
总分
分
单项选择题(题2分40分)
15.C D B C C 610.A A D D B
1115.A B B B C 1620.D C B C C
二填空题(前14空空1分3空空2分20分)
1. 抽象 实例 2. this指针
3. E DF ABCDE DF
4. virtual 5. 静态态性 动态态性
6 抽象类 7 friend void fun(A &a)
8 继承 组合模板
9 象系统释放前做存清理工作
10 A(const A&) 11 A operator++(int)
三阅读程序(13分)
1a89b56c12
2ABC
3AA() called
BB() called
B~B() called
A~A() called
4Call B's function f()
Call B's function g()
Call C's function g()
四编程题(27分)
1(10分)
ComplexComplex(){real0imag0}
ComplexComplex(double r){realr}
ComplexComplex(double rdouble i){realrimagi}
Complex operator+(Complex &c1Complex &c2)
{ Complex c
crealc1real+c2real cimagc1imag+c2imag
return c
}
ostream& operator << (ostream& outputComplex& c)
{ output<<(<
}
istream& operator >> (istream& inputComplex& c)
{ cout< input>>creal>>cimag
return input
}
2(17分)
class Circlepublic Shape
{public
Circle(double r){radiusr}
void set()
{ cout<
}
void show()
{ cout<
private
double radius
}
class Squarepublic Shape
{public
Square(double a){this>aa}
void set()
{ cout<
}
void show()
{ cout< double area(){return a*a}
private
double a
}
int main()
{
Circle C(55)
Cshow()
Square S(99)
Sshow()
Shape *s[]{&C&S}
cout<
}
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档