CSP-J教程——第一阶段——第二课:变量与数据类型

课程目标
- 理解变量的概念和作用
- 掌握四种基本数据类型
- 学会使用常量
- 掌握标识符命名规则
- 能够用变量存储和操作信息
第一部分:变量——数据的"盒子"(30分钟)
1.1 什么是变量?
盒子比喻:
- 变量就像贴了标签的储物盒
- 变量名 = 盒子的标签(如"年龄盒子")
- 数据类型 = 盒子的类型(如"数字盒"、“文字盒”)
- 值 = 盒子里的内容(如12、“小明”)
1.2 为什么需要变量?
没有变量的困境:
// 只能计算固定的值
cout << 10 + 5 << endl;  // 永远输出15
有变量的便利:
// 可以计算变化的值
int score = 10;
cout << score + 5 << endl;  // 如果score改变,结果也会变
1.3 变量的声明和初始化
声明变量: 告诉计算机"我要一个盒子"
int age;          // 声明一个整数变量
double height;    // 声明一个小数变量
char grade;       // 声明一个字符变量
初始化变量: 往盒子里放东西
// 方法1:先声明,后赋值
int age;
age = 12;// 方法2:声明同时赋值(推荐)
int age = 12;
第二部分:基本数据类型(40分钟)
2.1 整数类型(int)
用途: 存储没有小数部分的数字
int age = 12;
int score = 100;
int temperature = -5;
特点:
- 可以是正数、负数或零
- 不能有小数点
2.2 浮点数类型(double)
用途: 存储有小数部分的数字
double height = 1.65;
double weight = 45.5;
double pi = 3.14159;
特点:
- 可以表示小数
- 精度比float更高(推荐使用double)
2.3 字符类型(char)
用途: 存储单个字符
char grade = 'A';
char firstLetter = 'Z';
char symbol = '+';
重要规则:
- 必须用单引号 ''括起来
- 只能放一个字符
2.4 布尔类型(bool)
用途: 表示真或假
bool isSunny = true;
bool isRaining = false;
bool hasHomework = true;
实际值:
- true= 真 = 1
- false= 假 = 0
2.5 数据类型总结表
| 类型 | 含义 | 例子 | 用途 | 
|---|---|---|---|
| int | 整数 | 12,-5,100 | 年龄、分数、数量 | 
| double | 小数 | 3.14,1.65,-2.5 | 身高、体重、温度 | 
| char | 字符 | 'A','1','+' | 等级、符号、字母 | 
| bool | 布尔 | true,false | 是否、开关、状态 | 
第三部分:标识符命名规则(20分钟)
3.1 什么是标识符?
标识符就是给变量、常量等起的名字
3.2 命名规则(必须遵守)
允许的字符:
- 字母(A-Z, a-z)
- 数字(0-9)
- 下划线(_)
规则:
- 不能以数字开头
- 不能是C++关键字(如int, double, if等)
- 区分大小写
例子:
// 正确的命名
int age;
double studentHeight;
char first_name;
bool isPassed;// 错误的命名
int 2age;        // 错误:数字开头
double double;   // 错误:关键字
char first-name; // 错误:包含减号
3.3 好的命名习惯(建议遵守)
清晰有意义:
// 好的命名
int studentAge;
double examScore;
bool isHomeworkDone;// 不好的命名
int a;          // 太简单,不知道什么意思
double x1;      // 没有意义
bool f;         // 不清楚表示什么
命名风格:
- 驼峰命名法:studentAge,totalScore
- 下划线命名法:student_age,total_score
第四部分:常量(15分钟)
4.1 什么是常量?
常量就是值不能改变的变量
比喻: 像刻在石头上的字,一旦写好就不能修改
4.2 定义常量
使用 const 关键字
const double PI = 3.14159;
const int MAX_SCORE = 100;
const char SCHOOL_CODE = 'A';
4.3 为什么要用常量?
- 防止意外修改
- 提高代码可读性
- 便于统一修改
例子对比:
// 没有常量:魔法数字,难以理解
area = 3.14159 * radius * radius;// 使用常量:意义明确
const double PI = 3.14159;
area = PI * radius * radius;
第五部分:综合示例与练习(25分钟)
5.1 完整示例:学生信息管理
#include <iostream>
using namespace std;int main() {// 学生信息变量const char CLASS_GRADE = 'B';  // 班级等级(常量)string studentName = "小明";   // 学生姓名int age = 12;                  // 年龄double height = 1.65;          // 身高(米)char bloodType = 'O';          // 血型bool isBoarder = true;         // 是否住宿// 输出学生信息cout << "=== 学生信息卡 ===" << endl;cout << "姓名:" << studentName << endl;cout << "年龄:" << age << "岁" << endl;cout << "身高:" << height << "米" << endl;cout << "血型:" << bloodType << "型" << endl;cout << "班级等级:" << CLASS_GRADE << "班" << endl;cout << "住宿情况:" << (isBoarder ? "是" : "否") << endl;return 0;
}
5.2 变量运算示例
#include <iostream>
using namespace std;int main() {// 数学运算int mathScore = 95;int englishScore = 88;int totalScore = mathScore + englishScore;double averageScore = totalScore / 2.0;cout << "数学成绩:" << mathScore << endl;cout << "英语成绩:" << englishScore << endl;cout << "总分:" << totalScore << endl;cout << "平均分:" << averageScore << endl;// 变量值修改mathScore = 98;  // 数学成绩提高了cout << "新的数学成绩:" << mathScore << endl;return 0;
}
练习与作业
基础练习(必做)
练习1:个人信息管理
创建一个程序,存储并输出你的个人信息:
- 姓名(字符串)
- 年龄(整数)
- 身高(小数)
- 最喜欢的字母(字符)
- 是否喜欢编程(布尔)
练习2:简单计算器
编写程序计算两个数的和、差、积、商:
int a = 15;
int b = 3;
// 计算并输出 a+b, a-b, a*b, a/b 的结果
练习3:常量应用
定义以下常量,并用它们计算:
- 圆周率 PI = 3.14
- 重力加速度 G = 9.8
- 最大年龄 MAX_AGE = 18
计算半径为5的圆的面积和周长。
挑战练习(选做)
挑战1:数据类型转换
尝试不同类型变量之间的赋值,观察会发生什么:
int a = 10;
double b = a;        // 整数赋值给小数
char c = 'A';
int d = c;           // 字符赋值给整数
挑战2:变量交换
编写程序交换两个变量的值:
int x = 5, y = 10;
// 交换后:x=10, y=5
挑战3:单位转换
编写程序进行单位转换:
- 将英寸转换为厘米(1英寸=2.54厘米)
- 将华氏度转换为摄氏度(C = (F-32)×5/9)
实验任务
任务1:命名规则验证
尝试以下命名,记录哪些可以通过编译:
int 2things;      double student-name;
char what?;       bool is_correct;
int main;         double π;
任务2:常量测试
尝试修改常量的值,观察会发生什么:
const int MAX = 100;
MAX = 200;  // 这行会发生什么?
任务3:变量范围探索
测试变量的取值范围:
int bigNumber = 3000000000;    // 会发生什么?
double verySmall = 0.0000000000000000001;
常见错误与调试
常见错误类型
1. 未初始化变量
int score;
cout << score;  // 错误:score没有初始值
2. 类型不匹配
int age = "12";  // 错误:字符串不能赋给整数
3. 命名错误
int student age;  // 错误:变量名不能有空格
4. 修改常量
const int MAX = 100;
MAX = 200;       // 错误:常量不能修改
调试技巧
- 逐行检查:确认每行代码的意思
- 输出中间结果:用cout显示变量的当前值
- 注释大法:暂时注释掉有问题的代码
学习总结
今天学到了:
- ✅ 变量:存储数据的命名容器
- ✅ 四种基本数据类型:int, double, char, bool
- ✅ 常量:值不可变的变量
- ✅ 命名规则:标识符的命名规范
- ✅ 变量操作:声明、赋值、使用
关键概念回顾:
- 变量声明:数据类型 变量名;
- 变量赋值:变量名 = 值;
- 常量定义:const 数据类型 常量名 = 值;
- 命名规则:字母/数字/下划线,不以数字开头,不是关键字
下一课预告:
下一节课我们将学习基本的输入与输出,让程序能够与用户交互,从键盘读取数据!
