大学MOOC 面向对象程序设计(湖南理工学院)1454030182 最新慕课完整章节测试答案
第1单元C++概览
文章目录
2.3Quiz
1、单选题:
哪种编程范式是C++11之后才支持的?
选项:
A: 结构化编程
B: 面向对象编程
C: 泛型编程
D: 函数式编程
答案: 【 函数式编程】
3.3Quiz
1、多选题:
我们要使用最新版开发工具的原因包括:
选项:
A: 新版工具提供更友好的提示信息
B: 新版工具提供更便捷的操作
C: 新版工具占用空间更小
D: 新版工具的速度更快
答案: 【 新版工具提供更友好的提示信息;
新版工具提供更便捷的操作】
第1单元测验
1、单选题:
第一个被称为“Modern C++”的标准是?
选项:
A: C++98
B: C++03
C: C++11
D: C++14
E: C++17
F: C++20
答案: 【 C++11】
2、单选题:
集成开发环境中不一定包括
选项:
A: 编译器
B: 链接器
C: 图形界面设计工具
D: 调试器
答案: 【 图形界面设计工具】
3、单选题:
集成开发环境的英文缩写是
选项:
A: IEE
B: IDD
C: DEV
D: IDE
答案: 【 IDE】
4、多选题:
C++ 11支持的编程范式包括
选项:
A: 脚本编程范式
B: 结构化编程范式
C: 函数式编程范式
D: OO编程范式
E: 泛型编程范式
F: 解释型编程范式
答案: 【 结构化编程范式;
函数式编程范式;
OO编程范式;
泛型编程范式】
5、多选题:
如何学好C++?
选项:
A: 多看书,少编程
B: 多编程
C: 多调试解决程序BUG
D: 多装几个C++开发环境
答案: 【 多编程;
多调试解决程序BUG】
6、多选题:
C++集成开发环境包括下面所列的哪些部分?
选项:
A: 编辑器
B: 编译器
C: 链接器
D: 开发器
E: 运行器
F: 测试器
答案: 【 编辑器;
编译器;
链接器】
7、多选题:
集成开发环境中一般包含
选项:
A: 编辑器
B: 编译器
C: 链接器
D: 测试器
E: 调试器
答案: 【 编辑器;
编译器;
链接器;
调试器】
8、多选题:
本课程讨论区不建议问下列哪些问题?
选项:
A: cout.flush()函数的参数是什么?
B: 如何安装Visual Studio 2019?
C: 谁能帮我编一段排序算法的代码?
D: 我的main()函数如下int main() { char x { '' }; std::cin >> x; std::cout cin.get(); return 0;}我编译运行,并且输入了字符a之后,屏幕没有显示输出结果。我尝试了几次,都是同样的情况。我的开发环境是Windows 10上面的Visual Studio 2017。
答案: 【 cout.flush()函数的参数是什么?;
如何安装Visual Studio 2019?;
谁能帮我编一段排序算法的代码?】
9、判断题:
我们在C++学习过程中,选择开发工具应尽量选择简单的、问世时间比较久的工具。因为这样的工具易用且稳定。
选项:
A: 正确
B: 错误
答案: 【 错误】
10、判断题:
C语言支持面向对象编程范式
选项:
A: 正确
B: 错误
答案: 【 错误】
11、填空题:
编译器的英文是__________
答案: 【 compiler】
第2单元C++程序基础
1.3Quiz
1、单选题:
以下代码写法哪个不符合工程规范?
选项:
A: using namespace std;
B: using std::endl;
C: std::cout << "Hello";
D: using std::endl;std::cout << endl;
答案: 【 using namespace std;】
2、判断题:
名字空间可以限定一个标识符(identifier)的可见范围
选项:
A: 正确
B: 错误
答案: 【 正确】
21.第2单元第4节随堂测验
1、判断题:
编译过程中的Link阶段是对程序中的各种符号进行重新定位的过程
选项:
A: 正确
B: 错误
答案: 【 正确】
2、填空题:
C++程序编译的第一步是对源代码进行__________
答案: 【 预处理##%_YZPRLFH_%##precompile】
3.1第2单元第1节随堂测验
1、多选题:
查资料,然后判断c++程序中的头文件扩展名包括以下:
选项:
A: .h
B: .head
C: .hpp
D: .hxx
答案: 【 .h;
.hpp;
.hxx】
2、多选题:
查资料,然后指出C++程序中源文件的扩展名包括以下:
选项:
A: cpp
B: cxx
C: cc
D: cplusplus
答案: 【 cpp;
cxx;
cc】
3、多选题:
遵守编码规范有助于
选项:
A: 提升代码的可阅读性和可维护性
B: 让代码运行得更快
C: 让编译器编译时间更短
D: 减少代码编写中的低级错误
答案: 【 提升代码的可阅读性和可维护性;
减少代码编写中的低级错误】
31.第2单元第5节随堂测验
1、多选题:
C++编程过程中的错误有以下几类:
选项:
A: Syntax Error
B: Logical Error
C: Runtime Error
D: Mistype Error
答案: 【 Syntax Error;
Logical Error;
Runtime Error】
31.第2单元第6节随堂测验
1、单选题:
cin对象中,用于读取一个字符串的函数是
选项:
A: scanf
B: read
C: get
D: gets
答案: 【 get】
2、判断题:
运算符“<<”被称为流提取运算符
选项:
A: 正确
B: 错误
答案: 【 错误】
第3单元C语法的增强及对应的C++11特性
1.3.Quiz基于范围的for
1、单选题:
对于代码char s[] = {'H', 'e', 'l', 'l', 'o'};
auto i = 0;
for(char c : s) {
i++;
}
cout << i;的输出结果是
选项:
A: 0
B: 4
C: 5
D: 6
答案: 【 5】
1.3.Quiz布尔数据类型
1、单选题:
bool x = static_cast<bool>('a');
bool y = ( x != true);x和y的值分别是什么?
选项:
A: true true
B: true false
C: false false
D: false true
答案: 【 true false】
1.4第3单元第4节随堂测验
1、单选题:
语句int x = 108;中的108存放在哪个区域?
选项:
A: 常量区
B: 静态区
C: 堆区
D: 栈区
答案: 【 常量区】
2、单选题:
对于语句const char* p = "Hello";执行下面那条语句不会导致错误?
选项:
A: p[0] = 'A';
B: p = "World";
C: cin >> p;
D: *(p+1) = 'E';
答案: 【 p = "World";】
2.1Quiz
1、单选题:
以下关于带有初始化器的if语句用法不正确的是
选项:
A: if(auto x{3}; x > 3) { // ...}
B: if(z == 1; int z = 1) { //...}
C: if( bool y = (1==2); 1 == 2) {}
D: int foo () { //...}int main() { if(auto x = foo(); x != foo()) { }}
答案: 【 if(z == 1; int z = 1) { //...}】
2、判断题:
带有初始化器的 switch语句switch( int x = 0; x) { // ...}等价于{ int x = 0; switch(x) { //... }}
选项:
A: 正确
B: 错误
答案: 【 正确】
3.3.Quiz类型转换
1、判断题:
cout << static_cast<double>(1 / 2);的输出是0.5
选项:
A: 正确
B: 错误
答案: 【 错误】
4.1.第3单元第5节随堂测验
1、单选题:
在32位编译器中,const int x = 10;
cout << sizeof (x);的输出是:
选项:
A: 2
B: 4
C: 8
D: 16
答案: 【 4】
2、单选题:
对于已有代码char a[3], b[3];
char* const p = a;合法的后续语句是:
选项:
A: p[0] = 'a';
B: *(p++) = 'b';
C: p = b;
D: p[3] = b[0];
答案: 【 p[0] = 'a';】
3、多选题:
对于已有代码:char a[3], b[3];
char const* p = a;合法的后续语句是
选项:
A: p = b;
B: p = b + 1;
C: p[0] = 'a';
D: *(++p) = 'b';
答案: 【 p = b;;
p = b + 1;】
4、判断题:
以下语句using ULInt = unsigned long int;
using PULInt = ULInt*;在C++11中是正确的
选项:
A: 正确
B: 错误
答案: 【 正确】
4.1随堂测验
1、单选题:
对于语句int& x = y, y = 0;说法正确的是
选项:
A: y是一个引用
B: x存放的是y的地址
C: y的地址是0
D: 有语法错误
答案: 【 有语法错误】
2、单选题:
char* p = new char(32);对应的释放内存的语句是:
选项:
A: delete [] p;
B: free(p);
C: delete p;
D: delete <char> p;
答案: 【 delete p;】
3、单选题:
char* a = new char[32];对应的释放内存的语句是:
选项:
A: free a;
B: delete *a;
C: delete a[];
D: delete [] a;
答案: 【 delete [] a;】
4、判断题:
引用在定义的时候就必须被初始化
选项:
A: 正确
B: 错误
答案: 【 正确】
5、判断题:
如果被调函数的形式参数是引用类型,那么对形式参数赋值,效果上相当于对实际参数进行赋值
选项:
A: 正确
B: 错误
答案: 【 正确】
6、判断题:
int* p = nullptr;
int* q;在C++11中,第一行的代码写法要比第二行代码规范
选项:
A: 正确
B: 错误
答案: 【 正确】
5.2第3单元第3节随堂测验
1、单选题:
对于以下代码auto x { 2.f };x的类型是
选项:
A: float
B: double
C: int
D: auto
答案: 【 float】
2、单选题:
对于int const x = 3;
auto y { x };
auto& z { x };则y和z的类型分别是
选项:
A: const int 和 int
B: int 和 int
C: int 和 const int
D: int 和 int&
答案: 【 int 和 const int】
3、判断题:
对于auto x = 'c';
auto p = &x;p的类型是 char*
选项:
A: 正确
B: 错误
答案: 【 正确】
6第3单元第2节随堂测验
1、单选题:
bool x, y;
// ...... 此处代码对x和y进行初始化则表达式 !(x && !y) 与下面哪个表达式等价?
选项:
A: !x && !y
B: !x || !y
C: !x && y
D: !x || y
答案: 【 !x || y】
2、判断题:
对于代码long int x { 1.1 };编译器不会报错。
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
对于代码long int x (1.1);编译器不会报错
选项:
A: 正确
B: 错误
答案: 【 正确】
4、判断题:
表达式:static_cast<double> (3) / 2与 表达式:static_cast<double> (3 / 2)是等价的。
选项:
A: 正确
B: 错误
答案: 【 错误】
5、填空题:
bool x = 1 & 2;则x的值为
答案: 【 false】
6、填空题:
bool x = 1 && 2;则x的值为
答案: 【 true】
7第3单元第6节随堂测验
1、单选题:
对于函数1void f(int a, int b = 1, int c = 2) {}与函数2void f(int x, int y = 3) {}对于下面语句f(3, , 1);来说,表述正确的是:
选项:
A: 调用的是函数1
B: 调用的是函数2
C: 定义一个新的重载函数
D: 编译器会对函数调用语句报错
答案: 【 编译器会对函数调用语句报错】
2、判断题:
函数int max(int, int);与函数unsigned max(unsigned, unsigned);能够构成重载函数
选项:
A: 正确
B: 错误
答案: 【 正确】
3、填空题:
代码#include <iostream>
auto i = 1;
int main() {
for (auto i = 0; i < 5; i++) {
::i += i;
}
std::cout << ::i;
return 0;
}的输出结果是:
答案: 【 11】
4、填空题:
声明内联函数的关键字是
答案: 【 inline】
第4单元对象和类基础
1.3Quiz-类的概念
1、多选题:
面向对象的四个特征中,“P”和“I”分别代表
选项:
A: Polygram
B: Polymorphism
C: Inharitanse
D: Inheritance
答案: 【 Polymorphism;
Inheritance】
2、判断题:
面向对象的四个特征中“E”代表的是 Encaption
选项:
A: 正确
B: 错误
答案: 【 错误】
3、填空题:
面向对象的英文怎么写?(用半角连字符连接两个英文单词)
答案: 【 Object-Oriented】
4、填空题:
面向对象的四个特征中,“A”的英文全称是:
答案: 【 abstraction】
1.4Quiz
1、判断题:
C++11 中,类数据成员初始化时可以使用如下形式:class X{
int x(2);
};
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
C++11中,对象类型的成员不允许就地初始化
选项:
A: 正确
B: 错误
答案: 【 错误】
1.5Quiz对象拷贝和匿名对象
1、单选题:
类Circle有一个无参构造函数,还有一个接收一个参数的构造函数,那么下面匿名对象相关的代码中,哪些是正确的?
选项:
A: Circle c = {Circle a};
B: Circle c{ 1.0 } = Circle;
C: Circle c;c = Circle{};
D: Circle c;c(Circle{1});
答案: 【 Circle c;c = Circle{};】
2、判断题:
对象拷贝时,对象中的函数成员也进行一对一拷贝
选项:
A: 正确
B: 错误
答案: 【 错误】
2.3Quiz
1、判断题:
在构造函数的函数体种,还可以初始化类的数据成员
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
构造函数的函数体执行之前,类中的数据成员必须完成初始化
选项:
A: 正确
B: 错误
答案: 【 正确】
2.4Quiz-创建对象并访问其成员
1、判断题:
构造函数不能有返回值,所以构造函数名的前面必须加上关键字 void
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
类的数据成员也叫做实例变量
选项:
A: 正确
B: 错误
答案: 【 错误】
2.4Quiz-声明与实现分离
1、判断题:
存放类声明的头文件被包含多次,编译器可能会报告类重复声明的错误
选项:
A: 正确
B: 错误
答案: 【 正确】
2、判断题:
将类的声明放到.h文件中,将类的实现放到.cpp文件中,这两个文件的名字除了扩展名之外必须完全相同
选项:
A: 正确
B: 错误
答案: 【 错误】
2.4Quiz
1、多选题:
关于this指针,说法正确的有
选项:
A: this指针是自动初始化的
B: this指针的类型是 void *
C: this指针指向调用当前函数的对象
D: 我们可以显式声明this指针
答案: 【 this指针是自动初始化的;
this指针指向调用当前函数的对象】
2、判断题:
我们可以修改this指针的值,使之指向另外一个对象
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
不管类的数据成员是public还是private属性,数据成员必须在函数成员前面声明。
选项:
A: 正确
B: 错误
答案: 【 错误】
3.4Quiz-避免头文件被多次包含
1、多选题:
避免头文件被多次包含的编译预处理方法有
选项:
A: #ifndef HEADER_FILE_NAME#define HEADER_FILE_NAME// 程序代码#endif
B: #pragma once
C: #include once
D: C++11 的 _Pragma 运算符
答案: 【 #ifndef HEADER_FILE_NAME#define HEADER_FILE_NAME// 程序代码#endif;
#pragma once;
C++11 的 _Pragma 运算符】
