单选题
以下程序的输出结果是()。
以下程序的输出结果是()。
struct HAR
{ int x, y; struct HAR *p;} h[2];
main()
{h[0].x=1;h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1];h[1].p=h;
printf("%d %d \n",(h[0].p)->x,(h[1].p)->y);}
A
1 2
B
2 3
C
1 4
D
3 2
答案解析
正确答案:D
解析:
h[0].p=&h[1];//h[0].p里面装的是h[1]的地址
h[1].p=h;//h[1].p里面装的是h[0]的地址
故输出的是h1.x和h[0].y即输出结果是3 2
h[1].p=h;//h[1].p里面装的是h[0]的地址
故输出的是h1.x和h[0].y即输出结果是3 2
相关题目
单选题
下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( )。
单选题
下列有语法错误的语句是( )。
单选题
下列指令执行后对源和目的操作数均无影响的是( )。
单选题
用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是( )。
单选题
标志寄存器中属于控制标志位的是( )。
单选题
设(SS)=338AH,(SP)=450H,执行PUSH BX,和PUSHF两条指令后,堆栈顶部的物理地址是( )。
单选题
表示过程定义结束的伪指令是( )。
单选题
下列指令中操作数在代码段中的是( )。
单选题
8086/8088系统执行传送指令MOV( )。
单选题
若AX=-15要得到AX=15应执行的指令是( )。
