【计算机类职业资格】国家二级(C++)机试模拟试卷168及答案解析.doc
《【计算机类职业资格】国家二级(C++)机试模拟试卷168及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C++)机试模拟试卷168及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C+)机试模拟试卷 168 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.在关系代数运算中,有 5 种基本运算,它们是( )。(分数:2.00)A.并()、差(-)、交()、除()和笛卡儿积()B.并()、差(-)、交()、投影()和选择()C.并()、交()、投影()、选择()和笛卡儿积()D.并()、差(-)、投影()、选择()和笛卡儿积()2.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。(分数:2.00)A.外模式模式B.内模式外模式C.模式内模式D.内模式模式3.下列关于线性链表的描述中,正
2、确的是( )。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件) 、结点由两部分组成:数据域和指针域。(分数:2.00)A.仅、B.仅、C.仅、D.全部4.下面关于数据库三级模式结构的叙述中,正确的是( )。(分数:2.00)A.内模式可以有多个,外模式和模式只有一个B.外模式可以有多个,内模式和模式只有一个C.内模式只有一个,模式和外模式可以有多个D.模式只有一个,外模式和内模式可以有多个5.设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用速排序法,并以第一个元素为划分的基准,
3、那么第一趟划分后的结果为( )。(分数:2.00)A.23,13,5l,57,66,26,81,69,76B.13,23,26,51,57,66,81,76,69C.23,13,51,57,26,66,81,69,76D.23,13,51,57,81,26,66,69,766.下列哪一条不属于数据库设计的任务?( )(分数:2.00)A.设计数据库应用结构B.设计数据库概论结构C.设计数据库逻辑结构D.设计数据库物理结构7.数据库技术的根本目标是( )。(分数:2.00)A.数据存储B.数据共享C.数据查询D.数据管理8.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开
4、发工具C.软件开发费用D.软件系统功能9.关系数据库管理系统能实现的专门关系运算包括( )。(分数:2.00)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表10.数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。人工管理阶段 文件系统阶段 数据库阶段(分数:2.00)A.仅B.仅C.和D.和11.阅读以下程序: #includeiostreamh void maim() static int a2=5,3,1,2; int i,j,s1=0; for(i=0;i2;i+) fort(j=0;j2j+) if(i=j) s1=s1+aij; co
5、uts1endl; 则该程序的输出结果为( )。(分数:2.00)A.6B.7C.8D.912.若有如下程序段: #includeiostream using namespace std; int main() char*p=“abcdefgh“,*r; r=p; cout*rendl; return 0; 该程序的输出结果是( )。(分数:2.00)A.aB.bC.cD.d13.有如下程序: #includeiostream using namespace std; void fun(int (分数:2.00)A.x=15B.x=17C.x=23D.x=2516.分析下面程序,该程序的运行结
6、果是( )。 #includeiostreamh class TestClass public: static int m; TestClass () m+; TestClass(int n) re=n; static void test() m+; ;int TestClass:m=0; void main() TestClass A; TestClass B(3); Atest(); TestClass:test(); coutm=B.mendl; (分数:2.00)A.m=3B.m=4C.m=5D.m=617.下列说法中错误的是( )。(分数:2.00)A.公有继承时基类中的 publi
7、c 成员在派生类中仍是 public 的B.公有继承时基类中的 private 成员在派生类中仍是 private 的C.私有继承时基类中的 public 成员在派生类中是 private 的D.保护继承时基类中的 public 成员在派生类中是 protected 的18.下面关于构造函数和析构函数的描述,错误的是( )。(分数:2.00)A.析构函数中调用虚函数采用静态联编B.对虚析构函数的调用可以采用动态联编C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D.构造函数可以声明为虚函数19.有如下程序: #includeiostream using namespace st
8、d; class TestClass public: TestClass ()coutBASE; ; class TestClass1:public TestClass public: TestClass1 ()coutDERIVED; ; int main()TestClass1 x;return 0; 执行后的输出结果是( )。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE20.设有以下定义和程序: #includeiostreamh class TestClass1 public: void show1() costTestClass
9、1endl; ; class TestClass2:TestClass1 public: void show2() toutTestClass2endl; ; class TestClass3:protected TestClass2 public: void show3() coutTestClass3endl: ; void main() TestClassl obj1; TestClass2 obj2; TestClass3 obj3; 则以下不合语法的调用语句是( )。(分数:2.00)A.obj1show1();B.obj2show1();C.obj3show1();D.obj2sh
10、ow2();21.下面程序段的正确输出是( )。 int w=4,x=3,y=2,z=1; cout(wx?w:zy?z:x)endl;(分数:2.00)A.0B.1C.2D.322.若变量都已正确说明,则以下程序段的输出结果是( ) a=2;b=3;printf(ab?*a=d:#b=da,b);(分数:2.00)A.没有正确的输出格式控制B.输出为:*a=2C.输出为:#=2 ,D.输出为:*a=2#=223.若执行以下程序时从键盘上输入 9,则输出结果是( )。 main() int n; cinn; if(n+10)coutnendl; else coutn-endl; (分数:2.0
11、0)A.11B.10C.9D.824.以下程序的输出结果是( )。 main() int a=4,b=5,c=0,d; d=!a (分数:2.00)A.x=15B.x=17C.x=23 D.x=25解析:解析:由主函数 main 入手,首先 x 被赋值为 3,a 被赋值为 4。然后调用 fun 函数,参数为 4,所以在 fun 函数中的 a=4。而主程序中的 x 作用域是由它定义开始到 cout 输出,在 fun 函数中无效。而在fun 函数定义前的变量 x 作用域是整个程序,所以 fun 函数中的 x 值为 5,这样 c 的值就为 20。在主函数中的 x+fun(a)中的 x 为靠近这条语句
12、的 x 定义,即 3,所以最后 x 的值为 20+3=23。16.分析下面程序,该程序的运行结果是( )。 #includeiostreamh class TestClass public: static int m; TestClass () m+; TestClass(int n) re=n; static void test() m+; ;int TestClass:m=0; void main() TestClass A; TestClass B(3); Atest(); TestClass:test(); coutm=B.mendl; (分数:2.00)A.m=3B.m=4C.m=5
13、 D.m=6解析:解析:由主函数 main 入手,首先定义 TestClass 对象 A,B;对象 B 构造函数值为 3,构造函数中m+,所以这时 m=4。主函数中调用 Atest(),因为“static int m;”,m 被定义为类 TestClass 静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“Atest();”中的 m 为前面进行加 1 操作后的 4,即 m 现在的值为 5。17.下列说法中错误的是( )。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 的B.公有继承时基类中的 private 成员在派
14、生类中仍是 private 的 C.私有继承时基类中的 public 成员在派生类中是 private 的D.保护继承时基类中的 public 成员在派生类中是 protected 的解析:解析:公用继承时基类中的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。私有继承时,基类的公有成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有。受保护的继承时,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员认为基类私有。18.下面关于构造函数和析构函数的描述,错误的是( )。(分数:2.00)A.析构函数中调用虚函数采用静态联编B.对虚析构函数的调用可以采用动态
15、联编C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D.构造函数可以声明为虚函数 解析:解析:构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。19.有如下程序: #includeiostream using namespace std; class TestClass public: TestClass ()coutBASE; ; class TestClass1:public TestClass public: TestClass1 ()coutDERIVED; ; int main
16、()TestClass1 x;return 0; 执行后的输出结果是( )。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE 解析:解析:程序中的 TestClassl 为 TestClass 的派生类,从程序中的 main 函数入手,定义了TestClassl 对象 x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出 DERIVED,基类析构函数输出 BASE。20.设有以下定义和程序: #includ
17、eiostreamh class TestClass1 public: void show1() costTestClass1endl; ; class TestClass2:TestClass1 public: void show2() toutTestClass2endl; ; class TestClass3:protected TestClass2 public: void show3() coutTestClass3endl: ; void main() TestClassl obj1; TestClass2 obj2; TestClass3 obj3; 则以下不合语法的调用语句是(
18、 )。(分数:2.00)A.obj1show1();B.obj2show1();C.obj3show1(); D.obj2show2();解析:解析:TestClass1 为 TestClass2 的私有基类,所以派生类 TestClass2 中继承过来的 showl()为私有的。TestClass3 为 TestClass2 的受保护派生类。所以 TestClass3 定义的对象不能访问 TestClass 中的 show1()。21.下面程序段的正确输出是( )。 int w=4,x=3,y=2,z=1; cout(wx?w:zy?z:x)endl;(分数:2.00)A.0B.1 C.2D
19、.3解析:解析:本题考查表达式作为变量进行输出,且表达式为两个三目表达式的嵌套,其中,第 1 个三目表达式 zy?z:x 的值为 1,接着计算第 2 个三目表达式 wx?w:1,值为 1。22.若变量都已正确说明,则以下程序段的输出结果是( ) a=2;b=3;printf(ab?*a=d:#b=da,b);(分数:2.00)A.没有正确的输出格式控制B.输出为:*a=2C.输出为:#=2 , D.输出为:*a=2#=2解析:解析:本题实际上是考查 C 语言中的格式化输入输出知识,同时本题也考查了三目表达式的知识。如果逻辑表达式为真,则执行冒号之前的,否则执行冒号之后的表达式。23.若执行以下
20、程序时从键盘上输入 9,则输出结果是( )。 main() int n; cinn; if(n+10)coutnendl; else coutn-endl; (分数:2.00)A.11B.10 C.9D.8解析:解析:本题考查的是后置自增运算符的知识,这类题考生往往做错,主要原因是不能正确拆解。题中 if 语句可以拆解为:if(910),n+1=10,cout10endl;,自增所代表的加 1 操作要紧跟在原表达式后面,而不是原语句后面。24.以下程序的输出结果是( )。 main() int a=4,b=5,c=0,d; d=!a&!b!c; coutdendl; (分数:2.00)A.l
21、B.0C.非 0 的数D.-1解析:解析:本题考查逻辑运算,只要考生掌握了逻辑运算的优先级就可以正确得到答案为选项 A。或运算的优先级最高,和!的优先级相同,按照从左到右的顺序计算。25.给出下面程序输出结果( )。 #includeiostmamhvoid main() int *p1; int*p2=&p1; int b=20; p1=&b; cout*p2endl; (分数:2.00)A.10B.20 C.40D.30解析:解析:p1 指向 b,而 p 指向 pl 的地址。*p2 表示 p1 的地址,p1 的地址就是&b,即*p2 是&b,所以*p2 就是 b 变量的值。26.在下面的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 模拟 试卷 168 答案 解析 DOC
