国家二级(C++)机试模拟试卷262
选择题
1.运算符重载是对已有的运算符赋予多重含义,因此( )。(C)
A. 可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B. 可以改变一个已有运算符的优先级和操作数个数
C. 只能重载C++中已经有的运算符,不能定义新运算符
D. C++中已经有的所有运算符都可以重载
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。
2.要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是( )。(A)
A. ifstream fin=ifstream.open(\\
B. ifstream *fin=new ifstream(\\
C. ifstream fin;fin.open(\\
D. ifstream *fin=new ifstream();fin->open(\\
解析:本题考查对文件流输入的操作,可以调用文件流的成员函数pen,一般形式如下:文件流对象.叩en(磁盘文件名,输入/输出方式)。根据以上格式,可以判断A选项错误。
3.下列运算符中不能在C++中重载的是( )。(A )
A. ?:
B. +
C. 一
D. <=
解析:此题考查的是运算符的有关概念。运算符重载是针对C++原有运算符进行的,不能通过重载创造新的运算符;除了.、.*、.>*、::、?:这五个运算符之外,其他运算符都可以重载。
4.有如下程序:
intx=3;
do{
x-=2:
cout<<x;
}while(!(一x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 30
C. 1-2
D. 死循环
解析:第一次循环输出1,第二次循环输出是-2。在输出二次循环后!(–x)为0条件不满足。停止循环。
5.若有下面的函数调用:
fun(a+b,3,max(n-1,b))
则fun的实参个数是( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:本题考查函数实参个数的基础知识,根据实参的概念,(a+b)、3、max(n—1,b)分别为其中的3个实参。故答案为A。
6.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。(A)
A. 控制流
B. 加工
C. 存储文件
D. 源和潭
解析:数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括4个方面,即加工、数据流、存储文件、源和潭。
7.将E—R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:从E—R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E—R图中属性也可以转换成关系的属性。
8.将前缀运算符“–”重载为非成员函数,下列原型中能正确用于类中说明的是( )。(D)
A. Deer&operator–(int);
B. Decr operator–(Deer&,int);
C. friend Deer&operator–(Deer&);
D. friend Deer operator–(Decr&,int);
解析:非成员函数重载用友元函数的形式实现,“一”运算符重载分为前置和后置两种重载方式。用友元函数来实现“–”运算符的重载时,前置“–”运算符的重载的一般格式为:friendoperator–(ClassName&);后置++运算符的重载的一般格式为:friendoperator–(ClassName&,int)。所以答案为D。
9.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 软件集成测试计划
B. 软件详细设计说明书
C. 用户手册
D. 软件需求规格说明书
解析:需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D)。
10.下列关于线性表的叙述中,不正确的是( )。(C)
A. 线性表可以是空表
B. 线性表是一种线性结构
C. 线性表的所有结点有且仅有一个前件和后件
D. 线性表是由n个元素组成的一个有限序列
解析:线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C)是错误的。
11.有三个关系R、S和T如下:
(A)
A. 自然连接
B. 交
C. 投影
D. 并
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。
12.下列程序的运行结果为( )。
#include
void print(double a)
{
cout<<++a:
}
void print(int a,int b)
{
cout<<b<<a:
}
void main()
{
print(1.2);
cout<<””:
print(3,4);
}(D)
A. 1.2 34
B. 2.2 34
C. 1.2 43
D. 2.2 43
解析:本题考查的是对重载函数的掌握,因为++a是右结合的,所以a先自加1再输出,即为2.2,之后调用函数print(int a,int b)输出b和a,即43。
13.有如下类定义:
#include
using namespace std;
class Point{
public:
int GetXY()
本文档预览:3600字符,共16433字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载