教学内容

  • 数据类型转换
    • 隐式类型转换
    • 强制类型转换
  • ASCII码
  • C++转义字符(在第7单元字符串中还会复习)

数据类型转换

知识与概念

自动或手动将数据从一种类型变成另一种类型。

  • bool, char
  • int, long long
  • double

例题

int a = 5;
double b = 2.1;
cout << a + b; // 输出7.1

隐式类型转换

知识与概念

不同类型混合时,编译器自动转换,如 int → double。
bool, char
int , long long
double
编译器自动完成。

例题

char c = 'A';
int n = c + 5; // c 转为int
cout << n; // 输出

习题

  1. 字符 + 整数,输出整数结果。
  2. int + double,分别输出 int 和 double 结果。
  3. 输出char 0-128
for(char i=0;i< = 128;i++)
	cout << i << " ";

强制类型转换

知识与概念

手动指定转换,例如:

double x = 3.6;
cout << (int)x; //去尾,而不是四舍五入。 

解释:

  • (int)3.9 → 3(小数被直接去掉)
  • (int)(-3.9) → -3(不是 -4,也不是四舍五入)

习题

  1. 输入小数,四舍五入输出。
    int rounded = (int)round(3.5); // 结果是 4
  2. 输入int,输出对应字符。

ASCII码

知识与概念

ASCII 是字符与数字之间的映射标准。例如:

  • ‘A’ = 65,‘a’ = 97
  • ‘0’ = 48,‘9’ = 57

例题

char ch = 'A';
cout <<int)ch; // 输出65

习题

  1. 输入一个字符,输出其ASCII码。
  2. 输入一个ASCII值,输出对应字符。

C++ 转义字符

常见转义字符表

cout <<“\n”;

转义序列含义
\n换行
\t制表符
\"双引号
\\反斜杠
\0空字符

示例代码

cout << "Hello \n World!"; // 输出两行
char c='\t';
 

小练习

  1. 输出包含双引号的字符串:"Hello"
  2. 输出一个包含制表符的对齐表格。

题目讲解及练习

B2083 画矩形

练习:
B3844

#include <bits/stdc++.h>
using namespace std;
/*
输入一个n
输出n行n列图案
 
第一行 A,第二行B,第27行还是A开头
开头字母 行号 (i-1)%26  [1,26] -->[0,25]   'A' + 0.
 
*/
int main()
{
 
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int n;
    cin >> n;
 
    for (int i = 1; i <= n; i++)
    {
        // char c = 'A' + (i - 1) / 26;
        char c = 'A' + (i - 1) % 26;
 
        for (int j = 1; j <= n; j++)
        {
            cout << c;
 
            c++;
            if (c > 'Z')
                c = 'A';
        }
        cout << endl;
    }
 
    return 0;
}

下一章
GESP2.3循环嵌套打印图形