下列程序的输出结果是( )。int fun3(int x){ staticint a=了; a+=x; return a;lint main( ){ int k=2,m= I,n; n=fun3(k); n=fun3(m); printf("%d\n",n); return 0;}A.3#B.4# C.6#D.9
时间: 2023-12-08 12:06:47 浏览: 224
程序的输出结果是6。函数`fun3`中的`a`是静态变量,初值为0,每次调用`fun3`时,`a`的值加上输入的参数`x`。在`main`函数中,先调用`fun3(k)`,`a`的值变为2,返回值为2,赋给`n`。然后再调用`fun3(m)`,`a`的值变为3,返回值为3,但是此时`n`已经被赋值为2,所以`n`的值为3。最后输出`n`的值,即6。
相关问题
下面程序的输出是【1】.#include<stdio.h> fun(int x) { static inta=3; a+=x; return(a); } void main {intk=2,m=1,n; n=fun(k); n=fun(m); printf("%d",n);}
程序的输出是 4。
解析如下:
- 定义了一个函数 `fun(int x)`,函数内定义了一个静态局部变量 `a` 并初始化为 3。
- `fun(int x)` 的功能是将 `x` 加到 `a` 上,并返回 `a` 的值。
- 在 `main()` 函数中定义了三个整型变量 `k`,`m` 和 `n`。
- 执行 `n=fun(k)`,将 `k` 的值 2 传递给函数 `fun()`,并将函数返回值 5 赋值给 `n`。此时,`a` 的值变为 5。
- 执行 `n=fun(m)`,将 `m` 的值 1 传递给函数 `fun()`,并将函数返回值 4 赋值给 `n`。此时,`a` 的值变为 6。
- 最后输出变量 `n`,即输出 4。
#include<iostream> #include<algorithm> using namespace std; int i=0; int fun(int n){ static int a=2; a++; return a+n; } int main(){ int k=5; { int i=2; k+=fun(i); } k+=fun(i); cout<<k; return 0; }结果为什么是14
这是因为在代码中定义了两个变量 `i`,一个是全局变量 `i`,一个是在 `main` 函数中的局部变量 `i`。当执行 `{}` 内的语句块时,会优先使用局部变量 `i`,并且 `k` 的值会增加到 7。接着执行 `k+=fun(i)`,此时使用的是全局变量 `i`,并且 `a` 的值在 `fun` 函数中被静态地初始化为 2,然后每次调用 `fun` 函数时 `a` 都会自增 1,所以第一次调用 `fun(i)` 返回 5,第二次调用 `fun(i)` 返回 7,因此 `k` 的最终值为 14。
阅读全文