面向对象C++编程与实践考试题目

一、选择题(每题2分,共2×20=40分)

(1) 以下不能对数组 a 进行正确初始化的语句是( )。
A. int a[2][3] = { 0 };
B. int a[ ][3] = { {0,1}, {0} };
C. int a[2][3] = { {0,1}, {2,3}, {4,5} };
D. int a[ ][3] = { 0, 1, 2, 3, 4, 5 };

(2) 用 const 声明的变量()。
A. 不能被读取
B. 在声明时可定义也可不定义
C. 只能被读取
D. 其值在程序中可以被改变

(3) 有语句 int a[ ] = { 0, 2, 4, 6, 8, 10 },p = a + 1; 其值等于 0 的表达式是()。
A. * (p++)
B.
(++p)
C. (p–)
D.
(–p)

(4) 下列的描述中()是错误的。
A. 使用全局变量可以从被调用函数中获取多个操作结果
B. 局部变量可以初始化,若不初始化,则系统默认它的值为 0
C. 当函数调用完后,静态局部变量的值不会消失
D. 全局变量若不初始化,则系统默认它的值为 0

(5) C++ 语言的跳转语句中,对于 break 和 continue 说法正确的是()。
A. break 语句只能用于循环体中
B. continue 语句只能用于循环体中
C. break 是无条件跳转语句,continue 不是
D. break 和 continue 的跳转范围不够明确,容易产生问题

(6) S 是字符数组,用于存储字符串,下面不能够判断字符串 S 是空串的是()。
A. if (S[0] == 0 )
B. if (strlen(S) == 0)
C. if (strcmp(S, “”) == 0)
D. if (S == ‘\0’)

(7) C++ 函数的参数传递方式有()。
A. 地址传递
B. 引用传递
C. 双向值传递
D. 由用户指定传递方式

(8) 下面判断是否构成重载函数的条件中,错误的判断条件是()。
A. 参数类型不同
B. 参数个数不同
C. 参数顺序不同
D. 函数返回值不同

(9) 设 a 和 b 是两个结构体变量,下面正确的表达式是()。
A. a = b
B. a = b + 1
C. a > b
D. a == b

(10) 派生类对象只能访问基类中的()。
A. 公有继承的公有的成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员

(11) 关于构造函数的叙述中,错误的说法是()。
A. 构造函数的名称必须为类名
B. 构造函数最多只能有一个
C. 创建对象时自动执行构造函数
D. 构造函数无任何函数类型

(12) ()只能访问静态成员变量。
A. 静态成员函数
B. 虚函数
C. 构造函数
D. 析构函数

(13) C++ 中类有两种用法,一种是类的实例化,即生成类对象;另一种是通过()派生出新的类。
A. 复用
B. 继承
C. 重载
D. 封装

(14) 下面描述中,正确的是()。
A. 虚函数是没有实现的函数
B. 纯虚函数的实现在派生类定义
C. 抽象类是具有纯虚函数的类
D. 抽象类指针可以指向不同的派生类

(15) 一个类的友函数能够访问该类的()。
A. 私有成员
B. 保护成员
C. 公有成员
D. 所有成员

(16) 下列关于构造函数说法不正确的是()。
A. 构造函数必须与类同名
B. 构造函数可以省略不写
C. 构造函数必须有返回值
D. 在构造函数中可以对类中的成员进行初始化

(17) 关于 new 运算符的下列描述中,()是错误的。
A. 它可以用来动态创建对象和对象数组
B. 使用它创建对象或对象数组,可以使用 delete 删除
C. 使用它创建对象时要调用构造函数
D. 使用它调用对象数组时不许指定初始值

(18) 建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。
A. 基类、自己所属类、成员对象成员所属类
B. 对象成员所属类、基类、自己所属类
C. 自己所属类、对象成员所属类、基类
D. 基类、对象成员所属类、自己所属类

(19) 下列说法正确的是()。
A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C. 类的内联函数必须在类体内定义
D. 类的内联函数必须在类体外通过关键字 inline 定义

(20) 执行语句:

int a = 10, b;
int &pa = a, &pb = b

后,下列正确的语句是()。
A. &pb = a
B. pb = pa
C. &pb = &pa
D. pb = pa

二、判断题(每题 1 分,共10×1 =10分)

(1) 函数的形参时局部变量。

(2) 有语句 #define n 10 ,则 int a[n] ; 定义数组是合法的。

(3) 赋值运算符只能作为成员函数进行重载。

(4) 条件编译的作用是根据不同条件进行编译不同程序段,以提高程序的兼容性。

(5) 静态数据成员必须在类外定义和初始化。

(6) 可以对类成员变量直接赋值。

(7) 在 class 定义一个类时,数据成员函数的默认访问权限是私有的。

(8) 抽象类通常应用派生类。

(9) 指针可以做任何类型的强制转换。

(10) 对象不能作为数组元素。

三、编程题

1、编写程序,输入 100 个数值,从小到大排序后输出。(10分)

2、输入一行字符,按输入字符的反序建立一个单向链表存储这些字符,并输出该链表中的字符。(10分)
节点的结构:

struct node{
    char ch;
    node *next;
};

3、设计三角形类 CTriangle ,写出下面 6 个成员函数。三角形类的部分定义如下:(30分)

class CTriangle{
    float a, b, c;  //三角形的三条边长
    float area;  //保存三角形的面积
    public:
        // (1)默认构造函数
        // (2)有初始值的构造函数
        // (3)拷贝函数
        // (4)设置三角形的三条边长度
        // (5)得到三角形的三条边长度
        // (6)"+" 运算符重载,实现 2 个三角形的面积之和
};

Original: https://www.cnblogs.com/gshang/p/15676775.html
Author: GShang
Title: 面向对象C++编程与实践考试题目

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536405/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • VC++.net 整合开发环境使用技巧

    VC++.net 整合开发环境使用技巧 在下面我将会以条目的形式为大家描述VC.net2003的各项使用技巧,你完全可以挑选你感兴趣的内存来看,甚至不看都无所谓哈,只求你的一点支持…

    C++ 2023年5月29日
    056
  • C++面试题1

    1,LeetCode给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转; 2,怎么判断一个变量是指针; Original: https://www.cnblogs.c…

    C++ 2023年5月29日
    053
  • Delphi XE8,C++ Builder XE8,RAD Studio XE8 官方 ISO 文件下载,附激活工具

    RAD Studio XE8 v22.0.19027.8951 官方ISO下载(6.72G):http://altd.embarcadero.com/download/radstu…

    C++ 2023年5月29日
    076
  • C++11 并发指南六(atomic 类型详解三 std::atomic (续))

    总地来说,C++11 标准库中的 std::atomic 针对整形(integral)和指针类型的特化版本新增了一些算术运算和逻辑运算操作。具体如下: 下面我们来简单介绍以上的 s…

    C++ 2023年5月29日
    038
  • 【C/C++】sscanf函数和正则表达式

    此文所有的实验都是基于下面的程序: char str[10]; for (int i = 0; i < 10; i++) str[i] = ‘!’; 执行完后str的值为 s…

    C++ 2023年5月29日
    045
  • C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)

    C++11 并发指南已经写了 5 章,前五章重点介绍了多线程编程方面的内容,但大部分内容只涉及多线程、互斥量、条件变量和异步编程相关的 API,C++11 程序员完全可以不必知道这…

    C++ 2023年5月29日
    050
  • 【转】C++知识点总结

    其他路径: 微信公众号:程序喵星人 更多资源和视频教程,QQ:1902686547 这篇文章是对C++的知识点做了一些简单的总结,基本包含了所有的C++基础知识点。以下提到的知识点…

    C++ 2023年5月29日
    052
  • C++11 动态内存管理

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C+…

    C++ 2023年5月29日
    050
  • Mac eclipse 编译、调试c++ 程序

    可以先安装个CDT插件: eclipse菜单 -> Help -> Install New Software… -> Work with (Add…..

    C++ 2023年5月29日
    049
  • 聊聊 C++ 和 C# 中的 lambda 玩法

    这几天在看 C++ 的 lambda 表达式,挺有意思,这个标准是在 C11&#x6807;&#x51C6; 加进去的,也就是 2011 年,相比 C# 2007 …

    C++ 2023年5月29日
    053
  • C++实现的各种排序算法

    提起排序算法相信大家都不陌生,或许很多人已经把它们记得滚瓜烂熟,甚至随时可以写出来。最近在学习这一块, 索性就把各种内部排序算法总结归纳了一下: 1、 算法分类: 十种常见排序算法…

    C++ 2023年5月29日
    047
  • c++ 读写文本文件

    1 #include 2 #include // 读写文件的头文件 …

    C++ 2023年5月29日
    043
  • VC++之自定义消息

    用户可以自定义消息,在应用程序中主动发出,这种消息一般用于应用程序的某一部分内部处理。 实例说明: 当用户按键盘上的光标上移键时,程序发送用户自定义消息,在对应的消息响应函数中弹出…

    C++ 2023年5月29日
    061
  • Windows 8 添加隐私策略(C++版)

    well.新年上班第一天.不幸收到MS官方针对我们Snack Cards应用程序被打回消息.看看Report 内容如下: The app has declared access t…

    C++ 2023年5月29日
    060
  • C++高性能服务器框架——日志系统

    日志文件系统 对文件系统进行修改时,需要进行很多操作。这些操作可能中途被打断,也就是说,这些操作不是”不可中断”(atomic)的。如果操作被打断,就可能造…

    C++ 2023年5月29日
    068
  • [转]C++ 模板 静态成员 定义(实例化)

    如果有这样一个模板: 对于以下若干种定义方式,哪些是对的(通过编译)? 为了不影响大家分析判断,我把答案颜色调成比较浅的颜色,下面即是答案: 首先,说明一下三个正确的答案。 第一种…

    C++ 2023年5月29日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球