更多“设有以下定义和语句inta[3] [2] ={1,2,3,4,5, 6,}, *p[3];p[0]=a[1]; 则*(p[0]+1)所代表的数组元 ”相关问题
  • 第1题:

    设有以下定义和语句 int a[3][2]={1,2,3,4,5),*p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是______。

    A.a[0][1]

    B.a[1][0]

    C.a[1][1]

    D.a[1][2]


    正确答案:C

  • 第2题:

    有以下定义和语句 int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是

    A.a[0][1]

    B.a[1][0]

    C.a[1][1]

    D.a[1][2]


    a[10]

  • 第3题:

    【单选题】若有以下定义和语句,则对a数组元素的正确引用为()。 int a[2][3]={{1,2,3},{4,5,6}},(*p)[3]; p=a;

    A.(p+1)[0]

    B.*(*(p+2)+1)

    C.*(p[1]+1)

    D.p[1]+2


    A

  • 第4题:

    有以下程序段,则*(p[0]+1)所代表的数组元素是 #include <stdio.h> int main() { int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; ..... return 0; }

    A.a[1][1]

    B.a[0][1]

    C.a[1][0]

    D.a[1][2]


    (1)两条指令都是合法指令第一条指令取得NAMES的偏移地址第二条MOV指令使用间接寻址方式将地址为(DS)x 10H+(BX)+5字节中的数据传送给AL结果(AL)=20。 (2)这条指令不正确因为NAMES的属性为字节而目的寄存器是AX所以类型不匹配。 (3)为合法指令。指令中将已定义的字节变量用伪操作PTR改变为字类型所以避免了类型不匹配的错误。操作结果(AX)=4D4FH(即M和I O的ASCII码)。 (4)前两条指令使用的是立即寻址方式第三条指令的源操作数字段使用的是相对基址变址方式但形成的数据段地址中的数据属性为字节而源操作数据寄存器为AX故出现类型不匹配的错误。若将AX改为AL这条指令就是合法指令。 (5)前两条指令是正确的后两条指令有错误。在汇编过程中OFFSEI、操作将得到变量的偏移值但对相对基址变址寻址方式形成的值在汇编指令时还是未知的。同样MOV BXOFF-SET:NAMES[SI]也是错误指令。第四条指令中AX不能作为基址寄存器使用。 (6)均为合法指令。第三条指令中的DI取得一个字节地址:(BX)+(SI)+OFFSETNAMES然后再按DI 中的偏移地址在数据段中将一个字节的内容传送给AL寄存器。操作结果(AL)=30。 两条指令都是合法指令,第一条指令取得NAMES的偏移地址,第二条MOV指令使用间接寻址方式,将地址为(DS)x10H+(BX)+5字节中的数据传送给AL,结果(AL)=20。(2)这条指令不正确,因为NAMES的属性为字节,而目的寄存器是AX,所以类型不匹配。(3)为合法指令。指令中将已定义的字节变量用伪操作PTR改变为字类型,所以避免了类型不匹配的错误。操作结果(AX)=4D4FH(即M和IO的ASCII码)。(4)前两条指令使用的是立即寻址方式,第三条指令的源操作数字段使用的是相对基址变址方式,但形成的数据段地址中的数据属性为字节,而源操作数据寄存器为AX,故出现类型不匹配的错误。若将AX改为AL,这条指令就是合法指令。(5)前两条指令是正确的,后两条指令有错误。在汇编过程中,OFFSEI、操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的。同样MOVBX,OFF-SET:NAMES[SI]也是错误指令。第四条指令中,AX不能作为基址寄存器使用。(6)均为合法指令。第三条指令中的DI取得一个字节地址:(BX)+(SI)+OFFSETNAMES,然后再按DI中的偏移地址,在数据段中将一个字节的内容传送给AL寄存器。操作结果(AL)=30。

  • 第5题:

    有定义 int a[ ]={2,5,6,},*p=a; 则*(p+1)所代表的数组元素是()。

    A.a[3]

    B.a[2]

    C.a[1]

    D.a[0]


    A