Skip to content

计算机 2026 真题回忆版详解

广东专升本《计算机基础与程序设计》2026 考生回忆版 + 同题型复盘 + 详细解析

计算机程序设计 · 2026 年真题(回忆版 + 同题型复盘详解)

类型:考生回忆版 + 同题型复盘 | 满分 200 分 · 150 分钟 科目:广东普通专升本《计算机基础与程序设计》 来源:Sakiko 博客真题整理 · 2026-07-23 参考教材:谭浩强《C语言程序设计》(第5版)+ 严蔚敏《数据结构(C语言版)》(第2版)


试卷结构(满分200分,150分钟)

题型题量分值核心考查内容
一、单项选择题20题60分(3分/题)C语言语法、表达式、程序阅读、数据结构概念
二、判断题10题20分(2分/题)C语言细节、数据结构性质、算法复杂度
三、填空题5题20分(4分/题)程序补全、字符串、树与图
四、简答题4题40分(10分/题)概念辨析、存储结构、算法分析
五、计算题3题30分(10分/题)程序执行结果、查找与排序过程
六、应用题3题30分(10分/题)C语言程序设计与数据处理

一、C语言同题型复盘

1. 以下程序段的输出结果是( )

c
int a = 5, b = 2;
double c = a / b;
printf("%.2f", c);

A. 2.00  B. 2.50  C. 2.5  D. 2

答案:A

解析: ab 都是 int 类型,a / b 执行整数除法,结果为 2(小数部分被截断)。虽然赋值给 double 变量,但截断已经发生在整数除法阶段。所以输出 2.00

💡 秒懂技巧: 计算机里整数除法就像分蛋糕——"5块蛋糕分给2个人,每人只能拿整块",结果是2块,剩下的1块丢了。想得到精确值,必须先把其中一个数变成小数(如 (double)a / b)。

易错点: 很多同学以为赋值给 double 会自动保留小数,但C语言是从右向左执行——先算除法(整数),再赋值。


2. 执行 int x = 5; printf("%d", x++ + ++x); 后,输出结果是( )

A. 10  B. 11  C. 12  D. 未定义行为

答案:D

解析: 在同一条表达式中,对同一个变量 x 同时进行读取和修改(x++ 读取后修改,++x 修改后读取),且修改顺序未定义,属于未定义行为。不同编译器结果可能不同。

💡 秒懂技巧: 就像你同时说"先吃饭再洗碗"和"先洗碗再吃饭"——这两件事顺序冲突,结果不确定。考试中遇到这种情况,选"未定义"就对了。

铁律: 一条语句中,一个变量最多被修改一次。


3. 以下代码的输出是( )

c
char s[] = "Hello";
char t[] = "Hello";
if (s == t) printf("相等");
else printf("不相等");

A. 相等  B. 不相等  C. 编译错误  D. 运行时错误

答案:B

解析: st 是两个不同的数组,它们在内存中占据不同的地址。s == t 比较的是数组首地址,而不是字符串内容。比较字符串内容应使用 strcmp

💡 秒懂技巧: 就像两个人都有"Hello"的笔记本,但笔记本是不同本子——问"这两本笔记本是不是同一本",答案是"不是"。要比较内容,得逐字对照(strcmp)。

延伸: strlen(s) 计算长度(不含 \0),sizeof(s) 计算数组大小(含 \0),sizeof("Hello") = 6。


4. 执行以下代码,输出结果是( )

c
int a[3][3] = {{1,2},{3,4},{5,6}};
printf("%d", a[1][1]);

A. 1  B. 2  C. 3  D. 4

答案:D

解析: 二维数组初始化时,未指定的元素自动补 0。a[3][3] 实际存储为:

第0行: {1, 2, 0}
第1行: {3, 4, 0}
第2行: {5, 6, 0}

a[1][1] 是第1行第1列,即 4。

💡 秒懂技巧: 二维数组就像 Excel 表格。a[1][1] 是第2行第2列(C语言从0开始数)。没填的格子自动填0。


5. 以下程序输出是( )

c
void swap(int x, int y) {
    int t = x; x = y; y = t;
}
int main() {
    int a = 3, b = 5;
    swap(a, b);
    printf("%d,%d", a, b);
    return 0;
}

A. 3,5  B. 5,3  C. 3,3  D. 5,5

答案:A

解析: C语言函数参数是值传递——swap(a, b)ab值拷贝xy,函数内部交换的是拷贝值,不影响原变量。

💡 秒懂技巧: 就像你把身份证复印件给工作人员,工作人员在复印件上改名字——原件上的名字不会变。想改原件,必须给原件地址(指针)。

要真正交换,必须用指针:

c
void swap(int *x, int *y) {
    int t = *x; *x = *y; *y = t;
}
swap(&a, &b);  // 传地址

6. 执行下面程序段,输出结果是( )

c
int i, sum = 0;
for (i = 1; i <= 5; i++) {
    if (i == 3) continue;
    sum += i;
}
printf("%d", sum);

A. 9  B. 12  C. 15  D. 18

答案:B

解析: i==3 时跳过本轮累加,因此 sum=1+2+4+5=12

💡 秒懂技巧: continue 就像"跳过当前这一轮"——i=3 时直接跳过去下一轮。break 是"整个循环都不玩了"。

易错点: continue 只跳过当前循环,break 才会直接结束循环。


7. 设 int x=10; int *p=&x;,执行 (*p)++; 后( )

A. p 的地址加 1  B. x 变为 11  C. p 指向空地址  D. 语法错误

答案:B

解析: 括号保证先执行 *p 得到 x,再对该变量自增,所以 x 变为 11。

💡 秒懂技巧: 指针就像"门牌号"——p 是写着"x的家"的门牌,*p 是去敲这个门。(*p)++ 是"去敲x的门,然后让x加1"。p++ 是"门牌号本身加1",指向别处了。

区分: (*p)++ 修改指向的值,p++ 修改指针本身。


8. 关于编译错误与运行错误,下列说法正确的是( )

A. 数组越界一定能在编译阶段发现 B. 缺少分号通常属于编译错误 C. 除以 0 一定属于链接错误 D. 函数声明不匹配一定不会报警

答案:B

解析: 缺少分号会破坏语法,通常由编译器报告。数组越界和除以 0 可能在运行阶段才暴露;链接错误常见于函数或全局符号找不到定义。

💡 秒懂技巧:

  • 编译错误 = 写作文时语法不通(老师一眼看出)
  • 链接错误 = 你引用了一本不存在的书(图书馆找不到)
  • 运行错误 = 作文写好了,但读的时候发现逻辑矛盾(只有读了才知道)

考点: 2026 考纲新增强调的程序运行环境与代码调试。


二、数据结构同题型复盘

9. 长度为 n 的顺序表,在表头插入一个元素的时间复杂度是( )

A. O(1)  B. O(logn)  C. O(n)  D. O(n2)

答案:C

解析: 在表头插入时,原有 n 个元素都需要向后移动一位,因此时间复杂度为 O(n)

💡 秒懂技巧: 就像排队时插到最前面——后面所有人必须往后退一步。人越多,退的步数越多。


10. 栈的操作原则是( )

A. 先进先出  B. 后进先出  C. 随机存取  D. 按关键字有序

答案:B

解析: 栈是后进先出(LIFO)的受限线性表,只允许在栈顶进行插入和删除。

💡 秒懂技巧: 栈就像一摞盘子——你只能从最上面拿盘子(后放的先拿),也只能在最上面放盘子。


11. 循环队列中,若队头指针为 front、队尾指针为 rear、数组长度为 m,常用的队满条件是( )

A. front == rear B. (rear + 1) % m == front C. rear == m D. front == 0

答案:B

解析: 采用"牺牲一个存储单元"的实现时,front == rear 表示队空,(rear+1)%m == front 表示队满。

💡 秒懂技巧: 循环队列就像一圈停车位——你有一圈车位,队尾指针追上了队头指针就说明满了。但为了区分"空"和"满",故意空一个车位不占。


12. 一棵具有 7 个结点的完全二叉树,其叶子结点数是( )

A. 2  B. 3  C. 4  D. 7

答案:C

解析: 7 个结点恰好构成三层满二叉树,第三层的 4 个结点都是叶子。

💡 秒懂技巧: 画个三层二叉树:第一层1个,第二层2个,第三层4个。第三层没有子节点的就是叶子。


13. 对二叉搜索树进行哪一种遍历可以得到递增序列( )

A. 先序遍历  B. 中序遍历  C. 后序遍历  D. 层序遍历

答案:B

解析: 二叉搜索树满足"左子树关键字小于根,右子树关键字大于根",中序遍历顺序是左—根—右,因此结果递增。

💡 秒懂技巧: 中序遍历就像"先看左边 → 再看中间 → 再看右边",因为左边都是小的,所以从小到大输出。


14. 含 n 个顶点的无向连通图,至少有多少条边( )

A. n1  B. n  C. n+1  D. 2n

答案:A

解析: 无向连通图的极小连通结构是一棵生成树,树有 n1 条边。

💡 秒懂技巧: 想象你要用网线把 n 台电脑连起来,让它们都能互相通信——最少需要 n-1 根网线(形成一条线或树形结构)。


15. 对长度为 n 的有序表进行折半查找,平均时间复杂度是( )

A. O(1)  B. O(logn)  C. O(n)  D. O(nlogn)

答案:B

解析: 每次比较都会排除一半查找区间,因此比较次数与 log2n 同阶。

💡 秒懂技巧: 折半查找就像猜数字——你说"50",我说"大了",你就知道答案在1-49之间,一次排除一半。100个数字最多猜7次就能找到。

前提: 表必须有序,并且存储结构支持随机访问。


16. 下列排序算法中,平均时间复杂度为 O(nlogn) 且通常需要额外 O(n) 空间的是( )

A. 冒泡排序  B. 直接插入排序  C. 归并排序  D. 简单选择排序

答案:C

解析: 归并排序通过分治将序列不断二分,再使用辅助数组归并,平均和最坏时间复杂度均为 O(nlogn)

💡 秒懂技巧: 归并排序就像"分组比赛"——先把一堆牌分成两小堆,每小堆排好,再合并成有序的一堆。合并时需要一张额外的桌子放牌(额外空间)。


答案速查

题号答案核心考点
1A整数除法与类型转换
2D未定义行为
3B数组地址比较 vs 字符串比较
4D二维数组初始化
5A值传递(参数传递方式)
6B循环与 continue
7B指针解引用
8B编译、链接与运行错误
9C顺序表插入时间复杂度
10B栈的 LIFO 特性
11B循环队列队满条件
12C完全二叉树叶子结点
13B二叉搜索树中序遍历
14A无向连通图最少边数
15B折半查找时间复杂度
16C归并排序时空复杂度

2026 考纲新变化

变化项说明
改错题信号2026 题型可能含改错题,2027 备考需关注
程序调试考纲新增强调程序运行环境与代码调试
参考教材更新严蔚敏、吴伟民《数据结构(C 语言版)》第 2 版(清华大学出版社 2025-10,✅ 官方考纲确认;原"人邮 2021"为旧口径)

📊 上一份:《计算机 2025 真题回忆版》 · 回真题总览

仅供个人学习 · 考生回忆版 · 非考试院原卷