假设int 型数组a的首地址在EDX中,i 在ECX中,现要将a[i] 的内容给EAX,则所用的汇编指令是()
A.mov eax, [edx+ecx]
B.mov eax, [edx+2*ecx]
C.mov eax, [edx+4*ecx]
D.mov eax, [edx+8*ecx]
第1题:
本题中定义了长度为20的-维整型数组a,并将数组元素的下标值赋给数组元素,最后打印输出数组中下标为奇数的元素。 public class javal{ public static void main(String[]args){ int a[]= Int i: for a[i]=i for i++) =1: i=0;i<20;i++){ System.out.print(”a[”+i+”]=”+a[i]+”,“); }
第2题:
若有以下定义及初始化语句:
int i=100;
int *ip=& i;
int k=*ip;
并假设整型数i的地址为0x12345678,指针中的地址为0x21000000,则k的值为【 】。
第3题:
若已定义,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、 4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、 2、3、4、5、5、4、3、2、1。请填空。
fun( int a[])
{
int i,
for(i=1;i<=10;i++) 【 】=i;
for(i=0;i<5;i++) 【 】=a[i];
}
第4题:
若已定义,以下fun函数的功能是在循环中给数组a前4个数组元素依次赋1、2、3、4;在第二个循环中使a数组前4个元素中的值对称折叠,变成1、2、2、1。请填空。
fun(int a[])
{
int i;
for(i=1;i<=4;i++)______=i;
for(i=0;i<2;i++)______=a[i];
}
第5题:
依次执行下列哪一个选项中的两条指令后,可以使得存放在EDX和EAX中的64位数据乘以2?(EDX中存放高32位,EAX中存放低32位)______。
A) SHL EDX,1
SHL EAX,1
B) RCL EDX,1
SHL EAX,1
C) SHL EAX,1
RCL EDX,1
D) SHL EAX,1
SHL EDX,1
A.
B.
C.
D.
第6题:
设有二维数组int a[10][20];,则a[i][j]的地址可由首元素a[0][0]的地址来表达,由此可得访问数组元素a[i][j]的表达式为【 】。
第7题:
设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2
B.P+(i-1)*2
C.P+(i-1)
D.P+i
第8题:
假设寄存器%eax的值为x,%ecx的值为y,则指明下面汇编指令存储在寄存器%edx中的值() Leal(%eax,%ecx),%edx
第9题:
下面指令中错误的是()
第10题:
若p1、p2、p3存放在存储器中相对于寄存器%ebp中地址偏移量为8、12、16的地方,返回值result存放于寄存器%edx中,则根据下面的汇编代码有() Movl 12(%ebp), %edx Movl (%edx), %eax Movl %eax, %edx Movl 8(%ebp), %ecx Addl (%ecx), %edx Movl 12(%ebp), %eax Movl %edx, (%eax) Movl %edx, %eax
第11题:
movl8(%ebp),%eax
movl(%eax,%ecx,4),%edx
movl4(%edx),(%eax)
movl%eax,4(%esp)
第12题:
Movl-1(%edx,%ecx),%eax
Movl-4(%edx,%ecx,4),%eax
leal-1(%edx,%ecx),%eax
leal-4(%edx,%ecx,4),%eax
第13题:
下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。 #include<stdio.h> void reverse(int a[],int n) { int i,t; for(i=0;i<n/2,i++) { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,
A.ptr是一个返回值是血的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向血型数据的指针
第14题:
80386~Pentium微处理器中的通用寄存器包括:EAX、EBX、ECX、EDX、ESP、 EBP、EDI和ESI。其中哪些可以作为32位、16位和8位寄存器使用______。
A.EAX、EBX、ECX、EDX、ESP、EBP
B.ESP、EBP、EDI、ESI
C.EAX、EBX、ECX、EDX
D.以上都不对
第15题:
插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。
class InsertSort{
public:
InsertSort(int* a0,int n0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数
void sort()
{//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]
for(int i=1;i<n;++i){
int t=a[i];
int j;
for(【 】;j>0;--j){
if(t>=a[j-1])break;
a[j]=a[j-1];}
a[j]==t;}}
protected:
int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数
};
第16题:
在下列叙述中,错误的一条是______。
A.定义char*string="China"中的string是一个字符串变量,其值为China
B.若有一个多维数组a,则*(a+i)与a[i]等价
C.int(*p)[4]表示p为指针变量,它指向包含4个元素的一维数组
D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变
第17题:
下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。 #include<stdio.h> void reverse(int a[], int n) { int i,t; for(i=0;i<n/2;i++) { t=a[i];a[i]=a[a-1-i];a[n-1-i]=t;} main() { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,10); for(i=0;i<3 ;i++) s+=b[i]; printf("%d\n",s); } 程序运行后的输出结果是( )。
A.27
B.6
C.25
D.30
第18题:
本题定义了一个长度为l0的boolean型数组,并给数组元素赋值,要求如果数组元素下标为奇数,则数组元素值 为false,否则为true。 public class javal{ pubhc static void main(String[]args){ boolean b[]= ; for(int i=0;i<10;i++){ if( ) b[i]=false; else ; } for(int i=0;i<10;i++) System.Out.print("bE"+i+"]="+b[i]+","); } }
第19题:
下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。
#include<stdio.h>
void reverse(int a[],iht n)
{ int i,t;
for(i=0;i<n/2;i++)
{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;
reverse(b,10) ;
for(i=0;i<3;i++)s+=b[i];
printf("%d\n",s);
}
程序运行后的输出结果是( )。
A.27
B.6
C.25
D.30
第20题:
以下指令哪条是错误的()。
第21题:
设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()。
第22题:
下列指令的源操作数段基址在哪个段寄存器中? (1)MOVAX,[BP][SI] (2)MOVAX,CS:8[DI] (3)MOVAX,2[EBP*1] (4)MOVAX,FS:4[ESP] (5)MOVAX,2[EBP][EAX] (6)MOVAX,[ECX][EBP*4] (7)MOCAX,[EDX][EBP] (8)MOVAX,ES:10[EBP][EAX*2]
第23题:
x
y
x+y
x–y
第24题:
5x
5y
5x+y
5y+x