全国高等教育自学考试C++程序设计试题.docx

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

全国高等教育自学考试C++程序设计试题.docx

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

全国高等教育自学考试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.#defineC.#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或1C.前缀零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.octC.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