返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 2, 主题|小节 6
进行中

2.5 彩蛋

2025年9月22日
课 进展
0% 完成

“小朋友们,让我们来做一些有趣的实验!”

[图片:小朋友们准备做实验的场景]

好的,让我继续完成这个章节:

🔮 实验一:魔法蛋糕店
“让我们来开一家魔法蛋糕店吧!”

[图片:一家可爱的蛋糕店,上面飘着计算公式]

// 计算蛋糕的价格
cout << "一个蛋糕原价" << 100 << "元" << endl;
cout << "打八折后是" << 100.0 * 0.8 << "元" << endl;
cout << "买3个总共要" << 100.0 * 0.8 * 3 << "元" << endl;

// 计算蛋糕的分配
cout << "一个蛋糕切成8份" << endl;
cout << "每份是" << 360.0 / 8 << "度" << endl;
cout << "3个蛋糕够" << 8 * 3 << "个人吃" << endl;

🔮 实验二:魔法存钱罐
“每个魔法师都需要一个存钱罐!”

[图片:一个透明的存钱罐,里面有各种硬币]

// 计算存钱罐里的钱
cout << "1元硬币有10个:" << 10 * 1 << "元" << endl;
cout << "5角硬币有6个:" << 6 * 0.5 << "元" << endl;
cout << "总共有:" << 10 * 1 + 6 * 0.5 << "元" << endl;

// 计算还差多少钱买玩具
cout << "玩具熊价格:" << 25 << "元" << endl;
cout << "还差:" << 25 - (10 * 1 + 6 * 0.5) << "元" << endl;

🔮 实验三:魔法时钟
“时间也可以用魔法计算哦!”

[图片:一个魔法时钟,周围有数字和计算公式]

// 计算时间
cout << "现在是14点" << endl;
cout << "过5小时是" << (14 + 5) % 24 << "点" << endl;
cout << "12小时前是" << (14 - 12 + 24) % 24 << "点" << endl;

🔮 实验四:周期魔法
“小朋友们,生活中有很多周期性的事物呢!比如一星期七天会不断重复,让我们来学习周期的魔法吧!”

[图片:一个七彩的星期表,像魔法轮盘一样转动]

// 星期的计算魔法(1-7表示周一到周日)
// 计算公式: (当前值 + 间隔天数 - 1) % 7 + 1
// -1 是为了让范围从1-7变成0-6,最后+1是为了恢复到1-7的范围

cout << "今天是周三" << endl;
// 计算10天后
// 当前是周三(3),加上间隔10天,减1转换范围
// (3 + 10 - 1) = 12
// 12 % 7 = 5 
// 5 + 1 = 6,所以是周六
cout << "10天后是周" << (3 + 10 - 1) % 7 + 1 << endl;    // 输出:周6

// 更多星期的例子
cout << "今天是周三" << endl;
// 计算100天后
// (3 + 100 - 1) = 102
// 102 % 7 = 4
// 4 + 1 = 5,所以是周五 
cout << "100天后是周" << (3 + 100 - 1) % 7 + 1 << endl;  // 输出:周5

// 计算5天前,需要加一个周期7避免负数
// (3 - 5 + 7 - 1) = 4
// 4 % 7 = 4
// 4 + 1 = 5,所以是周五
cout << "5天前是周" << (3 - 5 + 7 - 1) % 7 + 1 << endl;  // 输出:周5

// 有趣的周期问题
cout << "每隔3天做一次运动" << endl;
// 从周三开始,要计算第5次运动
// 需要间隔4次,所以是3*4=12天
// (3 + 12 - 1) = 14
// 14 % 7 = 0
// 0 + 1 = 1,所以是周一
cout << "从周3开始,第5次运动是周" << (3 + 3 * 4 - 1) % 7 + 1 << endl;  // 输出:周1

// 更多练习:
// 计算50天后
// (3 + 50 - 1) = 52
// 52 % 7 = 3
// 3 + 1 = 4,所以是周四
cout << "50天后是周" << (3 + 50 - 1) % 7 + 1 << endl;    // 输出:周4

// 计算每隔5天第8次
// 需要间隔7次,所以是5*7=35天
// (3 + 35 - 1) = 37
// 37 % 7 = 2
// 2 + 1 = 3,所以是周三
cout << "每隔5天第8次是周" << (3 + 5 * 7 - 1) % 7 + 1 << endl;   // 输出:周3

“小红举手问道:’老师,为什么5天前要加7呢?'”

“好问题!” 我笑着解释,”因为我们不能回到负数的星期,所以要加一个周期7,就像时钟往回拨一样!”

[图片:小红思考的表情]

练习题:

选择题:

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

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

  2. 在C++中,以下哪个表达式的输出结果是”Hello123″( )
    A. cout << “Hello” + 123 << endl; // 错误,字符串常量不能与数字相加
    B. cout << “Hello” + “123” << endl; // 错误,字符串常量不能相加
    C. cout << “Hello” << 123 << endl; // 正确,输出Hello123
    D. cout << Hello + 123 << endl; // 错误,Hello未定义

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

  3. 在C++中,表达式 cout << 3.14 + ‘0’ << endl; 的输出结果是( )
    A. 3.14
    B. 51.14
    C. 48.14
    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。这是一个常用的字符数字转整数的技巧,因为字符’0’到’9’的ASCII码是连续的。

判断题:

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

    答案:×
    解析:输出结果是HelloA123,因为输出语句会按照<<运算符的顺序从左到右依次输出各个值。

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

    答案:×
    解析:’9’的ASCII码是57,加1等于58,这是一个整数值,而不是字符’10’。字符与整数的运算结果是整数。

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

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

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

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

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

    答案:√
    解析:结果不同。15.0 + ‘A’是浮点运算,结果输出80.0;15 + ‘A’是整数运算,结果输出80。数值相同,只是一个过程中用了浮点运算,一个用了整数运算。

好的,我来给每道题添加答案和解析:

编程小诀窍

[图片:一本打开的魔法笔记本]

🌟 计算小技巧

  1. 遇到复杂计算,先用括号分组
  2. 不确定的时候,多写几步中间结果
  3. 小数计算要特别细心
  4. 除法和取模要检查除数不能为0

🌟 代码整理技巧

  1. 每个计算步骤加注释
  2. 运算符号两边留空格
  3. 相关的计算放在一起
  4. 复杂的式子分多行写

趣味知识角

你知道吗?

  • 计算机每秒钟可以进行数十亿次计算
  • 生活中很多地方都用到了取模运算,比如时钟、日历
  • 古代人用算盘计算,现在我们有了计算机,计算变得更快更准确

下次见,小魔法师们!