【计算机类职业资格】二级C++-196及答案解析.doc
《【计算机类职业资格】二级C++-196及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-196及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-196 及答案解析(总分:93.50,做题时间:90 分钟)一、选择题(总题数:35,分数:68.50)1.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 C 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C交D并2.下列叙述中正确的是_。(分数:2.50)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.当使用
2、 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_(分数:1.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对4.下列函数的运行结果是_。 #includeiostream.h int f(int a,int b) int c; if(ab)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp;(分数:2.50)A.-1B.1C.2D.编译出错,无法运行5.关于关键字 class 和 typename
3、,下列表述中正确的是_。(分数:1.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型6.下列关于 this 指针的叙述中正确的是_。(分数:1.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针7.有如下程序段 #include void main( ) int a=14,b=15
4、,x;char c=“A“;x=(a do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环10.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强11.下列关于 C+流的描述中,错误的是 _ 。(分数:2.00)A.cout“A“表达式中输出字符 AB.eof 函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件
5、fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件12.有如下数组声明:int num10l;,下标值引用错误的是_。(分数:1.00)A.num10B.num5C.num3D.num013.线性表进行二分法检索,其前提条件是 _ 。(分数:2.00)A.线性表以顺序方式存储,并按关键码值排好序B.线性表以顺序方式存储,并按关键码的检索频率排好序C.线性表以链式方式存储,并按关键码值排好序D.线性表以链式方式存储,并按关键码的检索频率排好序14.字符串“a+b=12/n/t”的长度为_。(分数:2.00)A.12B.10C.8D.615.下列不构成无限
6、循环的语句或语句组是 _ 。(分数:2.00)A.n=0;do+n;)while(n=0);B.n=0;while(1)n+;C.while(n=10);n-;D.for(n=0,i=1; ;i+)n+=i16.己知类 Myclass 的定义如下 class MyClass public: void function1(MyClass static void function2(MyClass void function3()coutdata; staric void function4()coutdata; private: int data; ; 其中有编译错误的函数是_。(分数:2.00
7、)A.function1B.function2C.function3D.function417.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是 _ 。(分数:2.00)A.autoB.staticC.regiserD.extern18.有以下程序 #include iostream using namespace std; int a; int fun (); int main () extern int a; int b; a = 100; b = fun(); coutbend1; return 0; int fun) extern int a; return (10*a ; 其程
8、序运行后的输出结果是(分数:2.00)A.100B.10C.1000D.1000019.下列关于函数模板的描述中,正确的是_。(分数:2.50)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数20.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b”是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量21.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数
9、都要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用D.有默认值的参数应从左至右逐个定义22.以下程序的执行结果为_。 #includeiostream.h class Sample int n; public: Sample(int i)n=i; operator+()n+; /前缀重载运算符 operator+(int)n+=2; /后缀重载运算符 void disp() cout“n=“nendl; ; void main() Sample A(2),B(2); A+; +B; A.disp(); B.disp(); (分数:2.50)A.n=4n=3B.n=1
10、n=2C.n=3n=4D.n=5n=623.有如下程序: #include iostream using namespace std; class BASE public: BASE()cout“BASE“; ; class DERIVED: public BASE public: DERIVED() cout“DERIVED“; int main() DERIVED x; return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE24.有如下类定义: class AA int a; public: AA(
11、int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:3.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;25.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对26.类的析构函数是在什么时候调用的?(分数:1.00)A.类创建时B.创建对象时C.删除对象时D.不自动调用27.某类中有一个无参且无返回值的常成员函数 Show,则
12、正确的 Show 函数原型是(分数:2.00)A.const void Show( );B.void const Show( );C.void Show( )const;D.void Show(const);28.若有如下程序: #includeiostream using namespace std; class TestClass public: void who() cout“TestClass“endl; ; class TestClass1:public TestClass public: void who()cout“TestClass1“endl; ; int main() Te
13、stClass *p; TcstClass1 obj1; p= p-who(); return 0; 则该程序运行后的输出结果是 _ 。(分数:2.00)A.TestClass1B.TestClassC.0D.无输出29.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,biol; swap(a,b,10); 下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是_。(分数:1.00)A.template typename Tvoid swap(T a,T b,int size);B.templatetypename Tvoid swap(int
14、size,T a,T b);C.templatetypename T1,typename T2void swap(T1 a,T2 b,int size);D.templateclass T1,class T2void swap(T1 a,T2 b,int size);30.若进栈序列为 a,b,c,则通过入出栈操作可能得到的 a,b,c 的不同排列个数为 _。(分数:2.00)A.4B.5C.6D.731.若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是 _ 。(分数:2.00)A.6B.5C.4D.332.在下列枚举符号中,用来表示“相
15、对于当前位置”文件定位方式的是_。(分数:2.00)A.ios_base:curB.ios_base:begC.ios_base:outD.ios_base:end33.下列关于栈的描述正确的是_。(分数:2.50)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素34.有如下程序: #includeiostream using namespace std; class Pair int m; int n; public: Pair(int i,int j):m(i)
16、,n(j) bool operator(Pair P)const; /须在类体外给出定义 ; int main() Pair p1(3,4),p2(4,3),p3(4,5); cout(p1p2)(p2p1)(p2p3)(p3p2); return 0; 运算符函数。perator的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则返回false。比较规则是首先比较两对象的 m 成员,m 大者为大:当 m 相等时比较 n,n 大者为大。程序输出0101,下列对运算符重载函数的正确定义是_。(分数:2.00)A.bool Pair:operator(Pair p)cons
17、tif(m!=p.m)return mp.m;return np.n;B.bool Pair:operator(Pair P)if(m!=p.m)return mp.m;return np.n;C.bool Pair:operator(Pair p)constif(mp.m)return true;return np.n;D.bool Pair:operator(Pair P)if(mp.m)return true;return np.n;35.有如下程序: #include iostream using namespace std; class AA public: virtual void
18、 f()cout“AA“; ; class BB:public AA public: BB()cout“BB“; ; class CC:public BB public: virtual void f() BB:f(); cout“CC“; ; int main() AA aa, *p; BB bb; CC cc; p= p-f(); return 0; 执行上面的程序将输出_。(分数:2.50)A.BBAACCB.AABBCCC.BBAABBCCD.BBBBAACC二、填空题(总题数:15,分数:25.00)36.一棵二叉树第 6 层(根结点为第一层)的结点最多为 1 个。 (分数:2.00
19、)37.在下面程序横线处填上适当内容,以使程序的输出为:9 8 7 6。 #include iostream using namespace std; templateclass T void“ 1, 2) 3; for(int i=0;in/2;i+) t=ai,ai=an-1-i,an-1-i=t, int main() int x=6,7,8,9; f(x,4); for(int i=0;i4;i+)coutxi; return 0; (分数:2.50)38.多态性分为两类:编译时的多态性和 _ 1_ 。 (分数:1.00)39.软件工程研究的内容主要包括: 【4】 技术和软件工程管理。
20、 (分数:1.00)40.如果表达式-x 中的“-”是重载的类成员函数运算符,采用运算符函数调用格式时,该表达式应表示为 1。 (分数:2.00)41.请将下列类定义补充完整。 class Basepublic:void fun()cout“Base:fun“end;; class Derived:public Base public: void fun() _ 1_ /显式调用基类的 fun 函数 cout“Derived:fun“endl; ; (分数:1.00)42.若有以下程序: #includeiostream using namespace std; class Base publ
21、ic: void who()cout“Base“end1; class Derived1:public Base public: void who()cout“Derived“end1; ; int main() Base *p; Derived1 obj1; p= public: void fun() int a; a=10; this-,a=5; b=6; this-c=7; cout“a=“a“,this-a=“this-aendl; ; void main() myclass obj1; obj1.fun() (分数:2.00)48.下列程序的输出结果是 1。 #includeiost
22、ream using namespace std; class Test public: Test() cnt+; Test() cnt-; static int Count() return cnt; private: static int cnt; ; int Test:cnt=0; int main() coutTest:Count()“; Test t1,t2; Test*oT3=new Test; Test*pT4=new Test; coutTest:Count()“; delete pT4; delete pT3; coutTest:Count()endl; return 0;
23、(分数:2.00)49.定义如下变量和数组: int i; int y2 3=2,4,6,8,10,12; 则下面语句的输出结果是: 1。 for (i=0;i2;i+) couty1-ii+1endl; (分数:2.50)50.在下面的程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; class Base public: int a,b; Base(int i) a=i; ; class Derived: public Base int a; public: Derived(int x): Base(x),b(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C196 答案 解析 DOC
