火龙信奥
  • 分享
  • 课程
  • 在线题库
  • CSES
    • GESP
    • CSP
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 知识课堂
  • 在线比赛
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

Level 1:顺序结构

作者: 作者的头像   huolong , 时间:2022-03-07 11:26:54 , 所有人可见, 阅读  155

这份Markdown讲义已经为您整理完毕。它结合了您提供的“拟人化逻辑(房间与客人)”、“数学类比”以及“C++核心语法”,非常适合作为四五年级学生的入门教材。


🚀 C++ 编程进阶讲义:变量、运算与数据的奥秘

课程核心: 在计算机的世界里,一切皆为数字。


一、 编程的“仪式感”

1. 万能工具箱

在C++入门阶段,我们可以使用一个“万能头文件”,它包含了几乎所有常用的工具:

#include <bits/stdc++.h> 

2. C++ 解决问题的五步法

我们可以把编写程序想象成“招待客人”的过程: 1. 准备房间: 定义变量(准备空位)。 2. 迎接客人: 输入数据(cin)。 3. 处理客人: 计算与逻辑处理。 4. 送走客人: 输出结果(cout)。 5. 结束休息: return 0;。

3. 代码标准框架

#include <iostream>     // 引入输入输出流库
using namespace std;    // 使用标准命名空间

int main() {
    // 1. 准备房间
    // 2. 迎接客人
    // 3. 处理客人
    // 4. 送走客人
    return 0;           // 5. 结束
}

二、 变量与常量:数据的“家”

1. 常量 vs 变量

  • 常量(住在自己家): 程序运行期间,值不可以改变(如字面值 3.14,100)。
  • 变量(住在酒店): 程序运行期间,值可以随时更换。

2. 命名规则(标识符)

给变量起名要遵守三条铁律: 1. 由字母、数字、下划线组成。 2. 数字不能开头。 3. 不能使用系统关键字(如 int, return 等)。

3. 变量的生存原则

先开房间,再住人!

  • 初始化: 定义变量时最好手动赋值为 0,否则房间里可能留有上一个客人的“垃圾”(随机值),这很危险!
    • 例:int a = 0; (好习惯)
  • 赋值: 使用 = 符号。注意:a = 90; 的意思是把 90 放到 a 里面。

4. 输入与输出

  • 输入 (cin): cin >> a >> b; (箭头指向变量,代表数据流入房间)
  • 输出 (cout): cout << a << endl; (箭头指向 cout,代表送向屏幕;endl 表示换行)

三、 运算符:计算机的“武器库”

1. 算术运算符

  • 基础:+, -, *, /
  • 取模 (%): 求余数。
    • 例:10 % 3 = 1。
    • 注意: 只能用于整数。如果第一个数是负数,余数也是负数。
  • 除法 (/):
    • 两个整数相除,结果只保留整数部分(向下取整)。
    • 例如:5 / 2 = 2。

2. 自增与自减(++ / --)

  • ++a (人人为我): 先把自己加 1,再让别人使用我。
  • a++ (我为人人): 先让别人用旧的值,等这行代码结束了,再把自己加 1。

3. 复合赋值

a += 1; 等价于 a = a + 1;(在原来的基础上加 1)。同理有 -=, *=, /=, %=。


四、 数据类型:房间的大小

类型 名称 占用字节 常用范围/特点
int 整型 4 字节 约 $\pm 21$ 亿(足够处理多数校内数学题)
long long 长整型 8 字节 范围极大,处理天文数字、防止“爆int”
float 单精度浮点数 4 字节 小数
double 双精度浮点数 8 字节 最常用的小数类型,更精确
char 字符型 1 字节 存储单个字符,如 'A', '#'
bool 布尔型 1 字节 只有 0 (false) 和 1 (true)

1. 小数的精确控制

如果需要保留两位小数,需要使用工具箱 <iomanip>:

cout << fixed << setprecision(2) << x; 

2. 字符的秘密:ASCII码

每一个字符背后都藏着一个数字: * 'A' 为 65,'a' 为 97(大小写相差 32)。 * '0' 为 48。 * 技巧: '9' - '0' 的结果就是数字 9。


五、 类型转换:数据的“变身术”

1. 自动转换(隐式)

当小房间的数据遇到大房间时,会自动升级: * char → int → long long → double * 例如:3 + 1.5,计算机会先把 3 变成 3.0 再计算,结果是 4.5。

2. 强制转换(显示)

手动强迫数据变身,格式:(类型)变量。 * 例如:int a = 5, b = 2; * double c = (double)a / b; // 结果是 2.5 * int d = (int)a / b; // 结果是 2


六、 闯关练习(看看输出是什么?)

例子 1:复杂的强转运算

int b = 7; double a = 2.5, c = 4.7;
// 表达式:a + (int)(b / 3 * (int)(a + c) / 2.0) % 4

例子 2:除法陷阱

float v0 = (40 / 3); 
// 提示:40和3都是int,40/3的结果是多少?

例子 3:小数转整数

float pi = 3.14;
int s, r = 4;
s = r * r * pi; // s会丢失小数部分吗?

例子 4:取余与四舍五入

float a = 15.75;
double b = 323.01;
cout << (int)(b + 0.5) % 10; // 这是一种常用的“四舍五入取个位”技巧

💡 老师寄语: 编程里的每一个符号都有它的脾气,多敲代码多尝试,你会发现计算机是你最听话的玩伴!

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

关于火龙

  • 关于我们
  • 学员获奖
  • 预约试听
  • ACM课程
  • CSP课程
  • 学习指南

帮助中心

  • 用户协议
  • 打字练习 HOT
  • 在线画图
  • DevC++下载
  • CSP报名
  • GESP官网

推荐课程

  • C++零基础入门(可试看)
  • C++进阶提升
  • GESP考级辅导
  • GESP打卡
  • CSP-J/S打卡

公众号

火龙信奥公众号二维码

© 2017-2026 义乌市睿码科技有限公司版权所有 浙ICP备2021013995号

火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码