问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求《c++面向对象程序设计》考试题或习题

发布网友 发布时间:2022-05-27 12:53

我来回答

1个回答

热心网友 时间:2023-10-23 18:56

第一部分 选择题 (共20分)
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。
1.在C++中,函数原型不能标识( D )
A.函数的返回类型 B.函数参数的个数
C.函数参数类型 D.函数的功能 p108有叙述
2.在C++程序中,对象之间的相互通信通过( B ) ?
A.继承实现 B.调用成员函数实现
C.封装实现 D.函数重载实现
3.对于任意一个类,析构函数的个数最多为( B )
A.0 B.1 C.2 D.3
P288 析构函数不接受参数,也不返回数值。类只可能有一个析构函数,不能进行析构函数的重灾。
4.下面函数模板定义中不正确的是( A )
A.template<class Q> B.template<class Q>
QF(Q x){ QF(Q x){
return Q+x; return x+x;
} }
C.template<class T> D.template<class T>
TF(T x){ TF(T x){
return x*x; return x>1;
} }
5.友元关系不能( c A )?
A.继承
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系 p316
D.提高程序的运行效率
6.语句ofstream f(〃SALARY.DAT〃,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且( A )
A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
B.若文件存在,将其置为空文件;若文件不存在,打开失败
C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
D.若文件存在,打开失败;若文件不存在,建立一个新文件
7.下面说法正确的是( B )
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
8.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( D )
A.私有继承的公有成员 B.公有继承的私有成员
C.公有继承的保护成员 D.公有继承的公有成员
9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( A )
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
10.对于类定义
class A{
public:
virtual void func1( ){ }
void func2( ){ }
};
class B:public A{
public:
void func1( ){cout<<〃class B func 1〃<<end1;}
virtual void func2( ){cout<<〃class B func 2〃<<end1;}
};
下面正确的叙述是( C )
A. A::func2( )和B::func1( )都是虚函数
B. A::func2( )和B::func1( )都不是虚函数
C. B::func1( )是虚函数,而A::func2( )不是虚函数
D. B::func1( )不是虚函数,而A::func2( )是虚函数
第二部分 非选择题 (共80分)
二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的横线处。错填或不填均无分。
11.定义类的动态对象数组时,系统只能够自动调用该类的___拷贝?______构造函数对其进行初始化。
12.无论是什么继承方式,派生类的成员不能访问基类__private_______属性的成员。
13.表达式cout<<end1还可表示为_cout<<” /n ”;__。
14.基类的公有成员在派生类中的访问权限由__继承方式_______决定。
15.C++支持的两种多态性分别是_________多态性和_________多态性。
16.C++中语句const char * const p=〃hello〃;所定义的指针p和它所指的内容都不能被_ _修改_______。
17.假定AB为一个类,则语句AB(AB&x);为该类_构造?_函数的原型说明。
18.说明常成员函数时,关键字const写在成员函数的_________和_________之间。
19.在C++中,访问一个对象的成员所用的运算符是_________,访问一个指针所指向的对象的成员所用的运算符是_________。
20.派生类从一个或多个以前定义的该类的__基类_______继承数据和函数。
三、改错题(本大题共5小题,每小题2分,共10分)
21.指出下面程序段中的错误,并说明出错原因。
class A{
int a,b;
public:
A(int aa,int bb) {a=aa;b=bb;}
};
A x(2,3),y(4); y(4,0)
22.指出并改正下面利用类模板的对象定义中的错误。
template <class T>
class Tany{
T x,y;
public:
Tany(T a,T b){x=a,y=b;}
T sum( ){return x+y;}
};
Tany (int) obj(10,100); 改为Tany<int>
23.指出下面程序段中的错误,并说明出错原因。
class one{
private:
int a;
public:
void func(two&); void func(two &)错误,不能前向申明
};
class two{
private:
int b;
friend void one::func(two&);
};
void one::func(two& r)
{
a=r.b;
}
24.指出下面程序段中的错误,并说明出错原因。
#include <iostream.h>
class A{
public: void fun( ){cout<<〃a.fun〃<<endl;}
};
class B{
public: void fun( ){cout<<〃b.fun〃<<endl;}
void gun( ){cout<<〃b.gun〃<<endl;}
};
class C:public A,public B{
private:int b;
public:void gun( ){cout<<〃c.gun〃<<endl;}
void hun( ){fun( );} 改为void hun( ){A:fun( );}或B:fun( )
};
25.指出下面程序段中的错误,并说明出错原因。
class Location {
int X,Y=20; Y=20出错,类定义中不能显式地将类的数据成员初始化
protected:
int zeroX,zeroY;
int SetZero(int ZeroX,int ZeroY);
private:
int length,height;
public:
float radius;
void init(int initX,int initY);
int GetX( );
int GetY( );
};
四、完成程序题(本大题共5小题,每小题4分,共20分)
根据题目要求,完成程序填空。
26.在下面横线处填上适当字句,完成类中成员函数的定义。
class A{
int * a;
public:
A(int aa=0) {
a=_new int(aa)_;//用aa初始化a所指向的动态对象
}
~A(){_delete a_;}//释放动态存储空间
};
27.下面是一个函数模板,用于计算两个向量的和。在下面横线处填上适当字句,完成函数模板定义。
#include <iostream.h>
template<class T>
T* f(T* a,T* b,int n)
{
T* c=_new T[n]___;
for(int i=0;i<n;i++)
c〔i〕=_a[i]+b[i] __;
return c;
}
void main()
{
int a〔5〕={1,2,3,4,5},b〔5〕={10,20,30,40},*p;
p=f(a,b,5);
for(int i=0;i<5;i++)
cout<<p〔i〕<<endl;
}
28.下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能。
#include <iostream.h>
#include <string.h>
_char* PASS=”wolleh”;__//定义由PASS指针所指向的口令wolleh。
void main()
{
char user〔10〕;//用于存放输入的口令
cout<<〃please input your password:〃<<endl;
__cin>>user;_//输入口令
if((strcmp(user,PASS))==0)
cout<<〃your password is correct〃<<endl;
else
cout<<〃your password is error〃<<endl;
}
29.下面是类fraction(分数)的定义,其中重载的运算符<<以分数形式输出结果,例如将三分之二输出为2/3。在横线处填上适当字句。
class fraction{
int den; //分子
int num; //分母
friend ostream& operator<<(ostream&,fraction);

};
ostream& operator <<(ostream& os,fraction fr){
_cout<<den<< ”/ ”<<num<<endl__;
return ___os______;
}
30.在下面程序横线处填上适当的字句,使其输出结果为0,56,56。
#include <iostream.h>
class base{
public:
____int__func( ){return 0;}
};
class derived:public base{
public:
int a,b,c;
____void_____ setValue(int x,int y,int z){a=x;b=y;c=z;}
int func( ){return(a+b)*c;}
};
void main()
{
base b;
derived d;
cout<<b.func( )<<′,′;
d.setValue(3,5,7);
cout<<d.func( )<<′,′;
base& pb=d;
cout<<pb.func( )<<end1;
}
五、程序分析题(本大题共6小题,每小题5分,共30分)
给出下面各程序的输出结果。
31.#include <iostream.h>
void main( )
{
int *a;
int *&p=a;
int b=10;
p=&b;
cout<<*a;
}
输出为:
32.#include <iostream.h>
template<class T>
Tf(T*a,T*b,int n){
Ts=(T)0;
for(int i=0;i<n;i++)
s+=a〔i〕*b〔i〕;
return s;
}
void main()
{
double c 〔5〕={1.1,2.2,3.3,4.4,5.5},d〔5〕={10.0,100.0,1000.0};
cout<<f(c,d,5)<<endl;
}
输出为:2531
33.#include <iomanip.h>
void main()
{
for(int i=0;i<4;i++)
cout<<endl<<setfill(′′)<<setw(4-i)<<′0′
<<setfill(′*′)<<setw(i+i)<<(i>0?′0′:′′);
}
输出为:
34.运行下面的程序,写出当输入25,60时的输出结果。
#include <iostream.h>
class goods{
private:
static int totalWeight;
int weight;
public:
goods(int w)
{
weigh=w;
totalWeight+=w;
}
goods(goods& gd)
{
weight=gd.weight;
totalWeight+=weight;
}
~goods()
{
totalWeight-=weight;
}
int getwg()
{
return weight;
}
static int getTotal()
{
return totalWeight;
}
};
int goods::totalWeight=0;
void main()
{
int w;
cout<<〃The initial weight of goods:〃<<goods::getTotal()<<endl;
cin>>w; //输入25
goods g1(w);
cin>>w; //输入60
goods g2(w);
cout<<〃The total weight of goods:〃<<goods::getTotal()<<endl;
}
输出为:
35.#include <iostream.h>
class A{
public:
A( ){ }
virtual void func( ){cout<<〃Destructor A〃<<endl;}
~A( ) {func();}
};
class B:public A{
public:
B( ){ }
void func(){cout<<〃Destructor B〃<<endl;}
~B( ) {func();}
};
void main( )
{
B b;
A&a=b;
}
输出为:
36.#include <iostream.h>
class My Class {
public:
int number;
void set(int i);
};
int number=3;
void MyClass::set (int i)
{
number=i;
}
void main()
{
MyClass my1;
int number=10;
my1.set(5);
cout<<my1.number<<end1;
my1.set(number);
cout<<my1.number<<endl;
my1.set(::number);
cout<<my1.number;
}
输出为:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
宁德市有哪些区 福建宁德市有哪些区 宁德市有哪些商圈 安装项目错误: 项目文件不存在 (C:\Windows\SolidWorks\IM_20110-4 高压103低压98心跳104,医生初诊是脑梗,怎么治疗,吃什么药?饮食方面注 ... 最新版好玩的谐音梗网名210个 比较搞笑幽默的网名 德国猎梗FCI标准 “流泉百折玉琮琤”的出处是哪里 “细听犀谈座为倾”的出处是哪里 “西蜀东吴一世英”的出处是哪里 面向对象程序设计题(程序运行结果)有好的答案我加分 《 面向对象程序设计》试题 高分求答案 急急急!!! 面向对象程序设计试题71? 长春哪些地方好玩 海信H55E3A55电视机能循环播放u盘里的图片吗? 海信电视hz50h55能不能投屏? 海信HZ55H55y电视现在价格多少 手机中短信在什么位置 OPPOrpsplus手机壳 学校普通话多少分算过 三家投标单位 报价分别为2534.9492万元、2536.5978万元、2538.0086万元 三家标书工程量清单报价一样是串标嘛 茶叶报价表请问怎么做啊!朋友在单位,说他们单位买茶叶要报价表,三家比价,请问表格怎么做啊 起重机保养及维修三家厂家报价对比分析报告 怎么写 初中语文期末考试,关于文言文的知识一般有哪些考题类型? 你好,我已经在另一个手机上激活过了哔哩哔哩免流服务和大王卡。由于 腾讯大王卡订购了哔哩哔哩的免流 但是去哔哩哔哩那里激活 说该卡号尚未激活免流专属 哔哩哔哩卡开了哔哩哔哩专属升级包200GB解封后继续使用免流APP,可以免流吗? 逻辑思维是指的什么了? 电脑性能下降 求面向对象程序设计(A)卷答案 面向对象程序设计,这题选什么 中国北方工业公司第二地区部 分手一个星期,我把他拉黑了,他怎么不拉黑我? 王者荣耀可以单排上荣耀王者的人,在星耀局。可以虐菜吗? 成都市禁毒大队总局的电话号码 太升大厦怎么样?好不好?值不值得买? 世茂玉锦湾怎么样?好不好?值不值得买? 成都市通顺街55号地理位置属于哪个区?在哪里? 赛格广场交通方便吗?应该怎么过去? 四川裕凯建设工程有限公司怎么样? 长盛苑怎么样?好不好?值不值得买? 上海现在滴滴跑车司机赚钱吗 长沙旺旺医院预约挂号 长沙黄花机场大巴爆炸死亡者名单 上海那里有宠物店? 湖南旺旺医院是私立的还是公立的湖南旺旺医院属什么机构投资? 旺旺医院亲子鉴定挂什么科 在长沙旺旺医院住院是乡村医疗保险可以报销吗?哪里报 长沙哪里有现场制作胎毛笔的地方?