国家二级(C++)机试模拟试卷235
选择题
1.在关系代数运算中,有5种基本运算,它们是( )。(D)
A. 并(∪)、差(_)、交(∩)、除(÷)和笛卡儿积(×)
B. 并(∪)、差(_)、交(∩)、投影(π)和选择(σ)
C. 并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)
D. 并(∪)、差(_)、投影(π)、选择(σ)和笛卡儿积(×)
解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。
2.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计巾模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖天系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解维护,模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
3.有如下类定义:
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指针,所以不能访问本类中的非静态成员,所以③错误。
4.关于运算符重载,下列表述中正确的是( )。(C)
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。
5.有如下程序:
#include<iostream>
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get(){return m;}
int get()const{return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
cout<<a.get()<<b.get();
return0;
}
执行这个程序的输出结果是( )。(B)
A. 33
B. 38
C. 83
D. 88
解析:本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,所以本题中,对象a为普通对象,执行a.get()后,会执行默认构造函数,输出3;对象b为常对象,执行b.get()后,会执行常构造函数,输出8。
6.下列关于函数的描述中,错误的是( )。(D)
A. 函数可以没有返回值
B. 函数可以没有参数
C. 函数可以是一个类的成员
D. 函数不能被定义为模板
解析:本题考查函数的基础知识,函数可以没有返回值,没有参数,也可以是一个类的成员,函数可以定义为模板,即模板函数。
7.有如下程序:
#include<iostream>
using namespace std;
class MyClass{
public:
MyClass(){++count;}
~MyClass(){一一count;}
static int getCount(){return count;}
private:
statie int count;
};
int MyClass::count=0;
int main()
{
MyClass obj;
cout<<obj.getCount();
MyClass*ptr=new MyClass;
cout<<M#lass::getCount();
delete ptr;
cout<<MyClass::getCount();
return 0;
}
执行这个程序的输出结果是( )。(A)
A. 121
B. 232
C. 221
D. 122
解析:本题考查静态数据成员。静态数据成员在内存中只占一份空间,静态数据成员属于类,即使不定义对象,也会给静态数据成员分配空间,可以被引用。本题中先是定义了一个对象0bj,执行构造函数使得静态数据成员count变为了1,然后又定义了指针对象,执行构造函数后,count变为了2,释放指针后,执行析构函数,使得count变为了1。所以本题答案为A。
8.下列关于C++预定义流对象的叙述中,正确的是( )。(A)
A. cin是C++预定义的标准输入流对象
B. cin是C++预定义的标准输入流类
C. cout是C++预定义的标准输入流对象
D. cout是C++预定义的标准输入流类
解析:cin是C++预定义的标准输入流对象,cout是C++预定义的标准输出流对象。
9.如果表达式–x/y中的“–”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。(B)
A. operator/(x.operato–(),y);
B. operator/(operator–(x),y);
C. x.operator–().operator/(y);
D. y.operator/(operator–(x));
解析:运算符重载实际上时函数的重载。重载运
本文档预览:3600字符,共17403字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载