试卷详情
-
二级C++笔试-389
-
[单项选择]下面程序的运行结果为( )。 #include<iostream.h> class A { int num public: A(int i){num=i;} A(A&a){Bum=a.num++;} void print( ){cout<<Bum;} }; void main( ) { A a(1),b(a); a.print( ); b.print( ); }
A. 11
B. 12
C. 21
D. 22
-
[单项选择]设有定义charstr[80]以下不能将输人数据nrst/nsecond/<CR)读取到数组str的语句是( )。
A. ciget(str,strlen(st);
B. cigetline(str,strlen(st);
C. cin>>str;
D. dread(str,strlen(st);
-
[填空题]软件工程研究的内容主要包括:______技术和软件工程管理。
-
[单项选择]有如下程序: #include<iostream> using namespace std; class DA{ int k; public: DA(int x=1):k(x){} ~DA( ){cout<<k;} }; int main( ){ DAd[]={DA(3),DA(3),DA(3)}; DA*p=new DA[2]; delete[]p; return( ); } 这个程序的输出结果是( )。
A. 111
B. 333
C. 11333
D. 11133
-
[单项选择]在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 #include<iostream> using namespace std; class A { public:A( ){cout<<‘A’;} }; Class B: { public:B( ){cout<<‘B’;} }; class C://virtual public A { public:C( ){cout<<‘C’;} }; class D://public B,public D { public:D( ){tout<<‘D’;} }; void main( ){D obj;}
A. public A
B. private A
C. protected A
D. virtual public A
-
[单项选择]已知类A有公用数据成员a,并重载了“=”运算符,且有A obj2;const A*ptr new A;则下列语句错误的是( )。
A. ptr->a=100;
B. ptr=&obj2;
C. ptr++;
D. obj2=*ptr;
-
[单项选择]对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。
A. 并运算
B. 交运算
C. 差运算
D. 积运算
-
[单项选择]如果类A被说明成类B的友元,则( )。
A. 类A的成员即类B的成员
B. 类B的成员即类A的成员
C. 类A的成员函数不得访问类B的成员
D. 类B不一定是类A的友元
-
[填空题]以下函数模板main( )的功能是:返回数组a中最大元素的值。请将横线处缺失部分补充完整。
template<typename T>Tmax(Ta[],intn)
{
Tm=a[0];
for(int i:1;i(n;i++)
if(a[i]>m______;
return m;
}
-
[单项选择]下面关于break语句的描述中,不正确的是( )。
A. break可以用于循环体内
B. break语句可以在for循环语句中出现多次
C. break语句可以在switch语句中出现多次
D. break语句可用于if条件判断语句内
-
[填空题]______允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
-
[单项选择]有以下类定义 class MyClass { private: int id; Char gender; Char*phone; public: MyClass( ):id(0),gender(‘#’),phone(NULL){} MyClass(int no,charge=’#’,char*ph=NULL) {id=no;gender=ge;phone=ph;} ); 下列类对象定义语句中错误的是( )。
A. MyClass myObj;
B. MyClass myObj(11,”13301111155”);
C. MyClassmyObj(12,’m’);
D. MyClassmyObj(12);
-
[填空题]在下面的类定义中,this指针的用途是______。
#include<iostream.h>
class Sample
{
int x,y;
public:
Sample(int i,int j){x=i;y=j;}
void assign(Sample sa);
};
void Sample::assign(Sample p)
{
if(this!=&p)
{
X=p.K;
y=p,y;
}
}
-
[单项选择]关于结构化程序设计原则和方法的描述错误的是( )。
A. 选用的结构只准许有一个入口和一个出口
B. 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C. 不允许使用GOTO语句
D. 语言中所没有的控制结构,应该采用前后一致的方法来模拟
-
[单项选择]考虑函数原型void test(int a,int b=7,char z=‘*’),下面的函数调用中,属于不合法调用的是( )。
A. test(5);
B. test(5,8);
C. test(6,’#’);
D. test(0,0,’x’);
-
[填空题]执行”cout<<char(‘A’+2)<<end1;”语句后得到的输出结果为______。
-
[填空题]数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
-
[单项选择]下列叙述中正确的是( )。
A. 在面向对象的程序设计中,各个对象之间具有密切的关系
B. 在面向对象的程序设计中,各个对象都是公用的
C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D. 上述3种说法都不对
-
[单项选择]下列是关于派生类声明的开始部分,其中正确的是( )。
A. class virtual B:public A
B. virtual class B:public A
C. class B:public A virtual
D. class B:virtualpublicA
-
[单项选择]类MyClass的定义如下: class MyClass { public: MyClass( ){value=0;} SetVariable(int i){value=i} private: int value; }; 则对下列语句序列正确的描述是( )。 MyClass*P,my;p=&my;
A. 语句p=&my;是把对象my赋值给指针变量P
B. 语句MyClass*p,my;会调用两次类MyClass的构造函数
C. 对语句*SetVariabte(5)的调用是正确的
D. 语句p->SetVariable(5)与语句mSetVariable(5)等价
-
[单项选择]使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。
A. ios::i
B. ios::out
C. ios::inlios::out
D. 没有默认
-
[单项选择]下列选项中不属于软件生命周期开发阶段任务的是( )。
A. 软件测试
B. 概要设计
C. 软件维护
D. 详细设计
-
[单项选择]数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
A. DB包括DBS和DBMS
B. DBMS包括DB和DBS
C. DBS包括DB和DBMS
D. 没有任何关系
-
[填空题]注释一般分为序言性注释和______注释。
-
[填空题]通过使用new和delete两个运算符进行的分配为______存储分配。
-
[单项选择]下列关于构造函数和析构函数的描述,错误的是( )。
A. 析构函数中调用虚函数采用静态联编
B. 对虚析构函数的调用可以采用动态联编
C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D. 构造函数可以声明为虚函数
-
[单项选择]如果表达式-x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数用格式,该表达式还可表示为( )。
A. operator/(operator--(),;
B. operator/(operator--(,;
C. operator--().operator/(;
D. operator/(operator--();
-
[单项选择]最简单的交换排序方法是( )。
A. 快速排序
B. 选择排序
C. 堆排序
D. 冒泡排序
-
[单项选择]下列运算符中不能在C++中重载的是( )。
A. :
B. +
C. -
D. <=
-
[单项选择]将E-R图转换到关系模式时,实体与实体间的联系可以表示成( )。
A. 属性
B. 关系
C. 键
D. 域
-
[单项选择]下列各类函数中,不是类的成员函数的是( )。
A. 构造函数
B. 抽象类
C. 派生类
D. 以上都不对
-
[填空题]在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
-
[填空题]下列程序的输出结果是______。
#include<iostream>
using namespace std;
voidfun(int&rf)
{
rf*2;
}
int main( )
{
int num=500;
fun(num);
cout<<num<<endl;
return 0;
}
-
[填空题]在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的算法的特性。
-
[填空题]下列程序的运行结果是______。
#include<iostream.h>
class Sample
{
int a;
public:
Sample(int aa=0){a=aa;}
~Sample( ){cout<<“Sample=”<<a<<‘‘;}
};
class Derived:public Sample
{
int b;
public:
Derived(int aa=0,int bb=0):Sample(aa){b=bb;}
~Derived( ){cout<<“Derived=”<<b<<“;
};
void main( )
{
Derived d1(9);
}
-
[单项选择]数据的存储结构是指( )。
A. 数据所占的存储空间
B. 数据的逻辑结构在计算机中的存放形式
C. 数据在计算机中的顺序存储方式
D. 存储在计算机外存中的数据
-
[填空题]参照函数模板的写法,完成非模板函数的定义,语句为______。
#include<iostream.h)
#include(string.h>
template(class T)
T min(T a,T b)
{
return(a<ba:b);
}
char*min(char*a,char*b)
{
}
void main( )
{
double a=1.23,b=3.45;
chars1[]=”abcd”,s2[]=”efg”;
cout<<min(a,b)<<rain(s1,s2)<(endl;
}
-
[单项选择]可以用p.a的形式访问派生类对象p的基类成员a,其中a是( )。
A. 私有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. a有,继承的公有成员
-
[单项选择]若有如下程序: #include<iostream> using namespace std; Class TestClass1 { private: int a; public: TestClassl(int i) { a=i; } void disp( ) { cout<<a<<“,”; } }; Class TestClass2 { private: int b; public: TestClass2(int j) { b=j; } void disp( ) { cout<<b<<“,”; } }; class TestClass3:public TestClass2,public TestClass1 { private: int C; public: TestClass3(int k):TestClassl(k-2),TestClass2(k+2) { c=k; } void disp( ) { TestClasssl::disp( ); TestClasss2::disp( ); cout<<c<<end1; } }; mt main( ) { TestClass3 Obj(10); Obj.disp( ); return 0; } 程序执行后的输出结果是( )。
A. 10,10,10
B. 10,12,14
C. 8,10,12
D. 8,12,10
-
[填空题]假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为______。
-
[单项选择]有如下程序: #include<iostream.h> Using namespace std; Class Demo { public: Demo( ){ cout<<“default constructor/n”;} Demo(const Demo &x){ cont<<“copy constructor/n”;} }; Demo usercode(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
-
[单项选择]下列程序的输出结果为( )。 #include<iostream.h) class TestClass { public: TestClass( ){val++;} static,int val; }; int TestClass::val=0; void main( ) { TestClass cs1; cout<<csl.val<<““; TestClass cs2; TestClass cs3,cs4; cout<<cs2.val<<end1; }
A. 03
B. 13
C. 14
D. 24
-
[单项选择]在C++语言中函数返回值的类型是由( )决定的。
A. 调用该函数时系统临时
B. return语句中的表达式类型
C. 定义该函数时所指定的函数类型
D. 调用该函数时的主调函数类型
-
[单项选择]下列描述正确的是( )。
A. 表示m>n为true或m<n为true的表达式为m>n&&m<n
B. switch语句结构中必须有default语句
C. if语句结构中必须有else语句
D. 如果至少有一个操作数为true,则包含”
-
[填空题]下列程序编译错误,因为add函数返回值是一个引用,故对return返回值的要求是______。
#include(iostream.h)
int& add(int x,int y)
{
return x+y,
}
void main( )
{
int i=3,j=19;
cout<<(add(i,j)+=20)<<end1;
}