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

课程目标

  • 理解变量的概念和作用
  • 掌握四种基本数据类型
  • 学会使用常量
  • 掌握标识符命名规则
  • 能够用变量存储和操作信息

第一部分:变量------数据的"盒子"(30分钟)

1.1 什么是变量?

盒子比喻:

  • 变量就像贴了标签的储物盒
  • 变量名 = 盒子的标签(如"年龄盒子")
  • 数据类型 = 盒子的类型(如"数字盒"、"文字盒")
  • = 盒子里的内容(如12、"小明")

1.2 为什么需要变量?

没有变量的困境:

cpp 复制代码
// 只能计算固定的值
cout << 10 + 5 << endl;  // 永远输出15

有变量的便利:

cpp 复制代码
// 可以计算变化的值
int score = 10;
cout << score + 5 << endl;  // 如果score改变,结果也会变

1.3 变量的声明和初始化

声明变量: 告诉计算机"我要一个盒子"

cpp 复制代码
int age;          // 声明一个整数变量
double height;    // 声明一个小数变量
char grade;       // 声明一个字符变量

初始化变量: 往盒子里放东西

cpp 复制代码
// 方法1:先声明,后赋值
int age;
age = 12;

// 方法2:声明同时赋值(推荐)
int age = 12;

第二部分:基本数据类型(40分钟)

2.1 整数类型(int)

用途: 存储没有小数部分的数字

cpp 复制代码
int age = 12;
int score = 100;
int temperature = -5;

特点:

  • 可以是正数、负数或零
  • 不能有小数点

2.2 浮点数类型(double)

用途: 存储有小数部分的数字

cpp 复制代码
double height = 1.65;
double weight = 45.5;
double pi = 3.14159;

特点:

  • 可以表示小数
  • 精度比float更高(推荐使用double)

2.3 字符类型(char)

用途: 存储单个字符

cpp 复制代码
char grade = 'A';
char firstLetter = 'Z';
char symbol = '+';

重要规则:

  • 必须用单引号 '' 括起来
  • 只能放一个字符

2.4 布尔类型(bool)

用途: 表示真或假

cpp 复制代码
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)
  • 下划线(_)

规则:

  1. 不能以数字开头
  2. 不能是C++关键字(如int, double, if等)
  3. 区分大小写

例子:

cpp 复制代码
// 正确的命名
int age;
double studentHeight;
char first_name;
bool isPassed;

// 错误的命名
int 2age;        // 错误:数字开头
double double;   // 错误:关键字
char first-name; // 错误:包含减号

3.3 好的命名习惯(建议遵守)

清晰有意义:

cpp 复制代码
// 好的命名
int studentAge;
double examScore;
bool isHomeworkDone;

// 不好的命名
int a;          // 太简单,不知道什么意思
double x1;      // 没有意义
bool f;         // 不清楚表示什么

命名风格:

  • 驼峰命名法:studentAge, totalScore
  • 下划线命名法:student_age, total_score

第四部分:常量(15分钟)

4.1 什么是常量?

常量就是值不能改变的变量

比喻: 像刻在石头上的字,一旦写好就不能修改

4.2 定义常量

使用 const 关键字

cpp 复制代码
const double PI = 3.14159;
const int MAX_SCORE = 100;
const char SCHOOL_CODE = 'A';

4.3 为什么要用常量?

  1. 防止意外修改
  2. 提高代码可读性
  3. 便于统一修改

例子对比:

cpp 复制代码
// 没有常量:魔法数字,难以理解
area = 3.14159 * radius * radius;

// 使用常量:意义明确
const double PI = 3.14159;
area = PI * radius * radius;

第五部分:综合示例与练习(25分钟)

5.1 完整示例:学生信息管理

cpp 复制代码
#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 变量运算示例

cpp 复制代码
#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:简单计算器

编写程序计算两个数的和、差、积、商:

cpp 复制代码
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:数据类型转换

尝试不同类型变量之间的赋值,观察会发生什么:

cpp 复制代码
int a = 10;
double b = a;        // 整数赋值给小数
char c = 'A';
int d = c;           // 字符赋值给整数

挑战2:变量交换

编写程序交换两个变量的值:

cpp 复制代码
int x = 5, y = 10;
// 交换后:x=10, y=5

挑战3:单位转换

编写程序进行单位转换:

  • 将英寸转换为厘米(1英寸=2.54厘米)
  • 将华氏度转换为摄氏度(C = (F-32)×5/9)

实验任务

任务1:命名规则验证

尝试以下命名,记录哪些可以通过编译:

cpp 复制代码
int 2things;      double student-name;
char what?;       bool is_correct;
int main;         double π;

任务2:常量测试

尝试修改常量的值,观察会发生什么:

cpp 复制代码
const int MAX = 100;
MAX = 200;  // 这行会发生什么?

任务3:变量范围探索

测试变量的取值范围:

cpp 复制代码
int bigNumber = 3000000000;    // 会发生什么?
double verySmall = 0.0000000000000000001;

常见错误与调试

常见错误类型

1. 未初始化变量

cpp 复制代码
int score;
cout << score;  // 错误:score没有初始值

2. 类型不匹配

cpp 复制代码
int age = "12";  // 错误:字符串不能赋给整数

3. 命名错误

cpp 复制代码
int student age;  // 错误:变量名不能有空格

4. 修改常量

cpp 复制代码
const int MAX = 100;
MAX = 200;       // 错误:常量不能修改

调试技巧

  1. 逐行检查:确认每行代码的意思
  2. 输出中间结果:用cout显示变量的当前值
  3. 注释大法:暂时注释掉有问题的代码

学习总结

今天学到了:

  • 变量:存储数据的命名容器
  • 四种基本数据类型:int, double, char, bool
  • 常量:值不可变的变量
  • 命名规则:标识符的命名规范
  • 变量操作:声明、赋值、使用

关键概念回顾:

  • 变量声明数据类型 变量名;
  • 变量赋值变量名 = 值;
  • 常量定义const 数据类型 常量名 = 值;
  • 命名规则:字母/数字/下划线,不以数字开头,不是关键字

下一课预告:

下一节课我们将学习基本的输入与输出,让程序能够与用户交互,从键盘读取数据!


相关推荐
无限进步_6 小时前
C语言字符串连接实现详解:掌握自定义strcat函数
c语言·开发语言·c++·后端·算法·visual studio
qwepoilkjasd7 小时前
RapidJSON 完整学习指南
c++
一朵筋斗云7 小时前
c++
c++
有趣的我7 小时前
关于stub和mock
c++
Yupureki8 小时前
从零开始的C++学习生活 18:C语言复习课(期末速通)
c语言·数据结构·c++·学习·visual studio
永远有缘8 小时前
四种编程语言常用函数对比表
java·开发语言·c++·python
C++_girl8 小时前
c++、java/python语言有什么区别?为什么c++更快?
java·开发语言·c++
艾莉丝努力练剑8 小时前
【Linux权限 (二)】Linux权限机制深度解析:umask如何决定默认权限与粘滞位的妙用
大数据·linux·服务器·c++·ubuntu·centos·1024程序员节
彩妙不是菜喵8 小时前
基于C语言上,面向对象语言:C++基础(学完C语言后再看)
c语言·开发语言·c++