2.2.1 字符的运算魔法
“小朋友们,你们知道吗?在计算机的世界里,每个字符其实都是一个数字!” 我神秘地说道。

// 字符的加法
cout << 'A' + 'B' << endl; // 输出:131 (因为'A'是65,'B'是66,所以65+66=131)
cout << 'a' + 'b' << endl; // 输出:195 (因为'a'是97,'b'是98,所以97+98=195)
cout << '1' + '2' << endl; // 输出:99 (因为'1'是49,'2'是50,所以49+50=99)
// 字符的减法
cout << 'B' - 'A' << endl; // 输出:1 (相邻字母相减等于1)
cout << 'z' - 'a' << endl; // 输出:25 (字母间隔数)
cout << '5' - '0' << endl; // 输出:5 (数字字符相减得到实际数值)
2.2.2 字符串的运算魔法
“字符串也有它特别的运算方式!” 我挥动魔法棒。
// 字符串的连接
cout << "Hello" + " World" << endl; // 错误!两个字符串常量不能直接相加
cout << "Hello" << " World" << endl; // 输出:Hello World (用<<来连接)
cout << "12" << "34" << endl; // 输出:1234
2.2.3 混合类型的运算魔法
“现在让我们来看看不同类型是如何一起运算的!”

// 简单的混合输出
cout << "3 + 5 = " << 3 + 5 << endl; // 输出:3 + 5 = 8
cout << "10除以2等于" << 10 / 2 << endl; // 输出:10除以2等于5
// 有趣的故事计算
cout << "小明今年" << 8 << "岁" << endl; // 输出:小明今年8岁
cout << "5年后就是" << 8 + 5 << "岁啦!" << endl; // 输出:5年后就是13岁啦!
// 购物计算
cout << "铅笔" << 2.5 << "元一支" << endl; // 输出:铅笔2.5元一支
cout << "买3支需要" << 2.5 * 3 << "元" << endl; // 输出:买3支需要7.5元
// 生日蛋糕
cout << "蛋糕切成" << 8 << "份" << endl; // 输出:蛋糕切成8份
cout << "每份是" << 360.0 / 8 << "度" << endl; // 输出:每份是45度
// 字符和数字的运算
cout << 'A' + 1 << endl; // 输出:66 ('A'是65,加1得66)
cout << 'a' + 2 << endl; // 输出:99 ('a'是97,加2得99)
cout << '5' + 3 << endl; // 输出:56 ('5'是53,加3得56)
// 数字和字符的运算
cout << 5 + 'A' << endl; // 输出:70 (5加上'A'的值65)
cout << 10 + '0' << endl; // 输出:58 (10加上'0'的值48)
// 整数和小数的运算
cout << 5 + 3.14 << endl; // 输出:8.14
cout << 10.5 + 5 << endl; // 输出:15.5
cout << 7.2 - 3 << endl; // 输出:4.2
// 利用<<进行混合输出
cout << "结果是:" << 'A' + 10 << endl; // 输出:结果是:75
cout << "答案:" << 5 + 3.14 << endl; // 输出:答案:8.14
cout << 'A' << 123 << "abc" << endl; // 输出:A123abc
趣味练习题
计算下面的结果:
cout << 'B' + 'C' << endl; // 问题1:结果是多少?<br>cout << '9' + 1 << endl; // 问题2:结果是多少?<br>cout << 3.14 + '0' << endl; // 问题3:结果是多少?<br>cout << "答案" << 'A' + 1 << endl; // 问题4:输出是什么?<br>
神奇的字符计算:
cout << '2' + '3' << endl; // 问题5:结果是多少?为什么?<br>cout << 'Z' + 'A' << endl; // 问题6:结果是多少?<br>
混合输出练习:
cout << "数字" << 12.34 << 'A' << "结束" << endl; // 问题7:输出是什么?<br>
要点总结
字符运算:
- 字符可以相加:结果是它们对应数字的和
- 字符可以相减:得到它们的间隔值
- 字符加上数字:是在字符对应的数字上加
字符串注意事项:
- 字符串常量之间不能用+连接
- 用<<来连接字符串和其他内容
混合运算规则:
- 字符参与运算时,使用的是它对应的数字值
- 整数和小数运算,结果是小数
- 用<<可以方便地连接输出不同类型的内容
“记住,小魔法师们,” 我总结道,”字符其实是数字的另一种表现形式,所以它们可以参与各种运算!”

好的,我来为混合运算部分添加一些练习题:
练习题:
选择题:
在C++中,表达式 cout << ‘A’ + 2 << endl; 的输出结果是( )
A. A2
B. C
C. 67
D. 65答案:C
解析:’A’的ASCII码值是65,加2等于67。char类型和整数运算时使用字符的ASCII码值进行计算。在C++中,以下哪个表达式的输出结果是”Hello123″( )
A. cout << “Hello” + 123 << endl;
B. cout << “Hello” + “123” << endl;
C. cout << “Hello” << 123 << endl;
D. cout << Hello + 123 << endl;答案:C
解析:字符串常量不能直接用+连接,但可以用<<运算符连接输出字符串和数字。在C++中,表达式 cout << 3.14 + ‘0’ << endl; 的输出结果是( )
A. 3.14
B. 51.14
C. 48
D. 3.140答案:B
解析:’0’的ASCII码值是48,与3.14相加等于51.14。浮点数和字符运算时,字符转换为其ASCII码值。在C++中,表达式 ‘5’ – ‘0’ 的值是( )
A. 5
B. 53
C. 48
D. 0答案:A
解析:字符’5’的ASCII码是53,’0’的ASCII码是48,相减得到5,这是一个常用的字符数字转整数的技巧。
判断题:
在C++中,cout << “Hello” << ‘A’ << 123 << endl; 会输出Hello123A ( )
答案:×
解析:输出结果是HelloA123,输出语句按照<<的顺序从左到右依次输出。在C++中,表达式 ‘9’ + 1 的结果等于字符’10’ ( )
答案:×
解析:’9’的ASCII码是57,加1等于58,是字符’:’的ASCII码值,而不是字符’10’。字符串和整数可以直接用+号进行连接运算 ( )
答案:×
解析:C++中字符串常量不能直接与整数用+连接,要用<<运算符实现输出连接。浮点数和字符进行运算时,字符会转换为其对应的ASCII码值 ( )
答案:√
解析:在数值运算中,字符会自动转换为其ASCII码值,然后再进行运算。这种转换是自动的。C++中 cout << 15.0 + ‘A’ << endl; 和 cout << 15 + ‘A’ << endl; 的输出结果相同 ( )
答案:√
解析:虽然一个是浮点数一个是整数,但它们与字符’A'(ASCII值65)相加都得到80.0。只是一个过程中用了浮点运算,一个用了整数运算。