2年高等教育自学考试C++程序设计试题KEY.docx

上传人:b****7 文档编号:9401419 上传时间:2023-02-04 格式:DOCX 页数:19 大小:20.80KB
下载 相关 举报
2年高等教育自学考试C++程序设计试题KEY.docx_第1页
第1页 / 共19页
2年高等教育自学考试C++程序设计试题KEY.docx_第2页
第2页 / 共19页
2年高等教育自学考试C++程序设计试题KEY.docx_第3页
第3页 / 共19页
2年高等教育自学考试C++程序设计试题KEY.docx_第4页
第4页 / 共19页
2年高等教育自学考试C++程序设计试题KEY.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

2年高等教育自学考试C++程序设计试题KEY.docx

《2年高等教育自学考试C++程序设计试题KEY.docx》由会员分享,可在线阅读,更多相关《2年高等教育自学考试C++程序设计试题KEY.docx(19页珍藏版)》请在冰豆网上搜索。

2年高等教育自学考试C++程序设计试题KEY.docx

2年高等教育自学考试C++程序设计试题KEY

全国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;//constint*p=&z;

cout<<*p<

}

42.#include

main(){

intx=8,y=6;

constint*constp=&x;

p=&y;//p为常量,不能作为左值

cout<<*p<

}

43.#include

main(){

folatp;//float*p;

p=newfolat[5];

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

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

deletep;

}

44.template

Tf(Tx){

Ty;

y=x+T;//T为模板类型参数,不能参与算数运算

returny;

}

45.#include

classpoint{

intx;

public:

voidinit(inta){x=a;}

intgetx(){returnx;}

voidsetx(inta){x=a;}

};

main(){

pointa;

a.init(20,30);//init()函数的参数个数不匹配

cout<

}

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

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

x=2,y=3

#include

classSample

{

intx,y;

public:

Sample(){

x=y=0;

}

Sample(inta,intb){

x=a;

(___y=b_______)

}

voiddisp()

{

cout<<"x="<

}

}(___;________)

voidmain()

{

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

p->disp();

}

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

n=30

#include

template

classSample

{

Tn;

public:

Sample(){}

Sample(Ti){__n=I;_______}

Sample&operator+(constSample&);

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

};

template

Sample&Sample

operator+(constSample&s)

{

staticSampletemp;

__temp.n=n+s.n;_______

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(i=0;i<10;i++)______

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

___a(i,j)=i+1;______

for(i=0;i

cout<

cout<

}

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

#include

classSample

{

intx;

public:

Sample(){};

____Sample(inta)_____{x=a;}

_____Sample(Sample&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<__j/2_______;i++,j――)

{

t=a[i];

__a[i]=a[j];_______

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();

}

42

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();

}

x=2,y=3

x!

=y

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();

}

n=2,sum:

2

n=3,sum:

5

n=5,sum:

10

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;

}

data=1,use=2

data=1,use=2

data=3,use=1

data=1,use=3

data=1,use=3

六、程序设计题(本大题共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类中的两个函数:

#include

#include

classstudent{

charname[10];

intdeg;

charlevel[7];

friendclassprocess;

public:

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

};

constintN=3;//学生个数

classprocess{

public:

voidtrans(students[]){

for(inti=0;i

if(s[i].deg>89)strcpy(s[i].level,"优");

elseif(s[i].deg>79)strcpy(s[i].level,"良");

elseif(s[i].deg>69)strcpy(s[i].level,"中");

elseif(s[i].deg>59)strcpy(s[i].level,"及格");

elsestrcpy(s[i].level,"不及格");

}

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

voiddisp(students[]){

studenttemp("",0);

inti,j;

for(i=0;i

for(j=0;j

if(s[j].deg>s[j+1].deg){

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

}

}

for(i=N-1;i>=0;i--){

cout<<"姓名:

"<

"<

"<

}

}//根据成绩降序打印所有学生信息

};

//测试主函数

intmain(){

studentstu[3]={student("小李",78),student("小唐",65),student("小丽",86)};

processp;

p.trans(stu);

p.disp(stu);

}

二、填空题

21、公有

22、cin>>a;

23、消息传递

24、对象名作为实参,形参用对象引用名

25、循环

26、template

27、直接

28、size()

29、ios类

30、myFile.close();

31、3.1

32、不可访问

33、输入输出文件流

34、cin

35、pop_back()

36、多态性

37、类

38、#define

39、setw()

40、float

三、改错题

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

当前位置:首页 > 小学教育 > 小升初

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

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