以下程序执行后的输出结果是 #include<iostream>. using namespace std; void try(int,int,int,int); int main() { int x,y,z,r

admin2013-05-30  22

问题 以下程序执行后的输出结果是    #include<iostream>.    using namespace std;    void try(int,int,int,int);    int main()     {       int x,y,z,r;         x=1;         y=2;         try(x,y,z,r);         cout<<r<<end1;         return 0;     }      void try(int x,int y, int z,int r)     {         z = x+y;         x = x*x;         y = y*y;         r = z+x+y;     }     

选项 A、18
B、9
C、10
D、不确定

答案8

解析 本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。
转载请注明原文地址:https://kaotiyun.com/show/GHNp777K
0

随机试题
最新回复(0)