全国自考《C程序设计》试题.docx

上传人:b****5 文档编号:12217537 上传时间:2023-04-17 格式:DOCX 页数:15 大小:22.39KB
下载 相关 举报
全国自考《C程序设计》试题.docx_第1页
第1页 / 共15页
全国自考《C程序设计》试题.docx_第2页
第2页 / 共15页
全国自考《C程序设计》试题.docx_第3页
第3页 / 共15页
全国自考《C程序设计》试题.docx_第4页
第4页 / 共15页
全国自考《C程序设计》试题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

全国自考《C程序设计》试题.docx

《全国自考《C程序设计》试题.docx》由会员分享,可在线阅读,更多相关《全国自考《C程序设计》试题.docx(15页珍藏版)》请在冰豆网上搜索。

全国自考《C程序设计》试题.docx

全国自考《C程序设计》试题

全国2012年1月自考《C++程序设计》试题

课程代码:

04737

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

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

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

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

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

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

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

2.

()

B.相同对象

D.不确定

22,59,70三者中最大值,下列

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

A.不同对象

C.无对象

3.设存在函数intmax(int,int)返回两参数中较大值,若求

表达式正确的是()

A.

70));

max(59,70));

59);

intm=max(22,max(59,

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

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

D.以上皆正确

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

B.1个

D.以上皆对

A.0个C.1或多个

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

A.#include

C.#if

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.

()

B.实参是形参的备份

D.形参和实参无联系()

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

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

A.形参是实参的备份

C.形参和实参共享同一对象

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

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

B.不能使用对象数组

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

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

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

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

a中各元素()

B.sort(a,a+Len);D.copy(a,a+Len,b);

C.A和BD.以上都不是

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

A.reverse(a,a+Len);

C.find(a,a+Len,value);

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

B.后缀L或1D.前缀Ox

A.无

C.前缀零

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

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

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

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

D.以上皆不正确

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

B.每个基类可使用不同派生方式

D.只能是protected派生

A.所有基类使用相同的派生方式

C.只能是public派生

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

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

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

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

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

17.

B.析构函数

D.不与任何函数一起工作()

B.封装

D.多态性

()

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

A.构造函数

C.主函数

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

A.抽象

C.继承

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

A.

B.oct

D.endl

dec

C.hex

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.141592cout<

(2)<

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

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

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

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

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

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

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

串代替之。

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

40.设有定义intx;floaty;,贝U10+x+y值的数据类型是

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

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

41.#include

main(){

intx=9,y=8,z=7;constint*p=z;cout<<*p<

}

42.#includemain(){

intx=8,y=6;constint*constp=&x;p=&y;

cout<<*p<

43.#includemain(){folatp;p=newfolat[5];for(inti=0;i<5;i++)

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

}

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

#includetemplateclassSample

{

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

{

;i++,j

chara[50];memset(a,0,sizeof(a));inti=0,j;chart;cin.getline(a,50,'\n';for(i=0,j=strlen(a)-1;i<

{t=a[i];a[j]=t;

}cout<

}

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

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

#includeclassexample

{

inta;public:

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

voidprint(){a=a+1;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==O)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.

.process为学生信息

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

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-2022 冰豆网网站版权所有

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