收藏 分享(赏)

MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx

上传人:小肥粒 文档编号:21758214 上传时间:2024-04-21 格式:DOCX 页数:33 大小:73.88KB
下载 相关 举报
MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx_第1页
第1页 / 共33页
MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx_第2页
第2页 / 共33页
MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx_第3页
第3页 / 共33页
MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx_第4页
第4页 / 共33页
MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案.docx_第5页
第5页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 MOOC 计算机系统基础(一):程序的表示、转换与链接-南京大学 中国大学慕课答案第一周小测验1、问题:以下有关冯.诺依曼结构思想的叙述中,错误的是( )。选项:A、计算机由运算器、存储器、控制器和 I/O 设备组成B、程序由指令构成,计算机能自动执行程序中一条一条指令C、指令和数据都放在存储器中,两者在形式上有差别D、计算机内部以二进制形式表示指令和数据正确答案:【指令和数据都放在存储器中,两者在形式上有差别】2、问题:以下有关指令以及指令执行过程的叙述中,错误的是( )。选项:A、指令由操作码和操作数或操作数的地址码构成B、CPU 中的控制器对指令操作码进行译码C、指令中指定的操作数只能

2、是存放在存储器中的数据D、将要执行的下条指令的地址总是在程序计数器 PC 中正确答案:【指令中指定的操作数只能是存放在存储器中的数据】3、问题:以下有关编程语言的叙述中,错误的是( )。选项:A、不能直接用机器语言(机器指令)编写程序B、用高级编程语言编写程序比用汇编语言更方便C、汇编语言和机器语言都与计算机系统结构相关D、计算机不能直接执行高级语言程序和汇编语言程序正确答案:【不能直接用机器语言(机器指令)编写程序】4、问题:以下有关机器指令和汇编指令的叙述中,错误的是( )。选项:A、机器指令和汇编指令一一对应,功能相同B、?机器指令和汇编指令都能被计算机直接执行C、汇编指令中用符号表示操

3、作码和地址码D、?汇编指令中用十进制或十六进制表示立即数正确答案:【?机器指令和汇编指令都能被计算机直接执行】5、问题:以下有关使用高级编程语言编写和开发软件的叙述中,错误的是( )。选项:A、须有一个翻译或转换程序,即编译器或解释器B、须有一套工具软件或集成开发环境,即语言处理系统 C、须程序员在应用程序中直接控制外设进行输入/输出D、须有程序员与计算机交互的用户接口,即 GUI 或 CUI正确答案:【须程序员在应用程序中直接控制外设进行输入/输出】6、问题:一个完整的计算机系统包括硬件和软件。软件又分为( )。选项:A、操作系统和语言处理程序B、系统软件和应用软件C、操作系统和高级语言D、

4、低级语言程序和高级语言程序正确答案:【系统软件和应用软件】7、问题:以下给出的软件中,属于系统软件的是( )。选项:A、Windows XPB、MS WordC、金山词霸D、RealPlayer正确答案:【Windows XP 】8、问题:以下有关指令集体系结构的叙述中,错误的是( )。选项:A、指令集体系结构位于计算机软件和硬件的交界面上B、指令集体系结构是指低级语言程序员所看到的概念结构和功能特性C、通用寄存器的长度、功能与编号不属于指令集体系结构的内容D、指令集体系结构的英文缩写是 ISA正确答案:【通用寄存器的长度、功能与编号不属于指令集体系结构的内容】9、问题:以下有关计算机系统层次

5、结构的叙述中,错误的是( )。?选项:A、最上层是提供给最终用户使用的应用程序(软件)层B、应用程序员工作在指令集体系结构层,需要对底层很熟悉?C、ISA 是对硬件的抽象,软件通过 ISA 使用硬件提供的功能D、OS 是对 ISA 和硬件的抽象,程序员通过 OS 使用系统资源正确答案:【应用程序员工作在指令集体系结构层,需要对底层很熟悉?】10、问题:以下术语中,不属于计算机中硬件(即物理上实际存在的部件)的是()。选项:A、算术逻辑部件B、指令字C、程序计数器(PC) D、数据通路正确答案:【指令字】第二周小测验1、问题:108 对应的十六进制形式是( )。?选项:A、6CHB、?B4HC、

6、5CH?D、63H正确答案:【6CH】2、问题:1029 的 16 位补码用十六进制表示为( )。选项:A、0405HB、7BFBHC、?8405HD、FBFBH?正确答案:【FBFBH?】3、问题:考虑以下 C 语言代码: short si=8196;unsigned short usi=si;执行上述程序段后,usi 的值是( )。选项:A、8196B、34572C、57339D、57340正确答案:【57340】4、问题:考虑以下 C 语言代码:short si=32768;unsigned short usi=si;执行上述程序段后,usi 的值是( )。选项:A、?32768B、32

7、768?C、65535D、65536?正确答案:【32768?】5、问题:考虑以下 C 语言代码:unsigned short usi=65535;short si=usi;执行上述程序段后,si 的值是( )。选项: A、?65535B、65535C、1D、1正确答案:【1】6、问题:在 ISO C90 标准下执行以下关系表达式,结果为“真”的是( )。选项:A、1 0UB、2147483647 2147483648C、(unsigned) 1 2D、2147483647 (int) 2147483648U正确答案:【(unsigned) 1 2】7、问题:1028 采用 IEEE 754

8、单精度浮点数格式表示的结果(十六进制形式)是( )。选项:A、44808000HB、C4808000HC、44C04000HD、C4C04000H正确答案:【C4808000H】8、问题:假定变量 i、f 的数据类型分别是 int、float。已知 i=12345,f=1.2345e3,则在一个 32 位机器中执行下列表达式时,结果为“假”的是( )。选项:A、i=(int)(float)iB、i=(int)(double)iC、f=(float)(int)fD、f=(float)(double)f正确答案:【f=(float)(int)f】9、问题:假定某计算机按字节编址,采用小端方式,有一

9、个 float 型变量 x 的地址为 0xffffc000,x=12345678H,则在内存单元 0xffffc001 中存放的内容是( )。选项:A、0001001000110100BB、00110100B?C、01010110B?D、?0101B正确答案:【01010110B?】 10、问题:下面是关于计算机中存储器容量单位的叙述,其中错误的是( )。选项:A、最小的计量单位为位(bit),表示一位“0”或“1”B、最基本的计量单位是字节(Byte),一个字节等于 8bitC、一台计算机的编址单位、指令字长和数据字长都一样,且是字节的整数倍D、“主存容量为 1KB”的含义是指主存中能存放

10、1024 个字节的二进制信息正确答案:【一台计算机的编址单位、指令字长和数据字长都一样,且是字节的整数倍】第三周小测验1、问题:CPU 中能进行算术运算和逻辑运算的最基本运算部件是( )。选项:A、多路选择器B、移位器C、加法器D、ALU正确答案:【ALU】2、问题:ALU 有一个操作控制端 ALUop,ALU 在 ALUop 的控制下执行相应的运算。以下给出的运算中,( )运算不能由 ALUop 直接控制完成。选项:A、加法和减法B、乘法和除法?C、与、或、非等逻辑运算D、传送(ALU 输入直送为输出)正确答案:【乘法和除法?】3、问题:假设变量 x 的位数为 n(n=8),x 的最低有效字

11、节不变,其余各位全变为 0,则对应 C 语言表达式为( )。选项:A、x 0xFFB、x | 0xFFC、x 0xFFD、x | 0xFF正确答案:【x 0xFF】4、问题:假设变量 x 的位数为 n(n=8),x 的最高有效字节不变,其余各位全变为 0,则对应 C 语言表达式为( )。选项:A、?(x(n-8)(n-8)B、(x0xFF)(n-8)(n-8)? C、(x(n-8)(n-8)D、(x0xFF)(n-8)(n-8)正确答案:【(x(n-8)(n-8)】5、问题:考虑以下 C 语言代码:short si = 8196;int i = si;执行上述程序段后,i 的机器数表示为( )

12、。选项:A、0000DFFCHB、FFFF9FFCHC、FFFFDFFCHD、0000 9FFCH正确答案:【FFFFDFFCH】6、问题:若在一个 8 位整数加/减运算器中完成 xy 的运算,已知带符号整数 x=69,y=38,则加法器的两个输入端和输入的低位进位分别为( )。选项:A、1011 1011、1101 1010、0B、1011 1011、1101 1010、1C、1011 1011、0010 0101、1D、1011 1011、0010 0110、1正确答案:【1011 1011、0010 0101、1】7、问题:若在一个 8 位整数加/减运算器中完成 x+y 的运算,已知无符

13、号整数x=69,y=38,则加法器的两个输入端和输入的低位进位分别为( )。选项:A、0100 0101、0010 0110、0B、0100 0101、0010 0110、1C、0100 0101、1101 1010、0D、0100 0101、1101 1010、1正确答案:【0100 0101、0010 0110、0】8、问题:若在一个 8 位整数加/减运算器中完成 x+y 的运算,已知 x=63,y= 31,则 x+y 的机器数及相应的溢出标志 OF 分别是( )。选项:A、1FH、0B、20H、0C、1FH、1D、20H、1正确答案:【20H、0】9、问题:若在一个 8 位整数加/减运算

14、器中完成 x+y 的运算,假定变量 x 和 y 的机器数用补码表示为x补=F5H,y补=7EH,则 x+y 的值及相应的溢出标志 OF 分别 是( )。选项:A、115、0?B、119、0C、115、1?D、119、1?正确答案:【115、0?】10、问题:若在一个 8 位整数加/减运算器中完成 xy 的运算,假定变量 x 和 y 的机器数用补码表示为x补=F5H,y补=7EH,则 xy 的值及相应的溢出标志 OF 分别是( )。选项:A、115、0B、119、0C、115、1D、119、1正确答案:【119、1】第四周小测验1、问题:若在一个 8 位计算机中完成 x+2y 的运算,假定变量

15、x 和 y 的机器数用补码表示为x补=44H,y补= DCH,则 x+2y 的机器数及相应的溢出标志 OF 分别是( )。选项:A、32H、0B、32H、1C、FCH、0D、FCH、1正确答案:【FCH、0】2、问题:若在一个 8 位计算机中完成 x2y,假定变量 x 和 y 的机器数用补码表示为x补=44H,y补= DCH,则 x2y 的机器数及相应的溢出标志 OF 分别是( ?)。选项:A、68H、0B、68H、1C、8CH、0D、8CH、1正确答案:【8CH、1】3、问题:若在一个 8 位计算机中完成 x/2+2y,假定变量 x 和 y 的机器数用补码表示为x补=44H,y补= DCH,

16、则 x/2+2y 的机器数及相应的溢出标志 OF 分别是( )。选项:A、CAH、0B、CAH、1C、DAH、0D、DAH、1正确答案:【DAH、0】4、问题:假定变量 r1 和 r2 的机器数用 8 位补码表示为r1补=F5H,r2补=EEH。若将运算结果存放在一个 8 位寄存器中,则下列运算中会发生溢出的是( )。选项:A、r1+ r2B、r1 r2C、r1 r2D、r1/r2正确答案:【r1 r2】5、问题:假定整数加法指令、整数减法指令和移位指令所需时钟周期(CPI)都为 1,整数乘法指令所需时钟周期为 10。若 x 为整型变量,为了使计算 64*x 所用时钟周期数最少,编译器应选用的

17、最佳指令序列为( )。选项:A、1 条乘法指令B、1 条左移指令C、1 条左移指令和 1 条加法指令D、两条左移指令和两条加法指令正确答案:【1 条左移指令】6、问题:假定整数加法指令、整数减法指令和移位指令所需时钟周期(CPI)都为 1,整数乘法指令所需时钟周期为 10。若 x 为整型变量,为了使计算 54*x 所用时钟周期数最少,编译器应选用的最佳指令序列为( )。选项:A、1 条乘法指令B、4 条左移指令和 3 条加法指令C、3 条左移指令和两条减法指令D、两条左移指令和两条减法指令正确答案:【3 条左移指令和两条减法指令】7、问题:假定整数加法指令、逻辑运算指令和移位指令所需时钟周期(

18、CPI)都为 1,整数除法指令所需时钟周期为 32。若 x 为整型变量,为了使计算 x/64 所用时钟周期数最少,编译器应选用的最佳指令序列为( )。选项:A、1 条除法指令 B、1 条右移指令C、1 条加法指令、1 条右移指令D、两条右移指令、1 条与操作指令、1 条加法指令正确答案:【两条右移指令、1 条与操作指令、1 条加法指令】8、问题:已知 float 型变量用 IEEE 754 单精度浮点格式表示,float 型变量 x 和 y的机器数分别表示为 x=40E8 0000H,y=C204 0000H,则在计算 x+y 时,第一步对阶操作的结果Ex-Ey补为( )。选项:A、0000

19、0111B、0000 0011C、1111 1011D、1111 1101正确答案:【1111 1101】9、问题:对于 IEEE 754 单精度浮点数加减运算,只要对阶时得到的两个阶之差的绝对值|E|大于等于( ),就无需继续进行后续处理,此时,运算结果直接取阶大的那个数。选项:A、23B、25C、127D、128正确答案:【25】10、问题:变量 dx、dy 和 dz 的声明和初始化如下:double dx = (double) x; doubledy = (double) y; double dz = (double) z;若 float 和 double 分别采用 IEEE 754 单

20、精度和双精度浮点数格式,sizeof(int)=4,则对于任意 int 型变量 x、y 和 z,以下哪个关系表达式是永真的?选项:A、dx*dx = 0B、(double)(float) x = dxC、dx+dy = (double) (x+y)D、(dx+dy)+dz = dx+(dy+dz)E、dx*dy*dz = dz*dy*dxF、dx/dx = dy/dy正确答案:【dx*dx = 0 #(dx+dy)+dz = dx+(dy+dz)】第五周小测验1、问题:以下有关指令的叙述中,错误的是( )。选项: A、机器指令是用二进制表示的一个 0/1 序列,CPU 能直接执行B、汇编指令是

21、机器指令的符号表示,CPU 能直接执行C、伪指令是由若干条机器指令构成的一个指令序列,属于软件范畴D、微指令是一条机器指令所包含的控制信号的组合,CPU 能直接执行正确答案:【汇编指令是机器指令的符号表示,CPU 能直接执行】2、问题:一条机器指令通常由多个字段构成。以下选项中,通常( ?)不显式地包含在机器指令中。选项:A、操作码B、寻址方式C、下条指令地址D、寄存器编号正确答案:【下条指令地址】3、问题:对于运算类指令或传送类指令,需要在指令中指出操作数或操作数所在的位置。通常,指令中指出的操作数不可能出现在( )中。选项:A、指令B、通用寄存器C、存储单元D、程序计数器正确答案:【程序计

22、数器】4、问题:令集体系结构(ISA)是计算机系统中必不可少的一个抽象层,它是对硬件的抽象,软件通过它所规定的指令系统规范来使用硬件。以下有关 ISA 的叙述中,错误的是( )。选项:A、ISA 规定了所有指令的集合,包括指令格式和操作类型B、ISA 规定了执行每条指令时所包含的控制信号C、ISA 规定了指令获取操作数的方式,即寻址方式D、ISA 规定了指令的操作数类型、寄存器结构、存储空间大小、编址方式和大端/小端方式正确答案:【ISA 规定了执行每条指令时所包含的控制信号】5、问题:以下选项中,不属于指令集体系结构名称的是( )。选项:A、UNIXB、IA-32C、ARMD、MIPS正确答

23、案:【UNIX】 6、问题:以下 Intel 微处理器中,不兼容 IA-32 指令集体系结构的是( )。选项:A、80386 和 80486B、Pentium (II、III、4)C、Core(i3、i5、i7)D、Itanium 和 Itanium 2正确答案:【Itanium 和 Itanium 2】7、问题:以下关于 IA-32 指令格式的叙述中,错误的是( )。选项:A、采用变长指令字格式,指令长度从一个字节到十几个字节不等B、采用变长操作码,操作码位数可能是 5 位到十几位不等C、指令中指出的位移量和立即数的长度可以是 0、1、2 或 4 个字节D、指令中给出的操作数所在的通用寄存器

24、的宽度总是 32 位正确答案:【指令中给出的操作数所在的通用寄存器的宽度总是 32 位】8、问题:以下关于 IA-32 指令寻址方式的叙述中,错误的是( )。选项:A、操作数可以是指令中的立即数、也可以是通用寄存器或存储单元中的内容B、对于寄存器操作数,必须在指令中给出通用寄存器的 3 位编号C、存储器操作数中最复杂的寻址方式是“基址加比例变址加位移”D、相对寻址的目标地址为“PC 内容加位移”,PC 内容指当前正在执行指令的地址正确答案:【相对寻址的目标地址为“PC 内容加位移”,PC 内容指当前正在执行指令的地址】9、问题:以下关于 IA-32 中整数运算指令所支持的操作数的叙述中,错误的

25、是()。选项:A、对于加减运算指令,操作数不区分是无符号整数还是带符号整数B、对于乘除运算指令,操作数一定区分是无符号整数还是带符号整数C、除乘法指令外,其他运算指令的源操作数和目的操作数的位数相等D、参加运算的操作数可以是一个字节(8b)、一个字(16b)或双字(32b)正确答案:【除乘法指令外,其他运算指令的源操作数和目的操作数的位数相等】10、问题:以下关于 IA-32 的定点寄存器组织的叙述中,错误的是( )。选项:A、每个通用寄存器都可作为 32 位、16 位或 8 位寄存器使用B、寄存器 EAX/AX/AL 称为累加器,ECX/CX/CL 称为计数寄存器C、寄存器 ESP/SP 称

26、为栈指针寄存器,EBP/BP 称为基址指针寄存器D、EIP/IP 为指令指针寄存器,即 PC;EFLAGS/FLAGS 为标志寄存器正确答案:【每个通用寄存器都可作为 32 位、16 位或 8 位寄存器使用】 第六周小测验1、问题:某 C 语言程序中对数组变量 b 的声明为“int b105;”,有一条 for 语句如下:for (i=0; i10, i+)for (j=0; j5; j+) sum+= bij;假设执行到“sum+= bij;”时,sum 的值在 EAX 中,bi0所在的地址在 EDX 中,j 在 ESI 中,则“sum+= bij;”所对应的指令(ATT 格式)可以是( )

27、。选项:A、addl 0(%edx, %esi, 4), %eaxB、addl 0(%esi, %edx, 4), %eaxC、addl 0(%edx, %esi, 2), %eaxD、addl 0(%esi, %edx, 2), %eax正确答案:【addl 0(%edx, %esi, 4), %eax】2、问题:IA-32 中指令“popl %ebp”的功能是( )。选项:A、RespResp-4,RebpMRespB、RespResp+4,RebpMRespC、RebpMResp,RespResp-4D、RebpMResp,RespResp+4正确答案:【RebpMResp,RespRe

28、sp+4】3、问题:IA-32 中指令“movl 8(%edx, %esi, 4), %edx”的功能是( )。选项:A、MRedx+Resi*4+8RedxB、MResi+Redx*4+8RedxC、RedxMRedx+Resi*4+8D、RedxMResi+Redx*4+8正确答案:【RedxMRedx+Resi*4+8】4、问题:设 SignExtx表示对 x 符号扩展,ZeroExtx表示对 x 零扩展。IA-32 中指令“movswl %cx, -20(%ebp)”的功能是( )。选项:A、MRebp-20SignExtRcxB、RcxSignExt MRebp-20C、MRebp-

29、20ZeroExtRcxD、RcxZeroExt MRebp-20正确答案:【MRebp-20SignExtRcx】5、问题:假设 Rax=FFE8H,Rbx=7FE6H,执行指令“subw %bx, %ax”后,寄存器的内容和各标志的变化为( )。选项:A、Rax=8002H,OF=0,SF=1,CF=0,ZF=0 B、Rbx=8002H,OF=0,SF=1,CF=0,ZF=0C、Rax=8002H,OF=1,SF=1,CF=0,ZF=0D、Rbx=8002H,OF=1,SF=1,CF=0,ZF=0正确答案:【Rax=8002H,OF=0,SF=1,CF=0,ZF=0 】6、问题:假设 Re

30、ax=0000B160H,Rebx=00FF0110H,执行指令“imulw %bx”后,通用寄存器的内容变化为( ?)。选项:A、Reax=00007600H,Rdx=FFACHB、Reax=FFAC7600H,其余不变C、Reax=00BC7600,其余不变D、Reax=00007600H,Rdx=00BCH正确答案:【Reax=00007600H,Rdx=FFACH】7、问题:假设 short 型变量 x 被分配在寄存器 AX 中,若 Rax=FF70H,则执行指令“salw $2, %ax”后,变量 x 的机器数和真值分别是( )。选项:A、FDC0H,-576B、FFDCH,-36C

31、、FDC3H,-573D、3FDC,16348正确答案:【FDC0H,-576】8、问题:程序 P 中有两个变量 i 和 j,被分别分配在寄存器 EAX 和 EDX 中,P 中语句“if (ij) ”对应的指令序列如下(左边为指令地址,中间为机器代码,右边为汇编指令):804846a 39 c2 cmpl %eax, %edx804846c 7e 0d jle xxxxxxxx 若执行到 804846a 处的 cmpl 指令时,i=105,j=100,则 jle 指令执行后将会转到( )处的指令执行。选项:A、8048461B、804846eC、8048479D、804847b正确答案:【80

32、4847b】9、问题:以下关于 x87 FPU 浮点处理指令系统的叙述中,错误的是( )。选项:A、提供 8 个 80 位浮点寄存器 ST(0)ST(7),采用栈结构,栈顶为 ST(0)B、float、double 和 long double 三种类型数据都按 80 位格式存放在浮点寄存器中C、float、double 和 long double 型数据存入主存时,分别占 32 位、64 位和 96 位D、float 和 double 型数据从主存装入浮点寄存器时有可能发生舍入,造成精度损失 正确答案:【float 和 double 型数据从主存装入浮点寄存器时有可能发生舍入,造成精度损失】1

33、0、问题:以下关于 MMX/SSE 指令集的叙述中,错误的是( )。选项:A、同一个微处理器同时支持 IA-32 指令集与 MMX/SSE 指令集B、MMX/SSE 指令集和 IA-32 指令集共用同一套通用寄存器C、SSE 指令是一种采用 SIMD(单指令多数据)技术的数据级并行指令D、目前 SSE 支持 128 位整数运算或同时并行处理两个 64 位双精度浮点数正确答案:【MMX/SSE 指令集和 IA-32 指令集共用同一套通用寄存器】第七周小测验1、问题:假设 P 为调用过程,Q 为被调用过程,程序在 IA-32 处理器上执行,以下有关过程调用的叙述中,错误的是( )。选项:A、C 语

34、言程序中的函数调用就是过程调用B、从 P 传到 Q 的实参无需重新分配空间存放C、从 P 跳转到 Q 执行应使用 CALL 指令D、从 Q 跳回到 Q 执行应使用 RET 指令正确答案:【从 P 传到 Q 的实参无需重新分配空间存放】2、问题:以下是有关 IA-32 的过程调用方式的叙述,错误的是( )。选项:A、入口参数使用栈(stack)传递,即所传递的实参被分配在栈中B、返回地址是 CALL 指令下一条指令的地址,被保存在栈中C、EAX、ECX 和 EDX 都是调用者保存寄存器D、EBX、ESI、EDI、EBP 和 ESP 都是被调用者保存寄存器正确答案:【EBX、ESI、EDI、EBP

35、 和 ESP 都是被调用者保存寄存器】3、问题:以下是有关 IA-32 的过程调用所使用的栈和栈帧的叙述,错误的是( )。选项:A、每进行一次过程调用,用户栈从高地址向低地址增长出一个栈帧B、从被调用过程返回调用过程之前,被调用过程会释放自己的栈帧C、只能通过将栈指针 ESP 作为基址寄存器来访问用户栈中的数据D、过程嵌套调用深度越深,栈中栈帧个数越多,严重时会发生栈溢出正确答案:【只能通过将栈指针 ESP 作为基址寄存器来访问用户栈中的数据】4、问题:以下是有关 C 语言程序的变量的作用域和生存期的叙述,错误的是( )。选项: A、静态(static 型)变量和非静态局部(auto 型)变量

36、都分配在对应栈帧中B、因为非静态局部变量被分配在栈中,所以其作用域仅在过程体内C、非静态局部变量可以和全局变量同名,是因为它们被分配在不同存储区D、不同过程中的非静态局部变量可以同名,是因为它们被分配在不同栈帧中正确答案:【静态(static 型)变量和非静态局部(auto 型)变量都分配在对应栈帧中】5、问题:以下是一个 C 语言程序代码:int add(int x, int y)return x+y;int caller()int t1=100 ;int t2=200;int sum=add(t1, t2);return sum; 以下关于上述程序代码在 IA-32 上执行的叙述中,错误的

37、是( )。选项:A、变量 t1 和 t2 被分配在 caller 函数的栈帧中B、传递参数时 t1 和 t2 的值从高地址到低地址依次存入栈中C、add 函数返回时返回值存放在 EAX 寄存器中D、变量 sum 被分配在 caller 函数的栈帧中正确答案:【传递参数时 t1 和 t2 的值从高地址到低地址依次存入栈中】6、问题:第 5 题中的 caller 函数对应的机器级代码如下:1 pushl %ebp2 movl%esp, %ebp 3 subl $24, %esp 4 movl $100, -12(%ebp) 5 movl $200, -8(%ebp) 6 movl -8(%ebp)

38、, %eax 7 movl %eax, 4(%esp) 8 movl -12(%ebp), %eax 9 movl %eax, (%esp) 10call add 11 movl %eax, -4(%ebp) 12 movl -4(%ebp), %eax 13 leave 14 ret 假定 caller 的调用过程为 P,对于上述指令序列,以下叙述中错误的是( )。?选项:A、第 1 条指令将过程 P 的 EBP 内容压入 caller 栈帧B、第 2 条指令使 BEP 内容指向 caller 栈帧的底部C、第 3 条指令将栈指针 ESP 向高地址方向移动,以生成当前栈帧D、从上述指令序列可

39、看出,caller 函数没有使用被调用者保存寄存器正确答案:【第 3 条指令将栈指针 ESP 向高地址方向移动,以生成当前栈帧】7、问题:对于第 5 题的 caller 函数以及第 6 题给出的对应机器级代码,以下叙述中错误的是( )。选项:A、变量 t1 和 t2 的有效地址分别为 Rebp-12 和 Rebp-8B、变量 t1 所在的地址高(或大)于变量 t2 所在的地址C、参数 t1 和 t2 的有效地址分别为 Resp和 Resp+4D、参数 t1 所在的地址低(或小)于参数 t2 所在的地址正确答案:【变量 t1 所在的地址高(或大)于变量 t2 所在的地址】8、问题:以下有关递归过

40、程调用的叙述中,错误的是( )。选项:A、可能需要执行递归过程很多次,因而时间开销大B、每次递归调用都会生成一个新的栈帧,因而空间开销大 C、每次递归调用在栈帧中保存的返回地址都不相同D、递归过程第一个参数的有效地址为 Rebp+8正确答案:【每次递归调用在栈帧中保存的返回地址都不相同】9、问题:以下关于 if (cond_expr) then_statement else else_statement 选择结构对应的机器级代码表示的叙述中,错误的是( )。选项:A、一定包含一条无条件转移指令B、一定包含一条条件转移指令(分支指令)C、计算 cond_expr 的代码段一定在条件转移指令之前D

41、、对应 then_statement 的代码一定在对应 else_statement 的代码之前正确答案:【对应 then_statement 的代码一定在对应 else_statement 的代码之前】10、问题:以下关于循环结构语句的机器级代码表示的叙述中,错误的是( )。选项:A、一定至少包含一条条件转移指令B、不一定包含无条件转移指令C、循环结束条件通常用一条比较指令 CMP 来实现D、循环体内执行的指令不包含条件转移指令正确答案:【循环体内执行的指令不包含条件转移指令】第八周小测验1、问题:假定全局 short 型数组 a 的起始地址为 0x804908c,则 a2的地址是( )。选

42、项:A、0x804908eB、0x8049090C、0x8049092D、0x8049094正确答案:【0x8049090】2、问题:假定全局数组 a 的声明为 char *a8,a 的首地址为 0x80498c0,i 在 ECX中,现要将 ai取到 EAX 相应宽度的寄存器中,则所用的汇编指令是( )。选项:A、mov 0x80498c0( , %ecx), %ahB、mov (0x80498c0, %ecx), %ahC、mov 0x80498c0( , %ecx, 4), %eaxD、mov (0x80498c0, %ecx, 4), %eax正确答案:【mov 0x80498c0( ,

43、 %ecx, 4), %eax】 3、问题:假定全局数组 a 的声明为 double *a8,a 的首地址为 0x80498c0,i 在ECX 中,现要将 ai取到 EAX 相应宽度的寄存器中,则所用的汇编指令是( )。选项:A、mov 0x80498c0( , %ecx, 4), %eax ?B、mov (0x80498c0, %ecx, 4), %eaxC、mov 0x80498c0( , %ecx, 8), %eaxD、mov (0x80498c0, %ecx, 8), %eax正确答案:【mov 0x80498c0( , %ecx, 4), %eax ?】4、问题:假定局部数组 a 的

44、声明为 int a4=0, -1, 300, 20,a 的首地址为 Rebp-16,则将 a 的首地址取到 EDX 的汇编指令是( )。选项:A、movl -16(%ebp ), %edxB、movl -16(%ebp, 4), %edxC、leal -16(%ebp), %edxD、leal -16(%ebp, 4), %edx正确答案:【leal -16(%ebp), %edx】5、问题:某 C 语言程序中有以下两个变量声明:int a10; int *ptr=a0;则 ptr+i 的值为( )。选项:A、a0+iB、a0+2iC、a0+4iD、a0+8i正确答案:【a0+4i】6、问题:假定静态 short 型二维数组 b 的声明如下:static short b24= 2, 9, -1,5, 3, 8, 2, -6;若 b 的首地址为 0x8049820,则按行优先存储方式下,数组元素“8”的地址

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报