//程序阅读,输出结果 #include <stdio.h> int fun(int n); int a; int main() { fun(4); printf("%d", a); return 0; } int fun(int n) { static int count = 0; count++; if (n <= 2) return 1; int r = fun(n - 1) + fun(n - 2); a = count; return r; }
时间: 2024-04-05 22:33:06 浏览: 35
这段程序的输出结果是 7。程序的执行过程是这样的:
1. main 函数调用 fun(4)。
2. fun(4) 内部执行 fun(3) 和 fun(2)。
3. fun(3) 内部执行 fun(2) 和 fun(1)。
4. fun(2) 和 fun(1) 都返回 1。
5. fun(3) 返回 fun(2) + fun(1) = 2。
6. fun(4) 内部执行 fun(3) 和 fun(2)。
7. fun(2) 已经被执行过了,不再执行,直接返回 1。
8. fun(3) 已经被执行过了,不再执行,直接返回 2。
9. fun(4) 返回 fun(3) + fun(2) = 3。
10. fun(4) 执行完毕,a 的值为3。
11. main 函数输出 a 的值,即输出 3。
12. 程序执行完毕,返回 0。
相关问题
题目:判断m是否为素数。 #include <stdio.h> void wwjt(); int fun(int n)
题目给出了函数名为fun,参数为整数n,但是函数体并没有给出。同时,代码中还有一个没有用到的函数wwjt,可以删除掉。下面给出一个简单的判断素数的函数实现:
```c
#include <stdio.h>
int is_prime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m;
scanf("%d", &m);
if (is_prime(m)) {
printf("%d是素数\n", m);
} else {
printf("%d不是素数\n", m);
}
return 0;
}
```
其中is_prime函数用于判断一个数是否为素数,如果是则返回1,否则返回0。在主函数中读入一个整数m,然后调用is_prime函数判断m是否为素数,输出相应的信息。
} 2、程序填空 #include<stdio.h> voidfun(inta[],intn) {inti,t;
#include <stdio.h>
void fun(int a[], int n) {
int i, t;
for (i = 0; i < n / 2; i++) {
t = a[i];
a[i] = a[n - 1 - i];
a[n - 1 - i] = t;
}
}
// 示例测试
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int i;
fun(arr, 5);
for (i = 0; i < 5; i++)
printf("%d ", arr[i]);
return 0;
}