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

附录 A 一级知识速查表

作者: 作者的头像   huolong , 时间:2026-09-08 10:05:14 , 所有人可见, 阅读  16

附录 A 一级知识速查表

  1. 计算机基础速查
  2. 类别:输入设备
    • 作用:把外界信息送入计算机
    • 常见例子:键盘、鼠标、麦克风、摄像头、传感器
  3. 类别:输出设备
    • 作用:把计算机处理结果展示出来
    • 常见例子:显示器、音箱、打印机、投影仪
  4. 类别:存储设备
    • 作用:保存程序和数据
    • 常见例子:内存、硬盘、U 盘
  5. 类别:处理器
    • 作用:执行计算和控制
    • 常见例子:CPU
  6. 类别:操作系统
    • 作用:管理计算机资源
    • 常见例子:Windows、Linux、macOS、Android、鸿蒙
  7. 类别:应用软件

    • 作用:完成具体任务
    • 常见例子:浏览器、地图软件、会议软件、编程环境
  8. 编程环境速查

  9. 操作:创建文件
    • 含义:新建一个源代码文件
  10. 操作:编辑文件
    • 含义:输入、修改、删除代码
  11. 操作:保存文件
    • 含义:把当前代码写入文件
  12. 操作:编译程序
    • 含义:检查语法并生成可执行程序
  13. 操作:运行程序
    • 含义:执行程序并得到结果
  14. 操作:调试程序
    • 含义:查找错误、观察变量和执行过程
  15. 操作:断点
    • 含义:让程序运行到指定位置附近暂停
  16. 操作:单步执行
    • 含义:一行一行执行程序

常见文件扩展名: - 类型:C++ 源文件 | 扩展名:.cpp - 类型:文本文件 | 扩展名:.txt - 类型:图片文件 | 扩展名:.jpg、.png - 类型:压缩文件 | 扩展名:.zip

  1. C++ 程序基本结构速查 cpp 275 #include <bits/stdc++.h> using namespace std; int main() { // 程序主体 return 0; } 常见说明:
  2. 代码:#include <bits/stdc++.h> | 作用:引入常用头文件
  3. 代码:using namespace std; | 作用:允许直接使用 cin、cout 等
  4. 代码:int main() | 作用:程序入口
  5. 代码:{} | 作用:表示语句块
  6. 代码:return 0; | 作用:程序正常结束

一级阶段也常见: cpp #include <iostream> using namespace std; int main() { cout << "Hello"; return 0; }

  1. 输出语句速查 ### 4.1 cout | 代码 | 输出 | | :--- | :--- | | cout << "Hello"; | Hello | | cout << 3 + 4; | 7 | | cout << "3+4"; | 3+4 | | cout << "A" << "B"; | AB | | cout << "A" << endl << "B"; | A 和 B 分两行 |

示例: - int a = 3, b = 4; cout << "a+b=" << a + b; - 输出:276 a+b=7 (注:数字276为排版页码,下同) - int a = 3, b = 4; cout << a << "+" << b << "=" << a + b; - 输出:3+4=7

### 4.2 printf | 代码 | 输出 | | :--- | :--- | | printf("Hello"); | Hello | | printf("%d", 10); | 10 | | printf("%%"); | % | | printf("%2d", 5); | 5 (含空格或宽度为2) | | printf("%02d", 5); | 05 | | printf("%.2f", 3.14159); | 3.14 |

示例: - printf("5%%2=%d", 5 % 2); - 输出:5%2=1

  1. 输入语句速查 ### 5.1 cin
  2. int n; cin >> n;
  3. 连续读入:int a, b; cin >> a >> b;
  4. 输入:10 20 或: 277 10 20 都可以读到 a = 10,b = 20。

### 5.2 scanf - int n; scanf("%d", &n); - 连续读入:int a, b; scanf("%d%d", &a, &b);

常见格式: - 格式:%d | 含义:读入整数 - 格式:%f | 含义:读入 float - 格式:%lf | 含义:读入 double - 格式:%c | 含义:读入字符

### 5.3 输入易错点 | 输入内容 | 变量类型 | 通常读到 | | :--- | :--- | :--- | | 5+2 | int | 5 | | 3.14 | int | 3 | | 10 | char | '1' | | A | char | 'A' |

  1. 数据类型速查 | 类型 | 含义 | 示例 | | :--- | :--- | :--- | | int | 整数 | int n = 10; | | long long | 更大范围整数 | long long x = 10000000000; | | float | 小数 | float x = 3.14; | | double | 小数,常用 | double pi = 3.1415926; | | char | 一个字符 | char ch = 'A'; | | bool | 真或假 | bool ok = true; |

常量速查: - 写法:10 | 类型理解:整数常量 - 写法:3.14 | 类型理解:小数常量 - 写法:'A' | 类型理解:字符常量 - 写法:'3' | 类型理解:字符常量 - 写法:"A" | 类型理解:字符串常量 - 写法:"Hello" | 类型理解:字符串常量 - 写法:true | 类型理解:布尔真 - 写法:false | 类型理解:布尔假

  1. 标识符速查 合法变量名规则:
  2. 规则:可以包含字母 | 说明:如 abc
  3. 规则:可以包含数字 | 说明:如 abc1
  4. 规则:可以包含下划线 | 说明:如 abc_1
  5. 规则:不能以数字开头 | 说明:1abc 不合法
  6. 规则:不能包含空格 | 说明:red star 不合法
  7. 规则:不能包含减号 | 说明:red‐star 不合法
  8. 规则:不能是关键字 | 说明:for 不合法
  9. 规则:区分大小写 | 说明:Name 和 name 不同

合法示例: int a; int abc1; int _abc; int red_star; int redStar;

非法示例: int 1abc; int red star; int red‐star; int a+b; int for;

常见关键字: int long float 279 double char bool if else for while do switch case break continue return

  1. 算术运算速查 | 运算 | 符号 | 示例 | 结果 | | :--- | :--- | :--- | :--- | | 加法 | + | 3 + 4 | 7 | | 减法 | ‐ | 10 ‐ 6 | 4 | | 乘法 | * | 3 * 5 | 15 | | 整数除法 | / | 7 / 2 | 3 | | 取余 | % | 7 % 2 | 1 |

常见结论: - 表达式:n % 2 == 0 | 含义:n 是偶数 - 表达式:n % 2 == 1(正整数) | 含义:n 是奇数 - 表达式:n % k == 0 | 含义:n 能被 k 整除 - 表达式:n % k == r | 含义:n 除以 k 余 r - 表达式:n % 10 | 含义:取个位 - 表达式:n / 10 | 含义:去掉个位

运算优先级: 括号 > 乘除取余 > 加减 > 关系运算 > 逻辑运算 > 赋值 常用记法: 括号先算,乘除取余先于加减,同级从左到右。 280

  1. 赋值与自增速查 | 写法 | 等价理解 | | :--- | :--- | | a = b; | 把 b 的值赋给 a | | a += b; | a = a + b; | | a ‐= b; | a = a ‐ b; | | a *= b; | a = a * b; | | a /= b; | a = a / b; | | a %= b; | a = a % b; | | a++; | a = a + 1; | | a‐‐; | a = a ‐ 1; |

示例: cpp int a = 10; a %= 6; cout << a; 输出:4

前置与后置: | 代码 | 含义 | | :--- | :--- | | ++a | 先加一,再使用 | | a++ | 先使用,再加一 | | ‐‐a | 先减一,再使用 | | a‐‐ | 先使用,再减一 |

  1. 关系运算速查 | 运算符 | 含义 | | :--- | :--- | | > | 大于 | | >= | 大于等于 | | < | 小于 | | <= | 小于等于 | | == | 等于 | | != | 不等于 |

    注意: - a = 10; 281 表示赋值。 - a == 10; 表示判断 a 是否等于 10。 - 关系表达式成立时结果为 1,不成立时结果为 0。

    示例: cout << (6 > 2) * 2; 输出:2 (因为 6 > 2 成立,值为 1。)

  2. 逻辑运算速查 | 运算符 | 含义 | 说明 | | :--- | :--- | :--- | | && | 并且 | 两边都成立才成立 | | \|\| | 或者 | 至少一边成立就成立 | | ! | 非 | 真变假,假变真 |

    常见表达式: - 题意:n 是偶数且能被 3 整除 | 表达式:n % 2 == 0 && n % 3 == 0 - 题意:n 能被 3 或 7 整除 | 表达式:n % 3 == 0 || n % 7 == 0 - 题意:n 不是 0 | 表达式:n != 0 - 题意:n 在 1 到 100 之间 | 表达式:n >= 1 && n <= 100 - 题意:a 和 b 都为 0 | 表达式:a == 0 && b == 0

    条件中: - 0 含义:假 - 非 0 含义:真

    示例: cout << !0; 输出:1 282 cout << !5; 输出:0

  3. 分支结构速查 ### 12.1 if cpp if (条件) 语句; ### 12.2 if‐else cpp if (条件) 语句1; else 语句2; ### 12.3 else if cpp if (条件1) 语句1; else if (条件2) 语句2; else 语句3; 执行特点:

    • 从上到下判断;
    • 某个条件成立后,执行对应分支;
    • 执行一个分支后,后面的 else if 不再判断。

    12.4 大括号

    没有大括号时,if 只控制紧跟着的一条语句。 cpp if (n > 0) cout << "A"; cout << "B"; 输入 -1 时输出:B 283

    12.5 switch

    cpp switch (x) { case 1: cout << "A"; break; case 2: cout << "B"; break; default: cout << "C"; break; } 注意: - case 匹配后开始执行; - break 用于跳出 switch; - 如果没有 break,可能继续执行后面的 case。

  4. 循环结构速查 ### 13.1 for cpp for (初始化; 条件; 更新) 循环体; 示例: for (int i = 1; i <= 5; i++) cout << i << " "; 输出:1 2 3 4 5

    13.2 while

    cpp while (条件) 循环体; 示例: cpp int i = 1; while (i <= 5) { cout << i << " "; i++; } 284

    13.3 do‐while

    cpp do { 循环体; } while (条件); 特点: 循环体至少执行一次。

    13.4 break

    break; 作用: 提前结束当前循环。 示例: cpp for (int i = 1; i <= 5; i++) { if (i == 3) break; cout << i; } 输出:12

    13.5 continue

    continue; 作用: 跳过本轮后续语句,进入下一轮。 示例: cpp for (int i = 1; i <= 5; i++) { if (i == 3) continue; cout << i; } 输出:285 1245 (原书排版连排)

  5. 常见循环模型速查 ### 14.1 输出 1 到 𝑛 for (int i = 1; i <= n; i++) cout << i << " "; ### 14.2 求 1 到 𝑛 的和 cpp int sum = 0; for (int i = 1; i <= n; i++) sum += i; ### 14.3 统计满足条件的个数 cpp int cnt = 0; for (int i = 1; i <= n; i++) if (条件) cnt++; ### 14.4 输入 𝑛 个数并统计 cpp int cnt = 0; for (int i = 1; i <= n; i++) { int x; cin >> x; if (条件) cnt++; } ### 14.5 枚举因数 for (int i = 1; i <= n; i++) if (n % i == 0) cout << i << " "; ### 14.6 朴素质数判断 cpp int cnt = 0; for (int i = 1; i <= n; i++) if (n % i == 0) cnt++; if (cnt == 2) cout << "Y"; 286 else cout << "N";

  6. 数位处理速查 ### 15.1 基本操作

    • 取个位:n % 10
    • 去掉个位:n /= 10
    • 判断当前个位是奇数:n % 10 % 2 == 1
    • 判断当前个位是偶数:n % 10 % 2 == 0

    15.2 求数位和

    cpp int sum = 0; while (n != 0) { sum += n % 10; n /= 10; }

    15.3 统计奇数位个数

    cpp int cnt = 0; while (n != 0) { if (n % 10 % 2 == 1) cnt++; n /= 10; }

    15.4 统计偶数位个数

    cpp int cnt = 0; while (n != 0) { if (n % 10 % 2 == 0) cnt++; n /= 10; }

    15.5 反转数字

    cpp int rst = 0; while (n != 0) { rst = rst * 10 + n % 10; n /= 10; } 287

    15.6 取第 𝑚 位数字

    个位为第 1 位,十位为第 2 位。 cpp int div = 1; for (int i = 1; i < m; i++) div *= 10; cout << n / div % 10;

  7. 常见完整程序模板 ### 16.1 奇偶判断 cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if (n % 2 == 0) cout << "even"; else cout << "odd"; return 0; } ### 16.2 求数位和 cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int sum = 0; while (n != 0) { sum += n % 10; n /= 10; } cout << sum; return 0; } ### 16.3 统计 𝑛 个整数中的奇数个数 288 cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int cnt = 0; for (int i = 1; i <= n; i++) { int x; cin >> x; if (x % 2 != 0) cnt++; } cout << cnt; return 0; } ### 16.4 输出所有因数 cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) if (n % i == 0) cout << i << " "; return 0; } ### 16.5 连续输入求最大最小值 cpp #include <bits/stdc++.h> using namespace std; int main() { int x; cin >> x; int mx = x, mn = x; while (x != ‐999) { if (x > mx) mx = x; if (x < mn) mn = x; 289 cin >> x; } cout << mx << " " << mn; return 0; }

  8. 易错代码对照表 | 错误写法 | 问题 | 正确写法 | | :--- | :--- | :--- | | cin >> &n; | cin 不写 & | cin >> n; | | scanf("%d", n); | scanf 少了 & | scanf("%d", &n); | | if (n = 0) | 赋值,不是判断 | if (n == 0) | | a ^ 2 | ^ 不是平方 | a * a | | int 1abc; | 变量名不能数字开头 | int abc1; | | int red‐star; | 不能包含减号 | int red_star; | | cout << "a+b"; | 不会计算加法 | cout << a + b; | | while (n != 0) sum += n % 10; | n 不变,死循环 | 加上 n /= 10; | | for (int i = 1; i < n; i++) | 不包含 n | for (int i = 1; i <= n; i++) | | continue 后还想输出 | 本轮后续语句不会执行 | 把输出写在 continue 前或调整条件 |

  9. 考前一分钟速记

    • 输入设备:键盘、鼠标、麦克风、摄像头、传感器。
    • 输出设备:显示器、音箱、打印机。
    • 操作系统:Windows、Linux、鸿蒙。
    • 变量名:字母、数字、下划线;不能数字开头;不能是关键字;区分大小写。
    • 输出:双引号内原样输出,双引号外计算。
    • printf:%d 输出整数,%% 输出百分号。
    • 输入:cin 不加 &,scanf 通常加 &。
    • int 输入 5+2 通常读到 5。
    • 整数除法舍小数,% 是取余。
    • 偶数:n % 2 == 0。
    • 整除:n % k == 0。
    • 个位:n % 10。
    • 去个位:n /= 10。
    • 判断相等用 ==,赋值用 =。
    • 且用 &&,或用 ||,非用 !。 290
    • break 结束循环。
    • continue 跳过本轮。
    • do‐while 至少执行一次。
  10. 本附录要点 一级知识点不多,但符号细节密集。复习时不要只背代码,要知道每个符号的作用。= 和 ==、/ 和 %、&& 和 ||、break 和 continue、双引号内和双引号外,是一级最容易混淆的几组内容。

    做程序阅读题时,按执行顺序一步一步跟踪变量。做编程题时,先确定输入、处理、输出,再选择分支或循环模型。数位题牢记 n % 10 和 n /= 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次

微信登录

微信登录二维码

正在生成二维码...

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

绑定手机号

📱

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

请您尽快绑定手机号码