覆盖超星/学习通/尔雅等10+学习平台 | 历年真题+答案解析+模拟试卷 | 免费下载 实时更新 精准检索
超星学习通无面向对象程序设计Ⅱ作业答案
超新学习通 2025-04-12 07:07:09 0 0
广告示例

想要快速找到正确答案?

立即关注 九八五题库微信公众号,轻松解决学习难题!

随机漂浮广告
超星学习通无面向对象程序设计Ⅱ作业答案

作业论文指导

扫码关注
作业论文指导,轻松解决学习难题!

超星学习通无面向对象程序设计Ⅱ作业答案

面向对象程序设计Ⅱ

学校: 无

问题 1: 1. 有关类的说法不正确的是( )。

选项:

A. 类是一种用户自定义的数据类型

B. 类中的成员函数能直接存取类中的私有数据

C. 在类中,如果不作特别说明,所有的数据均为私有类型

D. 在类中,如果不作特别说明,所有的成员函数均为公有类型

答案: 在类中,如果不作特别说明,所有的成员函数均为公有类型

问题 2: 2. 关于成员函数特征的下述描述中,( )是错误的。

选项:

A. 成员函数一定是内联函数

B. 成员函数可以重载

C. 成员函数可以设置参数的默认值

D. 成员函数可以是静态的

答案: 成员函数一定是内联函数

问题 3: 3. 对于类中定义的成员,其隐含访问权限为( )。

选项:

A. public

B. protected

C. private

D. static

答案: private

问题 4: 4. 在类定义中,三种访问限定符出现的次数为( )。

选项:

A. 至少一次

B. public至少一次

C. 至多一次

D. 任意多次

答案: 任意多次

问题 5: 5. 在类的定义形式中,数据成员、成员函数和( )组成了类定义体。

选项:

A. 成员的访问控制属性

B. 公有消息

C. 私有消息

D. 保护消息

答案: 成员的访问控制属性

问题 6: 6. 在C++程序中,对象之间的相互通信是通过( )实现的。

选项:

A. 继承

B. 调用成员函数

C. 封装

D. 函数重载

答案: 调用成员函数

问题 7: 7. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; class shownumtype { public: void show(int); void show(float); }; void shownumtype::show(int i) { cout<<"Integer"<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 8: 1. C++鼓励程序员将( )。

选项:

A. 数据和操作分别封装

B. 不同类型的数据封装在一起

C. 数据和操作封装在一起

D. 不同作用的操作封装在一起

答案: 请关注公众号【九八五题库】查看答案

问题 9: 2. 在C++中实现封装主要是借助于( )。

选项:

A. 枚举

B. 类

C. 数组

D. 函数

答案: 请关注公众号【九八五题库】查看答案

问题 10: 1. 对于拷贝构造函数,正确的描述是( )。

选项:

A. 在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数

B. 必须为每个类定义拷贝构造函数

C. 如果要使用拷贝构造函数,则必须在类中先定义

D. 当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数

答案: 请关注公众号【九八五题库】查看答案

问题 11: 2. 关于析构函数的描述中,正确的是( )。

选项:

A. 析构函数的函数类型是void

B. 析构函数名与类名不同

C. 析构函数不能有参数

D. 析构函数用于撤销对象

答案: 请关注公众号【九八五题库】查看答案

问题 12: 3. ( )是析构函数的特征。

选项:

A. 析构函数名与类名无关

B. 一个类中只能定义一个析构函数

C. 析构函数的定义只能在类体内

D. 析构函数可以有一个或多个参数

答案: 请关注公众号【九八五题库】查看答案

问题 13: 4. 若类A的构造函数定义为 A(int aa=1, int bb=0) { a = aa; b = bb; } 则执行:A x(4);后,x.a和x.b的值分别是( )。

选项:

A. 1, 0

B. 1, 4

C. 4, 0

D. 4, 1

答案: 请关注公众号【九八五题库】查看答案

问题 14: 5. 以下程序运行时的输出结果是( )。 #include using namespace std; class XCF{ int a; public: XCF(int aa=0): a(aa){cout<<1;} XCF(XCF & x){a=x.a; cout<<2;} ~XCF(){cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 15: 1. 下面有关类说法中,不正确的是( )。

选项:

A. 一个类可以有多个构造函数

B. 一个类只有一个析构函数

C. 析构函数需要指定参数

D. 在一个类中可以说明具有类类型的数据成员

答案: 请关注公众号【九八五题库】查看答案

问题 16: 2. ( )不是构造函数的特征。

选项:

A. 构造函数的函数名与类名相同

B. 构造函数可以重载

C. 构造函数可以设置默认参数

D. 构造函数必须指定类型说明

答案: 请关注公众号【九八五题库】查看答案

问题 17: 3. 有如下程序: #include using namespace std; class ONE{ int c; public: ONE(): c(0){cout<<1;} ONE(int n): c (n){cout<<2;} }; class TWO{ ONE onel; ONE one2; public: TWO(int m): one2(m){cout<<3;} }; int main(){ TWO t(4); return 0; } 运行时的输出结果是( )。

选项:

A. 3

B. 23

C. 123

D. 213

答案: 请关注公众号【九八五题库】查看答案

问题 18: 4. 如下程序的输出结果是( )。 #include using namespace std; class B1 { int b1; public: B1(int i=0) { b1=i; } ~B1() { cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 19: 5. 有如下程序: #include using namespace std; class Point { int x, y; public: Point(int x1=0, int y1=0):x(x1), y(y1) { } int get(){return x+y;} }; class Circle { Point center; int radius; public: Circle(int cx, int cy, int r):center(cx, cy), radius(r) { } int get() {return center.get()+radius;} }; int main(){ Circle c(3,4,5); cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 20: 1. 有如下程序: #include using namespace std; class Point { int x, y; public: Point(int x1=0, int y1=0):x(x1), y(y1) { } int get(){return x+y;} }; class Circle { Point center; int radius; public: Circle(int cx, int cy, int r):center(cx, cy), radius(r) { } int get() {return center.get()+radius;} }; int main(){ Circle c(3,4,5); cout<

选项:

A. 5

B. 7

C. 9

D. 12

答案: 请关注公众号【九八五题库】查看答案

问题 21: 2. 对于C++结构体中定义的成员,其隐含的访问权限为( )。

选项:

A. public

B. protected

C. private

D. static

答案: 请关注公众号【九八五题库】查看答案

问题 22: 3. 下列有关C++类的构造函数的说法中,正确的是( )。

选项:

A. 可以重载,可有缺省参数,函数名与类名相同,不能有返回类型

B. 函数体的定义必须位于类定义体中

C. 不能重载,不能有返回类型

D. 不可带参数

答案: 请关注公众号【九八五题库】查看答案

问题 23: 4. C++类成员的缺省访问属性是( )。

选项:

A. public

B. private

C. protected

D. friend

答案: 请关注公众号【九八五题库】查看答案

问题 24: 5. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; class Example { int x,y; public: Example(int X,int Y) { cout<<"Constructing..."<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 25: 1. 有如下程序段: int i=4; int j=1; int main(){ int i=8, j=i; cout<

选项:

A. 44

B. 41

C. 88

D. 81

答案: 请关注公众号【九八五题库】查看答案

问题 26: 2. 在函数定义中的形参属于( )。

选项:

A. 全局变量

B. 局部变量

C. 静态变量

D. 寄存器变量

答案: 请关注公众号【九八五题库】查看答案

问题 27: 3. 在C++中,作用域运算符(::)常用的功能是( )。

选项:

A. 标识作用域的级别

B. 指出作用域的范围

C. 给定作用域的大小

D. 标识某个成员属于哪个类

答案: 请关注公众号【九八五题库】查看答案

问题 28: 4. 局部变量可以隐藏全局变量,在有同名全局变量和局部变量的情形时,可以用( )提供对全局变量的访问。

选项:

A. 引用

B. 重载

C. 类运算符

D. 域运算符

答案: 请关注公众号【九八五题库】查看答案

问题 29: 5. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; int a; int main() { int a(20); { int a; a=10; ::a=5; cout<<"a="<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 30: 1. 关于局部变量的说法中,不正确的是( )。

选项:

A. 函数声明中的形式参数名在函数被调用时分配内存空间

B. 不同的函数中可以定义同名的局部变量

C. 函数定义中的形式参数名也是局部变量

D. 局部变量只在定义它的函数或复合语句(块)中有效

答案: 请关注公众号【九八五题库】查看答案

问题 31: 2. 在下列存储类标识符中,可见性和存在性不一致的是( )。

选项:

A. 外部类

B. 自动类

C. 内部静态类

D. 寄存器类

答案: 请关注公众号【九八五题库】查看答案

问题 32: 3. 下列关于变量和作用域运算符的说法中错误的是( )。

选项:

A. 在用一作用域中不能说明同名变量,但不同作用域中可以说明同名变量

B. 作用域运算符提供了在局部作用域内引用同名的全局变量的方法

C. 不同的作用域内可以定义同名的变量

D. 全局变量不能自动初始化

答案: 请关注公众号【九八五题库】查看答案

问题 33: 4. 下列关于函数参数的叙述中,正确的是( )。

选项:

A. 在函数原型中不必声明形参类型

B. 函数的实参和形参共享内存空间

C. 函数形参的生存期与整个程序的运行期相同

D. 函数的形参在函数被调用时获得初始值

答案: 请关注公众号【九八五题库】查看答案

问题 34: 5. 如下程序运行时输出的第一行到第三行分别是( ),( )和( )。 #include using namespace std; int i=1; void other() { static int a=1; int b=1,i=2; a++;++i; b+=2; cout << i << a << b << endl; } int main() { static int a; int b=1; i+=2; other(); cout << i << a << b << endl; i+=2; other(); return 0; }

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 35: 1. 有如下程序: #include #include using std::cout; class Point{ public: friend double distance(const Point &p); //p距原点的距离 Point(int xx=0, int yy=0): x(xx), y(yy){} //① private: int x, y; }; double distance(const Point &p) { //② return sqrt(p.x*p.x+p.y*p.y); } int main( ){ Point p1(3, 4); cout<

选项:

A. 程序编译正确

B. 程序编译时语句①出错

C. 程序编译时语句②出错

D. 程序编译时语句③出错

答案: 请关注公众号【九八五题库】查看答案

问题 36: 2. 若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。

选项:

A. a

B. AA.a

C. a()

D. AA::a()

答案: 请关注公众号【九八五题库】查看答案

问题 37: 3. 下列各种函数中,( )不是类的成员函数。

选项:

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

答案: 请关注公众号【九八五题库】查看答案

问题 38: 4. 已知f1和f2是同一个类的两个成员函数,但f1不能调用f2,下列选项中符合要求的是( )。

选项:

A. f1和f2都是静态函数

B. f1和f2都不是静态函数

C. f1是静态函数,f2不是静态函数

D. f1不是静态函数,f2是静态函数

答案: 请关注公众号【九八五题库】查看答案

问题 39: 5. 如下程序运行时输出的第一行到第三行分别是( ),( )和( )。 #include using namespace std; class A { int i,j; static int c; public: A(int a=0,int b=0) { i=a; j=b; c++; } ~A() { c--; } static void f() { cout<<"c="<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 40: 1. f()函数是类的一个常成员函数,它有一个int型参数,并且返回类型为int。下列对该常成员函数进行声明的选项中,正确的是( )。

选项:

A. int f(int) const;

B. const int f(int);

C. int f(const int);

D. const int f(const int);

答案: 请关注公众号【九八五题库】查看答案

问题 41: 2. 关于常成员函数的说法中,不正确的是( )。

选项:

A. const是常成员函数类型的组成部分

B. 常对象只能引用常成员函数,而不能引用非常成员函数

C. 常成员函数中不能调用非常成员函数

D. 常成员函数可以引用和修改类的非常数据成员

答案: 请关注公众号【九八五题库】查看答案

问题 42: 3. 不能作为函数重载判断依据的是( )。

选项:

A. 参数个数

B. 参数类型

C. 返回值类型

D. const

答案: 请关注公众号【九八五题库】查看答案

问题 43: 4. 对于常数据成员,下面的描述正确的是( )。

选项:

A. 常数据成员可以不初始化,并且不能更新

B. 常数据成员必须被初始化,并且不能更新

C. 常数据成员可以不初始化,并且可以被更新

D. 常数据成员必须被初始化,并且可以被更新

答案: 请关注公众号【九八五题库】查看答案

问题 44: 5. 如下程序运行时输出的第一行到第三行分别是( ),( )和( )。 #include using namespace std; class example { int a; public: example(int b=5){ a=b++; cout<<"a="<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 45: 1. 预处理命令在程序中都是以( )开头的。

选项:

A. *

B. #

C. :

D. /

答案: 请关注公众号【九八五题库】查看答案

问题 46: 2. 若有宏定义语句为: #define SQ(x) x*x 则执行下列语句后m的值为( )。 int m=50/SQ(5);

选项:

A. 2

B. 10

C. 50

D. 1250

答案: 请关注公众号【九八五题库】查看答案

问题 47: 3. 下列叙述中,正确的是( )。

选项:

A. 预处理命令行必须位于源文件的开头

B. 在源文件的一行上可以有多条预处理命令

C. 宏名必须用大写字母表示

D. 宏替换不占用程序的运行时间

答案: 请关注公众号【九八五题库】查看答案

问题 48: 4. 在带参数的宏定义中,程序中引用宏定义的实参( )。

选项:

A. 只能是常量

B. 只能是整型量

C. 只能是整型表达式

D. 可以是任意表达式

答案: 请关注公众号【九八五题库】查看答案

问题 49: 5. 下列关于用#define定义的常量的说法中,正确的是( )。

选项:

A. 在函数中定义的常量的作用域从定义起到该函数结束

B. 在函数中定义的常量的作用域从定义起到#undef取消为止或文件结束

C. 在一个函数中定义的常量不能在同一个文件的后续的其它函数中取消

D. 在一个函数中定义的常量不能在同一个文件的后续的其它函数中重新定义

答案: 请关注公众号【九八五题库】查看答案

问题 50: 1. 下列关于对象数组的描述中,( )是错误的。

选项:

A. 对象数组的下标是从0开始的

B. 对象数组的数组名是一个地址常量

C. 对象数组的每个元素是同一个类的对象

D. 对象数组只能赋初值,而不能在定义后赋值

答案: 请关注公众号【九八五题库】查看答案

问题 51: 2. 运行语句”int a[][3]={{1},{3,2},{4,5,6},{0}};”后,a[2][2]的值是( )。

选项:

A. 1

B. 0

C. 6

D. 2

答案: 请关注公众号【九八五题库】查看答案

问题 52: 3. 在下面的一维数组定义中,( )有语法错误。

选项:

A. int a[5];

B. int a[10]={0};

C. int a[];

D. int a[]={1,2,3};

答案: 请关注公众号【九八五题库】查看答案

问题 53: 4. 对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};

选项:

A. 将5个初值依次赋给a[1]至a[5]

B. 将5个初值依次赋给a[0]至a[4]

C. 将5个初值依次赋给a[6]至a[10]

D. 因为数组长度与初值的个数不相同,所以此语句不正确

答案: 请关注公众号【九八五题库】查看答案

问题 54: 5. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; int main(){ int i, j, row=0, column=0, max; int a[3][4]={{6,1,2,88},{2,5,6,56},{-3,-6,12,67}}; max=a[0][0]; for (i=0;i<=2;i++) for (j=0;j<=3;j++) if (a[i][j]>max) { max=a[i][j]; row=i; column=j; } cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 55: 1. 关于this指针的说明不正确的是( )。

选项:

A. 不能在程序中修改this指针

B. this指针可以给其他指针赋值,但不能修改this指针

C. 静态成员函数中没有this指针

D. this指针可以被赋值

答案: 请关注公众号【九八五题库】查看答案

问题 56: 2. 说明语句int (*p)(); 的含义是( )。

选项:

A. p是一个指针变量,它指向一个整型数据的指针

B. p是一个指向函数的指针变量,该函数的返回值为整型数

C. p是一个指向一维数组的指针变量

D. p是一个指针函数,该函数的返回值为指针值

答案: 请关注公众号【九八五题库】查看答案

问题 57: 3. 对于语句“int a; const int *ptr=&a;”,下列描述正确的是( )。

选项:

A. ptr是指向常量的指针,ptr不能再指向其他对象

B. ptr是指针型常量,ptr不能再指向其他对象

C. ptr是指向常量的指针,不能通过ptr改变a的值

D. ptr是指针型常量,不能通过ptr改变a的值

答案: 请关注公众号【九八五题库】查看答案

问题 58: 4. void类型主要用于说明( )。

选项:

A. 常量和指针

B. 函数和变量

C. 函数和指针

D. 常量和变量

答案: 请关注公众号【九八五题库】查看答案

问题 59: 5. 静态成员函数没有( )。

选项:

A. 返回值

B. this指针

C. 指针参数

D. 返回类型

答案: 请关注公众号【九八五题库】查看答案

问题 60: 6. 下列关于数组作为函数参数的说法中不正确的是( )。

选项:

A. 数组名作函数参数时向函数传递的是数组的首地址

B. 数组作函数参数时对实参数组的元素数没有限制

C. 被调用函数中对形参数组元素值的改变将被带回到实参数组中

D. 实参用数组时,被调用函数的形参可以用相应类型的指针

答案: 请关注公众号【九八五题库】查看答案

问题 61: 7. 假设MyClass为一个类,则执行“MyClass a, b(2),*p;”语句时,自动调用该类的构造函数( )次。

选项:

A. 2

B. 3

C. 4

D. 5

答案: 请关注公众号【九八五题库】查看答案

问题 62: 8. 有如下定义:int a[5], *p; p=a; 则下列描述错误的是( )。

选项:

A. 表达式p=p+1合法的

B. 表达式a+2是合法的

C. 表达式p-a是合法的

D. 表达式a=a+1是合法的

答案: 请关注公众号【九八五题库】查看答案

问题 63: 9. 如下程序运行时的输出结果是( )。 #include using namespace std; class AB { public: AB() { cout<<'A'; } ~AB() { cout<<'B'; } private: char name[20]; }; int main( ) { AB a, *b, d[2]; return 0; }

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 64: 1. 若有定义:int *p=new int;,则下列说法中不正确的是( )。

选项:

A. 声明了一个指向整型变量的指针p

B. 可以用*p来表示所指向的整型变量

C. 通过运算符new,分配了一个整型数据的空间,并将其起始地址赋给指针p

D. 系统为指针变量p分配了一个整型数据的存储空间

答案: 请关注公众号【九八五题库】查看答案

问题 65: 2. 下面关于new运算符的描述中错误的是( )。

选项:

A. 使用new创建对象时必须定义初始值

B. 使用new创建对象时会调用类的构造函数

C. new可以用来动态创建对象和对象数组

D. 使用new创建的对象可以使用delete删除

答案: 请关注公众号【九八五题库】查看答案

问题 66: 3. C++提供的可有效分配对象空间的运算符是( )。

选项:

A. delete

B. new

C. pos

D. auto

答案: 请关注公众号【九八五题库】查看答案

问题 67: 4. 关于delete的描述中,正确的是( )。

选项:

A. delete是函数

B. 它必须用于new返回的指针

C. 对一个指针可以连续使用多次delete

D. delete[]只能删除一维的动态数组

答案: 请关注公众号【九八五题库】查看答案

问题 68: 5. 若有语句:char* p=new char[30];,则释放p所指向的动态内存应使用的语句是( )。

选项:

A. delete p;

B. delete *p;

C. delete &p;

D. delete[] p;

答案: 请关注公众号【九八五题库】查看答案

问题 69: 1. 下列语句错误的是( )。

选项:

A. char *p="John"; p[2]='a';

B. char name[5]= "John"; name[2]= 'a';

C. char name[5]= "John", *p=name; p[2]= 'a';

D. char name[5]= "John", *p=&name[2]; *p='a';

答案: 请关注公众号【九八五题库】查看答案

问题 70: 2. 指针s所指字符串的长度为( )。 char s[ ]="\\\"Name\0Address\n";

选项:

A. 19

B. 18

C. 15

D. 6

答案: 请关注公众号【九八五题库】查看答案

问题 71: 3. 有如下语句序列: char str[10]; cin>>str; 当从键盘输入”I love this game”时,str中的字符串是( )。

选项:

A. "I love this game"

B. "I love thi"

C. "I love"

D. "I"

答案: 请关注公众号【九八五题库】查看答案

问题 72: 4. 不能正确赋值的选项是( )。

选项:

A. char s1[10];s1=”Hello”;

B. char s2[]={’H’,’e’,’l’,’l’,’o’};

C. char s3[10]=”Hello”;

D. char *s4[10]=”Hello”;

答案: 请关注公众号【九八五题库】查看答案

问题 73: 5. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include #include using namespace std; int main() { string s1 = "2020-2021", s2 = "第一学期"; string s(s1); cout << "s: " << s << endl; s = s1 + s2; cout << "s: " << s << endl; return 0; }

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 74: 1. 有关继承的叙述中,正确的是( )。

选项:

A. 派生类是基类的组合

B. 构造函数和析构函数都能被继承

C. 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员

D. 基类的公有成员一定能被派生类的对象访问

答案: 请关注公众号【九八五题库】查看答案

问题 75: 2. C++中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行:另一种是通过( ),派生出新的类。

选项:

A. 复用

B. 继承

C. 单继承

D. 多继承

答案: 请关注公众号【九八五题库】查看答案

问题 76: 3. 派生类将其本身与基类区别开来的方法是( )。

选项:

A. 添加新成员

B. 使用公有继承

C. 使用虚基类

D. 使用多继承

答案: 请关注公众号【九八五题库】查看答案

问题 77: 4. C++类体系中,不能被派生类继承的有( )。

选项:

A. 常成员函数

B. 静态成员函数

C. 构造函数

D. 虚函数

答案: 请关注公众号【九八五题库】查看答案

问题 78: 5. 有如下类定义: class XX{ int xdata; public: XX(int n=0) : xdata (n) { } }; class YY : public XX{ int ydata; public: YY(int m=0, int n=0) : XX(m), ydata(n) { } }; 则YY类的对象包含的数据成员的个数是( )。

选项:

A. 1

B. 2

C. 3

D. 4

答案: 请关注公众号【九八五题库】查看答案

问题 79: 1. 有如下类定义和变量定义: class Parents{ public: int publicData; private: int privateData; }; class ChildA: public Parents{/*类体略*/}; class ChildB: private Parents{/*类体略*/}; ChildA a; ChildB b; 下列语句中正确的是( )。

选项:

A. cout<

B. cout<

C. cout<

D. cout<

答案: 请关注公众号【九八五题库】查看答案

问题 80: 2. 通过派生类的对象可直接访问其( )。

选项:

A. 公有继承基类的公有成员

B. 公有继承基类的私有成员

C. 私有继承基类的公有成员

D. 私有继承基类的私有成员

答案: 请关注公众号【九八五题库】查看答案

问题 81: 3. 下列关于派生类和基类的描述中,正确的是( )。

选项:

A. 派生类成员函数只能访问基类的公有成员

B. 派生类对基类的默认继承方式是公有继承

C. 派生类成员函数可以访问基类的所有成员

D. 派生类成员函数只能访问基类的公有和保护成员

答案: 请关注公众号【九八五题库】查看答案

问题 82: 4. 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( )。

选项:

A. 完全相同

B. 完全不同

C. 部分相同

D. 以上都不对

答案: 请关注公众号【九八五题库】查看答案

问题 83: 5. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( )。

选项:

A. 公有成员

B. 私有成员

C. 保护成员

D. 保护成员或私有成员

答案: 请关注公众号【九八五题库】查看答案

问题 84: 6. 下列描述中,错误的是( )。

选项:

A. 公有继承时基类中的公有成员在派生类中仍是公有成员

B. 公有继承时基类中的保护成员在派生类中仍是保护成员

C. 保护继承时基类中的公有成员在派生类中仍是公有成员

D. 保护继承时基类中的保护成员在派生类中仍是保护成员

答案: 请关注公众号【九八五题库】查看答案

问题 85: 7. 基类的保护成员在公有派生类中是( )。

选项:

A. 公有成员

B. 私有成员

C. 保护成员

D. 非法成员

答案: 请关注公众号【九八五题库】查看答案

问题 86: 8. 如下程序运行时的输出结果是( )。 #include using namespace std; class Base{ public: void print() {cout<<"Base";} }; class Derived: public Base { public: void print() {cout<<"Derived";} }; int main(){ Derived d; d.print(); return 0; }

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 87: 1. 已知B类是A类的公有派生类,且有定义:A a, *p1; B b, *p2=&b;,则下列选项中属于非法操作的是( )。

选项:

A. b=a;

B. p1=&b;

C. A &a2=b;

D. p1=p2;

答案: 请关注公众号【九八五题库】查看答案

问题 88: 2. 下列关于赋值兼容性规则的描述中,错误的是( )。

选项:

A. 不要求派生类的派生方式

B. 派生类的对象可以赋给基类对象

C. 派生类的对象可以初始化基类的引用

D. 派生类的对象的地址可以赋给基类类型的指针

答案: 请关注公众号【九八五题库】查看答案

问题 89: 3. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; class Base{ public: void fun(){cout<<"Base::fun"

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 90: 4. 如下程序运行时输出的第一行到第三行分别是( ),( )和( )。 #include using namespace std; class A { public: int a; A(int x=0) { a=x; cout<<"调用构造函数A"<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 91: 5. 如下程序运行时的输出结果是( )。 #include using namespace std; class Base{ public: Base(){ } void f(){cout<<"fun of Base"<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 92: 1. 假设Class Y: public X,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为( )。

选项:

A. X, Y;Y, X

B. X, Y;X, Y

C. Y, X;X, Y

D. Y, X;Y, X

答案: 请关注公众号【九八五题库】查看答案

问题 93: 2. 有如下类定义: class XX{ int xx; public: XX(): xx(0){cout<<'A';} XX(int n): xx ( n){cout<<'B';} }; class YY:public XX{ int yy; public: YY(): yy (0){cout <

选项:

A. YY y1(0,0);

B. YY y2(1);

C. YY y3(0);

D. YY y4;

答案: 请关注公众号【九八五题库】查看答案

问题 94: 3. 生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

选项:

A. 无需任何条件

B. 基类中显式定义了构造函数

C. 派生类中显式定义了构造函数

D. 派生类构造函数明确调用了基类构造函数

答案: 请关注公众号【九八五题库】查看答案

问题 95: 4. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; class XX{ int xx; public: XX(): xx(0){cout<<'A';} XX(int n): xx(n){cout<<'B';} }; class YY:public XX{ int yy; public: YY(): yy(0){cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 96: 5. 如下程序运行时的输出结果是( )。 #include using namespace std; class Base{ public: int m, n; Base(int i, int j): m(i), n(j){} }; class Derived: public Base{ public: int m, k; Derived(int i, int j): Base(i, j), m(i+1), k(j+1){} }; int main(){ Derived d(1, 5); cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 97: 1. 多重继承的构造顺序可分为如下4步: (1) 所有非虚基类的构造函数按照它们被继承的顺序构造; (2) 所有虚基类的构造函数按照它们被继承的顺序构造; (3) 所有子对象的构造函数按照它们声明的顺序构造; (4) 派生类自己的构造函数体; 这4个步骤的正确顺序是( )。

选项:

A. (4)(3)(1)(2)

B. (2)(4)(3)(1)

C. (2)(1)(3)(4)

D. (3)(4)(1)(2)

答案: 请关注公众号【九八五题库】查看答案

问题 98: 2. 下列叙述中错误的是( )。

选项:

A. 派生类可以使用private派生

B. 对基类成员的访问必须是无二义性的

C. 基类成员的访问能力在派生类中保持不变

D. 赋值兼容性规则也适用于多继承

答案: 请关注公众号【九八五题库】查看答案

问题 99: 3. 下列关于虚基类的描述中,错误的是( )。

选项:

A. 声明“class B : virtual public A”说明类B为虚基类

B. 创建派生类对象时,虚基类的构造函数只被调用一次

C. 使用虚基类可以消除由多继承产生的二义性

D. 创建派生类对象时,首先调用虚基类的构造函数

答案: 请关注公众号【九八五题库】查看答案

问题 100: 4. 解决二义性问题的方法有( )。

选项:

A. 只能使用作用域运算符

B. 使用作用域运算符或赋值兼容规则

C. 使用作用域运算符或虚基类

D. 使用虚基类或赋值兼容规则

答案: 请关注公众号【九八五题库】查看答案

问题 101: 5. 如下程序运行时输出的第一行到第三行分别是( ),( )和( )。 #include using namespace std; class B0{ protected: int x; public: B0(int i) { x=i; } }; class B1: virtual public B0{ protected: int y; public: B1(int a,int b):B0(a) { y=b; } void Show() { cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 102: 1. C++语言支持两种多态性:编译时的多态性和( )。

选项:

A. 封装时的多态性

B. 链接时的多态性

C. 调试时的多态性

D. 运行时的多态性

答案: 请关注公众号【九八五题库】查看答案

问题 103: 2. 所谓多态性是指( )。

选项:

A. 不同的对象调用不同名称的函数

B. 不同的对象调用相同名称的函数

C. 一个对象调用不同名称的函数

D. 一个对象调用不同名称的对象

答案: 请关注公众号【九八五题库】查看答案

问题 104: 3. 不属于动态联编实现条件的是( )。

选项:

A. 要有说明的虚函数

B. 派生类中重定义虚函数

C. 在构造函数中调用虚函数

D. 指向对象的指针或引用可调用虚函数

答案: 请关注公众号【九八五题库】查看答案

问题 105: 4. 捆绑在程序运行前完成时称为( )。

选项:

A. 静态捆绑

B. 动态捆绑

C. 运行时捆绑

D. 运行后捆绑

答案: 请关注公众号【九八五题库】查看答案

问题 106: 5. 多态性分为动态多态性和静态多态性,函数重载属于( )。

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 107: 1. 下列运算符中,( )运算符在C++中不能重载。

选项:

A. ?:

B. +

C. -

D. ->

答案: 请关注公众号【九八五题库】查看答案

问题 108: 2. 若要重载+、=、<<、==和[]运算符,则必须作为类成员重载的运算符是( )。

选项:

A. +和=

B. =和<<

C. ==和<<

D. =和[]

答案: 请关注公众号【九八五题库】查看答案

问题 109: 3. 若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。

选项:

A. Data+(Data);

B. Data operator+(Data);

C. Data+operator(Data);

D. operator+(Data,Data);

答案: 请关注公众号【九八五题库】查看答案

问题 110: 4. 下列关于运算符重载的描述中,( )是正确的。

选项:

A. 运算符重载可以改变运算数的个数

B. 运算符重载可以改变优先级

C. 运算符重载可以改变结合性

D. 运算符重载不可以改变语法结构

答案: 请关注公众号【九八五题库】查看答案

问题 111: 5. 如下程序运行时输出的第一行和第二行分别是( )和( )。 #include using namespace std; class A { int x,y,z; public: A(int vx,int vy,int vz) { x=vx;y=vy;z=vz;} A() { x=0;y=0;z=0;} A operator+(A t) { A te; te.x=x+t.z; te.y=y+t.y; te.z=z+t.z; return te; } A operator-(A t) { A te; te.x=x-t.z; te.y=y-t.y; te.z=z-t.z; return te; } A operator=(A t) { x=t.x; y=t.y; z=t.z; return *this; } void print() { cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 112: 1. 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( )。

选项:

A. 都是虚函数

B. 只有被重新说明时才能是虚函数

C. 只有被重新说明为virtual时才是虚函数

D. 都不是虚函数

答案: 请关注公众号【九八五题库】查看答案

问题 113: 2. 下面关于构造函数和析构函数的描述中错误的是( )。

选项:

A. 析构函数中调用虚函数采用静态联编

B. 对虚析构函数的调用可以采用动态联编

C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D. 构造函数可以声明为虚函数

答案: 请关注公众号【九八五题库】查看答案

问题 114: 3. 下列关于虚函数的描述中错误的是( )。

选项:

A. 虚函数用关键字virtual声明

B. 虚函数可以是静态成员函数

C. 虚函数的调用不一定使用动态联编

D. 析构函数可以是虚函数

答案: 请关注公众号【九八五题库】查看答案

问题 115: 4. 下面对虚函数的调用的说法中,正确的是( )。

选项:

A. 不一定使用动态联编

B. 必须使用动态联编

C. 一定使用静态联编

D. 一定使用动态联编

答案: 请关注公众号【九八五题库】查看答案

问题 116: 5. 以下程序输出的第一行到第三行分别是( )、( )和( )。 #include using namespace std; class base { public: void f1(){cout<<"f1 of base"<< endl; } virtual void f2(){cout<<"f2 of base"<< endl; } virtual void f4(){cout<<"f4 of base"f2(); p->f4(); return 0; }

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 117: 1. 有如下程序: #include using namespace std; class Instrument{ public: virtual void Display( )=0; }; class Piano: public Instrument{ public: void Display( ){/*函数体程序略*/} }; int main( ){ Instrument s; Instrument *p=0; //...; return 0; } 下列叙述中正确的是( )。

选项:

A. 语句“Insturment *p=0;”编译时出错

B. 语句“Instrument s;”编译时出错

C. 类Piano中的Display函数不是虚函数

D. 类Instrument是一个虚基类

答案: 请关注公众号【九八五题库】查看答案

问题 118: 2. 关于纯虚函数和抽象类的描述中,( )是正确的。

选项:

A. 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类

B. 纯虚函数本质上是函数体为空的虚函数

C. 如果将析构函数声明为纯虚函数,则必须给出它的实现

D. 只要给出纯虚函数的实现,抽象类就可以实例化

答案: 请关注公众号【九八五题库】查看答案

问题 119: 3. 以下基类中的成员函数表示纯虚函数的是( )。

选项:

A. virtual void tt()=0

B. void tt(int)=0

C. virtual void tt(int)

D. virtual void tt(int){}

答案: 请关注公众号【九八五题库】查看答案

问题 120: 4. 关于抽象类的描述中,正确的是( )。

选项:

A. 不能说明抽象类的指针或引用

B. 可以说明抽象类对象

C. 抽象类的纯虚函数的实现可以由类自身给出,也可以由派生类给出

D. 抽象类的纯虚函数的实现由派生类给出

答案: 请关注公众号【九八五题库】查看答案

问题 121: 5. ( )是一个在基类中说明但要求任何派生类都必须定义自己版本的函数。

选项:

A. 虚构造函数

B. 虚析构函数

C. 纯虚函数

D. 静态成员函数

答案: 请关注公众号【九八五题库】查看答案

问题 122: 1. 类模板的使用实际上是将类模板实例化成一个具体的( )。

选项:

A. 函数

B. 抽象类

C. 类

D. 对象

答案: 请关注公众号【九八五题库】查看答案

问题 123: 2. 下列关于模板形参的描述中,错误的是( )。

选项:

A. 模板形参表必须在关键字template之后

B. 模板形参表必须用括弧()括起来

C. 可以用class修饰模板形参

D. 可以用typename修饰模板形参

答案: 请关注公众号【九八五题库】查看答案

问题 124: 3. 关于函数模板的叙述中,正确的是( )。

选项:

A. 函数模板实际上是函数类型和形参类型不具体指定的通用函数

B. 函数模板可以用于描述函数体不同的一系列函数

C. 函数模板可以用于描述参数个数不同的一系列函数

D. 函数模板定义中typename和class的作用完全不同

答案: 请关注公众号【九八五题库】查看答案

问题 125: 4. 下列关于模板的叙述中,正确的是( )。

选项:

A. 如果一个类中存在纯虚函数,这个类就是类模板

B. 函数模板不能有形式参数表

C. 类模板是一种参数化类型的类,是类的生成器

D. 类模板中不能包含构造函数

答案: 请关注公众号【九八五题库】查看答案

问题 126: 5. 有如下函数模板定义: template T1 FUN(T2 n) { return n*5.0; } 若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。

选项:

A. FUN(9)

B. FUN<9>

C. FUN(9)

D. FUN<9>(double)

答案: 请关注公众号【九八五题库】查看答案

问题 127: 1. 以下哪种结构是连续形式存储的?( )

选项:

A. vector

B. list

C. map

D. set

答案: 请关注公众号【九八五题库】查看答案

问题 128: 2. 如下程序运行时的输出的第一行和第二行分别是( )和( )。 #include #include using namespace std; int main() { vector v(3,10); for (int i=0;i<2;i++) cout<

选项:

答案: 请关注公众号【九八五题库】查看答案

问题 129: 1. 使用操作符setw对数据进行格式输出时,需要包含( )文件。

选项:

A. fstream

B. iomanip

C. iostream

D. stdlib

答案: 请关注公众号【九八五题库】查看答案

问题 130: 2. 下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。

选项:

A. cout<

B. cout<

C. cout<

D. cout<

答案: 请关注公众号【九八五题库】查看答案

问题 131: 3. cout是I/O流类库中预定义的( )。

选项:

A. 类

B. 对象

C. 函数

D. 包含文件

答案: 请关注公众号【九八五题库】查看答案

问题 132: 4. 下列关于C++预定义流对象的叙述中,正确的是( )。

选项:

A. cin是C++预定义的标准输入流对象

B. cin是C++预定义的标准输入流类

C. cout是C++预定义的标准输入流对象

D. cout是C++预定义的标准输入流类

答案: 请关注公众号【九八五题库】查看答案

问题 133: 5. C++系统预定义了4个用于标准数据流的对象,下列不属于此类对象的是( )。

选项:

A. cin

B. cout

C. cset

D. cerr

答案: 请关注公众号【九八五题库】查看答案

问题 134: 1. 如果某个函数fun可以抛出任何类型的异常,则正确的函数原型声明语句是( )。

选项:

A. void fun( );

B. void fun( ) throw ( );

C. void fun( ) throw ( A );

D. void fun( ) throw A;

答案: 请关注公众号【九八五题库】查看答案

问题 135: 2. 异常处理机制主要解决下列哪种错误?( )

选项:

A. 语法错误

B. 语义错误

C. 运行时错误

D. 注释错误

答案: 请关注公众号【九八五题库】查看答案

问题 136: 3. 下列关于C++标准库的描述中,错误的是( )。

选项:

A. C++标准库预定义了标准异常类exception

B. 使用标准异常类exception需包含头文件

C. 程序员可以定义自己的异常类

D. 程序员不能继承C++标准库中的异常类来定义自己的异常类

答案: 请关注公众号【九八五题库】查看答案



收藏
文章说明
©版权声明
本站提供的一切试卷均来自网上;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集,版权争议与本站无关。您必须在下载后的24个小时之内从您的设备中彻底删除。如有侵权请邮件与我们联系处理。敬请谅解!
评论留言

昵称

试卷网
试卷网
本站专注整合全网学习平台试卷资源,涵盖超星、学习通、尔雅、学起Plus、安徽继续教育、云上河开等平台的海量试题与答案,提供免费下载及在线查询服务。包含期末考试、模拟试题、章节练习等类型,覆盖大学、职业考试、继续教育等多领域,同步更新各平台最新试卷,助力高效备考与学习
  • 文章40193
  • 评论0
  • 微语1
最新评论