问题 单项选择题

以下程序执行后的输出结果是( )。
#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.不确定

答案

参考答案:D

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

选择题
单项选择题 A1/A2型题