程序运行结果是( )。 #include<stdio.h> int fun() { static int x=1; x+=1; return x; } int main() { } A) 6 int i,s=1; for(i=1;i<=3;i++) s+=fun(); printf("%d\n",s);
时间: 2023-12-05 08:05:28 浏览: 123
程序运行结果是 8。
虽然在 main 函数中没有调用 fun 函数,但是由于 fun 函数中定义了静态变量 x,并且初始化为 1,所以 x 的值会在程序运行过程中一直存在,每次调用 fun 函数时,x 的值会加 1。在 for 循环中,fun 函数被调用了三次,所以 x 的值变为 4,加上 s 的初始值 1,总和为 5,输出结果为 8。
相关问题
阅读程序,写出运行结果 #include<stdio.h> int fun() {static int x=1; x*=2; return x; } int main() { int i,s=1; for(i=1;i<=3;i++) s*=fun(); printf("%d\n",s); return 0; }
运行结果为:8
解释:
程序中的 `fun()` 函数是一个静态变量,且初始值为1,每次调用 `fun()` 函数时,变量 x 的值会翻倍。在 `main()` 函数中,使用 for 循环调用 `fun()` 函数三次,并将返回值累乘到变量 s 中。因此,最终输出的结果为 `s = 1*2*4 = 8`。
分析下面代码,写出程序运行结果。 #include <stdio.h> void fun() { static int a=0; a+=3; int b = 2; printf("%d\n", a+b); } int main() { int n=5,i; for (i=1;i<n;i++) fun(); return 0; }
该程序的运行结果为:
```
5
8
11
14
```
在 `fun` 函数中,定义了一个静态局部变量 `a`,它的初始值为 0。每次调用 `fun` 函数时,`a` 会加 3。同时,定义了一个普通局部变量 `b`,它的值为 2。然后,将 `a+b` 的值打印出来。
在 `main` 函数中,定义了一个整型变量 `n` 并赋值为 5,然后使用 `for` 循环调用了 4 次 `fun` 函数。因为 `a` 是静态局部变量,所以它的值在多次调用 `fun` 函数时会被保留下来。因此,第一次调用 `fun` 函数时,输出的是 5,第二次调用时,输出的是 8,以此类推,最后一次输出的是 14。
阅读全文