问答题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字x1,x2(例如x1=4,x2=2); (2)输出两个中较小的一个(例如输出2); (3)计算x1/x2如果x2等于0,返回.1(输出结果2); (4)输出x1+x2的结果(输出结果6); (5)输出x1+1的结果(输出结果5); (6)输出x2-1的结果(输出结果1)。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。#include<iostream.h>void main(){ int x1; int x2; int x3; cout<<"please input two number:"<<endl; Cin>>x1>>x2; //********error******** x3=(x1>x2)?x1:x2; cout<<"Min number is :"<<x3<<endl;//计算x1/x2如果x2等于0,返回-1 //********error******** x3=(x2)?x1\x2=-1; cout<<"xl/x2= "<<x3<<endl; //********error******** x3= (--x1) + (x2++); cout<<"xl+x2= "<<x3<<endl; cout<<"xl+1= "<<x1<<endl; cout<<"x2—1= ”<<x2<<endl; return;}
【正确答案】正确答案:(1)x3 = (x1<x2)?x1:x2; (2)x3 = (x2)?x1/x2:-1; (3)x3 = (x1++) + (x2--);
【答案解析】解析:(1)第1个标识下“x3=(x1>x2)?x1:x2;”语句是判断x1与x2其中哪个相对较小,并将其赋值给x3。条件运算符的格式:表达式1 7表达式2:表达式3。执行顺序是先求解表达式1,若非则求解表达式3,此时表达式3的值就作为整个条件表达式值。所以求x1和X2中较小的一个,如果x1<x2为真,那么x1的值赋给x3,否则x2的值赋给x3,即第1个标识下为“x3:(x1<x2)?x1:x2;”。 (2)同理,第2个标识下计算x1/x2如果x2等于0,返回-1。即“x3=(x2)?x1/x2:-1;”。 (3)题干中求x1+1,而-x1是x1-1,所以改为x1++。同理x2++改为x2-。即“x3=(x1++)+(x2--);”。