Initial commit: C++ courseware
This commit is contained in:
commit
4a4ee7c287
1789 files changed
+373489
No files matched your search
@@ -0,0 +1,32 @@
|
||||
### **C++ 转义字符与字符类型 课后习题 - 答案**
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. `char`
|
||||
2. 单引号
|
||||
3. `100`
|
||||
4. `\\`
|
||||
5. `\"Hi\"`
|
||||
6. `':'`
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
1. **C**. `char` 类型的字面量必须用单引号包裹,且只能是单个字符。
|
||||
2. **C**. `\n` 是换行符,会让 `Tom` 显示在下一行。
|
||||
3. **B**. 反斜杠 `\` 本身是转义字符,要输出它自身,需要写成 `\\`。
|
||||
4. **A**. `cin` 会依次读取一个整数存入 `a`,一个字符存入 `op`,一个整数存入 `b`。输入 `5+3` 时,`op` 会接收到字符 `'+'`。
|
||||
5. **B**. `\"` 是双引号的转义序列,用于在字符串内部表示一个双引号字符。
|
||||
6. **D**. `char` 变量只能存放单个字符,`'Go'` 包含两个字符,是错误的。
|
||||
7. **A**. 程序读取一个整数 `h`,然后需要读取一个字符,最后读取一个整数 `m`。
|
||||
8. **C**. `\\` 是 `\` 的转义序列,所以 `\\` 会让 `\` 失去转义功能,变回它本身。因此 `\\n` 会输出 `\n` 这两个字符。
|
||||
|
||||
#### **三、 判断题**
|
||||
|
||||
1. × (必须用单引号 `' '`。)
|
||||
2. √ (两者最终在屏幕上看到的换行效果是一样的。)
|
||||
3. √ (`cin` 默认通过空白字符(空格、回车等)分隔数据,读到 'A' 后遇到空格,就完成了对 `c` 的读取。)
|
||||
4. √ (这正是转义字符的定义。)
|
||||
5. × ( `char` 只能存放单个字符。)
|
||||
6. √ (`cin` 会先读取数字部分 `99` 存入 `a`,然后接着读取非数字字符 `'A'` 存入 `c`。)
|
||||
7. √ ( `"` 是特殊字符,在字符串中必须通过 `\"` 来表示。)
|
||||
8. √ (如 `cin >> a >> op >> b;` 所示,`cin` 可以很灵活地连续读取不同类型的数据。)
|
||||
Binary file not shown.
@@ -0,0 +1,78 @@
|
||||
### **C++ 转义字符与字符类型 课后习题**
|
||||
|
||||
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. C++中,用于存放单个字符(如 'A', '?')的数据类型是 \_\_\_\_\_\_\_\_\_\_。
|
||||
2. 在为 `char` 类型变量赋值时,该字符必须被一对 \_\_\_\_\_\_\_\_\_\_(填“单引号”或“双引号”)包围。
|
||||
3. 代码 `cout << "Score:\n100";` 的输出结果是:第一行显示 `Score:`,第二行显示 \_\_\_\_\_\_\_\_\_\_。
|
||||
4. 如果想在屏幕上显示出路径 `D:\Data`,那么在代码的字符串中应该写作 `D:________Data`。
|
||||
5. 如果想在屏幕上显示出带引号的文字 `He said: "Hi"`,那么代码中表示 `"Hi"` 的部分应该写作 \_\_\_\_\_\_\_\_\_\_。
|
||||
6. 对于代码 `int h; char c; cin >> h >> c;`,如果用户输入 `12:59` 并回车,那么整型变量 `h` 的值是 `12`,而字符型变量 `c` 的值是 \_\_\_\_\_\_\_\_\_\_。
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
( ) 1. 下面哪个是定义 `char` 变量并正确赋值的语句?
|
||||
A. `char c = "A";`
|
||||
B. `char c = A;`
|
||||
C. `char c = 'A';`
|
||||
D. `char c = 'AB';`
|
||||
|
||||
( ) 2. 执行 `cout << "Name:\nTom";` 后,屏幕上会显示什么?
|
||||
A. `Name:\nTom`
|
||||
B. `Name: Tom`
|
||||
C. 两行,第一行 `Name:`,第二行 `Tom`
|
||||
D. `Name:Tom`
|
||||
|
||||
( ) 3. 哪句代码可以在屏幕上正确输出路径 `C:\` ?
|
||||
A. `cout << "C:\";`
|
||||
B. `cout << "C:\\";`
|
||||
C. `cout << "C:/";`
|
||||
D. `cout << 'C:\';`
|
||||
|
||||
( ) 4. 阅读以下代码,如果用户输入 `5+3` 并回车,变量 `op` 的值是多少?
|
||||
```cpp
|
||||
int a, b;
|
||||
char op;
|
||||
cin >> a >> op >> b;
|
||||
```
|
||||
A. `'+'`
|
||||
B. `+`
|
||||
C. `" "` (空格)
|
||||
D. 程序会报错
|
||||
|
||||
( ) 5. 执行 `cout << "He said \"Go!\"";` 后,屏幕上会显示什么?
|
||||
A. `He said Go!`
|
||||
B. `He said "Go!"`
|
||||
C. `He said \"Go!\"`
|
||||
D. `He said: "Go!"`
|
||||
|
||||
( ) 6. 以下哪个**不能**被正确地赋值给一个 `char` 类型的变量?
|
||||
A. `'?'`
|
||||
B. `' '`
|
||||
C. `'7'`
|
||||
D. `'Go'`
|
||||
|
||||
( ) 7. 有代码 `int h, m; char c; cin >> h >> c >> m;`,为了让程序成功读入小时 `11` 和分钟 `59`,不正确的输入格式是?
|
||||
A. `11 59`
|
||||
B. `11:59`
|
||||
C. `11,59`
|
||||
D. `11;59`
|
||||
|
||||
( ) 8. 执行 `cout << "\\n";` 后,屏幕上会显示什么?
|
||||
A. 一个空行
|
||||
B. `n`
|
||||
C. `\n`
|
||||
D. `\`
|
||||
|
||||
#### **三、 判断题 (对的打“√”,错的打“×”)**
|
||||
|
||||
( ) 1. 在C++中,定义一个字符变量时,字符必须用双引号 `"` 包起来。
|
||||
( ) 2. `\n` 和 `endl` 都能在 `cout` 中实现换行的视觉效果。
|
||||
( ) 3. 对于 `char c; cin >> c;`,如果用户输入 `A B` 并回车,变量 `c` 的值会是 `'A'`。
|
||||
( ) 4. 转义字符 `\` 本身通常不会被显示,它的作用是改变其后字符的含义。
|
||||
( ) 5. 一个 `char` 类型的变量可以存放一个单词,比如 `'Hello'`。
|
||||
( ) 6. 对于 `int a; char c; cin >> a >> c;`,如果用户输入 `99A`,那么 `a` 的值是 `99`,`c` 的值是 `'A'`。
|
||||
( ) 7. 想输出双引号 `"`,代码必须写成 `cout << "\"";`。
|
||||
( ) 8. `cin` 可以一次性读取不同类型的变量,例如 `int` 和 `char`。
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
### 参考答案
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. `char`
|
||||
2. 单引号
|
||||
3. `66`
|
||||
4. `32`
|
||||
5. `5`
|
||||
6. `'+'`
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
1. C
|
||||
2. C
|
||||
3. B (字符'C'的ASCII码是67,加1后是68,68对应的字符是'D')
|
||||
4. B
|
||||
5. B
|
||||
6. A
|
||||
|
||||
#### **三、 判断题**
|
||||
|
||||
1. × (一个是字符,一个是数字,它们的ASCII码和数值都不同)
|
||||
2. √
|
||||
3. √
|
||||
4. × (从'A'到'Z',ASCII码是递增的)
|
||||
5. √
|
||||
6. × (`char` 只能存放单个字符)
|
||||
Binary file not shown.
@@ -0,0 +1,70 @@
|
||||
### C++ 字符与 ASCII 码 课后习题
|
||||
|
||||
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. 在 C++ 中,我们使用关键字 \_\_\_\_\_\_\_\_ 来定义一个存放单个字符的变量。
|
||||
|
||||
2. 定义一个字符变量时,字符本身必须用 \_\_\_\_\_\_\_\_ (填“单引号”或“双引号”) 括起来。
|
||||
|
||||
3. 字符 `'A'` 对应的 ASCII 码值是 `65`,那么字符 `'B'` 对应的 ASCII 码值是 \_\_\_\_\_\_\_\_。
|
||||
|
||||
4. 小写字母 `'a'` 的 ASCII 码值比大写字母 `'A'` 的 ASCII 码值大 \_\_\_\_\_\_\_\_。
|
||||
|
||||
5. 阅读代码 `char c = '5'; int n = c - '0';`,执行后,整型变量 `n` 中存放的值是 \_\_\_\_\_\_\_\_。
|
||||
|
||||
6. 在 `cin >> num1 >> op >> num2;` 中,如果用户输入 `10 + 20`,那么字符变量 `op` 中存入的值是 \_\_\_\_\_\_\_\_。
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
( ) 1. 下列哪个是**正确**的字符变量定义语句?
|
||||
A. `char c = "A";`
|
||||
B. `char c = A;`
|
||||
C. `char c = 'A';`
|
||||
D. `int c = 'A';`
|
||||
|
||||
( ) 2. 执行 `int ch = 'a'; cout << ch;` 后,屏幕上会显示什么?
|
||||
A. `a`
|
||||
B. `A`
|
||||
C. `97`
|
||||
D. `65`
|
||||
|
||||
( ) 3. 阅读以下代码:
|
||||
```cpp
|
||||
char letter = 'C';
|
||||
letter = letter + 1;
|
||||
cout << letter;
|
||||
```
|
||||
程序的输出结果是?
|
||||
A. `C`
|
||||
B. `D`
|
||||
C. `67`
|
||||
D. `68`
|
||||
|
||||
( ) 4. 如果想把大写字母 `'E'` 转换为对应的小写字母,正确的代码是?
|
||||
A. `'E' - 32`
|
||||
B. `'E' + 32`
|
||||
C. `'E' - 'A'`
|
||||
D. `'E' + 'a'`
|
||||
|
||||
( ) 5. 在计算机内部,`char` 类型的变量实际上存放的是什么?
|
||||
A. 字符的形状
|
||||
B. 字符对应的 ASCII 码(一个整数)
|
||||
C. 一段文字
|
||||
D. 一个小数
|
||||
|
||||
( ) 6. `int a; char op; cin >> a >> op;` 如果用户输入 `9*`,那么变量 `a` 和 `op` 的值分别是?
|
||||
A. `a` 是 `9`,`op` 是 `'*'`
|
||||
B. `a` 是 `'9'`,`op` 是 `'*'`
|
||||
C. `a` 是 `9`,`op` 的值不确定
|
||||
D. 读取会失败
|
||||
|
||||
#### **三、 判断题 (对的打“√”,错的打“×”)**
|
||||
|
||||
( ) 1. 在 C++ 中,字符 `'8'` 和整数 `8` 是完全一样的。
|
||||
( ) 2. 计算机能识别和处理文字,是因为有一张像 ASCII 码这样的“字符-数字”对照表。
|
||||
( ) 3. 数字字符是连续排列的,例如 `'1'` 的 ASCII 码比 `'0'` 的大 1。
|
||||
( ) 4. 大写字母 `'Z'` 的 ASCII 码比 `'A'` 的小。
|
||||
( ) 5. 因为字符本质上是数字,所以我们可以对 `char` 类型的变量进行加减运算。
|
||||
( ) 6. `char c = 'ab';` 这样的写法是正确的。
|
||||
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
### C++ 类型转换 课后习题 - **答案**
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. ASCII
|
||||
2. 自动类型
|
||||
3. 强制类型
|
||||
4. 目标类型
|
||||
5. 32
|
||||
6. `(a + b)`
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
1. B 2. C 3. A 4. B 5. B 6. C 7. C 8. B 9. C 10. C
|
||||
|
||||
#### **三、 判断题**
|
||||
|
||||
1. × (保存的是对应的数字,即ASCII码)
|
||||
2. × (这是自动类型转换/隐式转换)
|
||||
3. √
|
||||
4. √
|
||||
5. × (会丢失小数部分,是不安全的操作)
|
||||
6. × (前者先转换x再加y,后者先算x+y再转换结果)
|
||||
7. √
|
||||
8. × (转换前需要了解数据范围,否则可能得到预期外的结果)
|
||||
9. √
|
||||
10. √
|
||||
@@ -0,0 +1,65 @@
|
||||
### C++ 类型转换 课后习题
|
||||
|
||||
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
#### **一、 填空题**
|
||||
|
||||
1. 计算机在存储字符(如 `'A'`)时,实际上存的是一个数字,这个数字是根据 \_\_\_\_\_\_\_\_\_\_\_\_\_ 码表来确定的。
|
||||
2. 例如`int a = 'A';`赋值符两边的类型不一致的情况,会由编译器完成类型转换,叫做 \_\_\_\_\_\_\_\_\_\_\_\_\_ 转换。
|
||||
3. 为了让代码的意图更清晰,我们通过 `(目标类型)变量名/数值` 的格式去进行类型类型的方式,叫做 **\_\_\_\_\_\_\_\_\_\_\_\_\_**转换。
|
||||
4. 强制类型转换的语法格式是:`(`\_\_\_\_\_\_\_\_\_\_\_\_\_`)变量名/数值`。
|
||||
5. 根据ASCII码表的规律,任意一个大写英文字母和它对应的小写字母,它们对应的数字相差 \_\_\_\_\_\_\_\_\_\_\_\_\_。
|
||||
6. 要把一个表达式 `a + b` 的计算**结果**整体转换为 `char` 类型,正确的写法是 `(char)`\_\_\_\_\_\_\_\_\_\_\_\_\_。
|
||||
|
||||
#### **二、 单项选择题**
|
||||
|
||||
( ) 1. 执行 `cout << (char)65;` 这行代码,屏幕上会输出什么?
|
||||
A. 65 B. 'A' C. 'a' D. 无法输出
|
||||
|
||||
( ) 2. 执行 `cout << (int)'a';` 这行代码,屏幕上会输出什么?
|
||||
A. 'a' B. 65 C. 97 D. 32
|
||||
|
||||
( ) 3. 要将大写字母 `'C'` 转换为小写字母 `'c'`,正确的计算方法是?
|
||||
A. `'C' + 32` B. `'C' - 32` C. `'C' + 'a'` D. `'C' - 'A'`
|
||||
|
||||
( ) 4. 要将小写字母 `'z'` 转换为大写字母 `'Z'`,正确的计算方法是?
|
||||
A. `'z' + 32` B. `'z' - 32` C. `'z' + 'A'` D. `'z' - 'a'`
|
||||
|
||||
( ) 5. 当一个 `double` 类型的变量(如 `3.14`)被转换为 `int` 类型时,会发生什么?
|
||||
A. 四舍五入,变为 3
|
||||
B. 丢失小数部分,变为 3
|
||||
C. 四舍五入,变为 4
|
||||
D. 程序会报错
|
||||
|
||||
( ) 6. 表达式 `(char)('B' + 1)` 的计算结果是什么?
|
||||
A. 'B' B. 'A' C. 'C' D. 2
|
||||
|
||||
( ) 7. 相比于 `char c = 97;`,使用 `char c = (char)97;` 这种写法的优点是?
|
||||
A. 运行速度更快
|
||||
B. 程序占用的内存更小
|
||||
C. 代码的意图更清晰明确
|
||||
D. 没有任何区别
|
||||
|
||||
( ) 8. 差值计算法中,`'D' - 'A'` 这个表达式的含义是?
|
||||
A. 字母D减去字母A
|
||||
B. 计算D和A的ASCII码值的差
|
||||
C. 这是一个错误写法
|
||||
D. 结果等于 `'C'`
|
||||
|
||||
( ) 9. 当一个 `int` 类型的数和一个 `double` 类型的数做加法时,`int` 类型会自动转换为哪个类型?
|
||||
A. `char` B. `int` C. `double` D. 不会转换
|
||||
|
||||
( ) 10. `cout << (char)48;` 会在屏幕上输出什么字符?
|
||||
A. 'a' B. 'A' C. '0' D. '1'
|
||||
|
||||
#### **三、 判断题 (对的打“√”,错的打“×”)**
|
||||
( ) 1. 计算机在保存字符 `'A'` 时,就是保存了字母A的图片信息。
|
||||
( ) 2. `char c = 65;` 这种写法属于强制类型转换。
|
||||
( ) 3. 在ASCII码表中,所有小写字母对应的数字都比对应的大写字母要大。
|
||||
( ) 4. 表达式 `'a' - 'A'` 的计算结果是 `32`。
|
||||
( ) 5. 把一个小数(`double`)赋值给一个整数(`int`)是一种安全的操作,不会丢失任何数据。
|
||||
( ) 6. `(char)x + y` 和 `(char)(x + y)` 的计算过程和结果是完全一样的。
|
||||
( ) 7. `'Y' + 32` 的计算结果是小写字母 `'y'`。
|
||||
( ) 8. 使用 `(char)num` 进行强制类型转换前,我们不需要关心 `num` 的值是多少,转换总是安全的。
|
||||
( ) 9. `'a' + ('C' - 'A')` 这个表达式可以把大写字母 `'C'` 转换为小写字母 `'c'`。
|
||||
( ) 10. 字符不仅可以和数字进行转换,字符之间也可以进行加减运算。
|
||||
Binary file not shown.
Reference in new issue
Block a user