c++模拟试题二Word下载.docx

上传人:b****1 文档编号:5167206 上传时间:2023-05-04 格式:DOCX 页数:15 大小:20.23KB
下载 相关 举报
c++模拟试题二Word下载.docx_第1页
第1页 / 共15页
c++模拟试题二Word下载.docx_第2页
第2页 / 共15页
c++模拟试题二Word下载.docx_第3页
第3页 / 共15页
c++模拟试题二Word下载.docx_第4页
第4页 / 共15页
c++模拟试题二Word下载.docx_第5页
第5页 / 共15页
c++模拟试题二Word下载.docx_第6页
第6页 / 共15页
c++模拟试题二Word下载.docx_第7页
第7页 / 共15页
c++模拟试题二Word下载.docx_第8页
第8页 / 共15页
c++模拟试题二Word下载.docx_第9页
第9页 / 共15页
c++模拟试题二Word下载.docx_第10页
第10页 / 共15页
c++模拟试题二Word下载.docx_第11页
第11页 / 共15页
c++模拟试题二Word下载.docx_第12页
第12页 / 共15页
c++模拟试题二Word下载.docx_第13页
第13页 / 共15页
c++模拟试题二Word下载.docx_第14页
第14页 / 共15页
c++模拟试题二Word下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c++模拟试题二Word下载.docx

《c++模拟试题二Word下载.docx》由会员分享,可在线阅读,更多相关《c++模拟试题二Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

c++模拟试题二Word下载.docx

若文件不存在,建立一个新文件

7.下面说法正确的是()

A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C.类的内联函数必须在类体内定义

D.类的内联函数必须在类体外通过加关键字inline定义

8.可以用p.a的形式访问派生类对象p的基类成员a,其中a是()

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

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

9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()

A.派生类的对象可以赋给基类的对象

B.派生类的对象可以初始化基类的引用

C.派生类的对象可以直接访问基类中的成员

D.派生类的对象的地址可以赋给指向基类的指针

10.对于类定义

classA{

public:

virtualvoidfunc1(){}

voidfunc2(){}

};

classB:

publicA

{

voidfunc1(){cout<

<

〃classBfunc1〃<

end1;

}

virtualvoidfunc2(){cout<

〃classBfunc2〃<

下面正确的叙述是()

A.A:

func2()和B:

func1()都是虚函数

B.A:

func1()都不是虚函数

C.B:

func1()是虚函数,而A:

func2()不是虚函数

D.B:

func1()不是虚函数,而A:

func2()是虚函数

第二部分非选择题(共80分)

二,填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的横线处.错填或不填均无分.

11.定义类的动态对象数组时,系统只能够自动调用该类的无参构造函数对其进行初始化.

12.在C++程序设计中,建立继承关系倒挂的树应使用单一继承.

13.表达式cout<

end1还可表示为cout<

’\n’或者cout<

’\12’或者cout<

’\xa’

14.基类的公有成员在派生类中的访问权限由访问控制决定.

15.C++支持的两种多态性分别是静态多态性和动态多态性.

16.C++中语句constchar*constp=〃hello〃;

所定义的指针p和它所指的内容都不能被改变或者重新赋值.

17.假定AB为一个类,则语句AB(AB&

x);

为该类拷贝或者复制初始化构造函数的原型说明.

18.将关键字const写在成员函数的函数头或者参数表和函数体之间时,所修饰的是this指针.

19.在C++中,访问一个对象的成员所用的运算符是’.’或者成员选择运算符,访问一个指针所指向的对象的成员所用的运算符是->

或者成员访问运算符.

20.派生类从一个或多个以前定义的该类的基类继承数据和函数.

三,改错题(本大题共5小题,每小题2分,共10分)

21.指出下面程序段中的错误,并说明出错原因.

classA

{

inta,b;

public:

A(intaa,intbb){a=aa;

b=bb;

Ax(2,3),y(4);

//语句出错,因为没有单参数的构造函数(或者y(4)少写了一个参数).

22.指出并改正下面利用类模板的对象定义中的错误.

template<

classTany

Tx,y;

public:

Tany(Ta,Tb){x=a,y=b;

Tsum(){returnx+y;

Tany(int)obj(10,100);

//Tany<

int>

obj(10,100);

23.指出下面程序段中的错误,并说明出错原因.

classone

private:

inta;

voidfunc(two&

);

two尚未声明(或应在classone前加声明语句classtwo;

).

classtwo

intb;

friendvoidone:

func(two&

voidone:

r){a=r.b;

24.指出下面程序段中的错误,并说明出错原因.

#include<

iostream.h>

voidfun(){cout<

〃a.fun〃<

endl;

}

};

classB{

〃b.fun〃<

voidgun(){cout<

〃b.gun〃<

classC:

publicA,publicB

voidgun(){cout<

〃c.gun〃<

voidhun(){fun();

}fun()有二义性

25.指出下面程序段中的错误,并说明出错原因.

classLocation

intX,Y=20;

不能采用这种方式初始化.

protected:

intzeroX,zeroY;

intSetZero(intZeroX,intZeroY);

private:

intlength,height;

floatradius;

voidinit(intinitX,intinitY);

intGetX();

intGetY();

四,完成程序题(本大题共5小题,每小题4分,共20分)根据题目要求,完成程序填空.

26.在下面横线处填上适当字句,完成类中成员函数的定义.

int*a;

A(intaa=0){a=newint(aa);

//用aa初始化a所指向的动态对象}

~A(){deletea;

}//释放动态存储空间

27.下面是一个函数模板,用于计算两个向量的和.在下面横线处填上适当字句,完成函数模板定义.

template<

T*f(T*a,T*b,intn)

T*c=newT[n];

for(inti=0;

i<

n;

i++)c[i]=a[i]+b[i];

returnc;

voidmain()

inta[5]={1,2,3,4,5},b[5]={10,20,30,40},*p;

p=f(a,b,5);

for(inti=0;

5;

i++)

cout<

p[i]<

28.下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能.

string.h>

constchar*PASS=“wolleh“;

//定义由PASS指针所指向的口令wolleh.

charuser[10];

//用于存放输入的口令

cout<

〃pleaseinputyourpassword:

〃<

cin.getline(user,9);

(或cin>

>

user;

)//输入口令

if((strcmp(user,PASS))==0)

〃yourpasswordiscorrect〃<

else

〃yourpasswordiserror〃<

29.下面是类fraction(分数)的定义,其中重载的运算符<

以分数形式输出结果,例如将三分之二输出为2/3.在横线处填上适当字句.

classfraction

intden;

//分子

intnum;

//分母

friendostream&

operator<

(ostream&

fraction);

…};

ostream&

operator<

os,fractionfr)

os<

fr.den<

’/’<

fr.num;

returnos;

30.在下面程序横线处填上适当的字句,使其输出结果为0,56,56.

classbase{public:

___virtual_____int________func(){return0;

}};

classderived:

publicbase

inta,b,c;

____void__________setValue(intx,inty,intz){a=x;

b=y;

c=z;

intfunc(){return(a+b)*c;

voidmain()

{

baseb;

derivedd;

b.func()<

‘,‘;

d.setValue(3,5,7);

d.func()<

base&

pb=d;

pb.func()<

五,程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果.

31.

voidmain()

int*a;

int*&

p=a;

intb=10;

p=&

b;

*a;

输出为:

答案:

10

32.

template<

Tf(T*a,T*b,intn)

Ts=(T)0;

for(inti=0;

i++)

s+=a[i]*b[i];

returns;

doublec[5]={1.1,2.2,3.3,4.4,5.5},d[5]={10.0,100.0,1000.0};

f(c,d,5)<

答案:

3531

33.

iomanip.h>

4;

endl<

setfill(‘‘)<

setw(4-i)<

’0’<

setfill(‘*‘)<

setw(i+i)<

(i>

0?

‘0‘:

‘‘);

0

0*0

0***0

0*****0

34.运行下面的程序,写出当输入25,60时的输出结果.

classgoods

staticinttotalWeight;

intweight;

goods(intw){weigh=w;

totalWeight+=w;

goods(goods&

gd){weight=gd.weight;

totalWeight+=weight;

~goods(){totalWeight-=weight;

intgetwg(){returnweight;

staticintgetTotal(){returntotalWeight;

intgoods:

totalWeight=0;

voidmain()

{

intw;

“Theinitialweightofgoods:

”<

goods:

getTotal()<

cin>

w;

//输入25

goodsg1(w);

//输入60

goodsg2(w);

“Thetotalweightofgoods:

Theinitialweightofgoods:

25

60

85

35.

A(){}

virtualvoidfunc(){cout<

“DestructorA”<

~A(){func();

classB:

B(){}

voidfunc(){cout<

“DestructorB”<

~B(){func();

voidmain(){Bb;

A&

a=b;

DestructorB

DestructorA

36.

#include<

classMyClass

intnumber;

voidset(inti);

intnumber=3;

voidMyClass:

set(inti){number=i;

MyClassmy1;

intnumber=10;

my1.set(5);

my1.number<

my1.set(number);

my1.set(:

number);

my1.number;

5

3

参考答案:

(二)

第一部分选择题(共20分)一,单项选择题(本大题共10小题,每小题2分,共20分)

1.D2.B3.B4.A5.A6.A7.B8.D9.C10.C

第二部分非选择题(共80分)

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

11.无参

12.单一(或单)

13.cout<

‘\n‘(或cout<

‘\12‘,或cout<

‘\xA‘,或其它等价形式)

14.访问控制(或其它等价形式)

15.编译时的(或静态,或操作重载)运行时的(或动态,或虚函数)

16.改变(或重新赋值)

17.复制初始化(或拷贝)

18.函数头(或参数表)函数体

19.成员选择运算符(或"

."

)成员访问运算符(或"

->

"

20.基类

21.Ax(2,3),y(4);

语句出错,因为没有单参数的构造函数(或者y(4)少写了一个参数).

22.Tany(int)obj(10,100);

出错,应为Tany<

语句.

23.voidfunc(two&

amp;

出错,two尚未声明(或应在classone前加声明语句classtwo;

24.voidhun(){fun();

}出错,C:

fun()有二义性.:

25.intX,Y=20;

出错,不能采用这种方式初始化.

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

26.newint(aa)deletea

27.newint[n]a[i]+b[i](或等价形式)

28.constchar*PASS=〃wolleh〃;

(或constcharPASS[]=〃wolleh〃;

)cin.getline(user,9);

29.os<

‘/‘<

fr.numos

30.virtualintvoid

五,程序分析题(本大题共6小题,每小题5分,共30分)

31.10

32.3531

33.00*00***00*****0

34.Theinitialweightofgoods:

02560(这是输入数据)Thetotalweightofgoods:

85

35.DestructorBDestructorA

36.5103

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2