二级C++-208
(总分82,考试时间90分钟)
include和contain一、选择题
1. 有如下类定义:
class B
{
public: void fun1() {}
private: void fun2() {}
protected: void fun3() {}
};
class D: public B
{
protected: void fun4() {}
};
若obj是类D的对象,则下列语句中不违反访问控制权限的是______。
A. obj. fun1(); B. obj. fun2();
C. obj. fun3(); D. obj. fun4();
2. 如下程序运行时的输出结果是
#include<iostream>
using namespace std;
class ONE{
int c;
public:
ONE( ):c(0){eout<<1;}
ONE(int n):C(n){cout<<2;}
};
class TW0{
ONE onel;
ONE one2;
public:
TWO(int m):one2(m){eout<<3;}
};
int main( ){
TWO t(4);
return 0;
}
A. 3 B. 23
C. 123 D. 213
3. 判断字符型变量ch是否为大写英文字母,应使用表达式______。
A. ch>="A"&ch<="Z" B. ch<="A"||ch>="Z"
C. "A"<=ch<="Z" D. ch>="A"&&ch<="Z"
4. 有如下程序:
#include < iostream >
using namespaee std;
class Basel
{
public :
Basel(int d) { cout <<d; }
~Basel () {}
};
class Base2
{
public :
Base2 ( int d) { cout << d ; }
~Base2() {}
};
class Derived : public Base1 ,Base2
{
public :
Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) {}
private :
int b1 ;
int b2 ;
};
int main()
{
Derived d(1,2,3,4) ;
return 0 ;
}
执行这个程序的输出记过是____。
A. 1234 B. 2134
C. 12 D. 21
5. 对下列二叉树
进行中序遍历的结果是____。
A. ACBDFEG B. ACBDFGE
C. ABDCGEF D. FCADBEG
6. 若已经声明了函数原型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是______。
A. bool fun(bool a=true,int b=0); B.int fun(bool a,int B);
B. void fun(double a,int
C. ;
D. void fun(bool a,int b=0);
7. 若MyClass为一个类,执行“MyClass a[4],*p[5];”语句时会自动调用该类构造函数的次数是______。
A. 2 B. 5
C. 4 D. 9
8. 假设函数fun已经定义,其原型为“void fun(int a,int b=7,char*p="*");”下列函数调用中错误的是______。
A. fun(5) B. fun(5,8)
C. fun(6,"##") D. fun(0,0,"==")
9. 有如下类声明:
class Foo{ int bar;};
则Foo类的成员bar是______。
A. 公有数据成员 B. 公有成员函数
C. 私有数据成员 D. 私有成员函数
10. 包容类Contain和内嵌类Embed定义如下:
#include<iostream.h>
class Contain
{
private:
int X;
protected:
int z;
public:
class Embed
{
private:
int y;
public:
Embed(){y=100;}
int Embed_Fun();
}MyEmbed;
int Contain_Fun();
};
对上面的定义,正确的描述是____。
A. 定义类Embed对象的语句是:Contain? Embed embed;
B. 类Contain的成员函数Contain_Fun()中可以用MyEmbe D.y的方式访问类Embed的私有成员y
C. 类Embed的成员函数Embed_Fun()中可以直接访问Contain的私有成员x
D. 类Embed的成员函数Embed_Fun()中可以直接访问Contain的保护成员Z
11. 有如下类定义:
class Bag{
public:
Bag(int p=200, char s="M"):price(p), size(s) {cout<<size; }
private:
int price;
char size;
};
若执行语句Bag Alice, Kelly(Mice), *Twins[2], F4[4];
则输出结果为______。
A. MMMMMMMM B. MMMMMM
C. MMMMM D. MMMM
12. 下列关于模板的描述中,错误的是______。
A. 类模板的成员函数都是模板函数
B. 函数模板是一种参数化类型的函数
C. 满足一定条件时可以省略模板实参
D. 模板形参只能由关键字typename声明
13. 从工程管理角度,软件设计一般分为两步完成,它们是____。
A. 概要设计与详细设计 B. 数据设计与接口设计
C. 软件结构设计与数据设计 D. 过程设计与数据设计
14. 假定其中的x的单位是角度且不考虑丌的值的精度,则与数学公式等价的C++语言表达式是______。
A. sqrt(cos(x))
B. sqrt(abs(cos(x*3.14/180)))
C. sqrt(abs(cos(x*(/180)))
D. sqrt(fabs(cos(x*3.14/180)))
15. 下列关于虚函数的说明中,正确的是______。
A. 从虚基类继承的函数都是虚函数 B. 虚函数不得是静态成员函数
C. 只能通过指针或引用调用虚函数 D. 抽象类中的成员函数都是虚函数
16. 有如下程序:
#include<iostream>
using namespace std;
class A{
public:
A(int i):r1(i){}
void print() {cout<<"E"<<r1<<"-";}
void print() const {cout<<"C"<<r1*r1<<"-";}
private:
int r1;
};
int main(){
A a1(2); const A a2(4);
a1.print(); a2.print();
return 0;
}
运行时的输出结果是______。
A. 运行时出错 B. E2-C16-
C. C4-C16- D. E2-E4-
17. 下面程序的输出结果为____。
#include<iostream.h>
class TestClass
{
public:
TestClass (){val++;}
static int val;
};
int TestClass::val=0;
void main()
{
TestClass cs1;
cout<<cs1.val<<"";
TestClass cs2;
TestClass cs3,cs4;
cout<<cs2.val<<endl;
}
A. 03 B. 13
C. 14 D. 24
18. 有3个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为______。
A. .并 B. 自然连接
C. 笛卡儿积 D. .交
19. 已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是______。
A. 这是运算符一的重载运算符函数 B. 这个函数所重载的运算符是一个一元运算符
C. 这是一个成员函数 D. 这个函数不改变类的任何数据成员的值
20. 有如下程序:
#include<iostream>
using namespace std;
void f1(int& x,int& y){int z=x;x=y;y=z;}
void f2(int x,int y){int z=x;x=y;y=z;}
int main(){
int x=10,y=26;
f1(x,y);
f2(x,y);
cout<<y<<endl;
return 0;
}
运行时的输出结果是______。
A. 10 B. 16
C. 26 D. 36
21. 在软件设计中,不属于过程设计工具的是______。
A. PDL(过程设计语言) B. PAD图
C. N-S图 D. DFD图
22. 下列描述中正确的是______ 。
A. 程序就是软件 B. 软件开发不受计算机系统的限制
C. 软件既是逻辑实体,又是物理实体 D. 软件是程序、数据与相关文档的集合
23. 下列叙述中,错误的是______。
A. false是一个逻辑型常量 B. "b"是一个字符型常量
C. 365是一个int常量 D. 3.1415926是一个double常量
24. 下列程序执行后,输出的结果是______。
int x=-5,y=0;
while(++x)
y++;
cout<<y<<endl;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论