计算机类二级C++

2007年4月计算机等级考试C++考试

50 题含答案C++
共 50 题返回本类
1单选题1 / 50
下列叙述中正确的是 。
查看答案
B. 算法的时间复杂度是指执行算法所需要的计算工作量
2单选题2 / 50
在结构化程序设计中,模块划分的原则是 。
查看答案
D. 模块内具有高内聚度,模块间具有低耦合度
3单选题3 / 50
下列叙述中正确的是 。
查看答案
A. 软件测试的主要目的是发现程序中的错误.
4单选题4 / 50
下面选项中不属于面向对象程序设计特征的是 。
查看答案
C. 类比性
5单选题5 / 50
下列对列的叙述正确的是 。
查看答案
D. 队列按“先进先出”原则组织数据
8单选题8 / 50
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。
查看答案
B. 交
10单选题10 / 50
下列叙述中错误的是 。
查看答案
A. 在数据库系统中,数据的物理结构必须与逻辑结构一致.
11单选题11 / 50
为了取代C中带参数的宏,在C++中使用
查看答案
B. 内联函数
12单选题12 / 50
下列关于类定义的说法中,正确的是
查看答案
A. 类定义中包括数据成员和函数成员的声明
13单选题13 / 50
下列关于派生类构造函数和析构函数的说法中,错误的是
查看答案
D. 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
14单选题14 / 50
通过运算符重载,可以改变运算符原有的
查看答案
A. 操作数类型
15单选题15 / 50
有如下函数模板:
template <class T> T souare(T x) (retumx * x ;)
基中T是
查看答案
C. 模板形参
16单选题16 / 50
使用输入输出操作符setw,可以控制
查看答案
B. 输出宽度
18单选题18 / 50
字面常量42、4.2、42L的数据类型分别是
查看答案
C. int、double、long
19单选题19 / 50
执行下列语句段后,输出字符“*”的个数是
for(int i =50;I>1;— i )cout<<”*”
查看答案
B. 49
20单选题20 / 50
有如下程序段
inti =0, j=1;
int&r=i ; // ①
r =j; //②
int*p=&i ; //③
*p=&r ; //④
基中会产生编译错误的语句是
查看答案
A. ④
21单选题21 / 50
有如下函数定义:
void func (int a,int&b) {a++; b++;}
若执行代码段:
intx=0 ,y=1
func(x,y);
则变量x和y值分别是
查看答案
C. 0和2
22单选题22 / 50
有如下程序:
#include<iostream>
using namespace std;
class A{
public
static int a;
void init(){a=1;}
A(int a=2) {init();a++;}
};
int A:;a=0
A obj;
Int main()
{
cout<<obj.a;
retum0;
}
运行时输出的结果是
查看答案
B. 1
23单选题23 / 50
下列有关继承和派生的叙述中,正确的是
查看答案
C. 派生类应当向基类的构造函数传递参数
25单选题25 / 50
下列函数模板的定义中,合法的是
查看答案
A. template<typename T> Tabs(T x) {return x <0 – x: x;}
27单选题27 / 50
有如下程序:
#include<iostream>
using namespace std;
class test {
private:
int a;
public:
test(){cout<<”constructor”<<endl;}
test(int a){cout<<a<<endl;}
test(const test&_test)
{
a=_testa;
cout<<”copy constructor”<<endl;
}
test(){cout<<”destructor”<<endl;}
};
int main()
}
test A(3)
return0;
运行时输出的结果是
查看答案
D. 3
dstructor destruclor
28单选题28 / 50
若有如下类声明
class My Class {
public:
MyClass() {cout<<1;}
};
执行下列语句
MyClass a,b[2],*P[2];
以后,程序的输出结果是
查看答案
B. 111
29单选题29 / 50
有如下程序:
#include<iostream>
using namespace std;
class point {
public:
static int number;
public:
point(){number++;
~point(){number-;}
};
imt point::number=0;
void main(){
point*ptr;
printA,B;
{
point*ptr_point=new point{3};
ptr=ptr_point;
}
pointC;
cout<<point::number<<endl;
delete[]ptr;
}
运行时输出的结果是
查看答案
C. 6
30单选题30 / 50
如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。
#include<iostream>
using namespace std;
class Base{
int a,b;
public:
Bace(int x ,int y) { a=x; b=y;}
Void show(){ cout<<a<<’,’<<b<<endl;}
}
clsaa Derived:public Base {
int c ,d;
public:
Derived(int x,int y,int z,int m):Base(x,y){c=z; d=m;}
Void show(){ cout<<c<<’,’d<<endl;}
};
int main()
{
Base B1(50,50),*pb;
Derived DI(10,20,30,40);
Pb=&D1;
Pb->show();
Return 0;
}
运行时输出的结果是
查看答案
A. 10,20
31单选题31 / 50
有如下程序:
#include<iostream>
using namespace std;
class A
{
public;
A(int i ){x= i ;}
Void sispa(){cout<<x<<’,’;}
Private:
int x ;
};
class B;publicA
{
public;
B(int i):A(i +10) {x =i ;}
voud dispb() {dispa();cout<<x<,endl;}
Private:
Int x;
};
int main()
{
B b(2);
b.dispb()
retum 0:
}
运行时输出的结果是
查看答案
C. 12,2
32单选题32 / 50
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:
#include<iostream>
using namespace std;
class Base
{
public:
virtual void f(){cout<<”f0+”;}
void g() {cout<<”g0+”;}
};
class Derived:public Base
{
public:
void f() {cout<<”f+”;}
void g() {cout<<”g+”;}
};
int main()
{
Derived d;
Base*p=&d;
p->f(); p->g();
return 0:
}
运行时输出的结果是
查看答案
C. f+g0+
33单选题33 / 50
下面程序中对一维坐标点类Point进行运算符重载
#include<iostream>
using namespace std;
class point {
public:
point (int vaI) {x=val;}
point& operator++(){x++;retum*this;}
print operator++(int) {point old=*this,++(*this);retum old;}
int GetX() const {retum x;}
private:
int x;
};
int main()
{
point a(10);
cout<<(++a).GetX();
cout<<a++.GetX();
retum();
}
编译和运行情况是
查看答案
B. 运行时输出1111
34单选题34 / 50
有如下程序:
#include<iostream>
using namespace std;
int main()
{
char str[100],*p;
cout<<”please input a string:”;
cin>>str;
p=str;
for(int i =0;*p!=”\0”;p++, i ++);
cout<< i <<endl;
retum 0;
}
运行这个程序时,若输入字符串为
abcdefg abcd
则输出结果是
查看答案
A. 7
35单选题35 / 50
有如下程序::
#include<iostream>
using namespace std:
class Sample
{
friend long fun (Sample s);
public:
Sample (long a ){x=a;}
Private:
long x;
};
long fun (Sample s)
{
if(s.x<2)retum 1;
retum s.x*fun(Sample(s.x-a));
}
int main()
{
int sum=0
for(int i =0; i <6; i ++) { sum+=fun(Sample( i );) }
cout<<sum;
retum 0;
}
运行时输出的结果是
查看答案
C. 154
37填空题37 / 50
软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 __ 测试。
查看答案
黑盒
39填空题39 / 50
软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。编码和测试属于 __ 阶段。
查看答案
开发
40填空题40 / 50
在结构化分析使用的数据流图(DFD)中,利用 __ 对其中的图形元素进行确切解释。
查看答案
数据字典
43填空题43 / 50
已知一个函数的原型是:
int fn(double x);
若要以5.27为实参调用该函数,应使用表达式 __ 。
查看答案
fn(5.27)
44填空题44 / 50
有如下定义:
class MA{
int value;
public:
MA(int n=0):valut(n){}
};
MA*ta,tb;
其中MA类的对象名标识符是 __ 。
查看答案
tb
45填空题45 / 50
如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容,使拷贝构造函数的声明完整。
Class my Class{
Private:
Int data:
Public:
MyClass(int value); //构造函数
MyClass(const __ another Object); //拷贝构造函数
}
查看答案
myclass&
47填空题47 / 50
有如下程序:
#include<iostream>
using namespace std;
clsaa CA{
public:
CAD{cout<<A’;}
};
class CB ;private CA{
public;
CB(){cout<<B’;}
};
int main(){cout<<B’;}
};
int main(){
CA a;
CB b;
retum0;
}
这个程序的输出结果是 __ 。
查看答案
AAB
49填空题49 / 50
有如下程序:
#include<iostream>
using namespace std;
class DA{
int k;
public:
DA(int x=1): k (x){}
~DA(){cout<<k ;}
};
int main(){
DA d[]={DA(3),DA(3),DA(3)};
DA* p=new DA[2];
delete[]p;
return0;
}
这个程序的输出结果是 __ 。
查看答案
11333
50填空题50 / 50
C++语言中的多态性分为编译时的多态性和 __ 时的多态性。
查看答案
运行
← 上一卷下一卷 →