C 班 第 2 课:会记数的盒子 + 让电脑帮你算数

适用对象: 完成了第 1 课(敲出第一个程序)的同学 使用方式: 自学讲义。放在电脑旁边,边读边照着做 学完本课,你应该能:

  1. 用"盒子"给电脑存一个数字,再让它显示出来
  2. 让电脑做加减乘除,一秒算出你按计算器要按半天的题
  3. 做出一个"你报数、它回答"的互动程序

遇到问题怎么办: 老规矩——先把出问题的那一步重新读一遍,逐字对照。重点检查分号丢没丢、符号是不是中文的


1. 热身:把上节课的程序再敲一遍(10 分钟)

打开 Dev-C++,新建源代码(Ctrl+N),保存为 lesson2.cpp(Ctrl+S,存到 D 盘的 cpp 文件夹)。

看着下面的程序照着敲(允许看,不用背),按 F11 运行成功再往下读:

#include <bits/stdc++.h>
using namespace std;

int main() {
    cout << "第二课开始!" << endl;
    return 0;
}

比上节课快了吧?这就是进步。这节课接下来的所有实验,都直接在这个文件里改。


2. 变量:给电脑一个会记数的盒子(20 分钟)

电脑有超大的"储物间",你可以随时找它要一个盒子,往里放一个数字,还要给盒子贴个名字,以后喊名字就能拿到里面的数。

这种带名字的盒子,叫变量

要一个盒子只需要一行:

int age = 12;

分三步读:

代码 意思
int "电脑,给我一个装整数的盒子"(int 就是整数的意思)
age 盒子的名字叫 age(英文"年龄",名字你随便起,用英文字母)
= 12 往盒子里放个 12

放进去之后,cout 喊名字就能把数拿出来显示。把 cout << "第二课开始!" << endl; 那一行换成下面两行,运行:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int age = 12;
    cout << age << endl;
    return 0;
}

屏幕显示:12

实验:加引号和不加引号,完全是两回事

把中间改成这样,运行一次,仔细看两行输出有什么不同:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int age = 12;
    cout << age << endl;
    cout << "age" << endl;
    return 0;
}

屏幕显示:

12
age

📝 记住:引号里的,电脑原样照搬;引号外的,电脑动脑去找。


3. 电脑是超级计算器(20 分钟)

3.1 先在键盘上找到四个运算符号

上节课的寻宝清单再加 4 个,找到打钩:

符号 意思 在哪里
+ 退格键左边,按住 Shift 再按
- 数字 0 的右边,直接按
* (不是 ×) 数字 8 的上面,按住 Shift + 8
/ (不是 ÷) 右 Shift 左边,直接按(上节课找过它)

⚠️ 电脑键盘上没有 × 和 ÷,程序里乘法用 *,除法用 /

3.2 让电脑算算看

cout 后面不光能放盒子,还能直接放算式——电脑先算出答案再显示。把程序中间改成:

#include <bits/stdc++.h>
using namespace std;

int main() {
    cout << 365 * 24 << endl;
    cout << 2026 - 2014 << endl;
    return 0;
}

屏幕显示:

8760
12

第一行是一年有多少个小时——电脑瞬间算完。第二行:把 2014 换成你的出生年,算出来的就是你今年几岁。

试一试(在同一个文件里加行): 让电脑算"一天有多少秒"(提示:24 小时 × 60 分 × 60 秒,乘号可以连着用:24 * 60 * 60)。

答案对一对
#include <bits/stdc++.h>
using namespace std;

int main() {
    cout << 24 * 60 * 60 << endl;
    return 0;
}

屏幕显示 86400。一天有八万六千四百秒!

📝 除法 / 先用能整除的数试(比如 100 / 4)。除不尽会发生什么?——以后学,今天先不管它。


4. cin:让程序听你报的数(20 分钟)

目前为止,数字都是你写在程序里的。现在学一个新零件 cin,让程序运行的时候问你要数——这样同一个程序,每次报不同的数,就有不同的结果。

做一台魔法翻倍机:你报一个数,它立刻报出这个数的 2 倍。新建文件 double.cpp

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    cout << n * 2 << endl;
    return 0;
}

三个新东西:

代码 意思
int n; 先要一个空盒子 n(这次先不放数,等你来报)
cin >> n; "电脑,等着——把键盘上敲的数装进盒子 n"
cout << n * 2 把盒子里的数乘 2 显示出来

怎么记住方向: cout << 箭头往指,把东西送屏幕;cin >> 箭头往指,把数收盒子。

运行的时候是这样的

按 F11 后,黑窗口是空的,一动不动——它不是坏了,是在等你输入

  1. 用键盘敲一个数,比如 7
  2. 回车键(Enter)
  3. 屏幕立刻显示 14

多按几次 F11,每次报不同的数试试。再把家里人叫过来:"你随便说个数,我的程序能秒算它的 2 倍。"

⚠️ 输入数字前记得看输入法是不是英文状态,用中文输入法敲的数字程序可能收不到。


5. 本课练习(20 分钟)

⭐ 基础:年龄计算机(就用 lesson2.cpp

让程序显示你明年几岁、10 年后几岁(用出生年做减法,比如 2027 - 20142036 - 2014)。两行输出,运行成功。

⭐⭐ 进阶:加法机(新建 add.cpp

做一台加法机:你报两个数(敲一个数按一次回车),它报出两数之和。程序大部分已经写好,只差两行——把第 5 行和第 8 行补完整:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a;
    cin >> a;
    int b;
    cin >> b;
    cout << ______ << endl;
    return 0;
}

______ 处填"a 加 b"的算式。敲的时候整个程序都要敲进去,别真的敲下划线。)

参考答案
#include <bits/stdc++.h>
using namespace std;

int main() {
    int a;
    cin >> a;
    int b;
    cin >> b;
    cout << a + b << endl;
    return 0;
}

运行后敲 3 回车、5 回车,屏幕显示 8

⭐⭐⭐ 挑战:长方形计算机(新建 rect.cpp

你报长方形的(两个整数),它报出面积。会做的话,再加一行报出周长(提示:周长 = (长 + 宽) × 2,小括号和数学里用法一样)。

参考答案
#include <bits/stdc++.h>
using namespace std;

int main() {
    int a;
    cin >> a;
    int b;
    cin >> b;
    cout << "面积是" << a * b << endl;
    cout << "周长是" << (a + b) * 2 << endl;
    return 0;
}

运行后敲 6 回车、4 回车,屏幕显示:

面积是24
周长是20

一行 cout 里可以既有引号里的话、又有算式,用 << 连起来就行。


本课要点速查

东西 意思
int age = 12; 要一个装整数的盒子,名叫 age,放个 12
int n; 要一个空盒子,等着装数
cin >> n; 把键盘敲的数装进盒子 n(记得按回车)
cout << age 显示盒子里的数(不加引号!)
cout << "age" 原样显示 age 三个字母(加了引号)
数学符号 程序里写 在键盘哪里
+ Shift + 退格左边那个键
- 数字 0 右边,直接按
× * Shift + 8
÷ / 右 Shift 左边,直接按

方向口诀: cout << 往外送(显示),cin >> 往里收(输入)。


结束前的自我检查

  1. 向家里人解释"变量就是带名字的盒子",并演示加引号和不加引号的区别
  2. 翻倍机、加法机都运行成功,家里人报数、程序算对
  3. 不看讲义,说出乘号和除号在程序里怎么写、在键盘哪里
  4. ⭐ 和 ⭐⭐ 练习完成(⭐⭐⭐ 做不出来没关系,下节课还会用到它)