自考C++程序设计试题真题.docx

上传人:b****5 文档编号:7484131 上传时间:2023-05-11 格式:DOCX 页数:14 大小:19.47KB
下载 相关 举报
自考C++程序设计试题真题.docx_第1页
第1页 / 共14页
自考C++程序设计试题真题.docx_第2页
第2页 / 共14页
自考C++程序设计试题真题.docx_第3页
第3页 / 共14页
自考C++程序设计试题真题.docx_第4页
第4页 / 共14页
自考C++程序设计试题真题.docx_第5页
第5页 / 共14页
自考C++程序设计试题真题.docx_第6页
第6页 / 共14页
自考C++程序设计试题真题.docx_第7页
第7页 / 共14页
自考C++程序设计试题真题.docx_第8页
第8页 / 共14页
自考C++程序设计试题真题.docx_第9页
第9页 / 共14页
自考C++程序设计试题真题.docx_第10页
第10页 / 共14页
自考C++程序设计试题真题.docx_第11页
第11页 / 共14页
自考C++程序设计试题真题.docx_第12页
第12页 / 共14页
自考C++程序设计试题真题.docx_第13页
第13页 / 共14页
自考C++程序设计试题真题.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

自考C++程序设计试题真题.docx

《自考C++程序设计试题真题.docx》由会员分享,可在线阅读,更多相关《自考C++程序设计试题真题.docx(14页珍藏版)》请在冰点文库上搜索。

自考C++程序设计试题真题.docx

自考C++程序设计试题真题

全国2012年1月高等教育自学考试

C++程序设计试题

课程代码:

04737

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.如声明对象数组,则下列描述正确的是()

A.对每个元素均调用一次构造函数

B.部分元素调用构造函数,其它元素不需调用

C.均不需要调用构造函数

D.只是首元素调用构造函数

2.不同对象调用同一成员函数时,this指针指向()

A.不同对象B.相同对象

C.无对象D.不确定

3.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式正确的是()

A.intm=max(22,max(59,70));

B.intm=max(max(22,59),max(59,70));

C.intm=max(max(22,70),59);

D.以上皆正确

4.一个类可拥有多少个构造函数()

A.0个B.1个

C.1或多个D.以上皆对

5.在编译指令中,嵌入指令是指()

A.#includeB.#define

C.#ifD.#else

6.设存在数组a,其长度为Len,下列哪项操作是将a中元素复制到数组b中()

A.reverse(a+a,Len,b);B.sort(a,a+Len,b);

C.find(a,a+Len,b);D.copy(a,a+Len,b);

7.下列哪个要素不是面向对象的关键要素()

A.模块化B.抽象性

C.封装性D.继承性

8.下列对于类的描述错误的是()

A.类要先声明后使用

B.类是具有唯一标识的实体

C.两个类可以使用同一个名称

D.组成类的不仅有数据,还可以有对数据进行操作的函数

9.使用引用调用方式将实参传给形参,下列说法正确的是()

A.形参是实参的备份B.实参是形参的备份

C.形参和实参共享同一对象D.形参和实参无联系

10.关于对象的性质,下列描述错误的是()

A.同一类对象之间可相互赋值

B.不能使用对象数组

C.对象可以用作函数参数

D.一个对象可以用作另一个类的成员

11.类的私有成员可在哪里被赋值()

A.类体中B.该类的成员函数中

C.A和BD.以上都不是

12.设存在数组a,其长度为Len,则下列哪个泛型算法用于反转a中各元素()

A.reverse(a,a+Len);B.sort(a,a+Len);

C.find(a,a+Len,value);D.copy(a,a+Len,b);

13.用于标识八进制常量的前缀或后缀是()

A.无B.后缀L或1

C.前缀零D.前缀Ox

14.派生类中继承的基类成员初始化如何进行()

A.由派生类构造函数调用基类的构造函数进行

B.由派生类构造函数进行

C.由基类构造函数进行,无需派生类构造函数调用

D.以上皆不正确

15.对于多重继承,下列描述正确的是()

A.所有基类使用相同的派生方式B.每个基类可使用不同派生方式

C.只能是public派生D.只能是protected派生

16.下列关于类的权限描述错误的是()

A.类本身的成员函数可以访问自身的任何成员

B.类的对象可以访问该类的所有成员

C.普通函数不能直接访问类的公有成员,必须通过成员函数对其访问

D.一个类可以将另一个类的对象作为成员

17.运算符delete与哪个函数一起运行()

A.构造函数B.析构函数

C.主函数D.不与任何函数一起工作

18.一个类可以获得另一个类的特性的机制称为()

A.抽象B.封装

C.继承D.多态性

19.使用下列哪个格式控制符可设置转换十六进制为十进制()

A.decB.oct

C.hexD.endl

20.对引用调用描述正确的是()

A.分配新存储空间

B.修改已存储空间的名称为引用名

C.引用名与已存在存储空间无任何关联

D.将引用名标识符与一块已存在储区域相关联,没有分配新存储空间

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

请在每小题的空格中填上正确答案,错填、不填均无分。

21.公共派生中,基类的公有成员在派生类中是______。

22.若要使用标准输入流机制从键盘输入一个整数赋给整型变量a,相应的C++语句是______。

23.UML中对象行为之间的动态关系是通过对象行为之间的依赖关系表现的,称之为______。

24.C++函数中按引用调用传递参数时使用______作为参数。

25.在C++中除具有______语句和switch语句的函数外,其它函数都可以说明为内联函数。

26.C++中规定模板以______关键字和一个形参表示开头。

27.构造函数不能被继承,一个派生类只能调用它的______基类的构造函数。

28.vector类中用于获取存放的元素个数的方法是______。

29.C++中istream类的直接基类是______。

30.要关闭一个文件输出流对象myFile,所用的C++语句是______。

31.执行下列代码

doublepi=3.141592

cout<

(2)<

32.在私有派生中,基类的权限为private的成员,在派生类中______。

33.C++总共有3种文件流,分别是输入文件流、输出文件流和______。

34.C++使用流进行输入输出,其中能捕获键盘输入的对象是______。

35.在vector类中删除向量中最后一个对象的方法是______。

36.函数重载可使一个函数名具有多种功能,称这种特性为______。

37.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是引进了______概念。

38.______指令定义一个标识符及串,在源程序中每次遇到该标识符时,编译器均用定义的串代替之。

39.在C++标准输出方式中,要设置输出数据字段宽度width所使用的操控符是______。

40.设有定义intx;floaty;,则10+x+y值的数据类型是______。

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

下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。

41.#include

main(){

intx=9,y=8,z=7;

constint*p=z;

cout<<*p<

}

42.#include

main(){

intx=8,y=6;

constint*constp=&x;

p=&y;

cout<<*p<

}

43.#include

main(){

folatp;

p=newfolat[5];

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

{cin>>*(p+i);cout<<*(p+i)<

deletep;

}

44.template

Tf(Tx){

Ty;

y=x+T;

returny;

}

45.#include

classpoint{

intx;

public:

voidinit(inta){x=a;}

intgetx(){returnx;}

voidsetx(inta){x=a;}

};

main(){

pointa;

a.init(20,30);

cout<

}

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

46.在下面程序的下划线处填上正确的语句,使其得到下面的输出结果。

x=2,y=3

#include

classSample

{

intx,y;

public:

Sample(){

x=y=0;

}

Sample(inta,intb){

x=a;

(__________)

}

voiddisp()

{

cout<<"x="<

}

}(___________)

voidmain()

{

Samples(2,3),*p=&s;

p->disp();

}

47.在下划线处填上适当的语句,使程序的输出结果如下:

n=30

#include

template

classSample

{

Tn;

public:

Sample(){}

Sample(Ti){_________}

Sample&operator+(constSample&);

voiddisp(){cout<<"n="<

};

template

Sample&Sample

operator+(constSample&s)

{

staticSampletemp;

returntemp;

}

voidmain()

{

Samples1(10),s2(20),s3;

s3=s1+s2;

s3.disp();

}

48.在下划线处填上适当的语句,使程序的输出结果如下:

12345678910

#include

classSample

{

intA[10][10];

public:

int&operator()(int,int);

};

int&Sample:

:

operator()(intx,inty)

{

returnA[x][y];

}

voidmain()

{

Samplea;

inti,j;

_________

for(j=0;j<10;j++)

_________

for(i=0;i

cout<

cout<

}

49.在下划线处填上适当的句子,完成函数的定义。

#include

classSample

{

intx;

public:

Sample(){};

_________{x=a;}

_________{x=a.x+++10;}

voiddisp(){cout<<"x="<

};

voidmain()

{

Samples1

(2),s2(s1);

s1.disp();

s2.disp();

}

50.输入一个字符串,将其逆序后输出。

#include

usingnamespacestd;

voidmain()

{

chara[50];memset(a,0,sizeof(a));

inti=0,j;

chart;

cin.getline(a,50,'\n';

for(i=0,j=strlen(a)-1;i<_________;i++,j――)

{

t=a[i];

a[j]=t;

}

cout<

}

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

51.(给出下面程序的输出结果

#include

classexample

{

inta;

public:

example(intb){a=b++;}

voidprint(){a=a+1;cout<

voidprint()const{cout<

};

voidmain()

{

examplex(3);

constexampley

(2);

x.print();

y.print();

}

52.给出下面程序的输出结果

#include

classSample

{

intx,y;

public:

Sample(){x=y=0;}

Sample(inta,intb){x=a;y=b;}

~Sample()

{

if(x==y)

cout<<"x=y"<

else

cout<<"x!

=y"<

}

voiddisp()

{

cout<<"x="<

}

};

voidmain()

{

Samplesl(2,3);

s1.disp();

}

53.给出下面程序的输出结果

#include

classSample

{

intn;

staticintsum;

public:

Sample(intx){n=x;}

voidadd(){sum+=n;}

voiddisp()

{

cout<<"n="<

"<

}

};

intSample:

sum=0;

voidmain()

{

Samplea

(2),b(3),c(5);

a.add();

a.disp();

b.add();

b.disp();

c.add();

c.disp();

}

54.给出下面程序的输出结果

#include

classA{

private:

friendclassB;

A(intval=0):

data(val),use

(1){}

intuse,data;

};

classB{

public:

A*pa;

B(intval=0):

pa(newA(val)){}

~B(){if(--pa->use==0)deletepa;}

B(B&rhs){++rhs->use;pa=rhs.pa;}

B&operator=(B&rhs);

A*operator->(){returnpa;}

voidDisplay(){

cout<<"data="<data

<<",use="<use<

}

};

B&B:

operator=(B&rhs)

{

if(this==&rhs)return*this;

if(--pa->use==0)deletepa;

++rhs->use;

pa=rhs.pa;

return*this;

}

intmain(){

Bb1

(1),b2(b1),b3(3);

b1.Display();

b2.Display();

b3.Display();

b3=b1;

b1.Display();

b3.Display();

return0;

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

55.已知一个student类,包括学姓名,成绩和等级,不含任何成员函数.process为学生信息处理类.

classstudent{

charname[10];

intdeg;

charlevel[7];

friendclassprocess:

public:

student(charna[],intd){strcpy(name,na);deg=d;}

};

classprocess{

public:

voidtrans(students[]){…}//根据学生成绩计算学生等级(优大于89分,良大于79分,中大于69分,及格大于59分,不及格小于60分).

voiddisp(students[]){...}//根据成绩降序打印所有学生信息

};

要求实现process类中的两个函数:

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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