国家二级(C++)机试模拟试卷523
选择题
1.关系数据库管理系统能实现的专门关系运算包括( )。(B )
A. 排序、索引、统计
B. 选择、投影、连接
C. 关联、更新、排序
D. 显示、打印、制表
解析:关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。
2.下列关于基类和派生类关系的叙述中,正确的是( )。(D)
A. 每个类最多只能有一个直接基类
B. 派生类中的成员可以访问基类中的任何成员
C. 基类的构造函数必须在派生类的构造函数体中调用
D. 派生类除了继承基类的成员,还可以定义新的成员
解析:本题考查派生类与基类的关系,派生类可以有多个直接基类,而派生类有三种继承方式,在私有继承中,派生类的成员并不能访问基类的成员。如果基类中定义了缺省构造函数或根本没有定义任何一个构造函数时,在派生类构造函数的定义中可以省略对基类构造函数的调用。所以本题答案为D。
3.要建立文件流并打开当前目录下的文件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,一般形式如下:文件流对象.open(磁盘文件名,输入/输出方式)。根据以上格式,可以判断A选项错误。
4.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。
5.有如下程序:
#include<iostream>
using namespace std;
int i=1;
class Fun{
public:
static int i;
int value(){return i-1;}
int value()eonst{return i+1;}
};
int Fun∷i=2;
int main() {
int i=3;
Fun fun1;
const Fun fun2;
___________________
return 0;
}
若程序的输出结果是:
123
则程序中下画线处遗漏的语句是( )。(A)
A. cout<<fun1.value()<<Fun∷i<<fun2.value();
B. cout<<Fun∷i<<fun1.value()<<fun2.value();
C. cout<<fun1.value()<<fun2.value()<<Fun∷i;
D. cout<<fun2.value()<<Fun∷i<<fun1.value();
解析:本题考查构造函数、常成员函数和静态数据成员。外部同名的变量赋值,不能改变类的静态变量值,所以Fun对象里的i值为2,所以本题答案为A。
6.下面叙述中错误的是( )。(A)
A. 软件测试的目的是发现错误并改正错误
B. 对被调试的程序进行“错误定位”是程序调试的必要步骤
C. 程序调试通常也称为Debug
D. 软件测试应严格执行测试计划,排除测试的随意性
解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。
7.以下程序的输出的结果是( )。
#include
void main()
{
int a,b,C,d(5);
c=2,c+=10;
a=b=10:
a*=2:
b/=2:
c%=2:
cout<<a<<”,”<<b<<”,”<<c<<endl;
}(A )
A. 20,5,0
B. 20,7,0
C. 20,5,1
D. 5,20,0
解析:c+=10使得c=12;a=b=10,a*=2使得a=20;b/=2,b=10/2,使得b=5;c=12%2=0,所以输出值20,5,0。
8.下面程序的输出结果是( )。
#include
#include
using namespace std;
class point
{
private:
double x:
double y;
public:
point(double a,double b)
{ x=a;
y=b;
}
friend double distances(point a,point b);
};
double distances(point a,point b)
{
return
sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main()
{point p1(1,2);
point p2(5,2);
cout<<distances(p 1,p2)<<endl;
return 0:
}(B)
A. 2
B. 4
C. 8
D. 16
解析:分析题目,最终要实现的结果是sqrt((a.x—b.x)*(a.x—b.x)+(a.y—b.y)*(a.y—b.y)),其中的a.x和a.y分别指p1(1,2)中的1和2。这样容易得到结果是(1-5)*(1-5)+(2-2)*(2-2)=16,再开方得到结果为4。
9.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
本文档预览:3600字符,共19589字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载