国家二级(C++)机试模拟试卷236
选择题
1.下列运算符不能重载为友元函数的是( )。(A)
A. =()( ) ->
B. + – ++ —
C. > = <=
D. += -= *= /=
解析:关于运算符重载为友元函数有如下规定:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符“=、()、[]、->”不能重载为类的友元函数。所以本题答案为A。
2.C++语言程序是从( )函数开始执行的。(B)
A. ios
B. main
C. list
D. temp
解析:所有的C++语言程序都是从main函数开始执行,而普通函数的存在是为了简化main函数的复杂程度。
3.有如下类定义:
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。
4.有如下程序段:
int i=0,j=1;
int &r=i;//①
r=j;//②
int * p=&i;//③
* p=&r;//④
其中会产生编译错误的语句是( )。(A)
A. ④
B. ③
C. ⑦
D. ①
解析:本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*p已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。
5.下列运算符函数中肯定不属于类FunNumber。的成员函数的是( )。(D)
A. int operator-(FunNumber);
B. FunNumber operator-();
C. FunNumber operator-(int);
D. int operator-(FunNumber,FunNumber);
解析:本题考查运算符重载的一些规则:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符=、( )、[ ]、->不能重载为类的友元函数;③类型转换函数只能定义为一个类的成员函数,而不能定义为类的友元函数;④若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好;⑤若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数;⑥当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用);如果左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符函数必须作为一个友元函数来实现。所以答案为D。
6.软件的组成不包括( )。(A)
A. 代码
B. 数据
C. 程序
D. 文档
解析:参考软件的定义。
7.在E-R图中,用来表示实体联系的图形是( )。(C)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
8.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
9.下列变量名中,合法的( )。(A)
A. CHINA
B. byte-size
C. double
D. A+a
解析:变量的定义要符合标识符的定义规则。选项B)byte-size中含有不合法的字符“.”;选项C)中的变量名是C++中的保留字;选项D)变量名中同样含有非法的字符“+”;只有选项A)符合要求。
10.对C++编译器区分重载函数无任何意义的信息是( )。(C)
A. 参数类型
B. 参数个数
C. 返回值类型
D. 常成员函数关键字const
解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为C。
11.下列符号中能够作为C++标识符的是( )。(C)
A. const
B. 2a
C. _shape
D. _count
解析:本题考查C++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用C++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项A是关键字,选项B不能以数字开头,选项D包含了字符\\
12.若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。(B)
A. Data +(Data);
B. Data operator+(Data);
C. Data+operator(Data);
D. operator +(Data,Data.);
解析:根据重载加法运算符的格式,只有B选项正确。
13.有三个关系R、S和T如下:
(A)
A. 自然连接
B. 交
C. 投影
D. 并
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。
14.建立表示学生选修课程活动的实体联系模型,其中的两个实体分别是( )。(B)
A. 课程和课程号
B. 学生和课程
C. 学生和学号
D. 课程和成绩
解析:实体是概念世界中的基本单位,是客观存在并可以相互区别的事物。要建立表示学生选修课程活动的实体联系模型,能互相区别并可以联系起来的实体是学生和课程。故本题答案为B选项。
15.有如下程序:
#include
#include
using namespace std;
class Instrument{
publ
本文档预览:3600字符,共16616字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载