【计算机类职业资格】二级C++模拟488及答案解析.doc
《【计算机类职业资格】二级C++模拟488及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++模拟488及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+模拟 488及答案解析(总分:171.50,做题时间:90 分钟)一、选择题(总题数:40,分数:71.50)1.如果表达式 x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为(分数:1.00)A.operator+(operator*(x,y),z)B.operator+(operator*(x,y),Z)C.operator*(operator+(x,y),z)D.operator+(operator*(x,y)2.函数定义为 Fun(int B.fun(20+n);C.fun(n);D.funD( class Base protected:
2、Base()cout“A“; Base(char C)coutc; ; class Derived:public Base public: Derived(char C)coutc; ; int main() Derived d1(“B“); return 0; 执行这个程序屏幕上将显示输出_。(分数:2.00)ABB.BAC.ABD.BB6.已知类 A有公用数据成员 a,并重载了“”运算符,且有 A obj2;const A*ptr new A;则下列语句错误的是 _ 。(分数:2.00)A.ptr-a=100;B.ptr=C.ptr+;D.obj2=*ptr;7.有如下程序: #inclu
3、deiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10, y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.22B.23C.24D.258.已知语句 int m=10;则下列引用的表示中正确的是(分数:2.00)A.intB.intC.intD.float9.已知 n是一个 int 型变量,下列语句中错误的是_ 。(分数:2.00)A.long *p=new long n;B.long pn;C.lon
4、g *p=new long (n);D.long p1010.有下列程序: #include stdio.h void main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+)csi+; for(i=1;i5;i+)printf(“%d“,ci); printf(“/n“) (分数:2.50)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 311.以下关键字不能用来声明类的访问权限的是 _ 。(分数:1.00)A.publicB.staticC.protectedD.private12.语句 ofstre
5、am f(“SALARY.DAT“,ios:appl ios:binary);的功能是建立流对象 f,试图打开文件SALARY.DAT并与之连接,并且 _ 。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件13.关于在调用模板函数时模板实参的使用,下列表述中正确的是_。(分数:2.50)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.
6、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略14.软件设计中划分模块的一个准则是_。(分数:2.50)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合15.下列 C+标点符号中表示一条语句结束的是_。(分数:2.50)A.#B.;C./D.16.下列程序的运行结果是 #includeiostream.h class A int a; public: A( ) a0; A(int aa) aaa; cout a; ; void m
7、ain( ) A x,y(2) ,z(3) ; cout endl; (分数:2.00)A.00B.23C.34D.2517.生成派生类对象时,派生类构造函数调用基类构造函数的条件是_。(分数:2.00)A.无需任何条件B.基类中显式定义了构造函数C.派生类中显式定义了构造函数D.派生类构造函数明确调用了基类构造函数18.下列关于顺序存储结构叙述中错误的是 _ 。(分数:2.00)A.存储密度大B.逻辑上相邻的结点物理上不必相邻C.可以通过计算直接确定第 i个结点的存储地址D.插入、删除运算操作不方便19.有如下类定义: class B public: void fun1() private:
8、 void fun2() protected: void fun3() ; class D:public B protected: void fun4() ; 若 obj是类 D的对象,则下列语句中不违反访问控制权限的是_。(分数:1.00)A.obj.fun1();B.obj.fun2();C.obj.fun3();D.obj.fun4();20.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(分数:2.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这
9、个函数不改变类的任何数据成员的值21.下列字符串中不能作为 C+标识符使用的是_。(分数:2.00)A.DOUBLEB.abcC._5_D.xyz22.下列关于运算符重载的描述中,正确的是_。(分数:1.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符23.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对24.下列程序的执行结果是_。 #incl
10、udeiostream.h #includestdlib.h class TestClass public: int x,y; TestClass () x=y=0; TestClass (int a,int b)x=a;y=b; void disp() cout“x=“x“,y=“yend1; void main() TestClass s1(2,3); s1.disp(); (分数:2.00)A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=325.设树 T的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T中的叶子结点数为(分数:1.00)A
11、.5B.6C.7D.826.面向对象的开发方法中,类与对象的关系是_。(分数:2.50)A.抽象与具体B.具体与抽象C.部分与整体D.整体与部分27.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;28.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.50)A.函数返回类型B.函数参数列表C.函数名D.函数体29.有如下程序: #includeiostream Using namespace std; Cla
12、ss Amount int amount; public; Amount(int n=0):amount(n) Int getAmount()constreturn amount; Amount return ; ; int main() Amount x(3),y(7); x+=y; coutx.getAmount()endl; return 0; 已知程序的运行结果是 10,则下划线处缺失的表达式是_。(分数:2.00)A.*thisB.thisC. class Boat; class Car public: Car(int i):weight(i) friend int Total(co
13、nst Car / private: int weight; ; class Boat public: Boat(int i):weight(i) friend int Total(const Car private: int weight; ; int Total(const Car int main() Car c(10); Boat b(8); cout“The total weight is“Total(c, b)endl; / return 0; 下列关于程序的描述中,正确的是_。(分数:2.50)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句出错32
14、.以下程序的输出结果是 _ 。 #includeiostream.h main() int b33=0,1,2,0,1,2,0,1,2,ij,t=1; for(i=0;i3;i+) for(j=i;j=i;j+) t=t+bibjj; coutt; (分数:2.00)A.3B.4C.1D.933.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kelly(Mice), *Twins2
15、, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMMD.MMMM34.有如下类定义: class Test public: Test()a=0;c=0;/ int f(int a)constthis-a=a;/ static int g()return a;/ voidh(intb)Test:b=b;/ private: int a; static int b; const int c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:1.00)A.B.C.D.35.下列程序的运行结果是 _ 。 #includeios
16、tream.h void fun(int *a, int *b) int *k; k=a; a=b; b=k; void main() int a=2OO4,b=9,*x= fun(x, y); couta“ “bend1;(分数:2.00)A.20049B.92004C.00D.编译时出错36.有如下程序: #includeiostream using namespace std; class Name char name20; public: Name() strcpy(name, “); cout“?“; Name(char *fname) strcpy(name, fname); co
17、ut“?“; ; int main() Name names3=Name(“张三“), Name(“李四“); return 0; 运行此程序输出符号?的个数是_。(分数:2.50)A.0B.1C.2D.337.有如下模板声明: templatetypename T1,typename T2 class A; 下列声明中,与上述声明不等价的是_。(分数:1.00)A.templateclass T1,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename T1,class T2class A;D.temp
18、latetypename T1,T2class A;38.有以下程序: #include iostream using namespace std; int main() int num23,*p; int t,i,j,k=10; p=num0; for(i=0;i2;i+) for(j=0;j3;j+) k+; *p=k; for(t=2;t*p;t+) if(!(*pt) j-; *p-; break; *p+; cout*(p-1)end1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.19B.11C.29D.2339.下列程序的输出结果是_。 #includ
19、eiostream.h void main() char*str=“12123434“; int x1=0,x2=0,x3=0,x4=0,i; for(i=0;stri!=“/0“;i+) switch (stril) case“1“:x4+; case“2“:x3+; case“3“:x2+; case“4“:x1+; coutx1“,“x2“,“x3“,“x4; (分数:1.00)A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6,4,240.在位运算中,操作数每右移一位,其结果相当于(分数:1.00)A.操作数乘以 2B.操作数除以 2C.操作数乘以 4D.操作数除以 4二
20、、基本操作题(总题数:1,分数:30.00)41.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Base:Good Luck! Derived:Good Luck! 注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1.cpp #include iostream #include cstring using namespace std; class Base /
21、 ERROR * found* private: char* msg; public: Base(char* str) / ERROR * found* msg=new charstrlen(str); strcpy (msg, str); cout “Base: “ msg endl; / ERROR * found* Base() delete msg; ; class Derived:public Base public: Derived (char* str):Base(str) void Show () cout “Derived:“ msg endl; ; int main ()
22、Derived obj (“Good Luck! “); obj.Show(); return 0; (分数:30.00)_三、简单应用题(总题数:1,分数:30.00)42.请使用 VC6或使用【答题】菜单打开 proj2 下的工程 proj2,该工程中含有一个源程序文件proj2.cpp。其中定义了类 Set和用于测试该类的主函数 main。类 Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复(将“a”和“A”视为不同元素),元素最大个数为 100。为该类实现一个构造函数 Set(char * s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放入一个字符。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 模拟 488 答案 解析 DOC
