op作业吧 关注:48贴子:3,152
  • 6回复贴,共1

西安电子科技大学2023 学年下学期《面向对象程序设计(C++)》期

只看楼主收藏回复

西安电子科技大学网络与继续教育学院
2023 学年下学期
《面向对象程序设计(C++)》期末考试试题
(综合大作业)
题号 一 二 三 四 五 总分
题分 10 20 20 20 30
得分
1、大作业试题公布时间:2023 年 11 月 3 日;
2、考试必须独立完成,如发现抄袭、雷同均按零分计;
3、答案须用《西安电子科技大学网络与继续教育学院 2023 秋期末考试答题纸》(个 人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;
4、在线上传时间:2023 年 11 月 3 日至 2023 年 11 月 13 日在线上传大作业答卷; 5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。
一、简答题(10 分)
1、什么是引用?它与指针有什么区别?(3 分)
2、运算符重载有哪两种形式?这两种形式有何区别?(3 分)
3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)
二、填空题(每空 2 分, 共 20 分)
1、C++语言引入了异常处理机制,用 语句“抛出 ”异常,然后用相应的 语句 _ 捕获被“抛出”的异常,并做出相应的处理。
2、 表 示 逻 辑 关 系 “ a 大 于 等 于 8 或 者 a 小 于 等 于 5 ” 的 C++表 达 式 是 。
3、在 C++中,模板可以分为 和 。
4、 C++语 言 的 流 程 控 制 语 句 的 基 本 控 制 结 构 有 三 种 , 分 别 是 、 和 。
5、下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。
class MyClass {
private:
int *x;
public:
MyClass(int a);
~MyClass();
};
MyClass :: MyClass(int a) { ; }
MyClass :: ~MyClass() { ;}
三、选择题(每小题 2 分, 共 20 分)
1、在下列选项中, 合法的 C++变量名是 。
A.long B._2Test C.3Dmax D.A.dat
2、下列语句中,错误的是 。
A.int i, *ptr = &i; B.int i; int *ptr; i = *ptr;
C.int *ptr; ptr = 0; D.int i = 5; int *ptr; *ptr = &i;
3、已知枚举类型enum Day {Monday, Tuesday, Wednesday, Friday = 2};下列语句中, 是合法的。
A.Wednesday == Friday ? 1 : 0 B.Day day; day = 3;
C.Day day; day = Monday + 3; D.Tuesday = 4;
4、在“int a = 10, *p = &a;”语句中, p 的值是 。
A.10 B.变量 p 的地址 C.变量 a 的地址 D.随机数
5、下列有关设置函数参数默认值的描述中, 是正确的。
A.对设置函数参数默认值的顺序没有任何规定
B.函数具有一个参数时不能设置默认值
C.默认参数要设置在函数的定义语句中,而不能设置在函数说明语句中
D.设置默认参数可使用表达式,但表达式中不可用局部变量
6、下列关于运算符重载的描述中, 是正确的。
A.运算符重载可改变其优先级 B.运算符重载不改变其语法结构
C.运算符重载可改变其结合性 D.运算符重载可改变其操作数的个数
7、下列关于类的析构函数的描述中,错误的是 。
A.类中有且仅有一个析构函数 B.析构函数可以有形参
C.析构函数没有返回值类型 D.析构函数在对象撤销时被自动执行
8、在C++的类与对象关系的叙述中,错误的是 。
A.对象是类的一个实例 B.类与对象的关系和数据类型与变量的关系相似
C.一个类只能有一个实例 D.任何一个对象都属于一个已知的类
9、假设类 AB 用成员函数的方式重载加法运算符,以实现两个 AB 类对象的加法,并返 回相加的结果,则该成员函数的声明为 。
A.AB operator + (AB &a, AB &B); B.AB operator + (AB&);
C.operator + (AB a); D.AB & operator + ();
10、下列对 C++中静态数据成员的描述中,正确的是 。
A.静态数据成员是类的所有对象共享的数据
B.类的每个对象都有自己的静态数据成员
C.类的不同对象有不同的静态数据成员值
D.静态数据成员不能通过类的对象来调用
四、读程题(每小题 5 分, 共 20 分)
1、给出下列源程序的输出结果。
#include <iostream.h>
void main( ) {
int x = 5, y = 2;
cout << !(y == x/2) << ",";
cout << (y != x%3) << ",";
cout << (x > 0 && y < 0) << ",";
cout << (x != y || x >= y) << endl;
}
2、指出下列类定义中的 3 处错误。
class MyClass {
int i = 0;
public:
void MyClass();
~MyClass(int value);
};
3、给出下述源程序的运行结果。
#include <iostream.h>
class Base {
public:
void fun() { cout << "1"; }
};
class Derived : public Base {
public:
void fun() {
cout << "2" << endl;
}
};
void main() {
Derived a;
Base *p = &a;
(*p).fun();
a.fun();
}
4、给出下述源程序的运行结果并说明该程序的功能。
#include <iostream.h>
#include <string.h>
void main() {
char a[] = “changuage ”, t, m;
int i, j, k;
k = strlen(a);
for(i = 0; i <= k - 2; i += 2) {
m = i;
for(j = i + 2; j <= k; j += 2)
if (a[m] > a[j]) m = j;
第 3 页 (共 4 页)
if(m != i) {
t = a[i]; a[i] = a[m]; a[m] = t;
}
}
cout << a << endl;
}
五、编程题(每小题 15 分, 共 30 分)
1、定义并实现一个类 Myst,使下列语句能够正常运行。
Myst x(3.2), y(5,5), z(0.0);
z = 8.9 – y;
y = x – 6.3;
2、在一个程序中, 类 Person 定义了 name 和 age 两个数据成员;由类 Person 派生出类 Student 和 Teacher,其中类 Student 定义了学号数据,类 Teacher 定义了职称数据。每个 类均有构造函数、析构函数和打印类中数据的函数。给出类 Person、Student、Teacher 的 定义与实现。


IP属地:河南1楼2023-11-06 01:07回复
    看头像+


    IP属地:河南2楼2023-11-06 01:07
    收起回复
      加不了


      IP属地:江苏3楼2023-11-07 10:34
      回复
        头像号码就是q


        IP属地:河南来自Android客户端4楼2023-11-07 23:55
        回复