国家二级(C++)机试模拟试卷266
选择题
1.数据库技术的根本目标是( )。(B )
A. 数据存储
B. 数据共享
C. 数据查询
D. 数据管理
解析:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
2.在C++语言中函数返回值的类型是由( )决定的。(C )
A. 调用该函数时系统临时
B. return语句中的表达式类型
C. 定义该函数时所指定的函数类型
D. 调用该函数时的主调函数类型
解析:C++中函数return语句中返回的类型应与函数定义指定的类型一致,即函数定义的类型即为函数应返回的类型。
3.下面是重载为非成员函数的运算符的函数原型,其中错误的是( )。(C)
A. Fraction operator+(Fraction,Fraction);
B. Fraction operator-(Fraction);
C. Fraction& operator=(Fraction&,Fraction);
D. Fraction& operator+=(Fraction&,Fraction);
解析:本题考查四种运算符作为非成员函数的重载的使用方法,根据重载规则,本题答案为C,C项正确原型为:Fraction operator=(Fraction &)。
4.有如下类定义:
Class Test
{
public:
Test(){a=0;c=0;}//①
int f(int a)eonst{this->a:a;}//②
static int g(){return a;}//③
void h(int b){Test::b=b;};//④
private:
int a;
static int b;
eonst int c;
};
int Test::b=0;
在标注号码的行中,能被正确编译的是( )。(D)
A. ①
B. ②
C. ③
D. ④
解析:只能通过构造函数的参数初始化列表对常数据成员进行初始化,本题中常数据成员为c。①通过默认构造函数初始化c,所以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以②不正确。静态成员函数由于没有this指针,所以不能访问本类中的非静态成员,所以③错误。
5.在下面的类定义中,横线处应填入的内容是( )。
class Fred
{
public:
void print(){cout<<data<<endl;}
void setData(double d){data=d;}
static int count;
private:
double data;
};
________count=0; //静态数据成员的定义(C)
A. int
B. static int
C. int Fred::
D. static int Fred::
解析:此题考查的是静态数据成员的定义。题目中count数据成员要定义成静态的,其初始化的格式为:类型类名::静态数据成员=常量。
6.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)
A. O(n)
B. O(n2)
C. O(log2n)
D. O(nlog2n)
解析:当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较次,而顺序查找需要比较n次。
7.在面向对象方法中,不属于“对象”基本特点的是( )。(A)
A. 一致性
B. 分类性
C. 多态性
D. 标识唯一性
解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A。
8.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。
9.若有如下程序:
#includc
using namespace std;
int s=0:
class sample
{
static int n;
public:
sample(int i)
{
n=i;
}
static void add()
{
S+=n:
}
};
int sample::n=0;
int main()
{
sample a2),b(5);
sample::add0;
cout<<s<<endl:
ream 0:
}
程序运行后的输出结果是( )。(B)
A. 2
B. 5
C. 7
D. 3
解析:执行语句“sample a(2),b(5)”;的结果是使n的值最终变为5,sample::add()语句调用函数static void add(),使得S=S+n=5。
10.下面关于函数模板的表述中不正确的是( )。(C)
A. 类模板的成员函数都是模板函数
B. 类模板本身在编译过程中不会产生任何代码
C. 类模板只能有虚拟类型的参数
D. 用类模板定义一个对象时,实参不能省略
解析:类模板本身在编译时是不会产生代码的,只有在其实例化以后才产生代码。定义一个对象时,不能省略其实参。
11.有如下类定义:
class MyBase{
int k;
public:
MyBase(int n=0):k(n){}
int value()const{return k;}
};
class NyDerived:NyBase{
int j;
public:
MyDeriv
本文档预览:3600字符,共17796字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载