本文用到的外挂标签

1
2
3
{% note info %}content{% endnote %}
{% link title, url, img %}
{% psw content %}

上一个题库:

下一个题库:


101~120

101.ID: 9433 double *D[5]的元素大小和总大小分别为8 5

A 8 40

B 8 5

C 4 20

D 4 5


102.ID: 9434 gcc编译程序时,需要在执行文件中产生调试文件的gcc附加参数是(-g)

A (-o)

B (-g)

C (-S)

D (-E)


103.ID: 9435 IA32指令集中MOV类指令不包含movx

A movb

B movw

C movx

D movl


104.ID: 9436 一条计算机指令中通常包含操作码和操作数

A 字符和数据

B 操作码和操作数

C 运算符和数据

D 被运算数和结果


105.ID: 9437 IEEE浮点数表示数时会划分为三个字段,其中表示阶码字段的是exp

A s

B exp

C frac

D f


106.ID: 9438 IEEE浮点数用V =(-1)s*M*2E的形式来表示一个数,其中E表示的是可正可负整数阶码

A 符号

B 正整数数阶码

C 尾数

D 可正可负整数阶码


107.ID: 9439 int x = 2; int y = 3; x= (x > y) ? x>>1:y>>1,执行后x =1

A 1

B 2

C 6

D 3


108.ID: 9440 leal 6(%eax),%edx 操作的结果是6+x

A 6x

B 6+x

C 6-x

D x-6


109.ID: 9441 leal 7(%edx,%ebx,5),%eax 假设 %ebx的值为y, %edx的值为x , 则%eax的值为5*y+x+7

A 5*y+x+7

B 5*x+y+7

C 7*y+x+5

D 7*x+y+5


110.ID: 9442 下面关于intel汇编代码格式说法错误的是带有指示大小的后缀

A 带有指示大小的后缀

B 省略了寄存器名字前缀 %

C 可以用[ebp+8]描述存储器中的位置

D 和ATT格式列出的操作数顺序相反


111.ID: 9443 8086CPU在基址加变址的寻址方式中,变址寄存器可以为SI或DI

A BX或CX

B CX或SI

C DX或SI

D SI或DI


112.ID: 9463 call指令的效果是将返回地址入栈,并跳转到被调用过程的起始处.返回地址是紧跟在程序中call后面的那条指令的地址

A 对

B 错


113.ID: 9464 a=01101001,b=01010101,则a^b=111100

A 1000100

B 111100

C 1011100

D 1011100


114.ID: 9465 a=01101001,b=01010101,则a&b=[01000001]

A [01000001]

B [10110101]

C [01011111]

D [11011010]


115.ID: 9485 下面对show_bytes的调用将输出61 62 63 64 65 66

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h> 
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start,int len){
int i;
for(i=0;i<len;i++){
printf(“ %.2x”,start[i]);
}
printf(“\n”);
}
const char *s=”abcdef”;
show_bytes( (byte_pointer)s, strlen(s) );
// 提示:‘a’-‘z’的ASCII码为0x61-0x7A
const char *s=”abcdef”; show_bytes( (byte_pointer)s, strlen(s) );
//提示:‘a’-‘z’的ASCII码为0x61-0x7A

A a b c d e f

B 66 65 64 63 62 61

C 61 62 63 64 65 66

D f e d c b a


116.ID: 9486 将一个c文件翻译成一个可执行目标文件,这个翻译的过程可分为四个阶段完成,下列四个阶段排序正确的是预处理阶段,编译阶段,汇编阶段,链接阶段

A 预处理阶段,编译阶段,汇编阶段,链接阶段

B 预处理阶段,汇编阶段,编译阶段,链接阶段

C 预处理阶段,汇编阶段,链接阶段,编译阶段

D 预处理阶段,编译阶段,链接阶段,汇编阶段


117.ID: 9487 汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是操作项

A 名字项

B 操作项

C 操作数项

D 注释项


118.ID: 9488 汇编语言语句格式中,对名字项的规定,错误的解释是名字的第一个字符可以是大小写英文字母、数字、?、@、__等

A 名字的第一个字符可以是大小写英文字母及?、@、__等

B 名字的第一个字符可以是大小写英文字母、数字、?、@、__等

C 名字的有效长度≤31个字符

D 名字从第二个字符起可以出现数字,但不允许出现#等字符


119.ID: 9491 汇编代码后缀 l 表示四个字节

A 一个字节

B 两个字节

C 四个字节

D 四个bit


120.ID: 9492 过程P调用过程Q时,假设返回地址在内存中的地址为X,%ebp值保存在内存地址Y,则以下说法正确的是(32位环境下)X=Y+4

A X=Y-4

B X=Y+4

C X=Y+8

D X=Y-8


121~140

121.ID: 9493 过程P调用过程Q时,Q有两个参数,假设返回地址在内存中的地址为X,传递给Q的第二个参数保存在内存地址Y,则以下说法正确的是(32位环境下)X=Y-8

A X=Y-4

B X=Y-8

C X=Y+4

D X=Y+8


122.ID: 9494 过程P调用过程Q后,记过程P栈帧的%ebp值为 p_ebp, 过程Q的栈帧%ebp值为q_ebp,假设这些值都是32位,则以下说法正确的是内存地址q_ebp存放的整数值是p_ebp

A 内存地址p_ebp存放的整数值是q_ebp

B 内存地址p_ebp+4存放的整数值是q_ebp

C 内存地址q_ebp存放的整数值是p_ebp

D 内存地址q_ebp+4存放的整数值是p_ebp


123.ID: 9495 关于补码,下列说法错误的是任意整数的补码为其反码加1;

A 两数的补码之和(差)=两数和(差)的补码;

B 任意整数的补码为其反码加1;

C 补码使得减法运算可以用加法来实现,即用求和来代替求差;

D 补码使得数的符号位可以同数值部分作为一个整体参与运算;


124.ID: 9496 关于32位机器下int,float,double格式强制转换,错误的是int转到float,数字不会溢出,但不会被舍入。

A int转到float,数字不会溢出,但不会被舍入。

B double转float,可能溢出成为正无穷或负无穷。

C double转float,可能会被舍入。

D double转int,值将会向0舍入。


125.ID: 9497 浮点运算:(3.14+1e20)-1e20 在计算机中的运算结果为0

A 3.14

B 10000000000

C 0

D -1


126.ID: 9498 浮点数IEEE754标准对尾数编码采用的是原码

A 原码

B 反码

C 补码

D 移码


127.ID: 9499 浮点加减中的对阶的将较小的一个阶码调整到与较大的一个阶码相同

A 将较小的一个阶码调整到与较大的一个阶码相同

B 将较大的一个阶码调整到与较小的一个阶码相同

C 将被加数的阶码调整到与加数的阶码相同

D 将加数的阶码调整到与被加数的阶码相同


128.ID: 9500 二进制小数1001.11表示的浮点数的十进制表示为9.75

A 8.75

B 9.75

C 1001.11

D 7.75


129.ID: 9501 二进制串 11010110 对应的十六进制数是0xD6

A 0xx0

B 0xD6

C 0XC6

D 0Xd5


130.ID: 9502 下列说法正确的是在C语言中一个有符号数和一个无符号数相加得到的结果一定是一个无符号数

A 在C语言中一个有符号数和一个无符号数相加得到的结果一定是一个无符号数

B 在C语言中一个有符号数和一个无符号数相加得到的结果可能是一个有符号数

C 在C语言中一个有符号数和一个无符号数相减得到的结果一定是一个有符号数

D 在C语言中一个有符号数和一个无符号数相减得到的结果可能是一个有符号数


131.ID: 9484 请判断“并发运行是指一个进程的指令和另一个进程的指令是交错执行的。“这句话正确

A 正确

B 错误


132.ID: 9483 请判断“最低有效字节在最前面的方式称为小端法,最高有效字节在最前面的方式称为大端法。“正确

A 错误

B 正确


133.ID: 9482 当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C语言会隐式地有符号参数强制类型转换为无符号数,并假设这两个数都是非负的,来执行这个运算。

A 显式地 无符号 有符号

B 显示地 有符号 无符号

C 隐式地 无符号 有符号

D 隐式地 有符号 无符号


134.ID: 9466 下列关于移位说法正确的是逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0

A 逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0

B 逻辑右移时,高位移出,低位添0;逻辑左移时,低位移出,高位添0

C 逻辑左移时,低位移出,高位添1;逻辑右移时,高位移出,低位添1

D 无符号数的移位称为算术移位,有符号数的移位称为逻辑移位


135.ID: 9467 -7(8位)的二进制补码表示正确的是11111001

A 11110111

B 11111001

C 111

D 10000111


136.ID: 9468 6位二进制数最大能表示的十进制整数是63

A 64

B 63

C 32

D 31


137.ID: 9469 64位有符号除法 idivl S,所得结果商存在%eax中,余数存在%edx中正确

A 正确

B 错误


138.ID: 9470 64位有符号除法 idivl S,所得结果商存在%edx中,余数存在%eax中错误

A 正确

B 错误


139.ID: 9471 49/16的二进制表示11.0001

A 11.00001

B 11.01

C 11.000001

D 11.0001


140.ID: 9472 32位linux系统中,long类型的字节数是4

A 2

B 4

C 6

D 8


141~160

141.ID: 9473 3×4096+15×256+5×16+17计算结果的二进制表示包含9个1

A 8

B 9

C 10

D 12


142.ID: 9474 汇编语言的优点不包括编程容易

A 直接有效地控制硬件

B 生成的代码序列短小

C 运行速度快

D 编程容易


143.ID: 9475 cpu常使用程序状态(状态条件)寄存器保存运算结果的条件代码、系统运行状态等信息

A 程序计数器

B 程序状态(状态条件)寄存器

C 累加寄存器

D 指令寄存器


144.ID: 9476 1100|1010 , 1001^1001 ,1001&1100分别为1110 0000 1000

A 1110 0000 1000

B 1000 1001 1000

C 1110 1001 0101

D 1000 1001 1000


145.ID: 9477 操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象。下面哪一个不是它所提供的抽象线程是对处理器、主存和I/O设备的抽象

A 文件是对I/O设备的抽象

B 虚拟存储器是对主存和磁盘的抽象

C 进程是对处理器、主存和I/O设备的抽象

D 线程是对处理器、主存和I/O设备的抽象


146.ID: 9478 请判断“数据传递、局部变量的分配和释放通过操作程序堆来实现。“错误

A 正确

B 错误


147.ID: 9479 在某些极端要求性能的场合,我们需要对程序进行优化,关于优化,以下说法正确的是适当调整汇编指令的顺序,可以缩短程序运行的时间

A 将程序整个用汇编语言改写会大大提高程序性能

B 在优化前,可以先确定哪部分代码最费时,然后对这部分代码用汇编改写,使用汇编的语句越少,程序运行越快

C 使用汇编语句虽然可以提高程序的性能,但会降低程序的可移植性,所以应该绝对避免

D 适当调整汇编指令的顺序,可以缩短程序运行的时间


148.ID: 9480 请判断关于指针的说法,下面错误的是将指针从一种类型强制转换成另一种类型,它的类型和值都会改变

A 每个指针都有一个值

B 运算符 * 用于指针的间接引用

C 将指针从一种类型强制转换成另一种类型,它的类型和值都会改变

D 数组与指针紧密联系


149.ID: 9481 请判断“程序寄存器组是唯一能被所有过程共享的资源。“这句话是否正确正确

A 正确

B 错误


150.ID: 9503 对于源码反码和补码下列说法正确的是三种机器数均可表示 -1;

A 原码和反码不能表示 -1,补码可以表示 -1;

B 三种机器数均可表示 -1;

C 三种机器数均可表示 -1,且三种机器数的表示范围相同;

D 三种机器数均不可表示 -1。


151.ID: 9654 在C语言中,移位运算的优先级比加法(和减法)要高。

A 对

B 错


152.ID: 9674 movb 是用来传送字节

A 传送字

B 传送双字

C 传送字节

D 传送地址


153.ID: 9675 MOV 指令 movl$0x4050 , %eax 中,源操作数类型和目的操作数类型分别为立即数、寄存器

A 立即数、寄存器

B 寄存器、存储器

C 存储器、寄存器

D 立即数、存储器


154.ID: 9676 M[R[Eb]]这种寻址方式属于间接寻址

A 立即数寻址

B 寄存器寻址

C 绝对寻址

D 间接寻址


155.ID: 9677 linux中一个源程序hello.c到hello.out的顺序为1324

1预编译 2 链接 3编译 4汇编

A 1234

B 1243

C 1342

D 1324


156.ID: 9678 leave指令和mov %ebp, %esp pop %ebp处理实现的功能一致

A mov %ebp, %esp pop %ebp

B pop %eip

C mov %esp, %ebp pop %esp

D ret


157.ID: 9679主存是一个临时的存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。

A 外存

B 中央处理单元

C 总线

D 主存


158.ID: 9680 机器级程序使用的存储器地址是虚拟地址

A 物理地址

B 虚拟地址

C 真实地址

D 段地址


159.ID: 9681限制访问形式不是用于最小程序缓冲区溢出攻击漏洞的最常见的机制之一。

A 限制访问形式

B 栈保护

C 随机化

D 限制哪部分存储器可以存储可执行代码


160.ID: 9682 按照惯例,以下寄存器被划分为被调用者保存寄存器的是%ebx

A %eax

B %edx

C %ecx

D %ebx


161~180

161.ID: 9683 两个w位的数字相乘,机器可以用一种乘法指令来进行有符号和无符号整数的乘法正确

A 正确

B 错误


162.ID: 9684 两个数的w位补码之和与无符号之和有完全相同的位级表示正确

A 正确

B 错误


163.ID: 9685 call指令的效果是将返回地址入栈

A 返回地址

B 起始地址

C 变量地址

D 上一条指令的地址


164.ID: 9686 栈帧的最顶端以两个指针界定,寄存器%ebp为帧指针。

A %eax

B %ebp

C %esp

D %edx


165.ID: 9687 跳转表是一个数组

A 地址

B 链表

C 数组

D 栈


166.ID: 9688 以下哪一条指令可以用来检查无符号操作数的溢出CF

A CF

B ZF

C SF

D OF


167.ID: 9689 堆栈指针 %esp 的内容是栈顶单元地址

A 栈顶单元内容

B 栈顶单元地址

C 栈底单元内容

D 栈底单元地址


168.ID: 9673 movl传送的是4字节

A 32

B 8

C 4

D 1


169.ID: 9672 movw传送的是2个字节

A 8

B 4

C 2

D 1


170.ID: 9671 OF与CF的区别是OF是溢出标志,CF是进位标志

A OF是溢出标志,CF是进位标志

B OF是零标志,CF是溢出标志

C CF是溢出标志,OF是符号标志

D CF是符号标志,OF是进位标志


171.ID: 9655条件码寄存器保存着最近执行的算术或逻辑指令的状态信息。

A 程序计数器

B 整数寄存器

C 条件码寄存器

D 浮点寄存器


172.ID: 9656 内存地址为4位,内存容量为16个字节。

A 64

B 32

C 16

D 8


173.ID: 9657 完整的整数结果不能放到数据类型的字长限制中去称为算数运算溢出。

A 对

B 错


174.ID: 9658 比例变址基址寻址Imm(R1,R2,s)计算结果为Imm+R1+R2*s

A Imm*(R1+R2+s)

B Imm*(R1+R2*s)

C Imm+R1+R2+s

D Imm+R1+R2*s


175.ID: 9659 jmp *LABEL要跳转的地址是LABEL地址中存的地址。

A 对

B 错


176.ID: 9660 在任何时刻,程序计数器(PC)都指向主存中的指令地址

A 指令内容

B 指令地址

C 操作数内容

D 操作数地址


177.ID: 9661 函数编译出来的代码会创建栈帧的原因不包括所有的局部变量都能保存在寄存器中,且函数不会调用其他函数

A 所有的局部变量都能保存在寄存器中,且函数不会调用其他函数

B 有些局部变量是数组或者结构

C 函数用取地址操作符(&)来计算一个局部变量的地址

D 在修改一个被调用者保存寄存器之前,函数需要保存它的状态


178.ID: 9662 IA32架构下,栈的增长方式是向下增长

A 向上增长

B 向下增长

C 同时向上和向下增长

D 不确定


179.ID: 9663 x和y的字节值分别为0x66和0x93,则 x|y的值为0xFD

A 0xFA

B 0xFD

C 0xFC

D 0xCC


180.ID: 9664 x=0xF0,经过x>>2算术运算后,x=0xFC

A 0xF1

B 0x71

C 0xFC

D 0xFD


181~200

181.ID: 9665 x = 1011 0101 , x>>4(算术右移)后,x =1111 1011

A 0000 0101

B 1111 1011

C 1011 0101

D 0101 1011


182.ID: 9666 unsigned char 的最小值为0

A 128

B 255

C -127

D 0


183.ID: 9667 在32位linux系统下,对于结构typedef struct{char c;int a;}所占的字节数为8

A 5

B 8

C 10

D 不确定


184.ID: 9668 在32位linux系统下,对于结构typedef struct{char* cp;int a;}所占的字节数为8

A 4

B 8

C 12

D 16


185.ID: 9669 ret指令从栈中弹出地址,并返回到call指令所在的地址

A 对

B 错


186.ID: 9670 pushl %ebp 的行为等价于以下subl $4, %esp movl %ebp, (%esp)两条指令

A subl $4, %esp movl %ebp, (%edx)

B subl $4, %esp movl %ebp, (%esp)

C subl $4, %esp movl %eax, (%esp)

D subl $4, %eax movl %ebp, (%edx)


187.ID: 9690 定义数组:shor A[7],已知short类型占2个字节,设数组的起始地址为Xa,那么A[2]的地址为Xa+4

A Xa+2

B Xa+4

C Xa+6

D Xa+8


188.ID: 9691 定义2个结构体类型:

1
2
3
4
5
6
7
8
9
10
struct foo1{
float a; double b; float c; double d;
short e; long f; short g; long h;
char i; int j; char k; int l;
}
struct foo2 {
double b; double d; long f; long h;
float a; float c; int j; int l;
short e; short g; char i; char k;
};

哪个结构体可能更节省内存?foo2

A foo1

B foo2

C 没有区别

D 依计算机不同而不同


189.ID: 9692 当执行完下列两条指令后,标志位CF和SF的值为1,0MOV $0xC4H,%ALADD $0x9DH,%AL

A 0,0

B 1,1

C 0,1

D 1,0


190.ID: 9712 有符号数与无符号数运算的结果为无符号数

A 有符号数

B 无符号数

C 0

D 不确定


191.ID: 9713 当调用malloc这样的C标准库函数时,可以在运行时动态的扩展和收缩,在程序执行期间也可以动态地扩展和收缩

A 堆 共享库

B 堆 栈

C 栈 内核虚拟存储器

D 栈 共享库


192.ID: 9714 关于编译器优化错误的是既然有不同优化,应选择最高优化级别以获取最佳性能

A 编译器优化依然需要程序员在高级语言编写时考虑性能问题

B 编译器的优化有时会导致最终代码与源程序码大相径庭

C 既然有不同优化,应选择最高优化级别以获取最佳性能

D 不同编译器的优化也会不同


193.ID: 9715 最初的8086中,寄存器的特殊用途可从名字反映出来。累加器为%ax

A %ax

B %bx

C %cx

D %dx


194.ID: 9716 字长相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定均相同,则它们可表示的数的范围和精度为前者可表示的数的范围大但精度低

A 两者可表示的数的范围和精度相同

B 前者可表示的数的范围大但精度低

C 后者可表示的数的范围大且精度高

D 前者可表示的数的范围大且精度高


195.ID: 9717 在说明语句:int *f( );中,标识符f代表的是一个返回值为指针型的函数名

A 一个用于指向整型数据的指针变量

B 一个用于指向一维数组的行指针

C 一个用于指向函数的指针变量

D 一个返回值为指针型的函数名


196.ID: 9718 在 Intel IA32 汇编中,下列指令不合法的是pop %eip

A pop %eip

B pop %ebp

C mov (%esp),%ebp

D lea 0x10(%esp),%ebp


197.ID: 9719 与cmova汇编指令等价的指令是cmovnbe

A cmovnb

B cmovnbe

C cmovnl

D cmovnge


198.ID: 9720 有一个CRT的分辨率是1024×768像素,颜色数为256色,则刷新存储器的容量是768KB

A 768KB

B 512KB

C 256KB

D 2MB


199.ID: 9721 以下指令不改变任何条件码的是leal

A cmp

B test

C leal

D add


200.ID: 9722 以下%ebx寄存器为被调用者保护寄存器。

A %eax

B %edx

C %ebx

D %ecx