东南大学学年C++下期末考试模拟试题Word格式文档下载.docx
- 文档编号:19272931
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:39.34KB
东南大学学年C++下期末考试模拟试题Word格式文档下载.docx
《东南大学学年C++下期末考试模拟试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《东南大学学年C++下期末考试模拟试题Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
①函数重载②运算符重载③类继承关系④动态链接
A.①和②B.③和⑤C.④和⑤D.③和④
()实现
⑤虚函数
7.关于动态内存分配,对delete运算符的下列说法中,(°
是错误的。
A.应与new运算符配合使用。
B.可以在类的成员函数中使用。
C.对同一个指针变量可任意多次使用该运算符。
D.若a是一个二维数组,则delete[]a;
可删除a所占用的存储空间。
8.设intx;
int*p2=&
x,*p仁&
x;
*p仁a;
*p2=*b;
(°
。
A.int和intB.int*和int
则变量a和b的类型分别是
C.int和int*D.int*和
int*
9.下列关于成员函数的叙述不正确的是()。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.
成员函数可以是静态的
strstream.h
12.下列叙述不正确的是()。
B.对象可以用作函数参数
D.C++中可以有指向对象的指针
A.对象之间可以相互赋值
C.对象可以用作数组的元素
13.C++中不能被派生类继承的是(A.虚函数
C.静态成员函数
)。
B.析构函数
D.运算符重载函数
14.不属于构造函数的特点是(
A.具有与类名相冋的函数名
B.返回类类型返回值
C.允许重载
D.在定义类的对象时自动调用
15.类型相同的两个指针不能进行的运算是()。
D.==
A.+B.-C.=
、填空题(每题2分,共20分)
1.函数参数传递方式有三种,分别为:
值传递、地址传递和()。
2.面向对象的程序设计的三大特征是:
()、继承性和多态性。
3.假定A为一个类,则语句A(A&
x);
是此类()构造函数的原型说明。
4.在类的继承与派生中,缺省的继承方式是()。
5.C++的两种多态性分别是()多态性和()多态性。
6.运算符重载有两种实现方法,一种是通过友元函数来实现,另一种通过()
函数来实现。
7.根据数据的组织形式不同,可将文件分为二进制文件和()文件。
8.若希望类中的成员只能被该类的成员函数及该类的派生类的成员函数访问,则应加
上访问权限:
()。
9.假定类A中有一个公用属性的静态数据成员b,在类外不通过对象名访问该成员b
的写法为()。
三、阅读程序题(每题5分,共30分)
1.下列程序运行结果为()。
#include<
iostream.h>
#inelude<
string.h>
chars(char*w,inty)
{
chart,*s1,*s2;
s1=w;
s2=w+y+5;
while(s1>
s2)
{t=*s1++;
*s1=*s2--;
*s2=t;
return*s1;
}
return*s1+2;
voidmain(void)
char*p={"
123"
};
cout<
s(p,strlen(p));
2.下列程序的输出结果是()。
#include<
classA
public:
intX;
A(intx){X=x*x;
classS
{intx;
Aa;
S(intb,intc):
a(c)
{x=b+a.X;
voidshow(){cout<
"
x="
x<
endl;
{Ss1(2,3);
s1.show();
3.下列程序的运行结果是()。
intn;
A(){cout<
A"
;
classB:
publicA
B(){cout<
B"
classC:
publicB
C():
a(),B(){cout<
C"
{Cc;
4.下列程序的运行结果是()。
classBase
protected:
int*p;
Base(inta=0)
{p=newint(a);
~Base()
{deletep;
virtualvoidprint()
{cout<
p->
*p<
classDerived:
publicBase
staticinty;
Derived(intb=0)
{*p=b;
y++;
voidprint()
'
'
y<
}};
intDerived:
:
y=100;
Derivedd(50);
Base*pb=&
d;
pb->
print();
Derivedd1(20);
d1.print();
5.下列程序的运行结果是()
classB
inta,b;
B(intaa=0,intbb=O){a=aa;
b=bb;
voidoperator++();
voidoperator++(int);
a<
\t'
b;
voidB:
operator++()
a+=2;
b+=5;
operator++(int)
a+=5;
b+=2;
Bx(3,5);
x++;
x.show();
6.下列程序的运行结果是()。
A(intn){num=n;
intcompare(Aa)
if(this->
num==a.num)return1;
elsereturn0;
private:
intnum;
Aaa(5);
Abb(1O);
Acc(5);
cout<
pare(bb)<
pare(aa)<
四、完善程序(每空2分,供20分)
1.下面的程序中定义了圆类Circle、长方形类Rect、圆角长方形类RoundRect,其中
RoudRect共有继承于Circle和Rect类。
试完成程序。
classCircle
doubleradius;
Circle(doubler):
{}
doublearea(){return3.14*radius*radius;
classRect
doublewidth,height;
Rect(doublew,doubleh){width=w;
height=h;
doublearea(){returnheight*width;
classRoundRect:
publicCircle,Rect
charcolor[5];
RoundRect():
Circle(r),Rect(w,h)
strcpy(color,c);
char*getcolor(){returncolor;
RoundRectrr(0.8,1,0.25,"
白色"
);
rr.getcolor()<
2.下列程序通过重载运算符“*”,直接实现两个一维数组对应元素相乘运算。
设数组
a,
b分别为:
inta[10]={1,2,3,4,5,6,7,8,910};
intb[10]={1,2,3,4,5,6,7,8,9,10};
相乘后的结果为{1,4,9,16,25,36,49,64,81,100}。
同时通过重载运算符“=”,直接
实现
两个一维数组的赋值运算。
试完善程序。
intx[10];
A(){for(inti=0;
i<
10;
i++)x[i]=0;
A(int*p)
for(inti=0;
i++)
Aoperator*(Aa)
At;
returnt;
Aoperator=(Aa)
return*this;
voidshow(){for(inti=0;
i++)cout<
x[i]<
};
inta[10]={1,2,3,4,5,6,7,8,9,10};
Aa1(a),a2(b),a3;
a3=a1*a2;
a3.show();
3.下面的程序的功能是比较两个字符串是否相等,若相等返回1,否则返回0。
请完成
程序。
intf(char*s1,char*s2)
char*p=s1,*q=s2;
while()
q++;
p++;
return();
chars1[100],s2[100];
cin.getline(s1,100);
cin.getline(s2,100);
f(s1,s2);
4.下列函数的功能是将一个新生成的链表按照从小到大的顺序插入到现有的链表中,请完成函数。
structnode{
intdata;
node*next;
node*Insert(node*head,node*p)〃将p指向的结点插入到head代表的链表中
node*p1,*p2;
if(head==O){〃空链表,插入到链表首部
head=p;
next=head;
returnhead;
if(head->
data>
=p->
data){〃非空链表,p的数据项比首节点的数据项小,插入到
链首
next=head;
returnhead;
p2=p仁head;
while(p2->
next&
&
p2->
data<
data_){〃找到要插入的位置
p仁p2;
p2=p2->
next;
if(p2->
data){//p代表的结点的数据项最大,插入到表尾
next=p;
next=0;
else{//插入到p1和p2指向的结点之间
p>
next=p2;
p1->
next=p;
五、上机编程题(每题50分,共100分)
1.建立一个str类,完成对字符串循环左移的功能。
即从第二个字符开始,以后的每
个字符都依次前移一个字符,而原来的第一个字符放在串中的最后一个字符。
当要平移m
个字符时,则要进行m次的循环左移。
例如:
“ABCD循环左移2个字符后为“CDAB。
要求如下:
(1)私有数据成员
char*w;
指向待左移字符串。
intm,len;
分别用于存储循环左移的次数及字符串的长度。
(2)公有成员函数
构造函数str(char*p,intn,intk):
初始化各数据成员。
voidmove():
循环左移。
voidshow():
输出字符串数据成员
(3)编写一个程序测试该类,使用以下测试数据:
a[]=”ABCD,左移3个字符。
要求输出字
符串。
2.请将压缩包中的文本文件in.dat的内容读入到数组A[3][3]中,并将转置后的数组
A的内容写入到文本文件out.dat中。
请完成程序。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 学年 C+ 期末考试 模拟 试题
