1、国家二级( C+)笔试模拟试卷 44及答案与解析 1 数据的存储结构是指 _ 。 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 2 下列关于栈的描述中错误的是 _ 。 ( A)栈是先进后出的线性表 ( B)栈只能顺序存储 ( C)栈具有记忆作用 ( D)对栈的插入与删除操作中,不需要改变栈底指针 3 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 _ 。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 4 对长
2、度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为_ 。 ( A) n-1 ( B) n/2 ( C) n ( D) n+1 5 下列对于线性链表的描述中正确的是 _ 。 ( A)存储空间不一定是连续的,且各元素的存储顺序是任意的 ( B)存储空间不一定是连续的,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存 储空间必须连续,且各元素的存储顺序是任意的 6 下列对于软件测试的描述中正确的是 _。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序
3、中的错误 ( D)软件测试的目的是使程序符合结构化原则 7 为了使模块尽可能地独立,要求 _。 ( A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低,且各模块间的耦合程度 要尽量弱 ( D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 8 下列描述中正确的是 _ 。 ( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据与相关文档的集合 9 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 _ 。 ( A)数
4、据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 10 用树型结构表示实体之 间联系的模型是 _ 。 ( A)关系模型 ( B)网状模型 ( C)层次模型 ( D)以上三个都是 11 a=3,b=-4,c=5; 则表达式 +a-c+(+B)的值是 ( )。 ( A) -3 ( B) -4 ( C) -5 ( D) -6 12 设 m、 n、 a、 b、 c、 d均为 0,执行 (m=n= =B) (n=c= =D)后, m、 n的值是( )。 ( A) 0,0 ( B) 0,1 ( C) 1,0 ( D) 1,1
5、 13 多重 if_else语句嵌套使用时,寻找与 else配套的 if方法是 ( ) ( A)缩排位置相同的 if ( B)其上最近的 if ( C)下面最近的 if ( D)同行上的 if 14 对于条件表达式 (k)?(i+):(i-)来说,其中的表达式 k等价于 ( ) ( A) k=0 ( B) k=1 ( C) k!=0 ( D) k!=1 15 不能作为函数重载判断依据的是 ( )。 ( A)返回值 ( B)参数个数 ( C)参数类型 ( D)参数顺序 16 下列叙述中错误的是 ( )。 ( A)一个函数中可以存在多条 return语句 ( B)调用函数可 以在一条非独立的语句中
6、完成 ( C)函数无返回值时,可以是 void类型。 ( D)函数的类型是由函数的返回值决定的 17 函数定义为 Fun(int p=,则下面语句正确的是 ( )。 ( A)语句 p=p= /A) Myclass( ); /B) Myclass(int i); /C) Myclass( ); /D) ( A) A ( B) B ( C) C ( D) D 20 有关析构函数的说法不正确的是 ( )。 ( A)析构函数有且只有一个 ( B)析构函数无任何函数类型 ( C)析构函数和构造函数一样可以有形参 ( D)析构函数的作用是在对象被撤销时收回先前分配的内存空间 21 已知一个类 A,类 A有
7、三个公有成员: void f1(int), void f2(int)和 int a;定义指向类 A成员函数的指针是 ( )。 ( A) A*p; ( B) int A:*Pc= namespace m int flag = 10; namespace n flag = 100; void mian( ) int flag = 0; using namespace n; cout flag “,“ m: flag; ( A) 100,10 ( B) 100,0 ( C) 0,100 ( D) 0,10 26 下面程序的输出结果是 ( )。 #include iostream using name
8、space std; class A public: A( ) cout “A“; class B public: B() coat“B“ ; class C: public A public: B b; C() cout “C“; void mian() C c; ( A) CBA ( B) ABC ( C) ACB ( D) BCA 27 下面关于动态联编的描述中,错误的是 ( )。 ( A)动态联编是以虚函数为基础的。 ( B)动态联编是在运行时确定所调用的函数代码 ( C)动态联编调用函数操作是指向对象的指针或者对象的引用。 ( D)动态联编是在编译时确定操作函数 28 在派生类中重新
9、调用虚函数时,其他方面都必须与基类的相应虚函数保持一致,但要排除 ( )方面。 ( A)参数个数 ( B)参数类型 ( C)函数名称 ( D)函数体 29 在下面程序中, A、 B、 C、 D四句编译时不会出错的是 ( )。 #include iostream using namespace std; class Base public: Base(); Base(int e):count(C) virtual void print() const = 0; private: int count; ; class Derived :public Base public: Derived():B
10、ase(0) Derived(int C) :Base(C) void printt() constcout “Derived“ endl: ; void main( ) Derived d(10); Base *pb; pb = /A Base Derived dd = *pb; /B Derived /C Base bb = d; /D ( A) A ( B) B ( C) C ( D) D 30 设置虚基类的目的是 ( )。 ( A)简化程序 ( B)消除二义性 ( C)提高运行效率 ( D)减少目标代码行 31 对于常数据成员,下面描述 正确的是 ( )。 ( A)常数据成员可以不初始
11、化,并且不能更新 ( B)常数据成员必须被初始化,并且不能更新 ( C)常数据成员可以不初始化,并且可以被更新 ( D)常数据成员必须被初始化,并且可以被更新 32 下面对 C+重载运算符描述正确的是 ( )。 ( A)只有类成员运算祠: ( B)只有友元运算符 ( C)只有非成员和非友元运算符 ( D)上述三者都有 33 在 C+语言中输出 “Hello World”的语句是 ( )。 ( A) cout “Hello World“; ( B) cout “Hello World“; ( C) cin “Hello World“; ( D) cin “Hello World“; 34 磁盘文
12、件操作中,打开文件的访问方式常量中,以追加方式打开文件的是( )。 ( A) in ( B) out ( C) app ( D) ate 35 下列函数中,对文件进行写操作的是 ( )。 ( A) get ( B) read ( C) seekg ( D) put 36 关系数据库管理系统能实现的专门关系运算包括选择、连接和【 】。 37 数 据字典通常包括 5个部分,即数据项、数据结构、数据流、【 】和处理过程。 38 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个【 】。 39 数据库应用的核心是指【 】。 40 栈的基本运算有三种:入栈、退栈和【 】。 41 C+程序第
13、 1条语句是从【 】函数开始执行的。 42 C+语言提供的基本数据类型包括整型、浮点型、逻辑型、空值型和【 】。 43 在 C+中,打开一个文件,就是将这个文件与一个【 】建立关联,关闭一个文件,就是取消这种关联。 44 下面程序运行输出的结果是【 】。 #include iostream using namespace std; int main() char a=“Chinese“; a3=0; cout a endl; return 0; 45 下面是计算 n的阶乘的递归函数,请将该函数的定义补充完整。 unsigned f(unsigned n) if(n =1) return 1;
14、else return 【 】 ; 46 将一个函数声明为一个类的友元函数必须使用关键字【 】。 47 下面程序运行后输出的结果是【 】。 #include iostream using namespace std; class example const int m; public: example(int i):m(i) void pr()cout “m=“ m endl ; int main() example x(100); x.pr(); return 0; 48 经常和一个运算符连用,构成一个运算符函数名的 C+关键字是【 】。 49 对虚函数的调用有两种方式:【 】和【 】。 国
15、家二级( C+)笔试模拟试卷 44答案与解析 1 【正确答案】 D 【试题解析】 计算机存储的相关概念。 2 【正确答案】 B 【试题解析】 栈是 “先进后出 ”的数据结构。 3 【正确答案】 D 【试题解析】 冒泡排序 n!。 4 【正确答案】 C 【试题解析】 查不到或最后一个查到的情况。 5 【正确答案】 A 【试题解析】 存储空间往往是分散的,也无相对关系。 6 【正确答案】 C 【试题解析】 软件测试的相关概念。 7 【正确答案】 B 【试题解析】 程序设计的相关概念。 8 【正确答案】 D 【试题解析】 软件与程序有区别,软件的相关概念。 9 【正确答案】 D 【试题解析】 数据库
16、的相关概念。 10 【正确答案】 C 【试题解析】 层次多为 “一对多 ”,可用 树型结构表示。 11 【正确答案】 B 【试题解析】 +a=4,4-c=-1,+b=-3,-1+(-3)=-4。 12 【正确答案】 C 【试题解析】 a=b值为 1,将 1的值赋给 m, 运算符有真即推出, n值未变为0。 13 【正确答案】 B 【试题解析】 多重 if_else嵌套时, else总是与它上面最近的 if配对。 14 【正确答案】 C 【试题解析】 条件表达式 e1? e2:e3的含义是 e1为真时,取表达式 e2的值,否则取表达式 e3的值, “为真 ”的意思就是不 等于 0。 15 【正确
17、答案】 A 【试题解析】 调用重载函数,编译器检查调用中的参数个数、类型和顺序。 16 【正确答案】 D 【试题解析】 函数声明时决定了函数类型。 17 【正确答案】 D 【试题解析】 当函数的形参为引用类型时,调用函数的实参不能是常量、表达式和变量地址,只能是变量的本身。 18 【正确答案】 D 【试题解析】 A是把对象的地址值赋给指针; B只会调用一次类的构造函数; C正确的调用应是 (*p).fun()。 19 【正确答案】 A 【试 题解析】 类中的数据成员不能在定义类时直接赋初值。 20 【正确答案】 D 【试题解析】 析构函数是在对象被撤销之前执行,但析构函数本身并不会收回先前分配
18、的内存空间。 21 【正确答案】 C 【试题解析】 A定义了一个类的对象指针; B定义一个类 A数据成员指针; C定义了一个类 A的成员函数指针; D定义一个类 A的对象指针数组。 22 【正确答案】 C 【试题解析】 类通过继承实现类的层次结构。 23 【正确答案】 B 【试题解析】 =,(),-运算符不能够重载为类的 友元函数。 24 【正确答案】 D 【试题解析】 派生类是基类的进一步具体化;派生类包含基类的成员;派生类是对基类定义的进一步扩充;派生类的成员不属于基类。 25 【正确答案】 D 【试题解析】 cont flag;输出的是 main()中的 flag值 0,而 m:flag
19、=10。 26 【正确答案】 B 【试题解析】 先执行基类 A构造函数输出 A,调用类 B的构造函数输出 B,调用本身构造函数输出 C。 27 【正确答案】 D 【试题解析】 动态联编一直到程序运行时才能确定调 用哪个函数。没有虚函数不能够实现动态联编,调用虚函数操作的是指向对象的指针或者对象的引用。 28 【正确答案】 D 【试题解析】 派生类中的虚函数必须和基类的虚函数具有相同的函数名、参数个数、参数类型、相同返回值,或者都返回指针或者引用,其中派生类返回的指针或者引用的基类型是基类中的虚函数的所返回的指针或者引用的基类新的子类型。 29 【正确答案】 A 【试题解析】 B和 C不符合赋值
20、兼容规则, D不能建立抽象类的对象。 30 【正确答案】 B 【试题解析】 设置虚基类的目的是为了 消除二义性。 31 【正确答案】 B 【试题解析】 常数据成员必须被初始化,并且不能更新。 32 【正确答案】 D 【试题解析】 运算符的重载通常有两种形式:重载为类的成员函数和重载为类的非成员函数,非成员函数通常为友元函数。 33 【正确答案】 A 【试题解析】 cout格式输出。 34 【正确答案】 C 【试题解析】 app是追加方式。 35 【正确答案】 D 【试题解析】 put写文件。 36 【正确答案】 投影 【试题解析】 专门的关系 运算主要包括对单个关系进行垂直分解 (投影操作 )
21、或水平分解 (选择操作 )和对多个关系的结合 (连接操作 )等。 37 【正确答案】 数据存储 【试题解析】 数据字典是各类数据描述的集合,它通常包括 5个部分,即数据项,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;处理过程。 38 【正确答案】 实体 【试题解析】 面向对象的程序设计方法中涉及的对象是系 统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。 39 【正确答案】 数据库设
22、计 【试题解析】 数据库设计是数据库应用的核心。在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。 40 【正确答案】 读栈顶元素 【试题解析】 栈的基本运算有三种:人栈、退栈和读,栈顶元素。 41 【正确答案】 main 【试题解析】 在 C+中,程序总是从 main()函数的第 1条语句开始执 行,到main()函数的最后一条语句结束。 42 【正确答案】 字符型 【试题解析】 C+语言提供的 5种基本数据类型包括:整型、浮点型、字符型、逻辑型和空值型。 43 【正确答案】 流 【试题解析】 打开一个文件,就是将这个文件与一个流建立关联。 44
23、 【正确答案】 Chi 【试题解析】 字符串的结束标识是 0,输出字符串时,到第一个 0输出结束,而不管其后是否还有数据,因此本题输出为字符中的前 3个字符。 45 【正确答案】 n *f(n-1) 【试题解析】 本题首先判断是否小于等于 1,若是返回 1,否则返回 n乘以 (n-1)!,这样递归下去,因此答案为: n*f(n-1)。 46 【正确答案】 friend 【试题解析】 声明友元的方式是在类定义中用关键字 friend说明该函数或类。 47 【正确答案】 m=100 【试题解析】 在类 example中,定义了一个常数据成员 m,所以构造函数只能通过初始化列表来初始化它。 48 【正确答案】 operator 【试题解析】 运算符函数的函数名是由运算符前加关键字 operator构成的。 49 【正确答案】 非多态调用,多态调用 【试题解析】 非多态调用和多态调用是 C+中调用虚函数的两种方式。