计算机基础与程序设计
统计范围:2021 年真题(45 题,ForestDeer 试扫)+ 2024 年真题(45 题,ForestDeer 试扫 + Sakiko 详解版核对),共 90 题 题型代码:单=单选 20×3 分 | 判=判断 10×2 分 | 填=填空 5×4 分 | 简=简答 4×10 分 | 计=计算/综合分析 3×10 分 | 应=应用(手写编程)3×10 分 统计口径:每道题按最主要考查点归类一次(交叉考点在"典型题目"中注明),题号格式
年份-题号
xychart-beta
title "计算机考点出现次数 TOP8(2021+2024 真题,共 90 题)"
x-axis ["运算符","函数","循环","数组","指针","排序","线性表","二叉树"]
y-axis "出现次数" 0 --> 10
bar [9, 8, 7, 7, 6, 5, 5, 5]📌 C 语言运算符(9)+ 函数(8)+ 循环(7)+ 数组(7)= 31 次,占 90 题的 34%——C 语言基础是命脉。
TOP 榜(按出现频次降序)
1. C 语言运算符与表达式求值 —— 9 次
- 题型:单 8 · 填 1
- 代表年份:2021(第 1、2、3、32 题)、2024(第 3、4、5、7、9 题)——两年都是单选第 1~9 题的绝对主力
- 典型题目:
- 2021-1 逻辑表达式
!a||b(a=2,b=3)求值(逻辑非/逻辑或) - 2021-3 / 2024-5 整数除法截断:
c=a/b(a=1,b=4)→0;选值为 3 的表达式 - 2024-7 逗号表达式
(a,b)取最后一个值 →206 - 2024-9 自增运算符
a++(先用后加) - 2021-32 强制类型转换 + 取余
b=(int)(a/9)%4(填空)
- 2021-1 逻辑表达式
2. 函数与作用域(声明 / return / 形参 / 全局局部变量 / 参数传递)—— 8 次
- 题型:单 2 · 判 5 · 应 1
- 代表年份:2021(第 5、7、21、24、25、43 题)、2024(第 23、24 题)
- 典型题目:
- 2021-5 return 语句的多种说法(一个 return 能否返回多个值 → 不能)
- 2021-7 函数声明格式辨析
void f(int,int); - 2024-23/24 复合语句内变量作用域、不同函数可同名变量(判断)
- 2021-43 编写交换两数并输出较大值的函数(应用,交叉:值传递 vs 指针传址)
3. 字符串处理(strlen / strcpy / strcat / strcmp / '\0' / 字符过滤)—— 6 次
- 题型:单 2 · 判 1 · 填 1 · 计 1 · 应 1
- 代表年份:2021(第 4、22、44 题)、2024(第 2、32、42 题)
- 典型题目:
- 2021-4 连接字符串用
strcat() - 2024-2
strcmp的头文件是 string.h - 2024-32 填空
strlen(strcpy(s1,s2))(注意不含'\0') - 2024-42 程序分析:字符串过滤字符
'c'后输出(计算) - 2021-44 剔除字符串中的非数字字符并输出(应用,交叉:循环+数组)
- 2021-4 连接字符串用
4. 指针(初始化 / 作函数参数 / 指针运算 / 解引用)—— 5 次
- 题型:单 1 · 判 1 · 填 1 · 简 1 · 计 1
- 代表年份:2021(第 6、23、38、41 题)、2024(第 31 题)
- 典型题目:
- 2021-6 指针变量不能用 1 初始化(可赋地址 / NULL / 0)
- 2021-38 简答:什么是指针、什么是指针变量、二者关系
- 2024-31 填空:指针形参返回和,补
*z = x + y - 2021-41 数组+指针+switch 综合程序分析(
*p、*(--p)求值,交叉:数组/循环)
5. 树与二叉树(性质 / 层数结点数 / 哈夫曼 / 基本形态)—— 5 次
- 题型:单 2 · 判 1 · 填 1 · 简 1
- 代表年份:2021(第 11、26、34、39 题)、2024(第 19 题)
- 典型题目:
- 2024-19 二叉树第 3 层最多结点数 = 2^(3-1) = 4
- 2021-11 以 6 个叶子权值构造哈夫曼树的高度
- 2021-39 简答:二叉树的五种基本形态
- 2021-34 高度为 h 的树至少有 h 个结点(填空)
6. 图(有向/无向、度、连通性、邻接矩阵、最小生成树)—— 5 次
- 题型:判 1 · 填 1 · 简 1 · 计 1 · 应 1(题型覆盖面最全的考点)
- 代表年份:2021(第 29、42、45 题)、2024(第 35、39 题)
- 典型题目:
- 2021-45 应用:以 1 为起点用 Prim 算法画最小生成树(含过程)
- 2021-42 计算:写出无向图的邻接矩阵
- 2024-39 简答:有向图、出度与入度
- 2024-35 填空:9 个顶点连通图最少 n-1 = 8 条边
7. 链表(循环单链表 / 判空 / 插入操作)—— 5 次
- 题型:单 5(连续两年单选题压轴位必考)
- 代表年份:2021(第 10、19 题)、2024(第 16、17、20 题)
- 典型题目:
- 2024-20 单链表插入 s 到 p 之后:
s->next=p->next; p->next=s;(顺序不能反) - 2024-17 带头结点单链表判空:
head->next==NULL - 2021-10 非空循环单链表尾结点满足
p->next==head - 2021-19 在 a 与 b 之间插入结点 c
- 2024-20 单链表插入 s 到 p 之后:
8. 数据结构基本概念(逻辑/存储结构、数据项、ADT)—— 5 次
- 题型:单 3 · 简 2
- 代表年份:2021(第 15、17、36 题)、2024(第 15、36 题)
- 典型题目:
- 2024-36 简答:什么是数据项?什么是抽象数据类型(ADT)?
- 2024-15 逻辑结构分为线性 / 非线性
- 2021-17 数据结构在内存中的表示 = 存储结构
- 2021-36 简答:什么是数据结构?什么是数据类型?
9. 循环结构(for / while、break、循环程序分析)—— 5 次
- 题型:判 1 · 简 1 · 计 2 · 应 1
- 代表年份:2021(第 40 题)、2024(第 25、37、41、45 题)
- 典型题目:
- 2024-41 计算:水仙花数程序,i=153 求 a(个位)、b(十位)——数位分解套路(与 2021-40 两连考)
- 2021-40 计算:while 循环求各位数字之和
- 2024-37 简答:for 循环求平均值的程序功能及循环结束 i 值
- 2024-45 应用:计算 1-300 奇数和与偶数和
10. 数组(一维/二维、下标、地址、数组名)—— 4 次
- 题型:判 2 · 应 2
- 代表年份:2024(第 22、26、43、44 题)
- 典型题目:
- 2024-43 应用:201-209 按行存入 3×3 二维数组并输出
- 2024-44 应用:30 名学生成绩求最高分(交叉:循环+求最值)
- 2024-26 判断:
int x[3][4]中 x 与 x[0] 均表示 x[0][0] 的地址(√) - 2024-22 判断:数组下标必须是整型常量(×,可为表达式)
11. 线性表 / 顺序表(插入复杂度、归并、性质、优缺点)—— 4 次
- 题型:单 2 · 判 1 · 简 1
- 代表年份:2021(第 9 题)、2024(第 12、30、38 题)
- 典型题目:
- 2024-12 顺序表第 i 个元素后插入的时间复杂度 O(n)
- 2024-38 简答:简述顺序表存储结构的优缺点
- 2021-9 两个有序线性表归并的最少比较次数
- 2024-30 判断:线性表每个元素都有直接前驱和后继(×,首尾例外)
12. 串(长度 / 子串 / 存储方式 / 特殊线性表)—— 4 次
- 题型:单 2 · 判 1 · 填 1
- 代表年份:2021(第 14 题)、2024(第 14、28、33 题)
- 典型题目:
- 2021-14 串 s="software" 子串数目(含空串)= 37
- 2024-14 串 "abcd" 的长度为 4(不含 '\0')
- 2024-33 填空:串的两种基本存储为顺序存储和链式存储
13. 算法与复杂度分析(特点、性能分析、时空复杂度)—— 4 次
- 题型:单 2 · 判 1 · 简 1
- 代表年份:2021(第 16、37 题)、2024(第 10、29 题)
- 典型题目:
- 2021-37 简答:算法有哪些特点?算法与程序的主要区别?
- 2024-10 算法说法错误的是"算法不存在时间复杂度"
- 2024-29 判断:空间复杂度越大时间复杂度一定越大(×)
- 2021-16 对新设计算法作性能分析的目的(分析效率以求改进)
14. 查找(折半查找、散列)—— 3 次
- 题型:单 3
- 代表年份:2021(第 12、13 题)、2024(第 13 题)
- 典型题目:
- 2024-13 折半查找有序序列 {13,18,21,35,45,55,66} 找 21,需比较 3 次
- 2021-13 折半查找适用条件:顺序存储 + 元素有序
- 2021-12 散列函数 H(k)=k%9 的地址分布(散列存储)
15. 栈(LIFO、出入栈顺序、递归与栈)—— 3 次
- 题型:单 2 · 填 1
- 代表年份:2021(第 20、35 题)、2024(第 18 题)
- 典型题目:
- 2024-18 四个元素 1,2,3,4 入栈、第一个出栈为 4,则第 3 个出栈元素为 2
- 2021-35 填空:入栈顺序 6,7,8,9,10,出栈顺序为 10,9,8,7,6
- 2021-20 递归算法实现一般需利用栈
16. 选择 / 控制结构(三种基本结构、三变量交换、switch 穿透)—— 3 次
- 题型:单 1 · 填 1 · 计 1
- 代表年份:2021(第 31 题)、2024(第 8、40 题)
- 典型题目:
- 2021-31 填空:三种基本控制结构 = 顺序、选择、循环
- 2024-40 计算:switch(s/60) 输入 75 的程序分析(switch 分支)
- 2024-8 三变量交换
temp=x; x=y; y=temp;(交叉:逗号表达式)
17. 排序(稳定性、时间复杂度)—— 2 次
- 题型:判 2
- 代表年份:2021(第 27、30 题)
- 典型题目:
- 2021-30 快速排序是不稳定的排序方法(√)
- 2021-27 冒泡排序的时间复杂度是 O(n)(×,应为 O(n²))
- ⚠️ 2026 提示:2026 同题型复盘已出现归并排序(O(n log n) + O(n) 空间)题,排序算法比较将是新热点
18. 结构体(成员驻留内存、"."成员引用)—— 2 次
- 题型:单 1 · 判 1
- 代表年份:2024(第 10/11、21 题)
- 典型题目:
- 2024-10 结构体变量所有成员一直驻留在内存中(与 union 区分)
- 2024-21 判断:结构体变量可用
.成员名引用成员值(√)
19. 队列(操作受限、与栈的关系)—— 2 次
- 题型:判 2
- 代表年份:2021(第 28 题)、2024(第 27 题)
- 典型题目:
- 2021-28 队列只在队首删除、队尾插入(√)
- 2024-27 判断:栈和队列没有共同点(×,都是操作受限的线性表)
20. 文件操作(文件名转义、fopen)—— 2 次
- 题型:单 1 · 填 1
- 代表年份:2021(第 8、33 题)
- 典型题目:
- 2021-8 可作为输入文件名的字符串常量(转义字符
"c:\\user\\text.txt") - 2021-33 填空:C 语言中用 fopen 函数打开文件
- 2021-8 可作为输入文件名的字符串常量(转义字符
附:并列第 21 位及低频考点(未进 TOP20)
| 考点 | 次数 | 题目 | 说明 |
|---|---|---|---|
| C 语言基本概念(注释、字符串常量) | 2 | 2024-1(注释不能以 \N 开始)、2024-6(字符串常量必须用双引号) | 单选送分题 |
| 进制转换 | 1 | 2021-18(十进制 630 → 二进制) | 单选 |
| 广义表 | 1 | 2024-34(广义表长度 = 第一层元素个数) | 填空 |
各题型对高频考点的覆盖(横切视角)
- 单选 1~9 题 ≈ C 语法区:运算符与表达式(9 次)是单选区的"常青树",两年各有 5 题左右落在该区。
- 单选 10~20 题 ≈ 数据结构区:链表(5)、树(5)、图(5)、顺序表(4)、查找(3)、栈(3)集中在此区,是区分度的关键。
- 判断/填空:函数作用域、字符串、串、图(连通边数)、栈(出栈序)为高频填空对象;排序稳定性、队列性质为高频判断题。
- 简答 4 题固定结构:两年均为"数据结构概念/ADT + 存储结构优缺点/算法特点 + 指针概念 + 树或图概念"的排列组合(2021:数据结构、算法、指针、二叉树;2024:ADT、顺序表、程序分析、有向图)。
- 计算题 3 题固定套路:数位分解(2021-40、2024-41 两连考)、switch 分支分析(2021-41、2024-40)、字符串过滤(2021-44、2024-42)——"读程序+手推输出"是必练技能。
- 应用题 3 题固定结构:二维数组/求最值/奇偶求和——循环 + 数组是拿满 30 分的保底组合。
备考建议(结合 2026 改革方向)
依据:[[2025-题型确认]](2025 第六大题已由"计算题"更名/演化为"综合分析题",是过渡信号)+ [[2026]](2026 = 考试形式与内容优化改革第一年)。
重点盯"改错题"这一新题型信号,训练"找错—改错"能力。2026 卷面被考生回忆与第三方冲刺卷佐证含有改错题,且 2026 考纲单列了"程序运行环境与代码调试"模块(编译 / 链接 / 运行错误的区别,如:缺分号=编译错误,数组越界、除以 0=运行错误)。建议针对本 TOP 榜中最高频的易错点逐项练改错:运算符优先级与自增(
a++vs++a、*p++vs(*p)++)、switch 穿透缺 break、整数除法截断、strlen与sizeof混用、字符串漏写'\0'、指针形参忘记解引用、链表插入顺序写反、数组越界/下标从 1 开始。同时注意:2027 大概率延续 2026 新题型框架,数据结构参考书已更新为严蔚敏《数据结构(C 语言版)》第 2 版(清华大学出版社 2025-10,ISBN 9787302703396)。C 语言与数据结构各占半壁,别偏科;客观题抢分 + 应用编程保底。单选 10~20 题的数据结构区(链表/树/图/顺序表/栈/查找)是两年失分高发区,务必吃透:链表插入顺序、带头结点判空、二叉树层结点数 2^(k-1)、连通图最少边 n-1、折半查找次数、栈的出入栈序列。C 部分则把"运算符与表达式 + 函数作用域 + 字符串处理"当作送分区。应用题 30 分(循环 + 数组:求最值、求和、二维数组、字符过滤)要练到闭卷默写;计算题的数位分解套路(2021-40 / 2024-41)已两连考,改错题也可能从这类"短小程序"取材。简答则背熟 4 个固定模板:ADT、顺序表优缺点、指针概念、树/图的定义与性质。
统计日期:以 2021 + 2024 两套完整真题(共 90 题)为样本;2025 题面无可靠公开版未计入,2026 为同题型复盘题未计入正榜,仅在备考建议中作方向参考。