计算机类二级C++

2008年4月全国计算机等级考试二级C++笔试试题

50 题含答案C++
共 50 题返回本类
1单选题1 / 50
程序流程图中带有箭头的线段表示的是(    )。
查看答案
C. 控制流
2单选题2 / 50
结构化程序设计的基本原则不包括(    )。
查看答案
A. 多元性
3单选题3 / 50
软件设计中模块划分应遵循的准则是(    )。
查看答案
B. 高内聚低耦合
4单选题4 / 50
在软件开发中,需求分析阶段产生的主要文档是(    )。
查看答案
B. 软件需求规格说明书
5单选题5 / 50
算法的有穷性是指(    )。
查看答案
A. 算法程序的运行时间是有限的
6单选题6 / 50
对长度为n 的线性表排序,在最坏情况下,比较次数不是n(n-1)/2 的排序方法是(    )。
查看答案
D. 堆排序
7单选题7 / 50
下列关于栈的叙述正确的是(    )。
查看答案
B. 栈按“先进后出”组织数据
8单选题8 / 50
在数据库设计中,将E-R 图转换成关系数据模型的过程属于(    )。
查看答案
C. 逻辑设计阶段
9单选题9 / 50
有三个关系R、S 和T 如下:
R S T
B C D
a 0 k1
b 1 n1
由关系 R 和S 通过运算得到关系T,则所使用的运算为(    )。
查看答案
D. 交
10单选题10 / 50
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC
(学号,课号,成绩),则表SC 的关键字(键或码)为(    )。
查看答案
C. 学号,课号
11单选题11 / 50
下列有关函数重载的叙述中,错误的是(    )。
查看答案
C. 重载函数的返回值类型必须不同
12单选题12 / 50
下列有关类成员的叙述中,正确的是(    )。
查看答案
B. 类成员的默认访问权限是私有的
13单选题13 / 50
下列有关类继承的叙述中,错误的是(    )。
查看答案
D. 派生类没有继承基类的私有成员
14单选题14 / 50
下列有关运算符重载的叙述中,正确的是(    )。
查看答案
A. 运算符重载是多态性的一种表现
15单选题15 / 50
下列有关模板的叙述中,正确的是(    )。
查看答案
B. 函数模板的一个实例就是一个函数定义
16单选题16 / 50
下列有关C++流的叙述中,错误的是(    )。
查看答案
A. C++操作符setw 设置的输出宽度永久有效
18单选题18 / 50
已知枚举类型声明语句为:
enum COLOR{ WHITE,YELLOW,GREEN=5,RED,BLACK=10 };
则下列说法中错误的是(    )。
查看答案
D. 枚举常量WHITE 的值为1
19单选题19 / 50
执行下列语句段后,输出字符“*”的个数是(    )。
for (int i=50; i>1; I-=2)cout<<'*';
查看答案
B. 25
20单选题20 / 50
有如下定义:
int a[5]={1,3,5,7,9},*p=a;
下列表达式中不能得到数值5 的是(    )。
查看答案
B. a[3]
21单选题21 / 50
已知函数f 的原型是void f(int *a, long & b);,变量v1、v2 的定义是:
int v1; loong v2;
下列调用语句中正确的是(    )。
查看答案
D. f(&v1, v2);
22单选题22 / 50
有如下类定义:
class Point{
private;
static int how_many;
};
______ how_many=0;
要初始化Point 类的静态成员how_many,下划线处应填入的内容是(    )。
查看答案
C. int Point::
23单选题23 / 50
在下列关键字中,不能用来表示继承方式的是(    )。
查看答案
B. static
24单选题24 / 50
已知Value 是一个类,Value 是Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(    )。
查看答案
B. Value operator+(Value v=value, int i);
25单选题25 / 50
下面是一个模板声明的开始部分:
templute<typename T> double __
由此可知(    )。
查看答案
A. 这可能是一个函数模板的声明
26单选题26 / 50
有如下4 个语句:
① cout<<'A'<<setfill('*')<<left<<setw(7)<<'B'<<endl;
② cout<<setfill('*')<<left<<setw(7)<<'A'<<'B'<<endl;
③ cout<<'A'<<serfill('*')<<right<<setw(7)<<'B'<<endl;
④ cout<<setfill('*')<<right<<setw(7)<<'A'<<'B'<<endl;
其中能显示A******B 的是(    )。
查看答案
C. ②和③
27单选题27 / 50
有如下类定义:
class MyClass{
Int value;
public;
MyClass(int n): value (n) {}
int gerValue()const{ return value;}
};
则类MyClass 的构造函数的个数是(    )。
查看答案
A. 1 个
28单选题28 / 50
有如下类和对象的定义:
class Constants{
public;
static double getPI(){return 3.1416;}
};
Constants constants;
下列各组语句中,能输出3.1416 的是(    )。
查看答案
D. cout<<constants.getPI();和cout<<Constants::getPI();
29单选题29 / 50
有如下程序:
#include<iostream>
using namespace std;
class VAC{
public;
int f() const { return 3; }
int f() {return 5;}
};
Int main(){
VAC v1;
const VAC v2;
cout<<v1.f()<<v2.f();
feturn 0;
}
运行时的输出结果是(    )。
查看答案
A. 53
30单选题30 / 50
有如下类声明:
class Base{
protected;
int amount;
public;
Base(int n=0): amount(n){}
int getAmount()const { retum amount; }
};
class Derived: public Base {
protected;
int value;
public;
Derived(int m, int n): value(m). Base(n){}
Int getData()const{ return value+amount; }
};
已知x 是一个Derived 对象,则下列表达式中正确的是(    )。
查看答案
B. x.getData()-x.gctAmount()
31单选题31 / 50
有如下程序:
#include<iostream>
using namespace std;
class Base {
int x;
public;
Base{int n=0}; x(n){cout<<n;}
Int getX()const{return x;}
};
class Derived public Base{
int y;
public;
Derived(int m, int n): y(m), Base(n){cout<<m;}
Derived(int m): y(m){cout<<m;}
};
int main(){
Derived dl(3), d2(5,7);
Return 0;
}
运行时的输出结果是(    )。
查看答案
C. 0375
32单选题32 / 50
下列有关抽象类和纯虚函数的叙述中,错误的是(    )。
查看答案
D. 纯虚函数都不能有函数体
33单选题33 / 50
有如下程序:
#include<iostream>
Using namespace std;
Class Amount{
int amount;
public;
Amount(int n=0): amount(n){}
Int getAmount()const{return amount;}
Amount &operator +=(Amount a){
amount+=a.amount;
return ;
}
};
int main(){
Amount x(3),y(7);
x+=y;
cout<<x.getAmount()<<endl;
return 0;
}
已知程序的运行结果是10,则下划线处缺失的表达式是(    )。
查看答案
D. amount
34单选题34 / 50
下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是(    )。
查看答案
B. cout<<left<<setw(5)<<357;
35单选题35 / 50
有如下程序:
#include<iostream>
using namespace std;
class GA{
public;
virtual int f(){retum l;}
};
class GB: public GA{
public;
virtual int f(){return 2;}
};
void show(GA g){cout<<g.f();}
void display(GA &g){cout<<g.f();}
int main(){
GA a: show(a); display(a);
GB b: show(b); display(b);
retum 0;
}
运行时的输出结果是(    )。
查看答案
C. 1112
38填空题38 / 50
设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有 __个元素。
查看答案
24
40填空题40 / 50
在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中, __负责数据的模式定义与数据的物理存取构建。
查看答案
数据定义语言
41填空题41 / 50
在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象的概念,属于该类的一个实例叫做“__”。
查看答案
对象
46填空题46 / 50
有如下程序:
#include <iostream>
using namespace std;
class Base{
public;
int m,n;
};
class Derived1: __Base{};
class Derived2: public Derived1{
public:
void SetMN(int M, int N){ M=M; n=N; }
int GetSumMN(){ retum (m+n); }
};
int main(){
Derived2 objD;
objD.SetMN(3,4);
cout<<"M+N="<<objD.m+bojD.n<<endl;
retum 0;
}
编译时只有“cout<<"M+N="<<objD.m+bojD.n<<endl;”有语法错误,程序的其他地方没有语法错误,请判断下
划线处使用的关键字是什么。
查看答案
private
47填空题47 / 50
有如下程序:
#include <iostream>
using namespace std;
class Base{
int b;
public;
Base(int i) { b=i; }
void disp(){cout<<"Base: b="<<b<<;}
};
class basel; virtual public Base{
public;
Base1(int i): Base(i){}
};
class Base2:virtual public Basc{
public;
Base2(int i):Base(i){}
};
class Derived:public Base2.public Base1{
int d;
public;
Derived(int I,int j):Base1(j), Base2(j), __
{ d=i; }
void disp() {cout<<"Derived: d="<<d<<"; }
};
int main(){
Derived objD(1,2); objD.disp();
objD.Basce::disp();
objD.Basce1::disp();
objD.Basce2::disp();
return 0;
}
请将程序补充完整,使程序在运行时输出:
Derived: d=1 Base: b=2 Base: b=2 Base: b=2
查看答案
Base(j)
48填空题48 / 50
如下程序声明了一个电话号码类PhoneNumber,重载了流插入运算符<<,以便于电话号码的输出。请将程序补
充完整。
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class PhoneMumber{
public;
void setNumber(string number){ this->number=number; }
//重载流插入操作符
friend__ (ostream &output, const PhoneNumber &num)
{ output<<num.number; return output; }
private;
string number;
};
int main(){
PhoneNumber phone;
phone.setNumber("8008100598");
cout <<"The phone number is:"<<phone << end1;
return 0;
}
查看答案
PhoneNumber operator <<
49填空题49 / 50
如下程序声明了一个二维图形类TwoDShape,从其派生出矩形类Rec。
#include <iostream>
#include <string>
using namespace std;
class TwoDShape{ //二维图形类
char name[20];
public;
TwoDShape(char *n="unknown"){
strcpy(name, n);
}
char *getNa:ne(){ return name; }
__=0;
};
class Rec : public TwoDShape{
double width, height;
public;
Rec (double w=0.0, double h=0.0):TwoDShape("rectamgle")
{ width = w; height = h; }
double getWidth(){ return width; }
double getHeight(){ return height;}
double area(){ return width*height; }
};
int main(){
TwoDShape *shape;
shape = new Rec(2.1, 3.0);
cout <<"object is"<<shape->getName()<<"\n";
cout <<"Area is"<<shape->area()<<"\n";
return 0;
}
请将程序补充完整,使程序在运行时输出:
object is triangle
Area is 6.3
查看答案
virval double area()
50填空题50 / 50
如下程序声明了一个使用两个通用数据类型的模板类dataClass,其中构造函数用于初始化两个数据成员,成员
函数show 用于输出两个数据成员的数值。
#include <iostream>
using namespace std;
__
T1 i;
T2 j;
public;
dataClass(T1 a T2 b){ i = a; j=b; }
void show(){ cout << i <<", "<<j<<'\n'; }
};
int main(){
dataClass<int, double> ob1(10, 0.23);
dataClass<char, char *>ob2('X', "my data");
ob1.show();
ob2.show();
retum 0;
}
请将程序补充完整,使程序在运行时输出:
10, 0.23
X, my data__
查看答案
templateclass dataClass
← 上一卷下一卷 →