【计算机类职业资格】二级C++-12及答案解析.doc
《【计算机类职业资格】二级C++-12及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-12及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-12 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:40.00)1.程序流程图中带有箭头的线段表示的是_。(分数:1.00)A.图元关系B.数据流C.控制流D.调用关系2.结构化程序设计的基本原则不包括_。(分数:1.00)A.多态性B.自顶向下C.模块化D.逐步求精3.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划5.算法的有
2、穷性是指_。(分数:1.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用6.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序7.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据8.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶
3、段9.有三个关系 R、S 和 T 如下: R B C D a 0 k 1 b 1 n 1 S B C D f 3 h 2 a 0 k 1 n 2 x 1 T B C D a 0 k 1 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为_。(分数:1.00)A并B.自然连接C.笛卡尔积D交10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11.下列语句中,错误的是_。(分数:1.00)A.
4、const int buffer=256;B.const int temp;C.const double*point;D.const double*rt=new double(5.5);12.有如下程序: int x=3; do x-=2; coutx; while(!(-x); 执行这个程序的输出结果是_。(分数:1.00)A.1B.30C.1-2D.死循环13.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译运行程序将出现的情况
5、是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错14.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:1.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0)B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句
6、,例如 if()while()15.下列符号中,正确的 C+标识符是_。(分数:1.00)A.enumB.2bC.foo-9D._3216.下列关于 C+函数的说明中,正确的是_。(分数:1.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式17.运算符重载是对已有的运算符赋予多重含义,因此_。(分数:1.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数
7、C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载18.下列有关内联函数的叙述中,正确的是_。(分数:1.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return 语句19.下列运算符不能重载为友元函数的是_。(分数:1.00)A.=()( )-B.+ - + -C. = =D.+= -= *=/=20.有如下程序: #includeiostream using namespace std; int main() void function(
8、double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数21.下面是重载为非成员函数的运算符的函数原型,其中错误的是_。(分数:1.00)A.Fraction operator+(Fraction,Fraction);B.Fraction operator-(Fraction);C.FractionD.Fraction22.有如下类定义: cla
9、ss MyClass public: private: int data; ; 若要为 MyClass 类重载流输入运算符“”,使得程序中可以“cinobj;”的形式改变 MyClass 类的对象 obj 中数据成员 data 的值,则横线处的声明语句应为_。(分数:1.00)A.friend istreamB.friend istreamC.istreamD.istream23.由于常对象不能被更新,因此_。(分数:1.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数24.有如下类定义: c
10、lass AA int a; public: int getRef()constreturn / int getValue()constreturn a;/ void set(int n)consta=n;/ friend void show(AA aa) constcouta;/ ; 其中四个函数的定义中正确的是_。(分数:1.00)A.B.C.D.25.下列关于 this 指针的描述中,正确的是_。(分数:1.00)A.类的成员函数都有 this 指针B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针26.下列关于虚函数
11、的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数27.下列关于基类和派生类关系的叙述中,正确的是_。(分数:1.00)A.每个类最多只能有一个直接基类B.派生类中的成员可以访问基类中的任何成员C.基类的构造函数必须在派生类的构造函数体中调用D.派生类除了继承基类的成员,还可以定义新的成员28.有如下类定义: class B public: void funl() private: void fun2() protected: void fun3() ; class D: publ
12、ic B protected: void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:1.00)A.obj.funl();B.obj.fun2();C.obj.fun3();D.obj.fun4();29.有如下类定义: class Foo public: Foo(int v):value(v)/ Foo()/ private: Foo()/ int value=0;/ ; 其中存在语法错误的行是_。(分数:1.00)A.B.C.D.30.有如下类定义: class Point int xx,yy; public: Point():xx(0),
13、yy(0) Point(int x,int y=0):xx(x),yy(y) ; 若执行语句 Point a(2),b3,*c4; 则 Point 类的构造函数被调用的次数是_。(分数:1.00)A.2 次B.3 次C.4 次D.5 次31.有如下类定义: 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; 在标
14、注号码的行中,能被正确编译的是_。(分数:1.00)A.B.C.D.32.有如下类声明: class SAMPLE int n; public: SAMPLE(int i=0):n(i) void setValue(int n0); ; 下列关于 getValue 成员函数的定义中,正确的是_。(分数:1.00)A.SAMPLE:setValue(int n0) n=n0;B.void SAMPLE:setValue(int n0) n=n0;C.void setValue(int n0) n=n0;D.setValue(int n0) n=n0;33.有如下程序: #include iost
15、ream using namespace std; class A public: A() cout“A“; ; class B:public A public: B() cout“-B“;delete p; int main( ) B obj; return 0;(分数:1.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA34.有如下程序: #include iostream using namespace std; class Base private: void fun1( ) const cout“fun1“; protected: void fun2( ) co
16、nst cout“fun2“; public: void fun3( ) const cout“fun3“; ; class Derived: protected Base public: void fun4( ) const cout“fun4“; ; int main( ) Derived obj; obj.fun1( ); / obj.fun2( ); / obj.fun3( ); / obj.fun4( ); / return 0; 其中有语法错误的语句是_ 。(分数:1.00)A.B.C.D.35.有如下程序: #include iostream using namespace st
17、d; class Base1 public: Base1(int d) coutd; Base1() ; class Base2 public: Base2(int d) coutd; Base2() ; class Derived:public Base1,Base2 public: Derived(int a,int b,int c,int d):Base1(b),Base2(a),b1(d),b2(c) pnvate: int b1: int b2: ; int main() Derived d(1,2,3,4); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.1
18、234B.2134C.12D.2136.有如下程序: #include iostream using namespace std; class Base public: void fun1() cout“Base/n“; virtual void fun2() cout“Base/n“; ; class Derived:public Base public: void fun1()cout“Derived/n“; void fun2()cout“Derived/n“; ; void f(Baseb.fun2(); int main() Derived obj; f(obj); return 0
19、; 执行这个程序的输出结果是_。(分数:1.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.DerivedDerived37.模板对类型的参数化提供了很好的支持,因此_。(分数:1.00)A.类模板的主要作用是生成抽象类B.类模板实例化时,编译器将根据给出的模板实参生成一个类C.在类模板中的数据成员都具有同样类型D.类模板中的成员函数都没有返回值38.有如下函数模板: template typename T,typename U T cast(U u) return u; 其功能是将 U 类型数据转换为 T 类型数据。已知 i 为 int 型变量,下列对模板函
20、数 cast 的调用中正确的是_。(分数:1.00)A.cast(i);B.cast(i);C.cast char*,int(i);D.castdouble,int(i);39.要建立文件流并打开当前目录下的文件 file.dat 用于输入,下列语句中错误的是_。(分数:1.00)A.ifstream fin=ifstream.open(“file.dat“);B.ifstream*fin=new ifstream(“file.dat“);C.ifstream fin;fin.open(“file.dat“);D.ifstream*fin=new ifstream();fin-open(“fi
21、le.dat“);40.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:1.00)A.ios_base:inB.ios_base:in|ios_base:outC.ios_base:outD.ios_base:in class MyClass public: MyClass(int len) array=new intlen; arraySize=len; for(int i=0;iarraySize;i+) arrayi=i+1; MyClass() /ERROR*found* delete arrayi; void Print () con
22、st for (int i=0; iarraySize; i+) /ERROR*found* cinarrayi“; coutendl; private: int*array; int arraySize; ; int main () /ERROR*found* MyClass obj; obj.Print(); return 0; (分数:20.00)_42.请使用 VC6 或使用答题菜单打开考生文件夹 proj2 下的工程 proj2,此工程中声明的 Array 是一个表示数组的类。一个 Array 对象可以包含多个整型元素。Array 的成员说明如下: 成员函数 add 用于向数组的末尾
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C12 答案 解析 DOC
