计算机二级考试C++笔试试题Word下载.docx
- 文档编号:20261712
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:25.72KB
计算机二级考试C++笔试试题Word下载.docx
《计算机二级考试C++笔试试题Word下载.docx》由会员分享,可在线阅读,更多相关《计算机二级考试C++笔试试题Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
B)椭圆形
C)菱形
D)平行四边形
10.
10) 下列叙述中错误的是
A)在数据库系统中,数据的物理结构必须与逻辑结构一致
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库设计是指在已有数据库管理系统的基础上建立数据库
D)数据库系统需要操作系统的支持
11.
11) 为了取代C中带参数的宏,在C++中使用
A)重载函数
B)内联函数
C)递归函数
D)友元函数
12.
12) 下列关于类定义的说法中,正确的是
A)类定义中包括数据成员和函数成员的声明
B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的\TAB
D)成员函数只能在类体外进行定义
13.
13) 下列关于派生类构造函数和析构函数的说法中,错误的是
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
14.
14) 通过运算符重载,可以改变运算符原有的
A)操作数类型
B)操作数个数
C)优先级
D)结合性
15.
15) 有如下函数模板:
template <
class T>
T square(T x) { return x * x;
}
其中T是
A)函数形参
B)函数实参
C)模板形参
D)模板实参
16.
16) 使用输入输出操作符setw,可以控制
A)输出精度
B)输出宽度
C)对齐方式
D)填充字符
17.
17) 下列字符串中,不可以用作C++标识符的是
A)y_2006
B)__TEST_H
C)Return
D)switch
18.
18) 字面常量42、4.2、42L的数据类型分别是
A)long、double、int
B)long、float、int
C)int、double、long
D)int、float、long
19.
19) 执行下列语句段后,输出字符“*”的个数是
for (int i=50;
i>
1;
--i) cout <
<
'
*'
;
A)48
B)49
C)50
D)51
20.
20) 有如下程序段:
int i = 0, j = 1;
int &
r = i;
// ①
r = j;
// ②
int *p = &
i;
// ③
*p = &
r;
// ④
其中会产生编译错误的语句是
A)④
B)③
C)②
D)①
21.
21) 有如下函数定义:
void func(int a, int&
b) { a++;
\TAB b++;
若执行代码段:
int x = 0, y = 1;
func(x, y);
则变量x和y的值分别是
A)0和1
B)1和1
C)0和2
D)1和2
22.
22) 有如下程序:
#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;
return 0;
}\TAB
运行时输出的结果是
A)0
B)1
C)2
D)3
23.
23) 下列有关继承和派生的叙述中,正确的是
A)派生类不能访问基类的保护成员
B)作为虚基类的类不能被实例化
C)派生类应当向基类的构造函数传递参数
D)虚函数必须在派生类中重新实现
24.
24) 下列运算符中,不能被重载的是
A)&
&
B)!
=
C).
D)++
25.
25) 下列函数模板的定义中,合法的是
A)template <
typename T>
T abs(T x) { return x <
0 ?
–x :
x;
B)template class <
T>
C)template T <
abs(T x) { return x <
D)template T abs(T x) { return x <
26.
26) 在语句cin>
>
data;
中,cin是
A)C++的关键字
B)类名
C)对象名
D)函数名
27.
27) 有如下程序:
#include<
class test {
private:
int a;
public:
test(){cout<
"
constructor"
endl;
}
test(int a){cout<
a<
test(const test &
_test)
{
a=_test.a;
\TAB
cout<
copy constructor"
}
~test(){cout<
destructor"
test A(3);
}
A)3
B)constructor
destructor
C)copy constructor
28.
28) 若有如下类声明
class MyClass {
MyClass() { cout <
1;
执行下列语句
MyClass a,b[2],*p[2];
以后,程序的输出结果是
A)11
B)111
C)1111
D)11111
29.
29) 有如下程序:
class Point {
static int number;
Point(){number++;
~Point(){number--;
int Point:
number=0;
void main() {\TAB
Point *ptr;
Point A, B;
{
Point* ptr_point=new Point[3];
ptr=ptr_point;
}
Point C;
cout<
Point:
number<
delete[] ptr;
B)4
C)6
D)7
30.
30) 如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。
有如下程序,没有使用多态机制。
class Base {
int a,b;
Base(int x, int y) { a=x;
b=y;
void show(){ cout<
'
'
b<
\TAB }
class Derived:
public Base {
int c,d;
Derived(int x,int y,int z,int m):
Base(x,y){c=z;
d=m;
c<
d<
Base B1(50,50),*pb;
Derived D1(10,20,30,40);
pb=&
D1;
pb->
show();
A)10,20
B)30,40
C)20,30
D)50,50
31.
31) 有如下程序:
class A
A (int i) { x = i;
void dispa () { cout <
x <
private :
int x ;
class B :
public A
B(int i) :
A(i+10) { x = i;
void dispb() { dispa();
cout <
endl;
int x ;
B b
(2);
b.dispb();
A)10,2
B)12,10
C)12,2
D)2,2
32.
32) 虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。
而非虚函数不支持多态调用。
有如下程序:
class Base
virtual void f() { cout <
"
f0+"
void g() { cout <
g0+"
class Derived :
public Base
void f() { cout <
f+"
g+"
int main()
Derived d;
Base *p = &
d;
p->
f();
p->
g();
A)f+g+
B)f0+g+
C)f+g0+
D)f0+g0+
33.
33) 下面程序中对一维坐标点类Point进行运算符重载
Point (int val) { x = val;
Point&
operator ++() { x++;
return *this;
Point operator ++(int) { Point old = *this;
++(*this);
return old;
int GetX() const { return x;
private:
int x;
Point a(10);
(++a).GetX();
a++.GetX();
编译和运行情况是
A)运行时输出1011\TAB
B)运行时输出1111\TAB
C)运行时输出1112\TAB
D)编译有错
34.
34) 有如下程序:
char str[100], *p;
Please input a string:
cin>
str;
p=str;
for(int i=0;
*p!
='
\0'
p++,i++);
i<
运行这个程序时,若输入字符串为
abcdefg abcd
则输出结果是
A)7
B)12
C)13
D)100
35.
35) 有如下程序:
class Sample
friend long fun (Sample s);
Sample (long a) { x = a;
long x;
long fun (Sample s)
if (s.x <
2) return 1;
return s.x * fun(Sample(s.x-1));
int sum = 0;
for (int i=0;
i<
6;
i++){ sum += fun(Sample(i));
sum;
A)120
B)16
C)154
D)34
二、填空题(每空2分,共计30分)
1.1) 在深度为7的满二叉树中,度为2的结点个数为【1】。
输入答案,中间不含空格:
2) 软件测试分为白箱(盒)测试和黑箱(盒)测试。
等价类划分法属于【2】测试。
3) 在数据库系统中,实现各种数据管理功能的核心软件称为【3】。
4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。
编码和测试属于【4】阶段。
5) 在结构化分析使用的数据流图(DFD)中,利用【5】对其中的图形元素进行确切解释。
6) C++中只有两个逻辑常量:
true和 【6】。
7) 若要访问指针变量p所指向的数据,应使用表达式 【7】。
8) 已知一个函数的原型是:
int fn(double x);
若要以5.27为实参调用该函数,应使用表达式 【8】。
9) 有如下定义:
class MA{
int value;
MA(int n=0):
value (n){}
MA *ta,tb;
其中MA类的对象名标识符是 【9】。
10) 如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的
内容,使拷贝构造函数的声明完整。
class myClass{
int data ;
myClass(int value);
//构造函数
myClass(const 【10】 anotherObject);
//拷贝构造函数
11) 用来派生新类的类称为 【11】 ,而派生出的新类称为它的子类或派生类。
12) 有如下程序:
class CA{
CA(){ cout<
A'
class CB:
private CA{
CB(){ cout<
B'
int main(){
CA a;
CB b;
这个程序的输出结果是 【12】。
13) 若将一个二元运算符重载为类的成员函数,其形参个数应该是 【13】 个。
14) 有如下程序:
class DA{
int k;
DA(int x=1):
k(x){}
~DA(){ cout<
k;
DA d[]={DA(3),DA(3),DA(3)};
DA *p=new DA[2];
delete []p;
这个程序的输出结果是 【14】 。
15) C++语言中的多态性分为编译时的多态性和 【15】 时的多态性。
答案:
序号
正确答案
1
B
2
D
3
A
4
C
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
63
37
黑盒
38
数据库管理系统
39
开发
40
数据字典
41
false
42
*p
43
fn(5.27)
44
tb
45
myClass&
46
基类或父类
47
AAB
48
49
11333
50
运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 C+ 笔试 试题