国家二级(C++)机试模拟试卷257
选择题
1.设有关键码序列(66,13,5l,76,8l,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为( )。(A)
A. 23,1 3,5l,57,66,26,8l,69,76
B. 13,23,26,51,57,66,81,76,69
C. 23,l 3,51,57,26,66,8l,69,76
D. 23,13,5l,57,81,26,66,69,76
解析:快速排序是起泡排序的改进。在快速排序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部分,关键码值比它大的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。
2.数据库技术的根本目标是( )。(B)
A. 数据存储
B. 数据共享
C. 数据查询
D. 数据管理
解析:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
3.以下程序的执行结果是( )。
#includc
class TestClass2
{
public:
TestClass2(){);
TestClass2(hat i,int j);
void printb0;
private:
int a.b;
};
class TestClass l
{
public:
TestClassl(){}
TestClass (C )
A. a=7,b=8
B. a=8,b=7
C. a=7,b=9
D. a=8,b=9
解析:由主函数main入手,定义了TestClassl的对象m,其中参数为7和9。“m.printa();”中TestClassl中printa为“c.printb();”,其中c为TestClass2的对象, 所以printb 为 TestClass2 中的“voidTestClass2::printb()”,即输出为“a=7,b=9”。
4.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(C)
A. 人工管理阶段
B. 文件系统阶段
C. 数据库系统阶段
D. 三个阶段相同
解析:数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C。
5.由于常对象不能被更新,因此( )。(A)
A. 通过常对象只能调用它的常成员函数
B. 通过常对象只能调用静态成员函数
C. 常对象的成员都是常成员
D. 通过常对象可以调用任何不改变对象值的成员函数
解析:本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以本题选A。
6.下面关于函数模板的表述中不正确的是( )。(C)
A. 类模板的成员函数都是模板函数
B. 类模板本身在编译过程中不会产生任何代码
C. 类模板只能有虚拟类型的参数
D. 用类模板定义一个对象时,实参不能省略
解析:类模板本身在编译时是不会产生代码的,只有在其实例化以后才产生代码。定义一个对象时,不能省略其实参。
7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(B)
A. 提高耦合性降低内聚性有利于提高模块的独立性
B. 降低耦合性提高内聚性有利于提高模块的独立性
C. 耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D. 内聚性是指模块间互相连接的紧密程度
解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以c与D错误。
8.有如下函数定义:
void func(int a,int&b){a++;b++;}
若执行代码段:
int x=0,y=1;
func(x,y);
则变量x和y的值分别是( )。(C)
A. 0和1
B. 1和1
C. 0和2
D. 1和2
解析:函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参。本题中实参x为传值方式,所以x的值不会改变;y为引用形参,所以会改变。故本题答案为C。
9.有如下程序:
#include<iostream>
using namespace std;
class Part{
public:
Part(int x=0):val(x){cout<<val;}
~Part(){cout<<val;}
private:
int val;
};
class Whole{
public:
Whole(int x,int y,intz=0):p2(x),p1(Y),val(z){cout<<val;}
~Whole(){cout<<val;}
private:
Part p1,p2;
int val;
};
int main()
{
Whole obj(1,2,3);
return0;
}
执行这个程序的输出结果是( )。(B)
A. 123321
B. 213312
C. 213
D. 123123
解析:本题考查带参数的构造函数。本题中定义了一个对象obj,那么执行其构造函数,初始化p1,p2的顺序是由声明这两个成员的顺序决定的,而不是由参数化列表顺序决定,所以本题中,会先执行p1,输出2,然后执行p2输出1,然后输出3,最后一次输出312。所以本题答案为B。
10.下述关于开关语句的描述中,正确的是( )。(A )
A. 开关语句中default子句可以没有,也可以有一个
B. 开关语句中每个语句序列中必须有break语句
C. 开关语句中default子句只能放在最后
D. 开关语句中case子句后面的表达式可以是整型表达式
解析:在switch语句中 default的位置不是固定在最后的位置,同时default也是可以省略。
11.数据结构主要研究的是数据的逻辑结构、数据的运算和( )。(B )
本文档预览:3600字符,共14780字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载