试卷详情
-
二级C++笔试-13
-
[单项选择]为了使模块尽可能独立,要求
A. 模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强
B. 模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱
C. 模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱
D. 模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强
-
[单项选择]有如下函数模板: template T souare(T x)(returll x * x;) 其中T是
A. 函数形参
B. 函数实参
C. 模板形参
D. 模板实参
-
[单项选择]使用输入/输出操作符setw,可以控制
A. 输出精度
B. 输出宽度
C. 对齐方式
D. 填充字符
-
[单项选择]数据独立性是数据库技术的重要特点之一。所谓数据独立性是指
A. 数据与程序独立存放
B. 不同的数据被存放在不同的文件中
C. 不同的数据只能被对应的应用程序所使用
D. 以上3种说法都不对
-
[填空题]有如下定义:
class MA{
int value:
public:
MA(int n=0):v;alut(n){ }
};
MA * ta,tb:
其中MA类的对象名标识符是______。
-
[单项选择]下列数据结构中,能用二分法进行查找的是
A. 顺序存储的有序线性表
B. 线性链表
C. 二叉链表
D. 有序线性链表
-
[单项选择]有如下程序段,其中会产生编译错误的语句是 inti=0,j=1; int &r=i; //① r=j; //② int * p=&i; //③ * p=&r; //④
A. ④
B. ③
C. ②
D. ①
-
[填空题]有如下程序:
#include<iostream>
using namespace std;
class CA{
public:
CA( ){cout<<’A’;}
};
class CB:private CA{
public:
CB( ){cout<<’B’;}
};
int main( ){
CA a;
CB b;
return 0;
{
运行时的输出结果是______。
-
[单项选择]如下程序的输出结果是 #include<iostream> #include<iomanip> using namespace std; class CSum{ int x,y; public: CSum(int x0,int y0):X(x0),y(y0){ } friend ostream& operator<<(ostream& os,const CSum& xA) { os<<setw(5)<<xa.x+xa.y: return os; } }; int main( ){ CSum y(3,5); cout<<setfill(’*’)<<8; cout<<y; return 0; }
A. 88
B. ****88
C. ****8****8
D. 8****8
-
[填空题]若要访问指针变量p所指向的数据,应使用表达式______。
-
[填空题]在数据库系统中,实现各种数据管理功能的核心软件称为______。
-
[单项选择]在下面的定义语句中,画线处应填入的内容是 class Fred{ public: void print( ){cout<<data<<endl;} void setData(double D) {data=d;} static int count; private: double data; }; ______count=0;//静态数据成员的定义
A. int
B. static int
C. int Fred::
D. static int Fred::
-
[单项选择]下列叙述中正确的是
A. 软件工程只是解决软件项目的管理问题
B. 软件工程主要解决软件产品的生产率问题
C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D. 软件工程只是解决软件开发中的技术问题
-
[填空题]C++语言中的多态性分为编译时的多态性和______时的多态性。
-
[单项选择]为了取代C中带参数的宏,在C+十中使用
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
-
[单项选择]下列关于栈的描述中正确的是
A. 在栈中只能插入元素而不能删除元素
B. 在栈中只能删除元素而不能插入元素
C. 栈是特殊的线性表,只能在一端插入或删除元素
D. 栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
-
[单项选择]下列是关于派生类声明的开始部分,其中正确的是
A. class virtual B:publice A
B. virtual class B:publice A
C. class B:public A virtal
D. class B:virtual public A
-
[填空题]软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于______测试。
-
[单项选择]下列关于派生类构造函数和析构函数的叙述中,错误的是
A. 派生类的构造函数会隐含调用基类的构造函数
B. 如果基类中没有默认构造函数,那么派生类必须定义构造函数
C. 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D. 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
-
[填空题]若将一个二元运算符重载为类的成员函数,其形参个数应该是______个。
-
[填空题]已知一个函数的原型是:
int fn((toubie x);
若要以5.27为实参调用该函数,应使用表达式______。
-
[填空题]用来派生新类的类称为______,而派生出的新类称为它的子类或派生类。
-
[单项选择]已知outfile是一个输出流对象,要想将outfile的文件指针定位到当前位置之前321字节处,正确的函数调用语句是
A. outfile.seekp(321,ios_base::cur);
B. outfile.seekp(321,ios_base::beg);
C. outfile.seekp(-321,ios_base::beg);
D. outfile.seekp(-321,ios_base::cur);
-
[填空题]如下类定义中包含了构造函数和复制构造函数的原型声明,请在画线处填写正确的内容,使复制构造函数的声明完整。
class my(21ass{
private:
int data:
public::
MyClass(int value);//构造函数
MyClass(const______anotherObject); //复制构造函数
-
[单项选择]用树状结构表示实体之间联系的模型是
A. 关系模型
B. 网状模型
C. 层次模型
D. 以上3个都是
-
[单项选择]下列函数模板定义中错误的是
A. template<class Q>
B. template<class Q> Q F(Q x){return Q+x;} Q F(Q x){return x+x;}
C. template<class T>
D. template<class T> T F(T x){return x * x;} bool F(T x){return x>1;}
-
[填空题]软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。编码和测试属于______阶段。
-
[单项选择]有如下程序: #include<iostream> using namespaee std; class Demo{ public: Demo( ){cout<<"default constructor/n";} Demo(const Demo &x){cout<<"copy constructor/n";} }; Derno userCore(DemoB) {Demo c(B) ;return c;} int main( ){ Demo a,d; cout<<"calling userCode( )/n"; d=userCode(A) ; return 0; } 执行上面程序的过程中,构造函数Demo( )和Demo(const Demo &x)被调用的次数分别为
A. 1和1
B. 1和2
C. 2和3
D. 2和4
-
[单项选择]字面常量42、4.2、42L的数据类型分别是
A. long、double、int
B. long、float、int
C. int、double、long
D. int、float、long
-
[单项选择]下列叙述中错误的是
A. 公有继承时基类中的public成员在派生类中仍是public成员
B. 私有继承时基类中的protected成员在派生类中仍是protected成员
C. 私有继承时基类中的public成员在派生类中是private成员
D. 保护继承时基类中的public成员在派生类中是protected成员
-
[填空题]在结构化分析使用的数据流图(DFD) 中,利用______对其中的图形元素进行确切解释。
-
[单项选择]通过运算符重载,可以改变运算符原有的
A. 操作数类型
B. 操作数个数
C. 优先级
D. 结合性
-
[单项选择]执行下列语句段后,输出字符“*”的个数是 for(int i=50;i>l;--i)cout<<”*”
A. 48
B. 49
C. 50
D. 51
-
[单项选择]下列对于软件的叙述中正确的是
A. 软件测试的目的是证明程序是否正确
B. 软件测试的目的是使程序运行结果正确
C. 软件测试的目的是尽可能多地发现程序中的错误
D. 软件测试的目的是使程序符合结构化原则
-
[单项选择]下列字符串中,不可以用作C++标识符的是
A. y_2006
B. _FEST_H
C. Return
D. switch
-
[单项选择]在表达式x-y中,“-”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“-”,这个表达式还可以表示为
A. x.operator-(y)
B. operator-(y,x)
C. y operator-(x)
D. operator-(x,y)
-
[填空题]在深度为7的满二叉树中,度为2的结点个数为______。
-
[单项选择]有如下程序: #include<cstring> #include<iostream> using namespace std; class MyString{ public: MyString(const char * s); ~MyString( ){delete[ ]data;} protected: unsigned len; char * data; }; MyString::MyString(const char * s){ len=strlen(s); data=new char[1en+1]; strcpy(data,s); } int main( ){ MyString a("C++Progreanfing"); MyString b(A) ; return 0; } 在运行上面的程序时出错,错误的原因是
A. 构造函数的实参不允许是本类的对象
B. 没有定义实现深层复制(深复制)的复制构造函数
C. 构造对象a时实参与形参类型不符
D. 系统不能生成缺失的复制构造函数
-
[单项选择]在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是
A. 后缀一元运算符
B. 前缀一元运算符
C. 无操作数的运算符
D. 二元运算符
-
[单项选择]如下程序的输出是 #include<iostream> using namespace std; class Base{ public: Base( ){cout<<"BB";f( );} void f( ){cout<<"Bf";} }; class Derived:public Base{ public: Derived( ){eout<<"DD";} void f( ){cout<<"Df";} }; int main( ){Derived d;return 0;}
A. BBBff)D
B. BBDfDDDf
C. DD
D. DDBBBf
-
[填空题]C++中只有两个逻辑常量:true和______。
-
[单项选择]下列关于类定义的叙述中,正确的是
A. 类定义中包括数据成员和函数成员的声明
B. 类成员的缺省访问权限是保护的
C. 数据成员必须被声明为私有的
D. 成员函数只能在类体外进行定义
-
[单项选择]有如下程序: #include<iostream> using namespace std; class Base{ protected:int i; public:int j; }; class Derived:public Base{ int m; public:int n; }; int main( ){ Derived d; d.i=0; //[1] d.j=0; //[2] d.n1=0; //[3] d.n=0; //[4] return 0; } 其中主函数中有两个赋值语句有错,这两个错误的赋值语句是
A. [1]和[2]
B. [1]和[3]
C. [2]和[3]
D. [2]和[4]
-
[单项选择]已知在函数func中语句this->ff=0;与语句ff=0;的效果完全相同。对于这一现象,下列叙述中错误的是
A. ff是某个类的数据成员,func是该类的友元函数
B. ff是某个类的数据成员,func是该类的成员函数
C. this->ff和ff是同一个变量
D. func不是一个静态成员函数