模拟试题一答案.docx

上传人:b****5 文档编号:30209357 上传时间:2023-08-07 格式:DOCX 页数:17 大小:18.84KB
下载 相关 举报
模拟试题一答案.docx_第1页
第1页 / 共17页
模拟试题一答案.docx_第2页
第2页 / 共17页
模拟试题一答案.docx_第3页
第3页 / 共17页
模拟试题一答案.docx_第4页
第4页 / 共17页
模拟试题一答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

模拟试题一答案.docx

《模拟试题一答案.docx》由会员分享,可在线阅读,更多相关《模拟试题一答案.docx(17页珍藏版)》请在冰豆网上搜索。

模拟试题一答案.docx

模拟试题一答案

《C++程序设计》模拟试题

(一)

一、选择题(本大题共10小题,每小题2分,共20分)

1.C++源程序文件扩展名为(B)。

A..hB..cppC..1ibD..obj

2.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是(A)。

A.cinB.coutC.cerrD.clog

3.对于类中没有设置访问属性的数据成员,其默认为(C)。

A.publicB.protectedC.privateD.static

4.下列关于类和对象的叙述中,错误的是(A)。

A.一个类只能有一个对象B.对象是类的具体实例

C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系

5.类的构造函数是在定义该类的一个(C)时被自动调用执行的。

A.成员函数B.数据成员C.对象D.友元函数

6.派生类的对象可以访问以下哪种情况继承的基类成员(D)。

A.私有继承的私有成员B.公有继承的私有成员

C.私有继承的保护成员D.公有继承的公有成员

7.intFunc(int,int);不可与下列哪个函数构成重载(B)。

A.intFunc(int,int,int);B.doubleFunc(int,int);

C.doubleFunc(double,double);D.doubleFunc(int,double);

8.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。

A.intAA:

:

a()B.intAA:

a()

C.AA:

:

a()D.AA:

:

inta()

9.设函数voidswap(int,int)将交换两形参的值,如两整型变量inta=10;intb=15;则执行swap(a,b)后,a、b值分别为(B)。

A.10,10B.10,15

C.15,10D.15,15

10.当一个类A或函数f()被声明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)。

A.只能是公有成员B.只能是保护成员

C.只能是除私有成员之外的任何成员D.任何权限的成员

二、填空题(本大题共10小题,每小题2分,共20分)

1.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用iostream.h头文件。

2.同一个函数名可以对应着多个不同的函数实现,每一类实现对应着一个函数体,称为函数重载。

3.在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为this指针。

4.假定A为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为x.a()。

5.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为n-1。

6.在C++中,对于基类的protected成员,当以public方式派生一个新类时,该成员将成为派生类的protected成员。

7.能够用来作为基类派生出新类,却不能创建自己的对象的类称为抽象类。

8.在C++程序中使用的cout标识符是系统类库中定义的ostream类中的一个对象。

9.若x=5,y=10,则x>y的逻辑值为False。

10.执行“charch=14*5+2;cout<

三、阅读下列程序,写出执行结果(本大题共5小题,每小题4分,共20分)

1.

#include

voidmain()

{

inta[9]={2,4,6,8,10,12,14,16,18};

for(inti=0;i<9;i++)

{

cout<

if((i+1)%3==0)

cout<

}

}

运行结果:

246

81012

141618

2.

#include

#include

voidmain()

{

char*a[5]={"student","worker","cadre","soldier","peasant"};

char*p1,*p2;

p1=p2=a[0];

for(inti=0;i<5;i++)

{

if(strcmp(a[i],p1)>0)

p1=a[i];

if(strcmp(a[i],p2)<0)

p2=a[i];

}

cout<

}

运行结果:

worker,cadre

3.

#include

usingnamespacestd;

classSimple

{

intx,y;

public:

Simple(){x=y=0;}

Simple(inti,intj){x=i;y=j;}

voidcopy(Simple&s);

voidsetxy(inti,intj)

{x=i;y=j;}

voidprint()

{cout<<"x="<

};

voidSimple:

:

copy(Simple&s)

{

x=s.x;

y=s.y;

}

voidfunc(Simples1,Simple&s2)

{

s1.setxy(30,40);

s2.setxy(70,80);

}

voidmain()

{

Simpleobj1(1,2),obj2;

obj2.copy(obj1);

func(obj1,obj2);

obj1.print();

obj2.print();

}

运行结果:

x=1,y=2

x=70,y=80

4.

#include

classA

{

public:

A();

voidShow();

~A();

private:

staticintc;

};

intA:

:

c=0;

A:

:

A()

{

cout<<"constructor."<

c+=10;

}

voidA:

:

Show()

{

cout<<"c="<

}

A:

:

~A()

{

cout<<"destructor."<

}

voidmain()

{

Aa,b;

a.Show();

b.Show();

}

运行结果:

constructor

constructor

c=20

c=20

destructor

destructor

5.

#include

classbase

{

intn;

public:

base(){};

base(inta)

{

cout<<"constructingbaseclass"<

n=a;

cout<<"n="<

}

~base(){cout<<"destructingbaseclass"<

};

classsubs:

publicbase

{

intm;

public:

subs(inta,intb):

base(a)

{

cout<<"constructingsubclass"<

m=b;

cout<<"m="<

}

~subs(){cout<<"destructingsubclass"<

};

voidmain()

{

subss(1,2);

}

运行结果:

constructingbaseclass

n=1

constructingsubclass

n=2

destructingsubclass

destructingbaseclass

四、完成程序题(本大题共5小题,每小题4分,共20分)

1.

#include

classSample

{

intx,y;

public:

Sample()

{x=y=1;}

Sample(inta,intb)

{

x=a;

y=b;

}

voiddisp()

{

cout<<"x="<

}

};

voidmain()

{

Samples1,s2(2,3);

s1.disp();

s2.disp();

}

输出结果为:

x=0,y=0

x=2,y=3

2.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include

usingnamespacestd;

constdoublepi=3.14159;

voidmain()

{

doubler;

cout<<"r=";

cin>>r;

doublel=2.0*pi*r;

doubles=pi*r*r;

cout<<"Thelongis:

"<

cout<<"Theareais:

"<

}

3.

#include

usingnamespacestd;

voidmain()

{

floata,b;

floatcha(floatx,floaty);//函数cha的原型声明

a=12.5;

b=6.5;

floatc=cha(a,b);//调用函数cha

cout<

}

floatcha(floatx,floaty)

{

floatw;

w=x-y;

returnw;

}

4.根据输出结果,在下划线处填上正确的语句。

#include

classBase

{

public:

virtualvoidPrint()

{

cout<<"Base:

:

Print"<

}

};

classClassA:

publicBase

{

public:

voidPrint()

{cout<<"ClassA:

:

Print"<

};

classClassB:

publicBase

{

public:

voidPrint()

{cout<<"ClassB:

:

Print"<

};

voidmain()

{

ClassAa;

ClassBb;

Base*p;

p=&a;

p->Print();

p=&b;

p->Print();

}

输出结果为:

ClassA:

:

Print

ClassB:

:

Print

5.

#include

usingnamespacestd;

template

Tfun(Tx)//定义函数模板

{

Ty;

y=x*x;

returny;

}

voidmain()

{

floata=2.5;

cout<

}

五、编程题(本大题共2小题,每小题10分,共20分)

1.创建一个雇员类employee,其数据成员有姓名、街道地址、市、省和邮政编码,将该类的对象数据打印出来。

解:

#include

#include

classemployee

{

protected:

charname[10];//姓名

charstreet[20];//街道地址

charcity[10];//市

charprov[10];//省

charpost[7];//邮政编码

intno;//记录序号

public:

employee(char[],char[],char[],char[],char[],int);

voidchangename(charstr[]);

voiddisplay();

};

employee:

:

employee(charn[],chars[],charc[],charp1[],charp2[],intnum)

{

strcpy(name,n);

strcpy(street,s);

strcpy(city,c);

strcpy(prov,p1);

strcpy(post,p2);

no=num;

}

voidemployee:

:

display()

{

cout<<"输出记录"<

cout<<"姓名:

"<

cout<<"街道地址:

"<

cout<<"市:

"<

cout<<"省:

"<

cout<<"邮政编码"<

}

voidmain()

{

employeeobj1("王华","中华路15号","武汉市","湖北省","430070",1);

employeeobj2("杨丽","天津路30号","南京市","江苏市","210020",2);

obj1.display();

obj2.display();

}

运行结果:

输出记录1

姓名:

王华

街道地址:

中华路15号

市:

武汉市

省:

湖北省

邮政编码:

430070

输出记录2

姓名:

杨丽

街道地址:

天津路30号

市:

南京市

省:

江苏省

邮政编码:

210020

2.设计一个学生类student,包括数据成员姓名和三门课程成绩,利用重载运算符“+”将所有学生的成绩相加放在一个对象中,再对该对象求各门课程的平均分。

解:

#include

#include

#include

classstudent

{

charname[10];

intdeg1,deg2,deg3;

public:

student(){}

student(charna[],intd1,intd2,intd3)

{

strcpy(name,na);

deg1=d1;deg2=d2;deg3=d3;

}

friendstudentoperator+(students1,students2)

{

staticstudentst;

st.deg1=s1.deg1+s2.deg1;

st.deg2=s1.deg2+s2.deg2;

st.deg3=s1.deg3+s2.deg3;

returnst;

}

voiddisp()

{

cout<

}

friendvoidavg(student&s,intn)

{

cout<

}

};

voidmain()

{

students1("Li",78,82,86),s2("Zheng",75,62,89);

students3("Ma",89,87,95),s4("Xu",54,78,66),s;

cout<<"输出结果"<

s1.disp();

s2.disp();

s3.disp();

s4.disp();

s=s1+s2+s3+s4;

avg(s,4);

}

运行结果:

输出结果

Li788286

Zheng756289

Ma898795

Xu547866

平均分747784

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1