自考C++试题9套合集12套.docx

上传人:b****8 文档编号:13188898 上传时间:2023-06-11 格式:DOCX 页数:37 大小:25.81KB
下载 相关 举报
自考C++试题9套合集12套.docx_第1页
第1页 / 共37页
自考C++试题9套合集12套.docx_第2页
第2页 / 共37页
自考C++试题9套合集12套.docx_第3页
第3页 / 共37页
自考C++试题9套合集12套.docx_第4页
第4页 / 共37页
自考C++试题9套合集12套.docx_第5页
第5页 / 共37页
自考C++试题9套合集12套.docx_第6页
第6页 / 共37页
自考C++试题9套合集12套.docx_第7页
第7页 / 共37页
自考C++试题9套合集12套.docx_第8页
第8页 / 共37页
自考C++试题9套合集12套.docx_第9页
第9页 / 共37页
自考C++试题9套合集12套.docx_第10页
第10页 / 共37页
自考C++试题9套合集12套.docx_第11页
第11页 / 共37页
自考C++试题9套合集12套.docx_第12页
第12页 / 共37页
自考C++试题9套合集12套.docx_第13页
第13页 / 共37页
自考C++试题9套合集12套.docx_第14页
第14页 / 共37页
自考C++试题9套合集12套.docx_第15页
第15页 / 共37页
自考C++试题9套合集12套.docx_第16页
第16页 / 共37页
自考C++试题9套合集12套.docx_第17页
第17页 / 共37页
自考C++试题9套合集12套.docx_第18页
第18页 / 共37页
自考C++试题9套合集12套.docx_第19页
第19页 / 共37页
自考C++试题9套合集12套.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自考C++试题9套合集12套.docx

《自考C++试题9套合集12套.docx》由会员分享,可在线阅读,更多相关《自考C++试题9套合集12套.docx(37页珍藏版)》请在冰点文库上搜索。

自考C++试题9套合集12套.docx

自考C++试题9套合集12套

2009年全国自考C++程序设计模拟试卷

(一)

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中

只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无

分。

1.编写C++程序一般需经过的几个步骤依次是()

A.编辑、调试、编译、连接

B.编辑、编译、连接、运行

C.编译、调试、编辑、连接

D.编译、编辑、连接、运行

2.决定C++语言中函数的返回值类型的是()

A.return语句中的表达式类型

B.调用该函数时系统随机产生的类型

C.调用该函数时的主调用函数类型

D.在定义该函数时所指定的数据类型

3.下面叙述不正确的是()

A.派生类一般都用公有派生

B.对基类成员的访问必须是无二义性的

C.赋值兼容规则也适用于多重继承的组合

D.基类的公有成员在派生类中仍然是公有的

4.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体

也就是()

A.类

B.对象

C.函数体

D.数据块

5.在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中

的()

A.私有成员

B.公有成员

C.保护成员

D.保护成员或私有成员

6.对基类和派生类的关系描述中,错误的是()

A.派生类是基类的具体化

B.基类继承了派生类的属性

C.派生类是基类定义的延续

D.派生类是基类的特殊化

7.关于this指针使用说法正确的是()

A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码

B.保证基类私有成员在子类中可以被访问。

C.保证基类保护成员在子类中可以被访问。

D.保证基类公有成员在子类中可以被访问。

8.所谓多态性是指()

A.不同的对象调用不同名称的函数

B.不同的对象调用相同名称的函数

C.一个对象调用不同名称的函数

D.一个对象调用不同名称的对象

9.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

10.下面函数模板定义中不正确的是()

A.A

B.B

C.C

D.D

11.假设ClassY:

publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时

,调用构造函数和析构函数的次序分别为()

A.X,Y;Y,X

B.X,Y;X,Y

C.Y,X;X,Y

D.Y,X;Y,X

12.适宜采用inline定义函数情况是()

A.函数体含有循环语句

B.函数体含有递归语句

C.函数代码少、频繁调用

D.函数代码多、不常调用

13.假定一个类的构造函数为A(intaa,intbb){a=aa--;b=a*bb;},则执行Ax(4,5);语句后

,x.a和x.b的值分别为()

A.3和15

B.5和4

C.4和20

D.20和5

14.在类中说明的成员可以使用关键字的是()

A.public

B.extern

C.cpu

D.register

15.下列不能作为类的成员的是()

A.自身类对象的指针

B.自身类对象

C.自身类对象的引用

D.另一个类的对象

16.使用地址作为实参传给形参,下列说法正确的是()

A.实参是形参的备份

B.实参与形参无联系

C.形参是实参的备份

D.实参与形参是同一对象

17.下列程序的输出结果是()

#include

voidmain()

{intn[][3]={10,20,30,40,50,60};

int(*p)[3];

p=n;

cout<

A.10,30,50

B.10,20,30

C.20,40,60

D.10,30,60

18.在C++中,使用流进行输入输出,其中用于屏幕输入()

A.cin

B.cerr

C.cout

D.clog

19.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数

成员a()的格式为()

A.x.a

B.x.a()

C.x->a

D.(*x).a()

20.关于对象概念的描述中,说法错误的是()

A.对象就是C语言中的结构变量

B.对象代表着正在创建的系统中的一个实体

C.对象是类的一个变量

D.对象之间的信息传递是通过消息进行的

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案

错填、不填均无分。

1.C++的流库预定义了4个流,它们是cin、cout、clog和cerr___。

2.每个对象都是所属类的一个实例___。

3.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语

句_ip=newint[10];__。

4.函数模板中紧随template之后尖括号内的类型参数都要冠以保留字___。

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

6.表达式cout<

7.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是->___。

8.假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调

用_拷贝__构造函数来完成此功能。

9.对赋值运算符进行重载时,应声明为_成员__函数。

10.如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加

入的语句friendvoidA:

:

f()___。

for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout<

12.String类的_find()__方法返回查找到的字符串在主串的位置。

13.intn=0;

while(n=1)n++;

while循环执行次数是_无限次__。

14.控制格式输入输出的操作中,函数_setfill(char)__是用来设置填充字符。

要求给出函数名和参数类型

15.C++语言支持的两种多态性分别是编译时的多态性和_运行时__的多态性。

16.设函数sum是由函数模板实现的,并且sum(3,6)和sum(4.6,8)都是正确的函数调用,则函

数模板具有___个类型参数。

17.执行下列代码

stringstr("HelloC++");

cout<

程序的输出结果是_C++__。

18.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成类___。

19.定义类动态对象数组时,元素只能靠自动调用该类的_无参构造函数__来进行初始化。

20.已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。

三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下

横线标出错误所在行并给出修改意见。

1.#include

classTest

{private:

intx,y=20;intx,y;

public:

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

intgetx(){returnx;}

intgety(){returny;}

};

voidmain()

{Testmt(10,20);

cout<

cout<

}

2.#include

classTest

{intx,y;

public:

fun(inti,intj)fun(inti=0,intj=0)

{x=i;y=j;}

show()

{cout<<"x="<

if(y)

cout<<",y="<

cout<

};

voidmain()

{Testa;

a.fun

(1);

a.show();

a.fun(2,4);

a.show();

}

3.#include

classA

{inti;

public:

virtualvoidfun()=0;

A(inta)

{i=a;}

};

classB:

publicA

{intj;

public:

voidfun()

{cout<<"B:

:

fun()\n";}

B(intm,intn=0):

A(m),j(n){}B(intm=0,intn=0)

};

voidmain()

{A*pa;

Bb(7);

pa=&b;

}

4.#include

classX

{public:

intx;

public:

X(intx)

{cout<x=x<x=x)<

X(X&t)

{x=t.x;

cout<

}

voidfun(X);

};

voidfun(Xt)

{cout<

voidmain()

{fun(X(10));}

5.#include

#include

classBas

{public:

Bas(char*s="\0"){strcpy(name,s);}

voidshow();frinedvoidshow();

protected:

charname[20];

};

Basb;

voidshow()

{cout<<"name:

"<

voidmain()

{Basd2("hello");

show();

}

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

1.在下面程序横线处填上适当字句,以使该程序执行结果为:

504342110

07.18.19.110.111.1

#include

template

voidf(__________)

{__________;

for(inti=0;i

t=a[i],a[i]=a[n-1-i],a[n-1-i]=t;

}

voidmain()

{inta[5]={10,21,34,4,50};

doubled[6]={11.1,10.1,9.1,8.1,7.1};

f(a,5);f(d,6);

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

cout<

cout<

for(i=0;i<6;i++)

cout<

cout<

}

2.在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

#include

classTest

{public:

staticintx______;

Test(inti=0)

{x=i+x;}

intGetnum()

{returnTest:

:

x+7;}

};

intTestx=33_______;

voidmain()

{Testtest;

cout<

}

 

3.在下列程序的空格处填上适当的字句,使输出为:

0,2,10。

#include

#include

classMagic

{doublex;

public:

Magic(doubled=0.00):

x(fabs(d))

{}

Magicoperator+(_Magic&c_____)

{

returnMagic(sqrt(x*x+c.x*c.x));

}

friend_ostream&__operator<<(ostream&stream,Magic&c)

{stream<

returnstream;

}

};

voidmain()

{Magicma;

cout<

(2)<<","<

Magic(-8)<

}

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

#include

usingnamespacestd_________;

constdoublepi=3.14159_________;

voidmain()

{doublerad;

cout<<"rad=";

cin>>rad;

doublel=2.0*pi*rad;

doubles=pi*rad*rad;

cout<<"\nThelongis:

"<

cout<<"Theareais:

"<

5.程序实现大写字母转换成小写字母。

#include

voidmain()

{chara;

inti=36_______;

cin>>a;

if(a>=’A’&&a<=’Z’_______)

a=a+i;

cout<

}

五、程序分析题(本大题共4小题,每小题5分,共20分)

1.给出下面程序输出结果。

#include

classa

{public:

virtualvoidprint()

{cout<<"aprog..."<

};

classb:

publica

{};

classc:

publicb

{public:

voidprint(){cout<<"cprog..."<

};

voidshow(a*p)

{(*p).print();

}

voidmain()

{aa;

bb;

cc;

show(&a);

show(&b);

show(&c);

}

aprog...

aprog...

cprog...

2.给出下面程序输出结果。

#include

#include

#include

boolfun(longn);

voidmain()

{longa=10,b=30,l=0;

if(a%2==0)a++;

for(longm=a;m<=b;m+=2)

if(fun(m))

{if(l++%10==0)

cout<

cout<

}

}

boolfun(longn)

{intsqrtm=(int)sqrt(n);

for(inti=2;i<=sqrtm;i++)

if(n%i==0)

returnfalse;

returntrue;

}

111317192329

3.给出下面程序输出结果。

#include

classTest

{intx,y;

public:

Test(inti,intj=0)

{x=i;y=j;}

intget(inti,intj)

{returni+j;}

};

voidmain()

{Testt1

(2),t2(4,6);

int(Test:

:

*p)(int,int=10);

p=Test:

:

get;

cout<<(t1.*p)(5)<

Test*p1=&t2;

cout<<(p1->*p)(7,20)<

}

15

27

4.#include

#include

#include

classstudent

{charname[8];

intdeg;

charlevel[7];

friendclassprocess;//说明友元类

public:

student(charna[],intd)

{strcpy(name,na);

deg=d;

}

};

classprocess

{public:

voidtrans(student&s)

{inti=s.deg/10;

switch(i)

{case9:

strcpy(s.level,"优");break;

case8:

strcpy(s.level,"良");break;

case7:

strcpy(s.level,"中");break;

case6:

strcpy(s.level,"及格");break;

default:

strcpy(s.level,"不及格");

}

}

voidshow(student&s)

{cout<

};

voidmain()

{studentst[]={student("张三",78),student("李四",92),student("王五

",62),student("孙六",88)};

processp;

cout<<"结果:

"<<"姓名"<

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

{p.trans(st[i]);

p.show(st[i]);}

}

结果:

姓名成绩等级

张三78中

李四92优

王五62及格

孙六88良

六、程序设计题(本大题共1小题,共10分)

1.已定义一个Shape抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有

GetPerim()函数计算对象的周长,并编写测试main()函数。

classShape

{public:

Shape(){}

~Shape(){}

virtualfloatGetPerim()=0;

}

 

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中

只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无

分。

1.静态成员函数没有()

A.返回值

B.this指针

C.指针参数

D.返回类型

2.假定AB为一个类,则执行“ABa

(2),b[3],*p[4];”语句时调用该类构造函数的次数

为()

A.3

B.4

C.5

D.9

3.有关多态性说法不正确的是()

A.C++语言的多态性分为编译时的多态性和运行时的多态性

B.编译时的多态性可通过函数重载实现

C.运行时的多态性可通过模板和虚函数实现

D.实现运行时多态性的机制称为动态多态性

4.假定一个类的构造函数为“A(inti=4,intj=0){a=i;b=j;}”,则执行“Ax

(1);”语

句后,x.a和x.b的值分别为()

A.1和0

B.1和4

C.4和0

D.4和1

5.类MyA的拷贝初始化构造函数是()

A.MyA()

B.MyA(MyA*)

C.MyA(MyA&)

D.MyA(MyA)

6.在C++中,函数原型不能标识()

A.函数的返回类型

B.函数参数的个数

C.函数参数类型

D.函数的功能

7.友元关系不能()

A.提高程序的运行效率

B.是类与类的关系

C.是一个类的成员函数与另一个类的关系

D.继承

8.实现两个相同类型数加法的函数模板的声明是()

A.add(Tx,Ty)

B.Tadd(x,y)

C.Tadd(Tx,y)

D.Tadd(Tx,Ty)

9.在inta=3,int*p=&a;中,*p的值是()

A.变量a的地址值

B.无意义

C.变量p的地址值

D.3

10.下列不是描述类的成员函数的是()

A.构造函数

B.析构函数

C.友元函数

D.拷贝构造函数

11.如果从原有类定义新类可以实现的是()

A.信息隐藏

B.数据封装

C.继承机制

D.数据抽象

12.下面有关类说法不正确的是()

A.一个类可以有多个构造函数

B.一个类只有一个析构函数

C.析构函数需要指定参数

D.在一个类中可以说明具有类类型的数据成员

13.在函数定义中的形参属于()

A.全局变量

B.局部变量

C.静态变量

D.寄存器变量

14.下列有关重载函数的说法中正确的是()

A.重载函数必须具有不同的返回值类型

B.重载函数参数个数必须相同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

15.this指针存在的目的是()

A.保证基类私有成员在子类中可以被访问

B.保证基类保护成员在子类中可以被访问

C.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码

D.保证基类公有成员在子类中可以被访问

16.关于new运算符的下列描述中,错误的是()

A.它可以用来动态创建对象和对象数组

B.使用它创建的对象或对象数组可以使用运算符delete删除

C.使用它创建对象时要调用构造函数

D.使用它创建对象数组时必须指定初始值

17.已知:

p是一个指向类A数据成员m的指针,A1是类A的一个对象。

如果要给m赋值为5,正确

的是()

A.A1.p=5;

B.A1->p=5;

C.A1.*p=5;

D.*A1.p=5;

18.以下基类中的成员函数表示纯虚函数的是()

A.virtualvoidtt()=0

B.voidtt(int)=0

C.virtualvoidtt(int)

D.virtualvoidtt(int){}

19.C++类体系中,不能被派生类继承的有()

A.常成员函数

B.构造函数

C.虚函数

D.静态成员函数

20.静态成员函数不能说明为()

A.整型函数

B.浮点函数

C.虚函数

D.字符型函数

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案

错填、不填均无分。

1.假设inta=1,b=2;则表达式(++a/b)*b--的值为__2_。

2.抽象类中至少要有一个纯虚函数。

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

当前位置:首页 > 高中教育 > 初中教育

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

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