2021年高级语言程序设计考研真题答案及解析
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2021年高级语言程序设计考研真题答案及解析,供大家参考!
本文提供2021年高级语言程序设计考研真题答案及解析,以下为具体内容
1、下列说法正确的是( )。
A、消除递归一定要使用栈。
B、对同一输入序列进行两组不同合法入栈和出栈组合操作,所得的输出序列也一定相同。
C、通常使用队列来处理函数调用或过程调用。
D、为解决计算机主机与打印机之间速度的不匹配问题,可以设置打印数据缓存区,其逻辑结构应该是队列。
2、n个结点的线索二叉树上含有的线索数是( )。
A、n-1
B、n
C、n+1
D、2n
3、一组记录的关键字为(12,17,37,1,23,68,20,78,84,29,55,11,121,43),用链地址法构造散列表,散列函数为H(key)=keyMOD11,散列地址为1的链中有( )个记录。
A、2
B、3
C、4
D、5
4、已知字符集{a,b,c,d,e,f},若各字符出现的次数分别为8,5,11,2,15,6,则对应字符集中各字符的哈夫曼编码可能是( )。
A、00,1011,01,1010,11,100
B、00,100,110,000,0010,01
C、10,1011,11,0011,00,010
D、0011,10,11,0010,01,000
5、以下选项错误的是( )。
A、一个C源程序必须有且仅有一个主函数
B、一个C源程序可以包含一个或多个子函数
C、在C源程序中注释说明必须位于语句之后
D、C源程序基本结构是函数
6、当c的值不为0时,在下列选项中能正确将c的值赋给变量a,b的是( )。
A、c=b=a
B、(a=c)||(b=c)
C、(a=c)&&(b=c)
D、a=c=b
7、对于以下的变量定义,不正确的表达式是( )。struct node{ int j,k;}x;struct node *p=&x;
A、p->k=2
B、(*p).k=2
C、x.k=2
D、x->k=2
8、设A为存放短整型的一位数组,如果A的首地址为P,那么A中第i个元素地址的c语言表达式为( )。
A、P+2*i
B、P+(i-1)*2
C、P+(i-1)
D、P+i
9、下列描述不正确的是( )。
A、字符数组中可以存放字符串
B、可以对字符型数组进行整体输入、输出
C、可以对整型数组进行整体输入、输出
D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
1、试题答案:D
试题解析:
【考点】本题考查数据结构--栈和队列--栈和队列的综合应用。
【解析】
对于A,消除递归不一定需要使用栈来保护现场,可以直接用循环代替递归,因此A错误。对于B,对同一输入序列可以有多种不同的输出序列与之对应,因此B错误。对于C,我们通常采用栈来处理函数调用或过程调用,因此C错误。对于D,打印机操作符合“先进先出”的特性,其逻辑结构可以采用队列,因此D正确。故本题选D。
2、试题答案:C
试题解析:
【考点】本题考查数据结构--树与二叉树--二叉树--线索二叉树--线索二叉树的性质。
【解析】
二叉树的每个结点都有两个指针域,n个结点有n-1条边,因此有n-1个指针域指向左孩子或右孩子,剩余n-(n-1)=n+1指针原本是空域,在线索二叉树中这些空域被利用作为线索,因此线索的数目为n+1,故本题选C。
3、试题答案:C
试题解析:
【考点】本题考查数据结构--查找--散列/哈希表--哈希表的构造--处理冲突的方法--链地址法。
【解析】
画出该散列表如下:
由上述散列表可知,散列地址为1的链中记录总数为4,故本题选C。
4、试题答案:A
试题解析:
【考点】本题考查数据结构--树与二叉树--树与二叉树的应用--哈/赫夫曼树及其编码--哈/赫夫曼编码。
【解析】
哈夫曼编码具有前缀性,而B选项中编码00是编码000的前缀,因此B错误;C选项中10是1011的前缀,因此C错误。根据哈夫曼树的构造过程,字符出现次数越少,编码的长度越长,因此频次为2、5的编码长度应当相同且最长,而D选项中频次为5的编码长度为2,频次为2的编码长度为4,因此D错误。故本题选A。
5、试题答案:C
试题解析:
【考点】本题考查C语言--C语言概述--C语言--C语言程序结构的特点。
【解析】
在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:一种是以/*开始、以*/结束的块注释;另一种是以//开始、以换行符结束的单行注释。
在C源程序中注释说明,可以在语句之前,也可以在语句之后;故选项C错误,本题选C。
6、试题答案:C
试题解析:
【考点】本题考查
1、C语言--C语句--赋值语句;
2、C语言--选择结构--逻辑运算符及表达式--短路评估(现象)。
【解析】
选项A、D中,变量c在赋值运算符的左侧,故不能将c的值赋给变量a,b;不符题意。选项B中,c的值不为0,则逻辑表达式(a=c)||(b=c)中a=c的值为真,逻辑或运算符出现短路现象,则不执行后面的表达式b=c,故不能将c的值赋给变量b;不符题意。综上本题选C。
如果 &&(||) 运算符左侧的子表达式为 false(true),则不会检查右侧的表达式。因为只要有一个子表达式为 false(true),则整个表达式都为 false(true),所以再检查剩余的表达式会浪费 CPU 时间。这被称为短路评估。
7、试题答案:D
试题解析:
【考点】本题考查C语言--自定义数据类型--结构体类型--结构体类型变量的初始化和使用。
【解析】
引用结构体变量中成员的值,引用方式为:结构体变量名.成员名。若p指向一个结构体变量stu,以下3种用法等价:(1)stu.成员名;(2)(*p).成员名(3)p->成员名。故选项A、B、C正确。
选项D中,x为结构体变量,结构体变量不能使用符号->引用成员变量,故错误,本题选D。
8、试题答案:D
试题解析:
【考点】本题考查C语言--指针--通过指针使用数组--指向数组元素时指针的运算。
【解析】
当指针变量指向数组元素时,可以进行以下运算:
加一个整数(用+或+=),如p+1;指向下一个元素。
减一个整数(用-或-=),如p-1;指向上一个元素。
故A中第i个元素地址的c语言表达式为P+i;本题选D。
9、试题答案:C
试题解析:
【考点】本题考查C语言--数据的表现形式及其运算--运算符与表达式。
【解析】
选项C中,对于整型数组的元素,只能依次进行输入、输出,不能整体输入输出;故错误,本题选C。