指出下面程序片段中的错误
a)int Update(const int &x,int y,int x)
{
y=z%3;
x=y+z;
return x;
}
b)int Sum(int x,int y=3,int x)
{
return x+y+z;
}
c)void Flow(double x,int y){
return x+y;
}
d)double Mul(const double a,const double b)
{
return a*b;
}
e)double Mul(double x,double y){
return x*y;
}
f)bool GetInput(istream in, int &Value){
if(in>>Value)
return true;
else
return false;
g) bool GetInput(const istream &in, int &Value){
if(in>>Value)
return true;
else
return false;
}
a)里面x=y+z ,y,Z为变量 , x为常量,有错
b)int y=3,应该为int y
c)有返回值,不能用VOID
d), e)是对的吧
f,g 不知如何办?前面的判断,是否有误,请各位指点.
问题点数:50、回复次数:10Top
1 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-02 17:48:40 得分 10
a)估计是你写错了,怎么有两个x。x是只读的引用,不能改变
b)估计是你写错了,怎么有两个x。缺省参数只能放在尾部,例如这样是可以的:
int Sum(int x,int y,int z=3)
{
return x+y+z;
}
c)同你说的
d)正确
e)正确
f)正确,不过建议把in设成引用型的
g)如果是const引用,就没法往里面写东西了,所以in>>Value会出错Top
2 楼dongyuanzhang(阿林)回复于 2005-04-02 17:59:57 得分 10
c)void Flow(double x,int y){
return x+y;
}
应该返回double类型。
d), e)结合起来就有问题了,重载错误。当然应该还有防止溢出防错处理。。。。Top
3 楼greenteanet(扎扎实实打基础,保持一颗平常心。)回复于 2005-04-02 19:26:45 得分 5
自己写个程序测试一下就知道为什么了//Top
4 楼ulwxf2(阿华)回复于 2005-04-02 20:09:25 得分 5
支持楼上的~!~Top
5 楼kobefly(科比--网络学习中)回复于 2005-04-02 20:23:52 得分 5
你的为什么ab里边都有2个x呢?
不懂,这样,里边调用的时候,怎么可能知道是哪个x呢?
b
缺省参数只能在最右边,不可以这样没有次序的
c
void不能返回值
d,e,f正确
g由于in是个引用,是左值不能进行写操作,<<这个操作符不能执行,所以是错的
Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 20:44:19 得分 5
a,b估计有个是zTop
7 楼softmse(Jake)回复于 2005-04-03 11:58:12 得分 0
不好意思,更正一下:
a)int Update(const int &x,int y,int z)
{
y=z%3;
x=y+z;
return x;
}
b)int Sum(int x,int y=3,int z)
{
return x+y+z;
}
Top
8 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-03 12:19:57 得分 5
e)double Mul(double x,double y){
return x*y;
}
--------
会溢出吗?Top
9 楼softmse(Jake)回复于 2005-04-03 12:28:19 得分 0
请问in>>Value中的>>,怎么理解,是析取运算符吗?这个语句是什么意思Top
10 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-03 12:34:31 得分 5
你理解cin>>value;的意思吗,这个和那个是一样的
具体去看输入输出流的章节Top




