问题 单项选择题

有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
int data;
struct node *next;
*p, *q, *r;
data next data next data next


现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是( )。

A) r→next=q; q→next=r→next; p→next=r;
B) q→next=r→next; p→next=r; r→next=q;
C) p→next=r; q→next=r→next; r→next=q;
D) q→next=r→next; r→next=q; p→next=r;

答案

参考答案:A

解析: 本题的考查点是指向结构体变量的指针以及用指针处理链表。一个结构体变量的指针就是该变量所占据的内存字段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组的元素。在C语言中,q→next相当于(*q).next。即q所指向的是结构体变量中的next成员。链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它根据需要开辟内存单元。链表中的各元素在内存中可以不是连续存放的。所以必须利用指针变量才能实现。即一个结点中应包括一个指针变量,用它存放下一结点的地址。r→next=q表示让q指向新开辟的结点,r指向链表中最后一个结点,把r所指的结点连接在q所指的结点后面。同样,p→next=r表示让r指向新开辟的结点,p指向链表中最后一个结点,把p所指的结点连接在r所指的结点后面。那么在A中,执行r→next=q后,r→next指向了q。此时第2句相当于q→next=q; ,所以q的下一个结点指向了自己,而不是指向原来r的下一个结点。故本题答案为A)。

问答题 案例分析题

选择最合适的运输方式和承运人运输是指物品借助于运力在空间上所发生的位置移动。具体来讲,运输就是使用运输工具对物品进行运送的活动,实现物流的空间效用。从运输作为物流系统的一项功能来说,运输主要包括生产领域的运输和流通领域的运输。根据用户对产品的运输形式及包装等方面的要求不同,因此细化的物流运作程序也不同。从某一产品接到订单开始到发送至用户手中为止,一般主要过程包括以下步骤:备料-生产-产品-包装-仓储-搬运-出厂-运输(公路/铁路/海运/空运/管道)-港、站堆存-运输-用户。某外资公司在我国银川石嘴山收购了一家碳化厂,需要将产品通过铁路运至天津新港装船,再经海运运销东南亚和欧洲及世界各地。

为了将产品运送到目的地,满足客户的需求,同时使本公司获取最佳经济效益,可以有多种运输形式供选择:(1)采用集装箱进行门到门运输,即产品出厂直接装箱,经铁路运输至天津新港,装船海运至目的地。这是一种最佳的运输方式,也是一种费用最高的运输方式。其优点是操作简单,货损少,减少运输污染;而在实际操作中,铁路调箱困难,增加铁路空箱运输。(2)先采用铁路散装将产品运至天津新港,再装集装箱海运至目的港。虽然散装铁路运输有部分货损,但避免了铁路运空箱的高额损失,从经济效益角度出发应是可行的。(3)全程散装经铁路、海运至目的港。在高度重视装卸效率和环保的今天,此方案显然是不适宜的。由于运输形式多种多样,该外资公司的业务人员拿不定主意。于是,请示其主管人员定夺,主管人员没有正面回答他的问题,只是告诉他,可以根据具体的实际情况从实际出发,从本公司的角度选择最可行的运输形式。

在选择承运人时,该公司的业务人员又遇到了难题。物流公司提出了三种操作模式:(1)以货主为核心,组织铁路、海运运输。(2)以铁路或海运承运人为核心,组织货源,安排运输。(3)以第三方货运代理为核心,组织货源并安排全程运输,实行全程"一条龙"服务。该公司的业务人员分析,在整个物流过程中,存在着货主和承运人,由于各自具备的实力不同,致使其所处的地位不同。货主的优势在于有实实在在的货源,而承运人则有物流必备的运输工具,作为第三方的货运代理可以提供沟通货主与承运人的各种服务,他们各司其职,发挥各自的能力,共同完成一个物流程序。究竟哪种组织形式最好,能使公司认可、客户满意、物流企业全心全意,该公司的业务人员正在思索着。怎样能够充分发挥各种优势,创造最大效益?请您帮助业务人员想一想。请分析下列问题:

假如你是该公司业务员,你将如何选择?为什么?

单项选择题