【计算机类职业资格】二级C++模拟500及答案解析.doc
《【计算机类职业资格】二级C++模拟500及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++模拟500及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+模拟 500 及答案解析(总分:175.50,做题时间:90 分钟)一、选择题(总题数:40,分数:75.50)1.有以下程序 #include iostream using namespace std; class Complex public: Complex (double r=0, double i =0 :re(r) ,im (i) double real() const return re; double imag() const return im; Complex operator + (Complex c const return Complex(re+c.re,
2、im+c.im); privane: double re,im; ; int main Complex a =Complex(1,1)+Complex(5); couta.real()“+“a.imag() “i“ endl return 0; 程序执行后的输出结果是(分数:2.00)A.6+6iB.6+1iC.1+6iD.1+1i2.下列关于 C+流的表述中,正确的是_。(分数:2.50)A.与每个输入或输出设备的信息交换都可以通过流类来实现B.从流中获取数据的操作称为插入操作C.cin 是一个预定义的输入流类D.向流中添加数据的操作称为提取操作3.对长度为 n 的线性表进行顺序查找,在最坏
3、情况下需要比较的次数为_。(分数:1.00)A.125B.n/2CnD.n+14.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍5.执行以下程序时,输入一行字符串为“Thank you very much!”,程序的输出结果为_。 #includeiostream using namespace std; int main() char a100; cina; couta“/n“; return 0;(分数:2.00)A
4、TB.ThankC.Thank you very much!D.Thank you6.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同7.下列选项中,错误的 C+表达式是_。(分数:1.00)A.a+B.“b“=10C.double(3/5)D.x+!=3|y8.如果关系模式 R 为 1NF,且每个非主属性都完全函数依赖于 R 的候选码,则称 R 属于 _。(分数:2.00)A.2NFB.3NFC.BCNFD.4NF9.有如下程序: #includei
5、ostream using namespace std; class XA int a; public: static int b; XA(int aa):a(aa)b+; in getA()return a; ; int XA:b=0; int main() XA d1(4),d2(5); coutd1.getA()+d2.getA()+XA:b+d1.bendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.9B.11C.13D.1510.下列关于派生类的叙述中,错误的是_。(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生
6、类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变11.下面关于 this 指针的说法中错误的是 _ 。(分数:2.00)A.this 指针是一种隐含指针,存在于每个类的非静态成员函数中B.它是成员函数所属对象的指针C.通过 this.成员变量的形式可以访问类中的数据成员D.成员函数访问类中的数据成员格式可写成:this-成员变量12.下列关于 getline()函数的描述,不正确的是_。(分数:2.00)A.getline()函数是用来从输入流中读取字符串的B.getline()函数读取字符串的长度是受到限制的C.getline()函数读取字符串时,遇到终止符时就停止D
7、.getline()函数中所使用的终止符只能是换行符13.有如下程序: #includeiostream void fun(intx=y;y=t; int main() int a2=23,42; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输出结果是_。(分数:2.00)A.42,42B.23,23C.23,42D.42,2314.下面程序的运行结果是_。 #includeiostream.h int fun(int a,int n) int result=1; for(int i=1;in;i+) result=result*ai;
8、 return result; void main() int a3=3,4,5); coutfun(a,3)endl; (分数:2.50)A.12B.15C.20D.6015.存取指针所指的值时,采用的运算符是_。(分数:2.50)A.#B.C.%D.*16.有如下程序: #includeiostream using namespace std; class Base private: void fun1() constcout“fun1“; protected: void fun2() constcout“fun2“; public: void fun3() constcout“fun3“
9、; ; class Derived:protected Base public: void fun4() constcout“fun4“; ; int main() Derived obj; obj.fun1(); / obj.fun2(); / obj.fun3(); / obj.fun4(); / return 0; 其中有语法错误的语句是_。(分数:2.00)A.B.C.D.17.数据库系统的核心是_。(分数:2.00)A.数据库B.数据库管理系统C.数据模型D.软件工具18.下面关于虚函数的描述中正确的是(分数:1.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数
10、既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型19.设置虚基类的目的是 _ 。(分数:1.00)A.简化程序B.消除二义性C.提高运行效率D.减少目标代码20.有如下程序: #qncludeiostream #includeiomanip using namespace std; class CSum int x,y; public: CSum(int x0,int y0):x(xo),y(yo) friend ostream return os; ; int main() CSum y(3.5; coutsetfill(“*“)8
11、 couty; return0; 执行上面程序的输出是(分数:1.00)A.88B.*88C.*8*8D.8*821.以下 _ 特征不是面向对象思想中的主要特征。(分数:2.00)A.多态B.继承C.封装D.垃圾回收22.下列叙述不属于线性链表较之线性表顺序存储结构的优点的是 _ 。(分数:1.00)A.线性链表存储方式简单B.线性链表运算效率高C.线性链表的存储空间易于扩展D.线性链表便于存储空间的动态分配23.有如下程序 #include iostream using namespace std; class base public: virtual void f1() cout“F1Ba
12、se“; virtual void f2() cout“F2Base“; ; class derive: public base void f1() cout“F1Derive“; void f2(intx) cout“F2Derive“; ; int main() base obj1,*p; derive obj2; p= p-f1(); p-f2(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.F1Derive F2BaseB.F1Derive F2DeriveC.F1Base F2BaseD.F1Base F2Derive24.为了使类中的某个成员不能被类的对象
13、通过成员操作符访问,则不能把该成员的访问权限定义为 _ 。(分数:2.00)A.publicB.protectedC.privateD.static25.下列关于模板的叙述中,错误的是_。(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象26.有如下程序: #include iostream using namespace std; class BASE public: BASE()cout“BASE“; ; class DERIVED: public BASE public: DERI
14、VED() cout“DERIVED“; int main() DERIVED x; return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE27.下列关于赋值运算符“=”重载的叙述中,正确的是_。(分数:2.50)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符28.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50;i1;I-=2)cout“*“
15、;(分数:3.00)A.24B.25C.26D.5029.下面的函数调用为: fun(x+y,3,min(n-1,y)则 fun 的实参个数是_。(分数:2.50)A.3B.4C.5D.630.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序31.在函数中,可以用 auto、extern、register 和 static 这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是_。(分数:2.00)A.autoB.externC.registerD.static32.下面
16、关于 break 语句的描述中,不正确的是_。(分数:1.00)A.break 可以用于循环体内B.break 语句可以在 for 循环语句中出现多次C.break 语句可以在 switch 语句中出现多次D.break 语句可用于 if 条件判断语句内33.若要对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:2.50)A.operator long()const;B.operator long(BigNumber);C.long operator long()const;D.long operator long(BigNumber);34.
17、有如下类定义: class B public:void funJ() privace: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();35.有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k):n(
18、k) int get() return n; int get()constreturn n+1; ; int main() AA a(5); const AA b(6); couta.get()b.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7736.已知有定义 const int D=5; int i=1; double f=032; char c=15; 则下列选项错误的是(分数:1.00)A.+i;B.D-;C.c+;D.-f37.程序中有语句:for(int i=0;i5;i+)cout*(p+i)“,“;能够依次输出 in
19、t 型一维数组 a 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.50)A.int*p=a;B.int p=a;C.“p=a;D.p=a;38.一个栈的输入序列为 1,2,3,4,下面 _ 序列不可能是这个栈的输出序列(分数:2.00)A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,139.下面类的定义,有 _ 处错误。 class MyClass public: void MyClass(); MyClass(int value); private: int i=0;(分数:1.00)A.1B.2C.3D.440.每个 C+程序中都必须有且仅
20、有一个_。(分数:2.50)A类B.预处理命令C.主函数D.语句二、基本操作题(总题数:1,分数:30.00)41.请使用 VC6 或使用【答题】菜单打开 proj1 下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Constructor called. The value is 10 Copy constructor called. The value is 10 Destructor called. Destructor called. 注意:只修改注释“/E
21、RROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; class MyClass public: / ERROR *found* MyClass(int i) value = i; cout “Constructor called.“ endl; / ERROR *found* MyClass(const MyClass p) value = p.value; cout “Copy constructor called.“ endl; void Print() cout “The
22、 value is“ value endl; / ERROR *found* void MyClass() cout “Destructor called.“ endl; private: int value; ; int main() MyClass obj1; obj1.Print(); MyClass obj2(obj1); obj2.Print(); return 0; (分数:30.00)_三、简单应用题(总题数:1,分数:30.00)42.使用 VC+6.0 打开 下的源程序文件 2.cpp。阅读下列函数说明和代码。函数 num(char *str)用于返回字符串中非数字的个数。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 模拟 500 答案 解析 DOC
