国家二级C++机试(选择题)模拟试卷514
选择题
1.下列符号中能够作为C++标识符的是( )。(C)
A. const
B. 2a
C. _shape
D. -count
解析:此题考查的是C++标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格:标识符的长度是任意的,但由于编译系统的限制一般不超过31个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。
2.下列关于虚函数的说明中,正确的是( )。(B)
A. 从虚基类继承的函数都是虚函数
B. 虚函数不得是静态成员函数
C. 只能通过指针或引用调用虚函数
D. 抽象类中的成员函数都是虚函数
解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。如果一个类包含了纯虚函数,称此类为抽象类。所以本题答案为B。
3.对虚函数的调用( )。(D)
A. 一定使用动态联编
B. 必须使用动态联编
C. 一定使用静态联编
D. 不一定使用动态联编
解析:虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函数声明只能出现在类声明中虚函数原型中,而不能在成员的函数体实现的时候。必须由成员函数来调用或者通过指针、引用来访问虚函数。如果通过对象名来访问虚函数,则联编在编译过程中认为是静态联编。
4.有如下程序:
#include
using namespace std;
class Base
{
public:
void funl(){cout<<”Base\n”;}
virtual void flun2(){cout<<”Base\n”;}
};
class Derived:public Base{
public:
void funl(){cout<<”Derived\n”;}
void fun2(){cout<<”Derived\n”;}
};
void f(Base&b){b.funl();b.fun2();}
int main()
{
Derived obj;
f(obj);
return 0;
}
执行这个程序的输出结果是( )。(B)
A. Base
Base
B. Base
Deftved
C. Derived
Base
D. Derived
Derived
解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个派生类对象obj,执行f函数后,将派生类对象obj转化为基类对象,由于funl不是虚函数,所以输出基类的funl;而fun2是虚函数,所以输出派生类的fun2,所以本题答案为B。
5.对如下二叉树
(D)
A. ABCDEF
B. DBEAFC
C. ABDECF
D. DEBFCA
解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D)为正确答案。
6.下列叙述中正确的是(A)
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:①线性表为无序表;②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。
7.下列关于软件工程的描述中正确的是( )。(C)
A. 软件工程只是解决软件项目的管理问题
B. 软件工程主要解决软件产品的生产率问题
C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D. 软件工程只是解决软件开发中的技术问题
解析:软件工程是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程主要思想是强调在软件开发过程中需要应用工程化原则。
8.存在定义int a[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的?( )(A)
A. x*pa;
B. x=*(a+1);
C. x=*(pa+1);
D. x=a[1];
解析:选项B)、C)、D)都是获取a(1)元素,而选项A)是获取a(0)的元素。
9.下列叙述中正确的是(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上都不正确
解析:影响程序执行效率的冈素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。
10.以下程序的输出结果是( )。
#include<iostream>
using namespace std;
void fun(char**q)
{
++q;
cout<<*q<<end1;
}
main()
{
static char*s[]={’’HI\\(C)
A. 为空
B. HI
C. HELLO
D. TEST
解析:由程序main主函数入手,调用fun函数,在fun函数中执行“cout<<*q<<end1;”语句实现程序输出。主函数中变量char*s[]为指针数组,char**p表示p指向的字符指针数据。*p就代表p指向的字符指针。语句“p=s;\\
11.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(B)
A. 外模式
B. 内模式
C. 概念模式
D. 逻辑模式
解析:数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称
本文档预览:3600字符,共8320字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载