计算机程序设计 · 2022 年真题(选项拆解 + 解析)
类型:公开资料抽取 + 逐题拆解(B 级)| 满分 200 · 150 分钟 边界:回忆版 / 公开整理,非考试院原卷 PDF 镜像;个别措辞以正版真题册为准。见 00-资料来源与使用说明 本地原文件:
资料/计算机真题原卷/2022.docx/2022.txt优先对照:2024 全量详解 · 2021 · 2023
试卷结构
| 题型 | 题量 | 分值 |
|---|---|---|
| 一、单项选择 | 20 | 60 |
| 二、判断 | 10 | 20 |
| 三、填空 | 5 | 20 |
| 四、简答 | 4 | 40 |
| 五、计算/读程 | 3 | 30 |
| 六、应用编程 | 3 | 30 |
一、单项选择题(每题 3 分,共 60 分)
1. char a[10]=" wait "; printf("%d", strlen(a)); 结果( )
A. 4 B. 5 C. 8 D. 10 答案:B 或 C(视空格) · 考点 1.6 数组解析:字面量若为 " wait "(前 1 空格 + wait + 1 空格)长度 6;常见回忆 "wait " 为 5。以本地原卷空格为准,刷题重点:strlen 不含 \0、含空格。
2. (a==6)||(a!=6) 的值( )
A. 0 B. 6 C. 1 D. 不确定 答案:C · 考点 1.2 数据的存储与运算解析:恒真,逻辑值为 1。
3. 冒泡升序,初始 49,38,65,97,76,13,27,第一趟后( )
A. 38,49,65,27,76,13,97 B. 38,49,65,27,13,76,97 C. 38,49,65,27,13,76,97 D. 38,49,65,76,13,27,97 答案:D(常见) · 考点 2.8 排序解析:一趟冒泡把最大 97 沉底:相邻交换后末尾为 97,前部为相对有序结果。请按「两两比较交换」手推一趟验证。
4. 可用作 C 自定义标识符的是( )
A. _6_ B. 6_6 C. define D. typedef答案:A · 考点 1.1 C语言概述与基本概念解析:不能以数字开头;C/D 为关键字。
5. 深度为 6 的二叉树最多结点数( )
A. 63 B. 32 C. 64 D. 128 答案:A · 考点 2.5 树和二叉树解析:
6. 删除 p 所指结点的直接后继( )
A. p->next=p B. p=p->next C. p=p->next->next D. p->next=p->next->next答案:D · 考点 2.2 线性表
7. 有向图所有顶点出度总和与入度总和比值( )
A. 4 B. 2 C. 1 D. 3 答案:C · 考点 2.6 图
8. (double)(5/2)+2.5 的值( )
A. 4 B. 5.0 C. 5 D. 4.5 答案:D · 考点 1.2 数据的存储与运算解析:先整除 5/2=2,再转 double:2.0+2.5=4.5。
9. 下列语法错误的是( )
A. int a[2][2]={1,2,3,4} B. int a[2][]={1,2,3,4} C. int a[][2]={1,2,3,4} D. int a[2][2]={1},{2,3}答案:B · 考点 1.6 数组解析:二维数组定义时列数不可省(行可省)。
10. 数组名作为函数参数传递的是( )
A. 长度 B. 首地址 C. 元素值 D. 元素个数 答案:B · 考点 1.6 数组 / 1.7 函数
11. int z=2; while(z--); printf("z=%d",z);( )
A. z=0 B. z=-1 C. z=1 D. 无结果 答案:B · 考点 1.5 循环结构程序设计解析:空循环体;z 从 2→1→0 时条件取 0 后仍后置减成 -1 再退出。
12. 最常用操作是按序号存取,且只在表尾插入删除,最省时结构( )
A. 双链表 B. 顺序表 C. 单循环链表 D. 带头结点双循环链表 答案:B · 考点 2.2 线性表解析:按序号随机访问 O(1) → 顺序表;尾插删 O(1)(若知 length)。
13. char a[10],b[10],*p=a,*q=b; 正确的是( )
A. p*=3 B. p/=9 C. p=&9 D. p+=3答案:D · 考点 1.8 指针解析:指针可加减整数;不可 *=//=,&9 非法。
14. 广义表 L=((α,β,γ)) 长度与深度( )
A. 1,1 B. 1,3 C. 1,2 D. 2,3 答案:C · 考点 2.4 串、数组和广义表解析:最外一层只有 1 个元素(一个表);深度 2。
15. 下列说法错误的是( )
A. fgets 可从键盘读字符串 B. fwrite 输出到文件 C. fputs 输出字符到文件 D. getchar 从磁盘文件读入字符 答案:D · 考点 1.10 文件操作解析:getchar 从标准输入,不是磁盘文件专用。
16. 结构体变量分配的内存容量为( )
A. 各成员所需总和(含对齐) B. 仅第一成员 C. 最大成员 D. 最后成员 答案:A · 考点 1.9 结构体与共用体 (联合体才是最大成员)
17. 完全二叉树 1001 个结点,终端结点(叶子)个数( )
A. 499 B. 500 C. 501 D. 502 答案:C · 考点 2.5 树和二叉树解析:n 个结点的完全二叉树叶子数为
18. 序列 1..n 入栈,第一个出栈为 n,则第 i 个出栈元素为( )
A. n-i-1 B. n-i C. n-i+1 D. 不确定 答案:C · 考点 2.3 栈和队列解析:必须先 1..n 全入再依次弹出:n,n-1,… → 第 i 个为 n-i+1。
19. 存储空间与顶点个数相关(常考邻接矩阵)( )
A. 邻接表 B. 邻接矩阵 C. 十字链表 D. 逆邻接表 答案:B · 考点 2.6 图解析:邻接矩阵
20. 队列和栈的共同点是( )
A. 先进先出 B. 先进后出 C. 后进先出 D. 只能在端点插入或删除 答案:D · 考点 2.3 栈和队列
二、判断题(摘要)
以本地 2022.txt 后半为准;常见点:
- 空语句、指针运算、排序稳定性、图的存储等
- 建议对照 2024 判断题风格闭卷练
三、填空 / 四、简答
按本地原卷补全关键词:结构化程序、文件函数、树/图术语、算法特点、指针概念。
五、读程题(摘要)
- 含
continue+ 指针走访字符数组的循环:先算m终值,再看printf输出字符序列。 - 手推:画表格记录 m、条件、输出。
六、应用题
图遍历 + 最小生成树
(1) 从 1 开始 DFS,邻接点按编号升序 → 写出访问序列 (2) 最小生成树:Prim 或 Kruskal,写算法名并画树
统计指定字符个数
int count_char(const char *s, char ch) {
int c=0; for(;*s;s++) if(*s==ch) c++;
return c;
}选择排序 30 个成绩
void select_sort(int a[], int n) {
for(int i=0;i<n-1;i++) {
int k=i;
for(int j=i+1;j<n;j++) if(a[j]<a[k]) k=j;
if(k!=i) { int t=a[i]; a[i]=a[k]; a[k]=t; }
}
}回炉
- 原卷 PDF
- 2024 · 2021 · 考点拆分
返回:_索引 · 总索引