【计算机类职业资格】二级C++-198及答案解析.doc
《【计算机类职业资格】二级C++-198及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-198及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-198 及答案解析(总分:84.50,做题时间:90 分钟)一、选择题(总题数:35,分数:57.50)1.下面关于运算符重载的描述错误的是_。(分数:2.50)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operatorD.在 C+语言中不可通过运算符重载创造出新的运算符2.已知类 MyClock 中未显式定义构造函数,并重载了加法运算符,使得下面的语句序列能够正确执行: MyClock c1,c2; / c2=c1+10; 由此可知,为类 MyClock 重载的“+”运
2、算符函数的声明是_。(分数:2.00)A.friend MyClock operator+(MyClock,int);B.friend MyClock operator+(MyClock,MyClock);C.friend MyClock operator+(int,MyClock);D.MyClock operator+(MyClock);3.下列叙述中正确的是(分数:1.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构4.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈5.下列程序的运行结果为
3、 #includeiostream.h void main( ) int a2; int ba1; cout a/b endl; ) 0.66667 ) 0 ) 0.7 ) 0.66666666 (分数:2.00)A.B.C.D.6.一个满二叉树其深度为 4,则其叶子节点的个数为 _ 。(分数:1.00)A.8B.16C.32D.47.若是对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:1.00)A.operator long() const;B.operator long(BigNumber);C.long operator long()c
4、onst;D.long operalor long(BigNumber);8.有如下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)9.下列字符串中可以用作 C+标识符是_。(分数:2.50)A._123B.foobarC.caseD.3var10.有如下程序: #includeiomanip #includeiostream using
5、namespace std; int main() coutsetfill(“*“)setw(6)123456; return 0; 运行时的输出结果是_。(分数:2.50)A.*123*456B.*123456*C.*123456D.12345611.分析下面程序,该程序的运行结果是_。 #includeiostream.h class TestClass public: static int m; TestClass () m+; TestClass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() T
6、estClass A; TestClass B(3); A.test(); TestClass:test(); cout“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5D.m=612.C+中运算符优先级由高到低排列正确的是 _ 。(分数:1.00)A.:+ + +/B. * /C.sizeof % +:D.,fin.open(“d:/test.txt“,iso_base:in);B.fstream fio;fio.open(“d:/test.txt“,iso_base:out);C.ofstream fort;fout.open(“d:/test.txt“,ios_b
7、ase:out);D.ofstream fout;fout.open(“d:/test.txt“,iso_base:app);15.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是_。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.B 或 C16.下列关于默认参数的叙述中,错误的是_。(分数:2.00)A.为形参列表中的多个参数指定默认值时,应从右至左进行设置B.若函数的所有形参都指定了默认值,则调用时可不给出实参C.C+中的默认参数可以简化对复杂函数的调用D.若要为参数指定默认值,必须在函数定义及其原型声明中同时指定17.在为一个类重载下列运算符时,
8、只能作为该类成员函数重载的运算符是_。(分数:1.00)A.+B.()C.D.+18.有如下类模板定义: templatetypename T class BigNumber long n; public; BigNumberT i:n(i) BigNumber operator+(BigNumber b) return BigNumbern+b.n); ; 已知 b1、b2 是 BigNumber 的两个对象,则下列表达中错误的是_。(分数:1.00)A.b1+b2B.b1+3C.3+b1D.3+319.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重
9、载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符20.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序21.下列关于线性表的叙述中,不正确的是 _。(分数:2.00)A.线性表是 n 个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继D.线性表结点间的逻辑关系是 1:1 的联系22.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为
10、 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10023.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2);则下列选项正确的是( )。(分数:2.00)A.
11、表达式 wednesday=Friday 的值是 trueB.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;24.设 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是 _ 。(分数:2.00)A.0B.3C.2D.125.下面关于数组的初始化正确的是_。(分数:1.00)A.char str=“a“, “b“, “c“B.char str2=“a“, “b“, “c“C.char str23=“a“, “b“, “c“, “d“, “e“, “f“D.char str()=“a“, “b“, “c“26
12、.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x; return*x;27.下列关于构造函数的描述中,错误的是_。(分数:1.00)A.构造函数名与类名相同B.构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数28.两个变量定义不能同名,是因为 _ 。(分数:1.00)A.这两个变量定义在同一文件中B.这两个变量定义在同一作用域中C.一个定义在 main 函数中,一个定义在
13、子函数中D.以上说法均不正确29.关于纯虚函数,下列表述中正确的是_。(分数:2.50)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0;”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类30.有如下类定义: class XX int xdata; public: XX(int n=0):xdata(n) ; class YY:public xx int ydata; public: YY(int m=0,int n=0):XX(m),ydata(n) ; YY 类的对象包含的数据成员的个数是_。(分数:2.50)A.1B.2C.3D
14、.431.有如下程序: #includeiostream using namespace std; void fl(int8,.x,tnt8-y) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y= 26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:1.00)A.10B.16C.26D.3632.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:2.50)A.log2nB.n/2CnD.n+133.
15、派生类中的成员不能直接访问基类中的 _ 成员。(分数:2.00)A.publicB.privateC.virtualD.protected34.下列对模板的声明中正确的是(分数:1.00)A.templateTB.templateclass T1,T2C.templateclass T1,class T2D.templateclass T1 ;class T235.执行下列程序的结果是 main( ) float x=1,y; y=+x*+x; coutyendl; (分数:2.00)A.9.000000B.6.000000C.1.000000D.程序有错误二、填空题(总题数:15,分数:27
16、.00)36.在下面横线上填上适当的语句,完成程序。 #include iostream using namespace std; class Base int x; public: Base(int i) x=i; Base() ; class Derived : public Base public: 1/完成类 Derive 构造函数的定义 ; int main() Derived Obj; return 0; 在横线处应填入的语句是 2。 (分数:2.00)37.将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。 (a) double s=0.0; _ 1_ ; i
17、nt k=0; do s+=d; k+; d=1.0/(k*k+1); while( _ 2_ ); (b) double s=1.0; for(int k=1;k=10;k+) s+=1.0/(k*(k+1); (分数:1.00)38.索引从物理上分为聚簇索引和 _ 1_ 。 (分数:2.00)39.在 C+语言中,一个 short 型数据在内存中占用 2 个字节,则 unsigned short 型数据的取值范围为 _ 1_ 。 (分数:2.00)40.表达式 8 else return 0; void fun1(int m, int for (i=1; im; i+) if(fun2(i
18、) S=S*i; void main() int n=9, s=2; fun1(n, s); coutsend1; 该程序的运行结果是 _ 1_ 。 (分数:2.00)42.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。 (分数:2.00)43.在 C+语言的面向对象程序设计框架中, _ 1_ 是程序的基本组成单元。 (分数:1.00)44.以下程序的输出结果是 1 。 #includeiostream.h void fun( ) static int a0; a2; cout a “ “; void main( ) int cc; for(cc1;cc4;cc) fun( ) ;
19、 cout endl; (分数:2.00)45.定义在类内部的函数被类默认为 _ 1_ ,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。 (分数:2.00)46.下列程序的运行结果是 1。 #includeiostream.h) class test private: int num; public: test(); int TEST()return num+100; test(); ; test:test()num0; test:test()cout“Destructor is active“endl; void main() test x3; coutx1.TEST()en
20、d1; (分数:2.00)47.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为 _ 1_ 。 (分数:1.00)48.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类。I/O 操作分别由类 istream 和 _ 1_ 提供。 (分数:2.00)49.计算机技术中,为解决一个特定问题而采取的特定的有限的步骤称为 _ 1_ 。 (分数:2.00)50.以下程序的运行结果是 _ 1_ 。 #includeiostream #includestring using namespace std; void
21、main() chara10=“China“,b=“Chin“,c=“ese“; coutstrlen(strcat(strcpy(a,b),c)endl; (分数:2.00)二级 C+-198 答案解析(总分:84.50,做题时间:90 分钟)一、选择题(总题数:35,分数:57.50)1.下面关于运算符重载的描述错误的是_。(分数:2.50)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operator D.在 C+语言中不可通过运算符重载创造出新的运算符解析:解析 例如“:”运算符
22、就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字 operator,而调用时可直接使用运算符。2.已知类 MyClock 中未显式定义构造函数,并重载了加法运算符,使得下面的语句序列能够正确执行: MyClock c1,c2; / c2=c1+10; 由此可知,为类 MyClock 重载的“+”运算符函数的声明是_。(分数:2.00)A.friend MyClock operator+(MyClock,int); B.friend MyClock operator+(MyClock,MyClock);C.friend MyClock operator
23、+(int,MyClock);D.MyClock operator+(MyClock);解析:3.下列叙述中正确的是(分数:1.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。4.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析 树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C198 答案 解析 DOC
