c++参考题.docx
- 文档编号:18240135
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:29
- 大小:29.04KB
c++参考题.docx
《c++参考题.docx》由会员分享,可在线阅读,更多相关《c++参考题.docx(29页珍藏版)》请在冰点文库上搜索。
c++参考题
全国2010年1月自考C加加程序设计试题
课程代码:
04737
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.在C++中,头文件扩展名为(B)
A..cppB..hC..1ibD..obj
2.下列符号中,不属于分隔符的是(B)
A.,B./C.;D.{}
3.可替换#definePI3.1415926的语句是(B)
A.floatPI3.1415926;B.constfloatPI=3.1415926;C.constPI(3.1415926);D.const3.1415926;
4.布尔类型标识符是(D)
A.voidB.shortC.longD.bool
5.下列不是C++语言的基本数据类型的是(D)
A.字符类型B.整数类型C.逻辑类型D.枚举类型
6.C++允许在结构中定义函数,这些函数称为(D)
A.静态函数B.构造函数C.析构函数D.成员函数
7.设函数voidinc(int)将形参加1,如有整型变量inti=10;则执行inc(i);后,i的值为(B)
A.9B.10C.11D.未知
8.下列哪种默认参数的声明是不正确的(C)
A.intmax(inta,intb,intc,intd=0);B.intmax(inta,intb,intc=0,intd=0);
C.intmax(inta=0,intb,intc=0,intd=0);D.intmax(inta,intb=0,intc=0,intd=0);
9.设int&max(int&,int&)返回两参数中较大者,如有两整型变量inta=10;intb=15;在执行max(a,b)++后,a,b值分别为(C)
A.10,15B.11,15C.10,16D.1l,16
10.包含哪种语句的函数不能声明为内联函数(A)
A.循环B.变量自增自减C.if...else…D.变量声明
11.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来(A)
A.<>B.“”C.()D.{}
12.一个类拥有多个构造函数,则这些构造函数间为(A)
A.重载关系B.重复关系C.拷贝关系D.无关系
13.对于拷贝构造函数point:
:
point(point&p),下列说明正确的是(C)
A.该函数只能访问P的私有成员B.该函数不能访问P的公有成员
C.该函数可以访问P的私有和公有成员D.该函数不能访问P的成员
14.使用delete[]删除对象数组时,描述正确的是(A)
A.数组中各元素都调用析构函数B.数组中各元素都调用构造函数
C.不调用析构函数D.只有首元素调用析构函数
15.下列哪个指令属于条件编译指令(A)
A.#elifB.#errorC.#pragmaD.#include
16.设类Test中存在成员staticintx,则下列哪种初始化方式是正确的(C)
A.Test:
:
intx=25;B.intx=25;C.intTest:
:
x=25;D.intTestx=25;
17.下列关于友元的描述错误的是(A)
A.成员函数不可作友元B.类可以作友元
C.普通函数可以作友元D.静态函数可以作友元
18.在继承中,派生类拥有的基类个数为(D)
A.0个B.1个C.多个D.至少1个
19.基类中的protected成员,通过public派生,其在派生类中的可见性为(C)
A.不可访问B.privateC.protectedD.public
20.下列哪个不是面向对象的关键要素(B)
A.抽象性B.结构性C.封装性D.多态性
1.C++中注释“∥”的有效范围是(A)
A.从“∥”开始到行尾B.从“∥”开始到下一个“∥”C.“∥”及其后一个字符D.从“∥”开始到程序尾
2.假定MyClass为一个类,则该类的复制构造函数的声明语句为(C)
A.MyClass&(MyClassx);B.MyClass(MyClassx);C.MyClass(MyClass&x);D.MyClass(MyClass*x);
3.下列选项不是C++关键字的是(D)
A.typedefB.voidC.boolD.inc
4.用于标识十进制常量的前缀或后缀是(A)
A.无前后缀B.后缀L或lC.前缀0D.前缀0x
5.设intx=56;intr=x;若cout<<&x;显示0012FF7A,则cout<<&r;输出值为(D)
A.56B.00l2FF7AC.0012FF7BD.未知
6.使用下列哪个流格式控制符可设置转换基数为八进制(B)
A.decB.octC.hexD.endl
7.C++中是否允许在类结构中定义函数(B)
A.不允许B.允许C.仅允许定义构造函数D.只不允许定义构造函数
8.设函数voidsubone(int&)将形参减1,如有整型变量intk=10,则执行subone(k);后,k的值为(A)
A.9B.10C.11D.未知
9.对函数intmax(inta,intb=0,intc=0,intd=0,inte=0);下列调用方式正确的是(A)
A.intm=max(10,11,12,13,14);B.intm=max(10,,12,13,14);
C.intm=max(10,1l,,13,14);D.intm=max(10,11,12,,14);
10.类MyClass的定义如下:
classMyClass
{
public:
MyClass(){}
MyClass(inti){value=newint(i);}
int*value;
};
若要对value赋值,则下面语句正确的是(D)
A.MyClassmy;my.value=10;B.MyClassmy;*my.value=10;C.MyClassmy;my.*value=10;D.MyClassmy(10);
11.包含哪种语句的函数不能声明为内联函数(D)
A.变量定义B.if……elseC.位操作D.switch
12.声明函数模板的关键字是(B)
A.inlineB.templateC.constD.short
13.对于类中的成员,使用public修饰,表明该成员的访问权限是(A)
A.公有的B.私有的C.保护的D.不可见的
14.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共存(A)
A.不允许B.允许C.无法确定D.视构造函数的函数,可确定
15.析构函数的参数个数为(A)
A.0个B.1个C.至少1个D.多于1个
16.非静态成员函数都会有一个隐含指针,它是(B)
A.self指针B.this指针C.current指针D.one指针
17.下列访问公有静态成员的方式,错误的是(D)
A.类名:
:
静态成员名B.对象名.静态成员名C.对象指针->静态成员名D.对象指针.静态成员名
18.声明友元使用下列哪个关键字(C)
A.classB.constC.friendD.virtual
19.派生类继承了基类的(A)
A.所有成员B.部分成员C.数据成员D.成员函数
20.基类private成员,通过public派生,其在派生类中为(D)
A.privateB.protectedC.publicD.不可访问
1.对C++语言和C语言的兼容性,描述正确的是(A)
A.C++兼容CB.C++部分兼容CC.C++不兼容CD.C兼容C++
2.在C++中使用流进行输入输出,其中用于屏幕输出的对象是(C)
A.cerrB.cinC.coutD.cfile
(cerr:
标准错误输出(非缓冲方式);cin:
标准输入;clog标准错误输出(缓冲方式))
3.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)
A.freeB.createC.deleteD.realse
4.如没有使用private关键字定义类的数据成员,则默认为(A)
A.privateB.publicC.protectedD.friend
5.使用值传递方式将实参传给形参,下列说法正确的是(A)
A.形参是实参的备份B.实参是形参的备份C形参和实参是同一对象D形参和实参无联系
6.在函数调用时,如某一默认参数要指明一个特定值,则有(A)
A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值
C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值
7.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C)
A.intm=max(22,max(59,70));B.intm=max(max(22,59),70);
C.intm=max(22,59,70);D.intm=max(59,max(22,70));
8.下列哪个类型函数不适合声明为内联函数(A)
A.函数体语句较多B.函数体语句较少C.函数执行时间较短D.函数执行时间过长
9.intFunc(int,int);不可与下列哪个函数构成重载(B)
A.intFunc(int,int,int);B.doubleFunc(int,int);
C.doubleFunc(double,double);D.doubleFunc(int,double);
说明:
不能以形参名来区分函数;不能以函数返回值来区分函数。
必须是形参的个数或者类型不同才能构成函数重载。
10.对类中声明的变量,下列描述中正确的是(C)
A.属于全局变量B.只属于该类
C.属于该类,某些情况下也可被该类不同实例所共享
D.任何情况下都可被该类所有实例共享
11.类的私有成员可在何处访问(D)
A.通过子类的对象访问B.本类及子类的成员函数中
C.通过该类对象访问D.本类的成员函数中
12.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(A)
A.编译器总是自动创建一个不带参数的构造函数B.这个类没有构造函数
C.这个类不需要构造函数D.该类不能通过编译
13.一个类可包含析构函数的个数是(B)
A.0个B.1个C.至少一个D.0个或多个
14.this指针存在的目的是(B)
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
15.下列关于类的权限的描述错误的是(A)
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D.一个类可以将另一个类的对象作为成员
16.在编译指令中,宏定义使用哪个指令(B)
A.#includeB.#defineC.#ifD.#else
17.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(B)
A.A类构造函数先执行B.成员构造函数先执行C.两者并行执行D.不能确定
类的组合,描述的是一个类内嵌其他类的对象作为成员的情况,它们之间的关系是一种包含与被包含的关系。
在声明一个组合类的对象时,不仅它自身的构造函数将被调用,而且还将调用其内嵌对象的构造函数。
这时构造函数的调用顺序是:
(1)按照内嵌对象在组合类的声明中出现的次序,依次调用内嵌对象的构造函数;
(2)执行本类构造函数的函数体
析构函数的调用执行顺序与构造函数刚好相反。
18.下列描述错误的是(A)
A.在创建对象前,静态成员不存在B.静态成员是类的成员
C.静态成员不能是虚函数D.静态成员函数不能直接访问非静态成员
说明:
静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态成员,必须通过参数传递方式得到对象名,然后通过对象名来访问。
19.对于友元描述正确的是(B)
A.友元是本类的成员函数B.友元不是本类的成员函数
C.友元不是函数D.友元不能访问本类私有成员
20.在哪种派生方式中,派生类可以访问基类中的protected成员(B)
A.public和privateB.public和protected
C.protected和privateD.仅protected
二、填空题(本大题共20小题,每小题1分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
21.在STL库中用于实现数组内容反转的函数是__reverse(a,a+len)____。
22.若要使用C++标准类库,需要指定相应的命名空间,所用的语句是__usingnamespacestd;____。
23.C++语言中的整数常量有4种描述类型:
十进制常量、长整型常量、八进制常量和__十六进制常量____。
24.声明一个名为a的整型引用变量所使用的语句是__int&a;____。
25.重载的运算符仍保留原有的优先级、__结合性____和语法结构。
26.执行代码
intb=100;
cout< 程序的输出结果是__64____。 27.带有纯虚函数的类称为抽象类,它只能作为__基类____来使用。 28.使用__对象引用____作为函数参数,实参对象和形参对象代表同一对象,改变形参对象的值就是改变实参对象的值。 29.UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为_实例连接_____。 30.如果一个模板声明列出多个参数,则多个参数之间必须使用逗号隔开,每个参数都必须重复使用关键字__class____。 (或typename) 31.C++类的构造函数名与__类____名称一样,且没有返回值。 32.C++规定,当一个成员函数被调用时,系统自动向它传递一个隐含的参数,该参数是一个指向调用该函数的对象的指针,该指针被称为__this____指针。 33.声明一个常成员函数Fun,其返回类型为char,第一个参数类型为int,第二个参数类型为double,函数Fun的声明原型是__charFun(int,double)const;____。 34.C++语言中的“聚合”隐含了两种实现方式,一种是__独立的定义____,另一种是用一个类的对象作为一种广义的数据类型来定义整体对象的一个属性。 35.简单成员函数是指声明中不含const、_volatile_____和static关键字的函数。 36.在派生类中继承的基类成员的初始化,需要由派生类的构造函数调用基类的__构造函数____来完成。 37.在C++中,利用向量类模板定义一个具有20个int的向量,其所有元素被置为1,实现此操作的语句是__vector 38.vector类中用于获取无需再次分配内存就能容纳的对象个数的方法是__capacity();____。 39.动态联编是程序运行到需要的语句处才动态确定的,这称为__运行时的____多态性。 40.C++重载“=”运算符的函数名是_operator=_____。 21.执行下列代码 doublepi=3.141592; cout< (1)< 程序的输出结果是___3______。 22.要使用STL库提供的对数组进行升幂排序算法,在源程序中需要包含的头文件是_ 23.C++语言中动态回收内存的关键字是___delete______。 24.执行下列代码 intb=100; cout<<”Oct: ”< 程序的输出结果是___Oct: 144______。 25.C++语言中用于定义一个类的关键字是__class_______。 26.为了使用C++语言标准程序库提供的string类,在程序中必须使用的文件包含命令是__#include 27.在程序中执行int*a=newint之后,若a为空指针,则表明_动态分配内存失败________。 28.C++函数中传递对象地址值是使用___对象指针______作为参数。 29.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的__地址值_______。 30.C++函数有库函数(标准函数)和__用户自定义函数_______两类。 31.C++中通过__构造函数_______对类的对象进行初始化。 32.UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的__动态_______关系。 33.若将一个对象说明为常对象,则通过该对象只能调用它的____常_____成员函数,不能调用其它成员函数。 34.静态成员函数是___类______的成员,不是对象的成员。 35.私有继承时,在派生类中基类的protected权限变为___private______。 36.若使用一个表达式的含义能解释为访问多个基类中的成员,则这种对基类成员的访问就是不确定的,称这种访问具有__二义性_______。 37.如果在类模板的定义中有一个静态数据成员,则在程序运行中会产生___多个______静态变量。 38.vector类中用于获取向量可以容纳最多对象的个数的方法是___max_size()______。 39.C++用于运算符重载的关键字是__operator_______。 40.含有__纯虚函数_________的类称为抽象类,它只能作为基类来使用。 21.设要把一个文件输出流对象myFile与文件“f: \myText.txt相关联,所用的C++语句是: myFile.open(“f: \\myText.txt”);。 22.C++中ostream类的直接基类是ios类。 23.运算符[]只能用成员运算符来重载,不能用友元运算符来重载。 24.定义虚函数所用的关键字是virtual。 25.vector类中用于返回向量中第1个对象的方法是front()。 26.在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符‘t’,实现此操作的语句是vector 27.类的继承是指子类继承基类的数据成员和成员函数。 28.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为多态性或(类的多态性)。 29.#include指令指示编译器将一个源文件嵌入到带该指令的源文件之中。 30.设类A有成员函数voidFun(void);若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是: void(A: : *pafn)(void);。 31.设在程序中使用如下语句申请了一个对象数组: Point*ptr=newPoint[2];则在需要释放ptr指向的动态数组对象时,所使用的语句是delete[]ptr;。 32.在保护派生中,基类权限为Private的成员在派生类中不可访问。 33.类A有如下成员函数 intA: : fun(doublex){return(int)x/2;} intA: : fun(intx){returnx*2;} 设a为类A的对象,在主函数中有ints=a.fun(6.0)+a.fun (2),则执行该语句后,s的值为7。 34.对象传送的消息一般由3部分组成: 接收对象名、调用操作名和必要的参数。 35.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的地址值。 36.在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是-1。 37.在C++中,声明布尔类型变量所用的关键字是bool。 38.执行下列代码 inta=29,b=100; cout< 程序的输出结果是: __29100。 39.执行下列代码 cout<<″Hex: ″< 程序的输出结果为Hex: ff。 40.C++语言中可以实现输出一个换行符并刷新流功能的操控符是_endl_。 三、改错题(本大题共5小题,每小题4分,共20分) 下面的每题中有一处错误,请用下横线标出错误所在行并给出修改意见 下面的每题中有一处错误,请用下横线标出错误所在行并给出修改意见 41.#include classtestl{ private: intx; public: testl(){x=2;} voidset(inta){x=a;} voidget(){cout< }; classtest2{ private: intx; public: test2(){x=3;} voidset(inta){x=a;} voidget(){cout< }; classtest: publictestl,publictest2{ private: intx; public: voidset(inta){x=a;} voidgettest(){cout< }; voidmain(){ testa;a.get();a.get()调用产生二义性。 修改: a.test1: : get();或a.test2: : get(); } 42.#include classtest{ private: intx,y; public: voidtestl(inta,intb){x=a;y=b;} intmax(); }; inttest: max(){if(x>y)returnx;elsereturny;}作用域分辨符错。 修改: inttest: : max(){if(x>y)returnx;elsereturny;} voidmain(){ testa; a.testl(1,3); cout< } 43.#include voidmain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 参考