问题 问答题 简答题

甲公司与乙公司于2010年12月1日签订一份互联网电视机购销合同,约定甲公司向乙公司购买100台互联网电视机,乙公司于12月11日前交货,每台电视机单价5000元,乙公司负责送货,甲公司于货到后立即付款。乙公司于12月8日发出了该100台电视机。甲公司由于发生资金周转困难,于12月10日传真告知乙公司自己将不能履行合同。乙公司收到传真后,努力寻找新的买家,于12月15日与丙公司签订了该100台电视机的购销合同。

合同约定:丙公司购买100台托运中的电视机,每台单价4900元,丙公司于订立合同时向乙公司支付5万元定金,在收到货物后20天内付清全部货款;在丙公司付清全部货款前,乙公司保留对电视机的所有权;如有违约,违约方应承担合同总价款20%的违约金。乙公司同时于当日传真通知甲公司解除与甲公司签订的合同。12月20日,运输公司在运输该批电视机的过程中遇上泥石流,其中有30台电视机毁损。丙公司于12月25日收到70台完好无损的电视机后,又与丁公司签订合同准备将这70台电视机全部卖与丁公司。同时丙公司以其未能如约收到100台电视机为由拒绝向乙公司付款。乙公司认为丙公司拒绝付款构成违约,决定不返还其定金,同时要求其按合同约定给付违约金。

要求:

根据上述情况和合同法律制度的有关规定,回答下列问题:

(1)

乙公司可否在与甲公司的合同履行期届满前解除合同?并说明理由。

(2)

遭遇泥石流而毁损的电视机的风险应由谁承担?并说明理由。

(3)

乙公司不返还定金并要求丙公司支付违约金的主张能否得到支持?并说明理由。

(4)

丙公司与丁公司所签合同的效力如何?并说明理由。

答案

参考答案:

(1)乙公司可以在与甲公司的合同履行期届满前解除合同。根据规定,因预期违约解除合同,即在履行期限届满之前,当事人一方明确表示或者以自己的行为表明不履行主要债务的,对方当事人可以解除合同。在乙公司12月11日交货前,甲公司明确表示自己资金周转困难,不能履行合同,乙公司可以因此解除与甲公司的购销合同。 

(2)遭遇泥石流而毁损的电视机的风险应由丙公司承担。根据规定,出卖人出卖交由承运人运输的在途标的物,除当事人另有约定的以外,毁损、灭失的风险自合同成立时起由买受人承担。在本题中,乙公司出卖给丙公司的货物是在途运输的货物,货物的风险自合同成立时起转移给丙公司,因此风险应由丙公司承担。 

(3)乙公司的主张不能得到支持。根据规定,当事人既约定违约金,又约定定金的,一方违约时,对方可以选择适用违约金或者定金条款,但是二者不能并用。在本题中,乙公司和丙公司既约定了违约金又约定了定金条款,二者只能择其一适用,不能并用。 

(4)丙公司与丁公司订立的合同效力待定。因为根据乙公司和丙公司的合同约定,丙公司在付清全部货款前并未取得电视机的所有权,在这种情况下,其与丁公司签订买卖合同出售电视机属于无权处分行为,合同效力待定。

问答题

【说明】 已知对某载客车辆(Car)进行类建模,如图5-1所示,其中类Engine表示发动机引擎,类Wheel表示车轮,类Body表示车身,类Driver表示司机,类Passenger表示乘客。

【C++代码】 const int (1) =7; //定义最多载客数 const int MAX WHEELS=5; //定义最多轮胎数 class Body{ //此处代码省略 }; //车身类 class Passenger{ //此处代码省略 }; //乘客类 class Wheel{ //此处代码省略 }; //车轮类 class Driver{//司机类 public: string name;//表示第几路公交车司机Driver(string driverName):name( (2) ){}///构造函数 }; class Engine{//引擎类 public: string engineNo;//引擎编号 Engine(string engineNo){ (3) ->engineNo=engineNo;}//构造函数 }; class Car{//汽车类 protected: Engine * engine; Driver * driver; Body body; Wheel * wheels [MAX_WHEELS];Passenger * passengers [MAX_PASSENGERS]; public: Car(Driver *driver){ //构造函数this->driver=driver;engine=new Engine("TX6536型号引擎");for (int index=0; index<MAX WHEELS;index++){ wheels[index]=new Wheel();}for(int index=0;index<MAX_PASSENGERS;index++){ passengers[index]=NULL;} } virtual ~Car(){//析构函数for( int index=0;index<MAX_WHEELS;index++) delete wheels[index];delete (4) ; } int getPassengerNumber(){//获取车上乘客数量//此处代码省略 } void getOnPassenger(Passenger * aPassenger){//乘客上车 //此处代码省略 } void run(){ //开车if(driver==NULL){cout<<"司机尚未上车!"; return; }//此处代码省略 } }; void main(){ Driver driver("第五路公交车司机"); Car car( (5) ); Passenger passengers[MAX_PASSENGERS]; for(int index=0;index<MAX PASSENGERS;index ++) //乘客上车处理car.getOnPassenger(&passengers [index]); car.run(); }

单项选择题