【计算机类职业资格】二级C++模拟496及答案解析.doc
《【计算机类职业资格】二级C++模拟496及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++模拟496及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+模拟 496及答案解析(总分:182.00,做题时间:90 分钟)一、选择题(总题数:40,分数:72.00)1.下列关于队列的叙述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表2.下列选项中,错误的 C+表达式是_。(分数:2.00)A.a+B.“b“=10C.double(3/5)D.x+!=3|y3.有如下程序: #includeiostream using namespace std; class B public: virtual void show()cout“B“; ; class D:p
2、ublic B public: void show()cout“D“; ; void fun1(B *ptr)ptr-show(); void fun2(B void fun3(B b)b.show(); int main() B b.*p=new D; D d; fun1(p); fun2(b); fun3(d); return 0; 程序的输出结果是_。(分数:2.00)A.BBBB.BBDC.DBBD.DBD4.执行下列语句段后,输出字符“*“的个数是_。 for(int i=50;i1;i-=2)cout“*“;(分数:2.00)A.24B.25C.26D.505.关于纯虚函数,下列表
3、述中正确的是_。(分数:2.50)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0;”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类6.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是 _ 。(分数:2.00)A.if(a=B) n=0;B.if(aB) |(bC) )n=1; else n=0;C.if(aB) if(bC) n=h else n=0; else n=0;D.if(aB) n=1; else if(b=C) n=1; else if(bC) n=1; else n=0;7.下列关于 this
4、指针的叙述中,正确的是 _ 。(分数:2.00)A.任何与类相关的函数都有 this指针B.类的成员函数都有 this指针C.类的友元函数都有 this指针D.类的非静态成员函数才有 this指针8.有如下程序: #includeiostream using namespace std; class AA public: AA()cout“1“; ; class BB:public AA int k; public: BB():k(0) cout“2“; BB(int n):k(n) cout“3“; ; int main() BB b(4),c; return 0; 运行时的输出结果是_。(
5、分数:3.00)A.1312B.132C.32D.14129.已知 Value是一个类,Value 是 Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是_。(分数:1.00)A.Value operator+(Value v,int i);B.Value operator+(Value v=value,int i);C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);10.有如下程序段: int i=1; while(1) i+; if(i=10)break; if(i%
6、2=0)cout“*“; 执行这个程序段输出字符“*“的个数是_。(分数:2.50)A.10B.3C.4D.511.有以下程序: class Date public: Date(int y,int m,int d); year=y; month=m; day=d; Date(int y=2000) year=y; month=10; day=1; Date(Dated) year=d.year; month=d.month; day=d.day; void print() coutyear“.“month“,“dayendl; private: int year,month,day;); Da
7、te fun(Date d) Date temp; temp=d; return temp; int main() Date date1(2000,1,1),date2(0,0,0); Date date3(date1); date2=fun(date3); return 0; 程序执行时,Date 类的复制构造函数被调用的次数是_。(分数:1.00)A.2B.3C.4D.512.下列关于宏的叙述中正确的是_。(分数:2.50)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间13.若有如下程序: #includeiostre
8、am using narnespace std; class TestClass public: void who()cout“TestClass“endl; ; class TestClassl: public TestClass public: void who()cout“TestClass1“endl; int main() TestClass*p; TcstClass1 obj1; p=obj1; p-who(); return 0; 则该程序运行后的输出结果是_。(分数:1.00)A.TestClasslB.TestClassC.0D.无输出14.关于函数重载,下列叙述中错误的是_
9、。(分数:3.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同15.Windows环境下,由 C+源程序文件编译而成的日标文件的扩展名是_。(分数:2.50)A.cppB.exeC.objD.lik16.有下列程序: #include stdio.h int fun(int (*s)4,int n,int k) int m,i; m=s0k; for(i=1;in;i+) if(sikm)m=sik; return m; void main() int a44=1,2,3,4),11,12,13,14,
10、21,22,23,24,31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:2.50)A.4B.34C.31D.3217.已知将运算符“+”和“*”作为类 Complex的成员函数重载,设 c1和 c2是类 Complex的对象,则表达式 c1+c2*c1等价于_。(分数:2.00)A.c1.operator*(c2.operator+(c1)B.c1.operator+(c2.operator*(c1)C.c1.operator*(c1.operator+(c2)D.c2.operator+(c1.operator*(c1)18.若 My
11、Class为一个类,执行“MyClass a4,*p5;”语句时会自动调用该类构造函数的次数是_。(分数:2.00)A.2B.5C.4D.919.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合20.下面关于 break语句的描述中,不正确的是_。(分数:1.00)A.break可以用于循环体内B.break语句可以在 for循环语句中出现多次C.break语句可以在 switch语句中出现多次D.break语句可用于 if条件判断语句内21.在每个 C+程序中必须有且仅有一个_。(分数:2.50)A.函数B.主函数C.预处理
12、指令D.语句22.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据23.有两个关系 R和 S如下: (分数:2.50)A.选择B.投影C.自然连接D并24.下列不属于软件工程过程的基本活动的是 _ 。(分数:1.00)A.软件规格说明B.软件开发C.软件确认D.软件需求分析25.有如下类定义: class MyClass Int value; public; MyClass(int n):value(n) int gerValue()constreturn value; ; 则类 MyClass的构造函
13、数的个数是_。(分数:2.00)A.1个B.2个C.3个D.4个26.下列语句都是程序运行时的第 1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是_。(分数:2.00)A.coutinternal12345;B.coutleft12345;C.coutright12345;D.coutsetw(6)12345;27.C+系统预定义了 4个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:1.00)A.coutB.cinC.cerrD.cset28.若有定义语句“int i=2,j=3;”,则表达式 i/j的结果是_。(分数:1.00)A.0B.0.7C.0.6666
14、7D.0.6666666729.已知类 MyClass的定义如下: class MyClass public: MyCtass(int d)data=d; MyClass() private: int data; ; 下列对 MyClass类对象数组的定义和初始化语句中,正确的是_。(分数:2.00)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),MyClass(6),;D.MyClass*arrays=new MyClass2;30.判断字符型变量 ch是否为大写英文字母,应使用表达式_。(分数
15、:2.00)A.ch=“A“ ; void main() A*a=new B(8); Delete a; (分数:2.00)A.call B: B()B.call B: B()C.call A:A()D.call A:A()32.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;33.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill
16、(“*“)357;B.coutleftsetw(5)357;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;34.已知类 Time的定义如下: class Time/时间类 private: int hour, minute, second; /时、分、秒 public: Time(int h, int m, int s): hour(h), minute(m), second(s) _ switch(index) case 0: return hour; case 1: return minute; default: return second; ; 其
17、中横线处应为下标访问运算符的重载函数的函数头,横线处应填入的代码是_。(分数:2.50)A.int定义了指针 p,与这个语句等效的语句序列是_。(分数:1.00)A.int*p;p=B.int*p;p=k;C.int*p;*p=D.int*p;*p=k;37.按照标识符的要求,下列选项中, _ 符号不能组成标识符。(分数:2.00)A.连接符B.下划线C.大小写字母D.数字字符38.下列关于 C+流的叙述中,正确的是(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin是一个预定义的输入流类
18、D.输出流有一个名为 open的成员函数,其作用是生成一个新的流对象39.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式40.有如下语句序列: int x=100, coutx“-“rendl; 已知其中变量 x的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.00)A.100-100B.100-0012FF7CC.0012FF7C-100D.0012FFTC-0012FFTC二、基本操作题(总题数:1,分数:40.00)41.请使用 VC6或使用【答题】菜单打开 proj1 下的工程 proj1,此工程包含一个源程序文件pr
19、oj1.cpp。文件中将表示数组元素个数的常量 Size定义为 4,并用 int类型对类模板进行了实例化。文件中位于每个注释“/ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: 1 2 3 4 注意:模板参数名用 T。只修改注释“/ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1.cpp #include iostream using namespace std; /将数组元素个数 Size定义为 4 / ERROR *found* const int Size; template typename T class
20、MyClass public: MyClass (T * p) for(int i=0;i Size;i +) arrayi = pi; void Print(); private: T arraySize; ; template typename T / ERROR *found* void MyClass:Print() for(int i = 0;i Size;i +) cout arrayi “/t“; int main() int intArraySize = 1,2,3,4; / ERROR *found* MyClass double obj (intArray); obj.Pr
21、int(); cout endl; return 0; (分数:40.00)_三、简单应用题(总题数:1,分数:30.00)42.请使用 VC6或使用【答题】菜单打开 proj2 下的工程 proj2,其中定义了 Employee类和 Manager类。Employee用于表示某公司的雇员,其属性包括姓名(name)和工作部分(dept)。Manager 是 Employee的公有派生类,用于表示雇员中的经理。除了姓名和工作部分之外,Manager 的属性还包括级别(level)。Employee类的成员函数 print用于输出雇员的信息;Manager 类的成员函数 print负责输出经理的
22、信息。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: Name:Sally Smith Dept:Sales Level:2 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 #include iostream #include string using namespace std; class Employee public: Employee (string name, string dept): / *found* _ virtual void print() const; string dept(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 模拟 496 答案 解析 DOC
