考研408计算机统考分两部分,80分单项选择题和70分大题,满分150分。单项选择题总共80分,每小题2分,40小题。单项选择题,1-10题是数据结构部分;11-22题是计算机组成原理部分;23-32题是操作系统部分;33-40题是计算机网络部分。综合应用题70分,共7小题,41和42题是数据结构题,分值各为10分和15分;43和44题是计算机组成原理题,各占8分和13分;45和46题是操作系统题,各占7分和8分;47题是计算机网络题,分值为9分。为了方便大家更好的来备考,小编为大家整理了“2017年408计算机考研真题”,希望可以帮助大家更好的复习408计算机考研内容。
2017年考研408计算机统考考研真题
二、综合应用题(第41~47小题,共70分)
43、(13分)已知f(n)=∑_(i=0)^n▒2^i =2^(n+1)-1=⏞(11⋯1B)┴(n+1位)计算f(n)的C语言函数f1如下:
int f1(unsigned n)
{ int sum=1,power=1;
for(unsigned i=0;i<=n-1;i++)
{ power*=2;
sum+=power;
}
return sum;
}
将f1中的int都改为float,可得到计算f(n)的另一个函数f2。假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。请回答下列问题。
(1)当n=0时,f1会出现死循环,为什么?若将f1中的变量i和n都定义为int型,则f1是否还会出现死循环?为什么?
(2)f1(23)和f2(23)的返回值是否相等?机器数各是什么(用十六进制表示)?
(3)f1(24)和f2(24)的返回值分别为33554431和33554432.0,为什么不相等?
(4)f(31)=232-1,而f1(31)的返回值却为-1,为什么?若使f1(n)的返回值与f(n)相等,则最大的n是多少?
(5)f2(127)的机器数为7F800000H,对应的值是什么?若使f2(n)的结果不溢出,则最大的n是多少?若使f2(n)的结果精确(无舍入),则最大的n是多少?
44、(10分)在按字节编址的计算机M上,题43中f1的部分源程序(阴影部分)与对应的机器级代码(包括指令的虚拟地址)如下:
int f1( unsigned n)
1 00401020 55 push ebp
…… …… ……
for(unsigned i=0; i<= n-1; i++)
…… …… ……
20 0040105E 39 4D F4 cmp dword ptr [ebp-0Ch] ,ecx
…… …… ……
{ power*=2;
…… …… ……
23 00401066 D1 E2 shl edx,1
…… …… ……
return sum;
…… …… ……
35 0040107F C3 ret
其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令。
请回答下列问题。
(1)计算机M是RISC还是CISC?为什么?
(2)f1的机器指令代码共占多少字节?要求给出计算过程。
(3)第20条指令cmp通过i减n-1实现对i和n-1的比较。执行f1(0)过程中,当i=0时,cmp指令执行后,进/借位标志CF的内容是什么?要求给出计算过程。
(2)第23条指令sh1通过左移操作实现了power*2运算,在f2中能否也用sh1指令实现power*2?为什么?