第1单元C++概览

2.3 Quiz

1、单选题:
‌哪种编程范式是C++11之后才支持的?‍
选项:
A: 结构化编程
B: 面向对象编程
C: 泛型编程
D: 函数式编程
答案: 【 函数式编程

3.3 Quiz

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.3 Quiz

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: 错误
答案: 【 错误

第2单元测验

1、单选题:
​关于C++的main()函数说法不正确的是‏
选项:
A: 必须得显式地写 return 语句返回一个整型值
B: 函数类型是 int 型
C: 可以带参数
D: 可以不带参数
答案: 【 必须得显式地写 return 语句返回一个整型值

2、单选题:
​关于名字空间,说法正确的是‍
选项:
A: C语言也有名字空间
B: 名字空间不能嵌套声明
C: 名字空间可以用 for 作为名字
D: 程序员可以定义自己的名字空间
答案: 【 程序员可以定义自己的名字空间

3、单选题:
‍关于编译预处理,说法正确的是‎
选项:
A: using 是预处理指令
B: #define  HELLO是定义了一个宏,名字叫 HELLO
C: #define HELLO HELLO是定义了一个宏,名字叫 HELLO
D: C++源代码经过编译预处理之后,就变成了目标代码
答案: 【 #define  HELLO是定义了一个宏,名字叫 HELLO

4、单选题:
‏int i = 1;‏‏cout << i << i++;‏‏‏‏上面的代码的输出是‏
选项:
A: 11
B: 12
C: 21
D: 第二行代码是一句病式。最终结果依赖于两个 i 的取值次序。这是C++标准中未定义的行为。不同编译器会输出不同的结果。
答案: 【 第二行代码是一句病式。最终结果依赖于两个 i 的取值次序。这是C++标准中未定义的行为。不同编译器会输出不同的结果。

5、单选题:
‎‍‎char a, b;‍‎cin >> a;‍‎b = cin.get();‍‎‍‎从键盘上输入  字符 x 然后回车,那么 b中存放的是‍
选项:
A: 随机的字符
B: 字符x
C: 字符a
D: 换行符
答案: 【 换行符

6、单选题:
‌cin对象中,以下说法错误的是‌
选项:
A: getline()函数可以读入一行字符串
B: get()的重载函数可以读入一行字符串
C: 使用 >> 可以输入时,遇到空格或制表符时都会停止
D: 也支持 << 操作
答案: 【 也支持 << 操作

7、多选题:
‌c++程序中的源文件扩展名包括以下:‌
选项:
A: cpp
B: cxx
C: java
D: asm
答案: 【 cpp;
cxx

8、多选题:
​遵守编码规范有助于​
选项:
A: 提升代码的可阅读性和可维护性
B: 提升程序开发小组协作的效率
C: 让代码运行得更快
D: 让程序员更快乐
答案: 【 提升代码的可阅读性和可维护性;
提升程序开发小组协作的效率

9、判断题:
‍运算符 >> 原本的含义是左移运算符‏
选项:
A: 正确
B: 错误
答案: 【 错误

10、判断题:
‎int a, b;‎‎cin >> a >> b;‎‎‎‎输入 1  2‎‎则 a的值是2, b的值是1‎
选项:
A: 正确
B: 错误
答案: 【 错误

11、判断题:
‎编译器能帮我们检查代码的逻辑错误‍
选项:
A: 正确
B: 错误
答案: 【 错误

12、填空题:
​C++程序的入口点是哪个函数?‌
答案: 【 main

13、填空题:
‎用于输出语句中,代表标准输出的对象是‎
答案: 【 cout

第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.1 Quiz

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 随堂测验

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: 错误
答案: 【 正确

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: 错误
答案: 【 正确

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、单选题:
对于函数1‌void f(int a, int b = 1, int c = 2) {}与函数2‌void 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

第3单元测验

1、单选题:
bool x, y;
// ...... 此处代码对x和y进行初始化​则表达式 !(x && !y) 与下面哪个表达式等价?​‌​
选项:
A: !x && !y
B: !x || !y
C: !x && y
D: !x || y
答案: 【 !x || y

2、单选题:
给定函数1‍void f(int a, int b = 1, int c = 2) {}和函数2‍void f(int x, int y = 3) {}对于下面语句‍f(3, , 1);来说,表述正确的是:‍‍‍
选项:
A: 调用的是函数1
B: 调用的是函数2
C: 定义一个新的重载函数
D: 编译器会对函数调用语句报错
答案: 【 编译器会对函数调用语句报错

3、单选题:
‍char* a = new char[32];对应的释放内存的语句,哪种写法最好?‏
选项:
A: delete a;
a = nullptr;
B: delete *a;
C: delete [] a;
D: delete [] a;
a = nullptr;
答案: 【 delete [] a;
a = nullptr;

4、单选题:
‏下列代码正确的是‎
选项:
A: auto a {10};
decltype(a) y;
B: decltype (auto) x;
C: auto f() {
  return auto;
}
D: auto array[] {1.0, 2.0};
答案: 【 auto a {10};
decltype(a) y;

5、多选题:
对于语句​int& x = y, y{0};说法正确的是​‍​
选项:
A: 有语法错误
B: 正确定义方法应该是int y {0}, &x {y};
C: x存放的是y的地址
D: y是一个引用
答案: 【 有语法错误;
正确定义方法应该是int y {0}, &x {y};

6、多选题:
char* p = new char(32);‎释放内存的语句是:‎‎‎
选项:
A: delete [] p;
B: free(p)
C: delete p;
D: delete <char> p;
答案: 【

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注