首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
如图所示:带有头结点的单向链表head,其三个数据结点A、B、c的连接关系见图。 结点类型的定义为: struct link double dt; struet link*next; }; 若指针P指向A结点,在不改变P指向的前提下,以下选项中不能访问C
如图所示:带有头结点的单向链表head,其三个数据结点A、B、c的连接关系见图。 结点类型的定义为: struct link double dt; struet link*next; }; 若指针P指向A结点,在不改变P指向的前提下,以下选项中不能访问C
admin
2020-07-28
75
问题
如图所示:带有头结点的单向链表head,其三个数据结点A、B、c的连接关系见图。
结点类型的定义为:
struct link
double dt;
struet link*next;
};
若指针P指向A结点,在不改变P指向的前提下,以下选项中不能访问C结点数据成员dt的表达式是( )。
选项
A、*(*p).next->next->dt
B、Pp->next->next->dt
C、(*(*(*p).next).next).dt
D、(*(p->next->next)).dt
答案
A
解析
link结构体中的next是链表中下一个结点的地址,由于p当前指向A,所以p->next是B的地址,p->next->next是C的地址,访问C的结点数据成员dt可以使用C的地址访问,即:p->next->next->dt,选项B正确;p是A的地址,所以*p是结点A,(*p).next是B的地址,由于成员运算符.的优先级高于解引用运算符*,所以*(*p).next是结点B,(*(*p).next).next是C的地址,*(*(*p).next).next是结点C,引用C的dt成员:(*(*(*p).next).next).dt。同理,也可以既使用指针运算符,也使用解引用运算符来访问c的结点数据成员dt,即(*(p->next->next)).dt,选项D正确;选项A中,*p表示A结点,(*p).next表示结点B的地址,由于->运算符的优先级高于*运算符,所以先执行->,即表达式(*p).next->next->dt引用了C结点的数据成员dt,然后再执行解引用运算水,这是错误的,本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/iX3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
有以下程序段intn,t=1,s=0;scanff("%d,&n);do{s=s++;t=t.2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是
若有定义语句:chars[10]="1234567\0\0";,则strlen(s)的值是
设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式是
若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是
设有一个栈与一个队列的初始状态均为空。现有一个序列A,B,C,D,E,F,G,H。先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。最后得到的序列为
以下叙述中错误的是
下列叙述中正确的是
设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为()。
随机试题
简述商业银行的主要职能。
机器造型采用面砂时,面砂应均匀覆盖()。
婴幼儿胸部正位摄影,焦─片距一般为
估价对象为某三星级宾馆,土地使用权性质为划拨商业用地。业主委托房地产估价机构评估该宾馆的抵押价值。下列关于房地产抵押贷款风险的表述中,正确的是()。
下列哪种材料是绝热材料?[1999-001]
管理组织结构确定的依据不包括()。
在银行汇兑业务中,已经汇出的款项在特定情形下应由银行办理退汇。下列情形中,属于银行应依当事人申请或有关规定办理退汇的有()。
青少年性格发展有哪些特点?
软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。
Thelevelofdiscriminationhasvariedenormouslyinthehistoryofhumansocieties,fromgenocidewhereethnicsarekilledoff
最新回复
(
0
)