| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:一道小问题
只看楼主 加入收藏
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
收藏
 问题点数:0 回复次数:3 
一道小问题
void f(int x,int&y,int&z)
{
    z=y=x*x+1;
}
函数调用中的声明:
int a=0,b=1,c=2,d=3;
const int E=4;
以下是几个问题:
在d=f(a,b,c);执行后, d的值为多少?
在f(a,b,c);执行后, b和c的值为多少?
在f(c,d,E);执行后, d的值为多少?
在f(c+1,c-1,d);执行后, d的值为多少?
(是非题)函数调用f(c,d,E);使得z是一个常引用参数.

还要说上原因啊,因为我就是不知道为什么,书上也只有答案没写原因~

[[italic] 本帖最后由 kidd2005 于 2008-1-16 11:20 编辑 [/italic]]
2008-01-15 15:34
忘记喧嚣
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-10-7
收藏
得分:0 
void f(int x,int&y,int&z){ z=y=x*x+1;}
函数调用中的声明:int a=0,b=1,c=2,d=3;const int E=4;
以下是几个问题:
在d=f(a,b,c);执行后, d的值为多少? // 反正个我没编译过 不能把void类型赋值给int类型的d

在f(a,b,c);执行后, b和c的值为多少?//  b=1,c=1;
在f(c,d,E);执行后, d的值为多少? // d=5   这个也不能通过编译的.因为我们试图修改E的值
在f(c+1 ,c-1 ,d );执行后, d的值为多少?//d=10  //这个我写在程序里也不能编译过.请高手指点下.
如果只是题的话 就用分清楚 &a 与 a 的区别就是了

#include<iostream>
using namespace std;
class Min
{
public:
    void f(int x,int&y,int&z)
    {
     z=y=x*x+1;
    }
private:
    int x;
    int y;
    int z;
};



int main()
{

int a=0,b=1,c=2,d=3;
const int E=4;

  Min g;
    g.f(c+1,c-1,d);

//void f(int a,int &b,int &c);



cout<<"a="<<a<<"\nb="<<b<<"\nc="<<c<<endl;

return 0;
}
2008-01-15 23:29
忘记喧嚣
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-10-7
收藏
得分:0 
怎么改能得到 第4个问的答案了?指点下谢谢
2008-01-15 23:30
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
收藏
得分:0 
其实全部都是是非题,
原题是这样的:
1(是非题)在d=f(a,b,c);执行后, d的值为1         //错
2(是非题)在f(a,b,c);执行后, b和c的值都为1    //对
3(是非题)在f(c,d,E);执行后, d的值为5              //错
4(是非题)在f(c+1,c-1,d);执行后, d的值为10    //错
5(是非题)函数调用f(c,d,E);使得z是一个常引用参数.     //错
1我看了楼上的明白了,
2自己看得明白
3楼上的错了,我也不知道为什么这是错的
4不清楚
5我之前写漏了,请解答一下,是在函数体里用CONST才是对吧?

[[italic] 本帖最后由 kidd2005 于 2008-1-16 11:24 编辑 [/italic]]

潜心苦C,却发觉百C不得其解啊~
2008-01-16 11:19
快速回复:一道小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018019 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved