首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
如图所示:带有头结点的单向链表head,其三个数据结点A、B、C的连接关系如下图所示: 结点类型的定义为: struct link { double dt; struct link *next; }; 若指针p指向A结点,
如图所示:带有头结点的单向链表head,其三个数据结点A、B、C的连接关系如下图所示: 结点类型的定义为: struct link { double dt; struct link *next; }; 若指针p指向A结点,
admin
2022-10-24
96
问题
如图所示:带有头结点的单向链表head,其三个数据结点A、B、C的连接关系如下图所示:
结点类型的定义为:
struct link
{
double dt;
struct link *next;
};
若指针p指向A结点,在不改变p指向的前提下,以下选项中不能访问C结点数据成员dt的表达式是( )。
选项
A、*(*p).next->next->dt
B、p->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->nexi_>next->dt,所以选项B正确。或者使用解引用“*”运算符,(*p)表示节点A,(*p).next表示节点B的地址,*((*p).next)表示节点B,(*((*p).next)).next表示节点c的地址,*((*((*p).next)).next)表示节点C,所以节点c的数据成员dt可以表示为(*((*,(*p).next).next)).dt,因为“.”运算符的优先级高于“*”运算符,所以也可以写为(*(*(*p).next).next).dt,所以选项C正确。同理,也可以既使用指针运算符.又使用解引用运算符来访问节点c的数据成员dt,即(*(p->next->next)).dt,所以选项D正确。选项A中,*p表示节点A,(。p).nexf表示节点B的地址,由于“->”运算符的优先级高于“*”运算符,因此先执行“->”,即表达式(*p).next->nex->dt引用了节点c的数据成员dt,然后执行解引用运算“*”,这是错误的。故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/sxkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数Creatlink的功能是:创建带头节点的单向链表,并为各节点数据域赋0到m-1的值。请改正函数Creatlink中指
在软件开发中,需求分析阶段产生的主要文档是( )。
若有定义语句charc=’\101’;则变量c在内存中占
某二叉树共有13个结点,其中有4个度为1的结点,则叶子结点数为
有以下程序#include<stdio.h>structord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x))
计算机程序设计过程中,不属于结构化程序设计原则的是()。
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。
面向对象方法中,继承是指
随机试题
简述政治体制与基本政治制度的联系与区别。
函数y=-arccos的定义域是()
A视力障碍B视野缺损C眼球上视困难D眼睑下垂E眼球震颤枕叶肿瘤引起的眼部表现是
在软骨内成骨过程中最先出现
肾上腺皮质功能不全病人术前
在进行呼吸道传染病现场流行病学调查时,工作人员应采用的防护措施是
符合氨基特征的是
国际金融市场按经营业务的种类划分,可以分为()
Doyouwakeupeverydayfeelingtootired,orevenupset?Ifso,thenanewalarmclockcouldbejustforyou.Theclock,c
下面不属于对属性列和视图的操作权限的操作是
最新回复
(
0
)