返回 课程

模板 信奥AC之路(第一级)

0% 完成
0/0 步骤
  1. 第一课 开发环境与基础输出
    4 主题|小节
  2. 第二课 算数运算符
    6 主题|小节
  3. 第三课 输入与运算
    3 主题|小节
  4. 第四课 数值操作
    4 主题|小节
  5. 第五课 表达式与运算符
    3 主题|小节
  6. 第六课 三目运算与双分支(缺导语+本课目标)
    2 主题|小节
  7. 第七课 多分支结构(缺导语+本课目标)
    1 主题|小节
  8. 第八课 多if语句
    1 主题|小节
  9. 第九课 三种分支结构的比较
    1 主题|小节
  10. 第十课 巩固学习分支结构
    1 主题|小节
  11. 第十一课 switch与复合语句
    3 主题|小节
  12. 第十二课 while循环
    2 主题|小节
  13. 第十三课 while循环的简单条件输出
    1 主题|小节
  14. 第十四课 while循环的输入序列处理
    1 主题|小节
  15. 第十五课 while循环的复杂条件输出
    2 主题|小节
  16. 第十六课 while循环与数据统计
    1 主题|小节
  17. 第十七课 for循环结构
    3 主题|小节
  18. 第十八课 for循环的输入序列处理)
    1 主题|小节
  19. 第十九课 深入探索for循环
    2 主题|小节
  20. 第二十课 三种循环的对比
    2 主题|小节
  21. 第二十一课 程序调试(一)
    3 主题|小节
  22. 第二十二课 调试工具的使用
    2 主题|小节
  23. 第二十三课 综合复习
    2 主题|小节
  24. 第二十四课 学习评估
    1 主题|小节
课 2, 主题|小节 2
进行中

2.2 神奇的混合运算魔法

2025年4月19日
课 进展
0% 完成

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

趣味练习题

  1. 计算下面的结果:


    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>

  2. 神奇的字符计算:


    cout << '2' + '3' << endl;         // 问题5:结果是多少?为什么?<br>cout << 'Z' + 'A' << endl;         // 问题6:结果是多少?<br>

  3. 混合输出练习:


    cout << "数字" << 12.34 << 'A' << "结束" << endl;  // 问题7:输出是什么?<br>

要点总结

  1. 字符运算:

    • 字符可以相加:结果是它们对应数字的和
    • 字符可以相减:得到它们的间隔值
    • 字符加上数字:是在字符对应的数字上加
  2. 字符串注意事项:

    • 字符串常量之间不能用+连接
    • 用<<来连接字符串和其他内容
  3. 混合运算规则:

    • 字符参与运算时,使用的是它对应的数字值
    • 整数和小数运算,结果是小数
    • 用<<可以方便地连接输出不同类型的内容

“记住,小魔法师们,” 我总结道,”字符其实是数字的另一种表现形式,所以它们可以参与各种运算!”

好的,我来为混合运算部分添加一些练习题:

练习题:

选择题:

  1. 在C++中,表达式 cout << ‘A’ + 2 << endl; 的输出结果是( )
    A. A2
    B. C
    C. 67
    D. 65


    答案:C
    解析:’A’的ASCII码值是65,加2等于67。char类型和整数运算时使用字符的ASCII码值进行计算。


  2. 在C++中,以下哪个表达式的输出结果是”Hello123″( )
    A. cout << “Hello” + 123 << endl;
    B. cout << “Hello” + “123” << endl;
    C. cout << “Hello” << 123 << endl;
    D. cout << Hello + 123 << endl;


    答案:C
    解析:字符串常量不能直接用+连接,但可以用<<运算符连接输出字符串和数字。


  3. 在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码值。


  4. 在C++中,表达式 ‘5’ – ‘0’ 的值是( )
    A. 5
    B. 53
    C. 48
    D. 0


    答案:A
    解析:字符’5’的ASCII码是53,’0’的ASCII码是48,相减得到5,这是一个常用的字符数字转整数的技巧。


判断题:

  1. 在C++中,cout << “Hello” << ‘A’ << 123 << endl; 会输出Hello123A ( )


    答案:×
    解析:输出结果是HelloA123,输出语句按照<<的顺序从左到右依次输出。


  2. 在C++中,表达式 ‘9’ + 1 的结果等于字符’10’ ( )


    答案:×
    解析:’9’的ASCII码是57,加1等于58,是字符’:’的ASCII码值,而不是字符’10’。


  3. 字符串和整数可以直接用+号进行连接运算 ( )


    答案:×
    解析:C++中字符串常量不能直接与整数用+连接,要用<<运算符实现输出连接。


  4. 浮点数和字符进行运算时,字符会转换为其对应的ASCII码值 ( )


    答案:√
    解析:在数值运算中,字符会自动转换为其ASCII码值,然后再进行运算。这种转换是自动的。


  5. C++中 cout << 15.0 + ‘A’ << endl; 和 cout << 15 + ‘A’ << endl; 的输出结果相同 ( )


    答案:√
    解析:虽然一个是浮点数一个是整数,但它们与字符’A'(ASCII值65)相加都得到80.0。只是一个过程中用了浮点运算,一个用了整数运算。