GESP 二级 第 03 讲:流程图

本讲定位从”看得懂代码”到”想得清逻辑”的关键一步。官方大纲要求”了解流程图的概念及基本表示符号,掌握绘制流程图的方法,能正确使用流程图描述程序设计的三种基本结构”——注意用词是”掌握”而不是”了解”,说明要考到具体符号和画法。真题里流程图题有两种形态:给流程图问输出/功能(读图),给代码选流程图(画图)。这一讲还有一个长远价值:流程图是三级”算法描述”知识块的三种方法之一(三级第 08 讲),学完就能一路用到底。

对应官方大纲:二级知识块 3「流程图」——流程图的概念、绘制流程图、描述流程图。

前置知识:一级第 02 讲(顺序结构)、第 07 讲(分支)、第 08 讲(循环)。本讲不引入任何新的编程知识,只是把已学的三种结构换一种方式表达。

代码说明:本讲所有代码均已用 g++ 11.5(-std=c++11)编译运行验证,输出结果即为文中标注结果。


1. 先看一道真题

下图所示流程图的功能是( )

         ┌─────────┐
         │  开始    │
         └────┬────┘
              ↓
         ╱──────────╲
        ╱  输入 n     ╲
        ╲            ╱
         ╲──────────╱
              ↓
         ┌─────────┐
         │  s ← 0   │
         │  i ← 1   │
         └────┬────┘
              ↓
           ╱──────╲
      ┌──→╱ i ≤ n? ╲──否──┐
      │   ╲        ╱      │
      │    ╲──────╱       │
      │       ↓是          │
      │  ┌─────────┐      │
      │  │ s ← s+i  │      │
      │  │ i ← i+1  │      │
      │  └────┬────┘      │
      └───────┘           ↓
                     ╱──────────╲
                    ╱  输出 s     ╲
                    ╲            ╱
                     ╲──────────╱
                          ↓
                     ┌─────────┐
                     │  结束    │
                     └─────────┘

A. 求 $n$ 的阶乘 B. 求 $1+2+\cdots+n$ C. 求 $n$ 个数的最大值 D. 输出 1 到 $n$

答案:B。

看懂这张图需要两件事:认得每种框代表什么顺着箭头把变量的变化跑一遍。这一讲就把这两件事讲透。


2. 流程图的基本符号(必背)

官方大纲说”了解基本表示符号”——就是下面这六个。

符号形状 名称 用途 出入口
圆角矩形 / 椭圆 起止框 标记”开始”和”结束” 开始只有出口,结束只有入口
平行四边形 输入 / 输出框 读入数据、输出结果 1 进 1 出
矩形 处理框 赋值、计算 1 进 1 出
菱形 判断框 判断条件 1 进 2 出(是 / 否)
箭头线 流程线 指明执行方向
小圆圈 连接点 图画不下时接续用

画出来长这样:

  ┌─────────┐          ╱──────────╲
  │  开始    │          ╱  输入 x    ╲
  └─────────┘          ╲            ╱
   起止框                ╲──────────╱
(圆角矩形/椭圆)           输入输出框
                        (平行四边形)

  ┌─────────┐             ╱──────╲
  │ s ← s+i  │            ╱ x > 0? ╲
  └─────────┘            ╲        ╱
    处理框                 ╲──────╱
   (矩形)                 判断框
                          (菱形)

⚠️⚠️ 本讲最高频的三个考点,全在符号形状上:

  1. 判断框是菱形,而且必须有两个出口(标注”是/否”或”Y/N”或”真/假”)。只有一个出口的菱形是错的。
  2. 输入输出用平行四边形不是矩形。矩形是处理框(做计算)。
  3. 起止框是圆角矩形或椭圆不是矩形。一张完整的流程图有且仅有一个”开始”,但可以有多个”结束”

💡 一句话记忆“方框做事,菱形问路,平行四边形进出货,圆角管起止”。

📌 关于赋值的写法:流程图里习惯用 (如 s ← s + i)表示赋值,读作”把右边的值送给左边”,避免和数学的等号混淆。写成 s = s + i 也算对,考题两种写法都可能出现。


3. 三种基本结构的流程图

官方大纲明确要求”正确使用流程图描述程序设计的三种基本结构”——这一节是本讲的核心。

3.1 顺序结构