湖南大学CS-2021期末考试解析

这篇具有很好参考价值的文章主要介绍了湖南大学CS-2021期末考试解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【特别注意】

答案来源于@wolf

是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。

【试卷评析】

有必要一做。

【试卷与答案】 

湖南大学CS-2021期末考试解析

1.简答题(10 分)

 小明设计了一款机器,整数和浮点数都占 10 个 bit,其中整数采用补码表示,浮点数采用

IEEE 754 标准。
(1)整数的表示范围是多少?请分别用十进制数和二进制数表示。(2 分)
(2)如果浮点数采用 1 位符号位,5 位阶码位,4 位尾数位,则在正数中,最大的非规格化
数与最大的规格化数分别是多少?用二进制数表示。(3 分)
(3)如果要求浮点数能精确表示第一问中所有的整数,能否做到?如果能,请给出所有阶
码位和尾数位的位数组合,并描述分析过程,如果不能,请分析原因。(5 分)
【答案】 (这个理由应该有很多种写法,言之有理估计即可)
湖南大学CS-2021期末考试解析

2.程序填空题(20 分,每空 4 分)

如下是一个 c 语言程序及其对应的汇编代码( 32 位机,小端环境下编译),请参照汇编代码,
完成 c 程序的空缺部分。
c 语言程序:
#include <stdio.h>
#define X (1)
#define Y 23
int array1[X][Y];
int array2[X];
int test()
{
int sum= (2) ;
int i=0;
do
{
if( (3) ) continue;
sum+= (4) ;
}while(i<X && i<Y);
return (5) ;
}
int main()
{
return 0;
}
汇编代码如下:
test:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $14, -8(%ebp)
movl $0, -4(%ebp)
.L5:
movl -4(%ebp), %eax
movl array2(,%eax,4), %ecx
movl -4(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
sall $5, %eax
addl $array1, %eax
movl (%eax), %eax
imull %ecx, %eax
cmpl $6, %eax
jle .L2
movl -4(%ebp), %eax
movl array2(,%eax,4), %ecx
movl -4(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
sall $5, %eax
addl $array1, %eax
movl (%eax), %eax
movl %ecx, %edx
subl %eax, %edx
movl %edx, %eax
cmpl $7, %eax
jle .L6
.L2:
movl -4(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eaxsall $5, %eax
addl $array1, %eax
movl (%eax), %edx
movl -4(%ebp), %eax
movl array2(,%eax,4), %eax
addl %edx, %eax
addl -4(%ebp), %eax
addl %eax, -8(%ebp)
addl $1, -4(%ebp)
jmp .L3
.L6:
nop
.L3:
cmpl $18, -4(%ebp)
jg .L4
cmpl $22, -4(%ebp)
jle .L5
.L4:
movl -8(%ebp), %eax
subl $5, %eax
imull -8(%ebp), %eax
leave
ret

【答案】

湖南大学CS-2021期末考试解析

 文章来源地址https://www.toymoban.com/news/detail-481571.html

3.综合应用题(20 分)

编译一个 C 语言程序(未使用优化选项),再对形成的可执行文件进行反汇编,得到如下汇
编代码:
0804841d <main>:
804841d: 55 push %ebp
804841e: 89 e5 mov %esp,%ebp
8048420: 83 e4 f0 and $0xfffffff0,%esp
8048423: 83 ec 20 sub $0x20,%esp
8048426: c7 44 24 18 0a 00 00 movl $0xa,0x18(%esp)
804842d: 00
804842e: c7 44 24 1c 00 00 00 movl $0x0,0x1c(%esp)
8048435: 00
8048436: 8b 44 24 18 mov 0x18(%esp),%eax
804843a: 89 04 24 mov %eax,(%esp)
804843d: e8 1a 00 00 00 call 804845c <function>
8048442: 89 44 24 1c mov %eax,0x1c(%esp)
8048446: 8b 44 24 1c mov 0x1c(%esp),%eax
804844a: 89 44 24 04 mov %eax,0x4(%esp)
804844e: c7 04 24 50 85 04 08 movl $0x8048550,(%esp)8048455: e8 96 fe ff ff call 80482f0 <printf@plt>
804845a: c9 leave
804845b: c3 ret
0804845c <function>:
804845c: 55 push %ebp
804845d: 89 e5 mov %esp,%ebp
804845f: 53 push %ebx
8048460: 83 ec 24 sub $0x24,%esp
8048463: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
804846a: 83 7d 08 00 cmpl $0x0,0x8(%ebp)
804846e: 75 09 jne 8048479 <function+0x1d>
8048470: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
8048477: eb 38 jmp 80484b1 <function+0x55>
8048479: 83 7d 08 01 cmpl $0x1,0x8(%ebp)
804847d: 74 06 je 8048485 <function+0x29>
804847f: 83 7d 08 02 cmpl $0x2,0x8(%ebp)
8048483: 75 09 jne 804848e <function+0x32>
8048485: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%ebp)
804848c: eb 23 jmp 80484b1 <function+0x55>
804848e: 8b 45 08 mov 0x8(%ebp),%eax
8048491: 83 e8 01 sub $0x1,%eax
8048494: 89 04 24 mov %eax,(%esp)
8048497: e8 c0 ff ff ff call 804845c <function>
804849c: 89 c3 mov %eax,%ebx
804849e: 8b 45 08 mov 0x8(%ebp),%eax
80484a1: 83 e8 02 sub $0x2,%eax
80484a4: 89 04 24 mov %eax,(%esp)
80484a7: e8 b0 ff ff ff call 804845c <function>
80484ac: 01 d8 add %ebx,%eax
80484ae: 89 45 f4 mov %eax,-0xc(%ebp)
80484b1: 8b 45 f4 mov -0xc(%ebp),%eax
80484b4: 83 c4 24 add $0x24,%esp
80484b7: 5b pop %ebx
80484b8: 5d pop %ebp
80484b9: c3 ret
C 程序代码如下(部分缺失):
#include "stdio.h"
void main()
{
int v=10,result=0;
result=function(v);//这是 p.c 文件
double d;
void p1() {
d=1.0;
}
printf("%d\n",result);
}
int function(int f)
{
int e=0;
if(f==_①_) e=0;
else if(f==_②_||f==_③_) e=1;
else e=function(_④_)+function(_⑤_);
return e;
}
1 )补充上述 C 代码中缺失的部分(每空 2 分,共 10 分)
2 )已知在主函数调用 function 前, %ESP = 0XBFFFF0D0。请将下列信息填写到栈帧图中的正确位 置(每一格 4 字节,且此时栈帧图为 function 第一次调用时的状态,所有变量写初始值即可,答案请写在答 题纸上, 每空 2 分,共 10 分):
主函数返回地址“地址: Rtn Addr ;
主函数局部变量 v
(请填:地址:主函数局部变量 v = *** ;
主函数局部变量 result
(请填:地址: result = *** ;
主函数传递参数 v
(请填:地址:主函数传递参数 v = *** ;
function 的局部变量 e
(请填:地址: e = ***
注:先声明的局部变量存放小地址。
【答案】 
湖南大学CS-2021期末考试解析

4.综合应用题(25 分)

现有一个 project 里包括两个 .c 文件,如下图所示。
湖南大学CS-2021期末考试解析

 

请回答如下问题:
1 )从链接需要出发,请指出这个 project 里有什么符号?分别属于什么类型?
2 )如果要编译执行这个 project ,应该在 Linux shell (即你的终端窗口)中输入:
$ gcc ,请将该命令行填充完整,可以获得一个可
执行程序 p1 (如果你觉得一行 gcc 命令不够,也可以使用多行 gcc 命令,使得如上图所示
的两个 .c 文件最终能形成可执行文件);
3 )运行 p1 后,屏幕输出是什么?结合链接器解析多重定义的全局符号的规则,分析为
什么会有这样的输出?
4 )请根据进程与加载运行程序的相关知识,描述运行该可执行程序 p1 需要进行哪些系
统调用,分别有什么作用?
5 )当 p1 开始运行时,其用户栈的典型组织结构是什么样的?
【答案】 
(注意:运行时用户栈在PPT上有)【此图仅供学习使用,若学校认为侵权,我会删除】 
湖南大学CS-2021期末考试解析

 注意输出为什么是x=1072693248

湖南大学CS-2021期末考试解析

5.综合应用题(25 分)

假定一个具有以下属性的计算机系统:
• 系统有 1MB 的虚拟内存
• 系统有 256KB 的物理内存
• 页面大小为 4KB
TLB 2 路组相联,总共有 8 个条目。
下面给出了 TLB 的内容和页表前 32 个条目。
所有数字均为十六进制
湖南大学CS-2021期末考试解析
1 )热身问题
(a) 需要多少位来表示虚拟地址空间?
(b) 需要多少位来表示物理地址空间?
(c) 需要多少位来表示页表偏移量?
2 . 虚拟地址转换一
请完成以下虚拟地址到物理地址的转换。如果缺页,物理地址栏输入“ - ”。
虚拟地址: 0x1F557

湖南大学CS-2021期末考试解析

3 . 虚拟地址转换二
请完成以下虚拟地址到物理地址的转换。如果缺页,物理地址栏输入“ - ”。
虚拟地址: 0x14557
湖南大学CS-2021期末考试解析
【答案】 
湖南大学CS-2021期末考试解析

 

到了这里,关于湖南大学CS-2021期末考试解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2019湖南省大学生程序设计竞赛题解(D)

    很妙的类似区间dp, 我自己是想不到,本题解题思路来自学长的博客: 长沙橘子猫 题意 有一个长度为 n n n 的序列,你可以给每个位置填 0 ∼ 9 0sim9 0 ∼ 9 的一个数,有 m m m 个限制,每个限制 [ l i , r i ] [l_{i}, r_{i}] [ l i ​ , r i ​ ] 要求区间内的数相乘必须为 9 9 9 的倍数,问

    2023年04月15日
    浏览(59)
  • Qt 物联网系统界面开发 “ 2022湖南省大学生物联网应用创新设计竞赛技能赛 ——应用物联网的共享电动自行车 ”

    本篇源于 “ 2022 湖南省大学生物联网应用创新设计竞赛技能赛参考样题 ” ——应用物联网的共享电动自行车 针对共享电动自行车应用场景,设计实现共享电动自行车、用户、管理等相关人、物互联的物联网系统。假设系统由电动自行车、后端服务器、前端应用终端、以及电

    2024年02月11日
    浏览(35)
  • 西安石油大学期末考试C++真题解析

    1、一、类型、返回值类型 二、参数表、函数重载 2、一、实例化 二、实例化的类型或类 类是对象的蓝图,对象是类的实例化 3、const 4、一个 两个 5、一、公有继承 二、私有继承、保护继承 6、抽象类、实例化对象 7、函数模板、类模板 8、try、catch、throw 9、流插入运算符、流

    2024年02月11日
    浏览(46)
  • 2021山东大学众智期末复习笔记

    目录 社交网络 同质性 正负关系 小世界 搜索引擎 博弈论 市场 权力 从众 新事物的扩散 信息不对称 流⾏病和线粒体夏娃 强连通图:有向图G中,任意两点可以相互到达。 有向图的强连通分量:有向图中的极大强连通子图。 三元闭包:如果两个互不相识的人有了一个共同的朋

    2023年04月08日
    浏览(53)
  • 山东大学软件学院2021-2022软件测试期末试题

    1.系统缺陷 2.测试自动化 3.回归测试 4.系统测试 5.I18N 1.单元测试与代码调试的区别 2.简述比较集成测试的不同模式、不同方法 3.比较4种导向中的正向思维、逆向思维,并说明为什么这两种导向现今不再流行 4.ST、ET的优缺点比较 给出了一段程序。每一小问给了测试用例,问是

    2024年02月09日
    浏览(41)
  • linux大学期末考试题库

    1、小明想在linux的tmp临时目录下新建一个名为“ruanjian”的目录,请写出新建目录的linux命令;然后进入这个“ruanjian”目录,在当前目录下新建一个空文件,名为“jiying.txt”,请写出相应命令;在当前目录下,小明想将主目录下的文件夹“hello”及其子目录和文件都复制到当前

    2024年02月08日
    浏览(41)
  • 《大学英语4》期末考试复习(一)听力原文+答案速记

    目录 Unit 1 Long conversation Passage 1 Unit 2 Long conversation Passage 1 Unit 3 Long conversation Passage 1 Unit 4 Long conversation Passage 1 Unit 5 Long conversation Passage 1 Unit 6 Long conversation Passage 1 Unit 7 Long conversation Passage 1 Unit 8 口诀如下: Long conversation M: I love working out! W: Ugh! You’re sweating all over the floor

    2024年02月10日
    浏览(59)
  • 【网络安全】大学信息安全技术 期末考试复习题

    一、单选题(一) 1、在以下人为的恶意攻击行为中,属于主动攻击的是( )A A.数据篡改及破坏 B.数据窃听 C.数据流分析 D.非法访问 2、数据完整性指的是( )C A.保护网络中各系统之间交换的数据,防止因数据被截获而造成泄密 B.提供连接实体身份的鉴别 C.防止非

    2024年02月11日
    浏览(58)
  • 安庆师范大学之计科-数据结构MOOC期末考试

    5分/题,共30题  1、在长度为n的顺序表的第i个位置上插入一个元素,i的合理取值范围是( )。 A.1≤i≤n    B.任意正整数 C.i≥0 D.1≤i≤n+1  正确答案:D 2‏、已知L是带表头结点单链表的头指针,摘除首元结点的语句是( )。 A.L-next=L; B.L=L-next; C.L=L-next-next; D.L-next=L-next-nex

    2024年02月09日
    浏览(43)
  • 山东大学软件学院计算机网络期末考试考点

    单播 :只有一个发送方和一个接收方的点到点传输。 组播 :将一个数据包发送给一组机器,即所有机器的一个子集。 广播 :将一个数据包发送给所有的目标机器。 面向连接的服务 :按照电话系统建模,服务用户首先必须建立一个连接,然后使用该连接传输数据,最后释放连接。

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包