第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、单选题:
对于函数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

第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 运算符

3.4Quiz

1、多选题:
‎以下哪些函数可以作为类Circle的默认构造函数?‌
选项:
A: Circle::Circle();
B: Circle::Circle(double radius);
C: Circle::Circle(double r = 1.0, char color = 'b');
D: Circle::Circle(Circle& c);
答案: 【 Circle::Circle();;
Circle::Circle(double r = 1.0, char color = 'b');

2、判断题:
‏带有参数的构造函数不是默认构造函数‏
选项:
A: 正确
B: 错误
答案: 【 错误

3.5Quiz

1、判断题:
‏对于如下代码:‌class Circle {} ;
void f ( Circle c );
// main() 
Circle x{};
f(x);‏第五行代码会导致对象拷贝‌‏‌‏‌
选项:
A: 正确
B: 错误
答案: 【 正确

2、判断题:
‍对于下面的代码‎‍‎class Circle {} ;
void f ( Circle& c );
// main() 
Circle x{};
f(x);‍‎‍第五行代码会导致对象拷贝‎
选项:
A: 正确
B: 错误
答案: 【 错误

4.3Quiz

1、单选题:
‎对于代码​‎struct X {​‎  int x {8};​‎  X() : x {10} {​‎    x = 42;​‎  }​‎};​‎X  c;​‎​‎则 c.x 的值是​
选项:
A: 8
B: 10
C: 42
D: 不能确定
答案: 【 42

2、判断题:
‎如果类X的数据成员x既有就地初始化,也有构造函数初始化列表的初始化,那么就地初始化会被执行并且优先级最高。‌
选项:
A: 正确
B: 错误
答案: 【 错误

第4单元测验

1、单选题:
对于如下代码:‎Circle *pCircle2 = new Circle(5.9);释放内存的正确语句是:‎‍‎
选项:
A: free(pCircle2);
B: delete pCircle2;
C: delete pCircle2(5.9);
D: delete Circle(5.9);
答案: 【 delete pCircle2;

2、单选题:
下面的代码输出结果是什么?‍string s{""};
s.append("ABCDEFG", 3, 2); 
cout << s;‍‏‍
选项:
A: BC
B: CD
C: DE
D: EF
答案: 【 DE

3、单选题:
对于如下代码‌Circle* p = new Circle[3];‌正确释放内存的代码是:‌​‌
选项:
A: delete [] p;
B: delete [3] p;
C: delete p[];
D: delete p(3);
答案: 【 delete [] p;

4、单选题:
对于如下代码‍Circle circleArray[3] = {
       Circle(3), 
       Circle(4)
};没有调用Circle类的哪些构造函数?‍‍‍‍上述代码的编译环境是 C++11或者C++14。‍‍注意:在C++17中引入了“复制消除”,会对本题的结果产生重要影响。‍
选项:
A: Circle::Circle(int)
B: Circle::Circle(Circle &)
C: Circle::Circle()
D: Circle::Circle(Circle [])
答案: 【 Circle::Circle(Circle [])

5、单选题:
‌以下代码中,第几行有错误?​‌​‌​‌class S { ​‌  int x = 7; ​‌  int n(7);  ​‌  std::string s{"Hello"};​‌  int a[] = {1

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

发表评论

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