首页 > 全部 > 二级C++ > 国家二级(C++)机试模拟试卷519

国家二级(C++)机试模拟试卷519

本单篇文档共16748字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 模拟试卷 7557人下载
价格: 1.00 原价:¥9.00
收藏

国家二级(C++)机试模拟试卷519

选择题

1.有三个关系R、S和T如下:

(D)

A. 并

B. 自然连接

C. 笛卡尔积

D. 交

解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C错误。根据关系T可以很明显地看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D。

2.下面关于构造函数和析构函数的描述,错误的是( )。(D)

A. 析构函数中调用虚函数采用静态联编

B. 对虚析构函数的调用可以采用动态联编

C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D. 构造函数可以声明为虚函数

解析:构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。

3.以下程序的输出的结果是( )。

#include

int x=3;

void main()

{

void fun();

int i;

for(i=1;i<x;i++)

fun();

}

void fun()

{static int x=1;

x*=x+1;

cout<<x<<\\(C)

A. 3,3

B. 2,2

C. 2,6

D. 2,5

解析:由主函数入手,在for循环中调用fun函数,其中调用次数为2次。fun中x为静态变量,有效到文件结束,所以第一次调用为x=x*(x+1)=1*(1+1)=2,第二次调用2*(2+1)=6。

4.有如下类定义:

class Point

{

int xx,yy;

public:

Point():xx(0),yy(0){}

Point(int x,int y=0):xx(x),yy(y){}

};

若执行语句

Point a(2),b[3],*c[4];

则Point类的构造函数被调用的次数是( )。(C)

A. 2次

B. 3次

C. 4次

D. 5次

解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行4次构造函数,对象指针不调用构造函数。所以本题答案为C。

5.有如下程序:

#include<iostream>

using namespace std;

class Base

{

pfivme:

void funl()const{cout<<”funl”;}

protected:

void fun2()const{cout<<”fun2”;}

public:

void fun3()coast{cout<<”fun3”;}

};

class Derived:protected Base

{

public:

void fun4()const{cout<<”fun4”;}

};

int main()

{

Derived obj;

obj.funl();//①

obj.fun2();//②

0bj.fun3();//③

obj.fun4();//④

return 0;

}

其中有语法错误的语句是( )。(B)

A. ①②③④

B. ①②③

C. ②③④

D. ①④

解析:本题考查保护继承中派生类对基类的访问属性,受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,保护基类的所有成员在派生类中都被保护起来,在类外不能访问,所以①②③错误。

6.下列关于this指针的叙述中,正确的是( )。(D)

A. 任何与类相关的函数都有this指针

B. 类的成员函数都有this指针

C. 类的友元函数都有this指针

D. 类的非静态成员函数才有this指针

解析:此题考查的是this指针的使用。类的每一个非静态成员函数都有一个隐含的常量指针,即this指针。类的静态成员函数不能含有this指针,因为this指针是一个指向本对象的指针。

7.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)

A. 一对一

B. 一对多

C. 多对一

D. 多对多

解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。

8.关于运算符重载,下列表述中正确的是( )。(C)

A. C++已有的任何运算符都可以重载

B. 运算符函数的返回类型不能声明为基本数据类型

C. 在类型转换符函数的定义中不需要声明返回类型

D. 可以通过运算符重载来创建C++中原来没有的运算符

解析:重载运算符的规则如下:

①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;

②C++不能重载的运算符只有5个;

③重载不能改变运算符运算对象的个数;

④重载不能改变运算符的优先级和结合性;

⑤重载运算符的函数不能有默认的参数;

⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。

9.有如下程序段:

int i=0,j=1;

nt&r=i;//①

r=j;//②

int*p=&i;//③

*p=&r;//④

其中会产生编译错误的语句是( )。(A)

A. ④

B. ③

C. ②

D. ①

解析:本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*p已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。

10.有如下函数定义:

void fune(int a,int& b)

{a++;b++;}

若执行代码段:

本文档预览:3600字符,共16748字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C++)机试模拟试卷519

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号