Skip to content

计算机程序设计 · 2021

广东专升本 计算机程序设计 2021 真题演练(Obsidian 同步)

计算机程序设计 · 2021 年真题(选项拆解 + 解析)

类型:公开资料抽取 + 逐题拆解(B 级)| 满分 200 · 150 分钟 边界:回忆版 / 公开整理,考试院原卷 PDF 镜像;个别措辞以正版真题册为准。见 00-资料来源与使用说明 本地原文件:资料/计算机真题原卷/2021.docx / 2021.txt 优先对照:2024 全量详解 · 2022 · 2023

试卷结构

题型题量分值
一、单项选择2060
二、判断1020
三、填空520
四、简答440
五、计算/读程330
六、应用编程330

一、单项选择题(每题 3 分,共 60 分)

1. 已知整型 a=2, b=3,求 !a || b 的值( )

A. 0 B. 1 C. 2 D. 3 答案:B · 考点 1.2 数据的存储与运算解析!a!2 → 0(逻辑非);0 || 3 → 真 → 1(逻辑或结果为 0/1)。

2. 当 a 为奇数时为真、偶数为假,不能满足需求的是( )

A. a%2==1 B. !(a%2) C. !(a%2==0) D. (a%2)&&(a%2>0)答案:B · 考点 1.2 数据的存储与运算解析a%2 奇=1 偶=0;!(a%2) 对奇数得 0(假),需求相反。

3. int a=1,b=4,c; c=a/b; 结束后 c 的值( )

A. 1 B. 0.25 C. 0 D. 44200 答案:C · 考点 1.2 数据的存储与运算解析:整除 1/4=0

4. 将两个字符串链接成一个,可选用( )

A. strcat() B. strcpy() C. strlen() D. strcmp()答案:A · 考点 1.6 数组 / 串 解析strcat 连接;strcpy 复制;strlen 长度;strcmp 比较。

5. 下列说法错误的是( )

A. 被调函数可以不用 return B. 被调函数可出现多个 return C. 有返回值就一定要有 return D. 一个 return 可返回多个值给调用函数 答案:D · 考点 1.7 函数解析:一次 return 只能返回一个值(可用指针/结构体间接带回多值)。

6. 指针变量 p 不能初始化为( )

A. 地址 B. NULL C. 0 D. 1答案:D · 考点 1.8 指针解析1 不是合法地址/NULL 语义。

7. 下列函数声明正确的是( )

A. void f(x,y); B. f(int x, int y); C. void f(int,int); D. void f(int x, y);答案:C · 考点 1.7 函数解析:声明中形参类型不可省;可只写类型。A 缺类型;B 缺返回类型(旧式不规范);D 第二个形参缺类型。

8. 能作为输入文件名的字符串常量是( )

A. c:user\text.txt B. c\user\text.txt C. "c\user\text.txt " D. "c\\user\\text.txt"答案:D · 考点 1.10 文件操作解析:路径字符串需双引号;Windows 路径 \ 在字符串中写作 \\

9. 两有序表 n、m 个元素(n≤m)归并,最少比较次数( )

A. n B. m C. n-1 D. m+n 答案:A · 考点 2.2 线性表 / 归并 解析:短表元素依次与长表比较插入,最少约 n 次比较。

10. 非空循环单链表 head,尾结点 p 满足( )

A. p->next==NULL B. p==NULL C. p->next==head D. p==head答案:C · 考点 2.2 线性表解析:循环链表尾后继指向头(OCR 中 pextnext)。

11. 叶子权 {3,7,11,8,9,12} 构造哈夫曼树,高度是( )

A. 3 B. 4 C. 1 D. 2 答案:B · 考点 2.5 树和二叉树解析:哈夫曼逐步合并,该权集高度一般为 4(回忆共识)。

12. 表 {3,12,24,46,10,20}H(k)=k%9,散列地址为 0 的元素个数(原文缺选项 A)

余数:3,3,6,1,1,2 → 地址 0 的个数为 0;若问某常见地址,按表重算。 考点 2.7 查找

13. 适用于折半查找的是( )

A. 链式无序 B. 链式有序 C. 顺序无序 D. 顺序有序 答案:D · 考点 2.7 查找

14. 串 s="software" 子串数目(含空串)( )

A. 38 B. 35 C. 36 D. 37 答案:D · 考点 2.4 串解析:长度 n=8,子串数 n(n+1)/2+1=37

15. 与数据存储无关的是( )

A. 顺序表 B. 链表 C. 散列表 D. 队列 答案:D · 考点 2.1 数据结构基本概念解析:队列是逻辑结构;A/B/C 是存储结构(或具体实现)。

16. 对新算法作性能分析的主要目的是( )

A. 找合理数据结构 B. 研究输入实例 C. 分析效率以求改进 D. 考量易懂易读 答案:C · 考点 2.9 算法基本概念与分析

17. 数据结构在计算机内存中的表示是指( )

A. 数据结构 B. 逻辑结构 C. 存储结构 D. 数据元素关系 答案:C · 考点 2.1 数据结构基本概念

18. 十进制 630 的二进制是( )

A. 1001110000 B. 1001110110 C. 1010110100 D. 1010100111 答案:B · 考点 进制 解析:630=512+118;118=64+54;… 得 1001110110

19. 单链表 a 是 b 的前驱,在 a、b 间插入 c,应执行( )

A. c->link=b->link; b->link=c; B. b->link=c; c->link=a; C. b->link=c->link; c->link=a; D. a->link=c; c->link=b;答案:D · 考点 2.2 线性表

20. 递归算法实现一般需利用( )

A. 队列 B. 栈 C. 循环链表 D. 双向链表 答案:B · 考点 2.3 栈和队列


二、判断题(每题 2 分)

命题答案
21一个 C 程序里有且仅有一个 main
22字符串 "a" 在内存中占 1 个字符×(含 \0 占 2)
23指针变量不可以为函数参数×
24定义函数可有 0 个或多个形参
25全局变量必须定义在文件开头×
26二叉树每个叶子都有 2 个叶子×(表述混乱,错)
27冒泡排序时间复杂度是 O(n)×(一般 O(n²))
28队列只在队首删、队尾插
29无向/有向图区别在于顶点对无序/有序
30快速排序是不稳定排序

三、填空题

  1. 三种基本结构:顺序、选择、循环(重复)
  2. b=(int)(a/9)%4a=28b=3(28/9=3.11…→3,3%4=3)
  3. 打开文件用 fopen
  4. 高度 h 的树至少有 h+1 个结点(单支)
  5. 入栈 6,7,8,9,10,合法出栈之一示例:6,7,8,9,1010,9,8,7,6 等(题干常要求写出一种合法序列)

四、简答题要点

  1. 数据结构:相互之间存在一种或多种特定关系的数据元素的集合;数据类型:一组值的集合及定义在该集合上的一组操作。
  2. 算法特点:有穷、确定、可行、有输入、有输出;算法 vs 程序:算法强调步骤,程序是实现且可依赖具体语言/OS。
  3. 指针:地址;指针变量:存放地址的变量;关系:指针变量的值是指针。
  4. 二叉树五种形态:空;仅根;根+左;根+右;根+左右。

五、计算 / 读程

40. fun 求各位数字之和

(1) 功能:求十进制各位数字和 (2) 结果取决于输入;如输入 123 则输出 6

41. 指针 + switch 读程

c
int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=4;j>0;j--) {
  switch(j) {
    case 1: case 2: printf("%d",*p); break;
    case 3: printf("%d",*(--p));
    case 4: printf("%d",*(--p));
  }
}

(1) 循环 4 次(j=4,3,2,1) (2) 注意 case3 贯穿 case4;逐步模拟输出(回忆版答案以本地演算为准)

42. 无向图邻接矩阵(按图作答,图见原卷)


六、应用题

43. 交换 a、b 并输出较大值

思路:指针/引用交换 + 比较输出

c
void swap(int *x, int *y) { int t=*x; *x=*y; *y=t; }
// main 中 scanf 后 swap(&a,&b); printf("%d", a>b?a:b);

44. 剔除非数字字符输出

遍历字符串,isdigit(c)putchar(c)

45. Prim 最小生成树(以结点 1 为起点,过程见原图)

回炉

  • 原卷 PDF
  • 2024 · 考点拆分 · 系统笔记 1.1–2.9

返回:_索引 · 总索引

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