问题 单项选择题

张某到某商店购物,售货员李某多找给张某100元钱,李某要求张某返还,李某的根据是( )

A.张某应向商店承担违约责任

B.张某应向商店承担侵权责任

C.张某应向商店承担返还不当得利的责任

D.张某应向商店承担无因管理的责任

答案

参考答案:C

解析:[考点] 不当得利的返还 《民法通则》第92条规定:“没有合法根据,取得不当利益,造成他人损失的,应当将取得的不当利益返还受损失的人。”本题中,李某多找给张某100元钱,张某获得利益,造成商店的损失,并且张某获得利益没有合法根据,因此张某构成不当得利,张某应向商店返还利益,当然李某有权要求张某返还,所以C选项正确。 张某与商店之间虽然存在买卖合同关系,但是李某作为商店的代理人由于自己的过错多付给张某100元钱,张某并没有违反自己的合同义务,所以张某不应当承担违约责任。张某对于李某多找给自己100元钱没有主观过错,商店的损失是由于代理人李某的过错行为所致,并不是因为张某的行为,所以张某不存在侵权责任。无因管理是指没有法律规定或者约定的义务而为他人管理事务,张某与商店之间根本不可能存在无因管理关系。

填空题

阅读以下说明和C程序,填充函数中的空缺,将解答填入答题纸的对应栏内。

【说明】

N个游戏者围成一圈,从1~N顺序编号,游戏方式如下;从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。

下面的函数playing(Linklist head)模拟上述游戏过程并返回获胜者的编号。其中,N个人同成的圈用一个包含N个结点的单循环链表来表示,如图4—1所示,游戏者的编号放在结点的数据域中。

在函数中,以删除结点来模拟游戏者退出圈子的处理。整型变量c(初值为1)用于计数,指针变量P的初始值为head,如图4一1所示。游戏时,从P所指向的结点开始计数,P沿链表中的指针方向遍历结点,c的值随P的移动相应地递增。当c计数到2时,就删除P所指结点的下一个结点(因下一个结点就表示报数到3的游戏者),如图4—2所示,然后将C设置为0后继续游戏过程。

结点类型定义如下:

typedef struct node{

int code; /*游戏者的编号*/

struct node*next;

}NODE,*LinkList;

【C函数】

int playing(LinkList head,int n)

{/*head指向含有n个结点的循环单链表的第一个结点(即编号为1的游戏者)*/

LinkList p=head,q;

int thewinner,c=1;

while(n>____(1)____){

if(c==2){ /*当c等于2时,p所指向结点的后继即为将被删除的结点*/

q=p->next;

p->next=____(2)____;

printf(“%d\t”,q->code);/*输出退出圈子的游戏者编号*/

free(q);

c=____(3)____;

n- -;

}/*if*/

p=____(4)____;

c++:

}*while*/

theWinner=____(5)____;

free(p);

return theWinner;/*返回最后一个游戏者(即获胜者)的编号*/

}

问答题 简答题