#include <stdio.h> long fun ( int k) { /************found************/ if (k ___1___ 0) /************found************/ return (k*fun(___2___)); /************found************/ else if ( k ___3___ 0 ) return 1L; } main() { int k = 10 ; printf("%d!=%ld\n", k, fun ( k )) ; }
时间: 2023-07-01 10:12:44 浏览: 157
根据程序填空题的要求,在 ___1___、___2___、___3___ 的位置填上合适的代码。
根据程序的语义和结构,可以推测出正确的代码如下:
```
#include <stdio.h>
long fun(int k) {
if (k > 0) // ___1___
return (k * fun(k - 1)); // ___2___
else if (k == 0) // ___3___
return 1L;
}
int main() {
int k = 10;
printf("%d!=%ld\n", k, fun(k));
return 0;
}
```
解释如下:
在程序中,fun 函数的功能是计算 k 的阶乘,其中 k 是传入的参数。
在 fun 函数中,对于 k 大于 0 的情况,我们需要返回 k 与 (k-1) 的阶乘的乘积。因此,我们使用递归调用 fun 函数,并将参数传入 k-1。
对于 k 等于 0 的情况,我们需要返回 1,因为 0 的阶乘等于 1。
在 main 函数中,我们定义一个整数变量 k,并设置为 10。然后,我们调用 fun 函数,将 k 作为参数传递给它,并打印出 k 的阶乘的值。
相关问题
修正代码#include <stdio.h> long fun(int g) { /**********found**********/ switch(g); { case 0: return 0; /**********found**********/ case 1 ;case 2 : return 1 ; } return( fun(g-1)+fun(g-2) ); } main() { long fib; int n; printf("Input n: "); scanf("%d",&n); pri
修正后的代码如下:
```c
#include <stdio.h>
long fun(int g) {
switch(g) {
case 0:
return 0;
case 1:
case 2:
return 1;
default:
return (fun(g-1) + fun(g-2));
}
}
int main() {
long fib;
int n;
printf("Input n: ");
scanf("%d", &n);
fib = fun(n);
printf("fib(%d) = %ld\n", n, fib);
return 0;
}
```
修改说明:
1. 删除了 switch 语句后的分号。
2. 添加了 default 分支。
3. 修改了 main 函数的返回类型。
4. 在 main 函数中添加了对计算结果的输出。
这样修改后的代码能够正确计算斐波那契数列的第 n 项,并且不会出现编译错误。
修改以下代码“”“#include<stdio.h> #define N 5 typedef struct student{ long sno; char name[10]; float score[3]; }STU; void fun(char *filename,STU n){ FILE *fp; /**********found**********/ fp=fopen(filename,"rb"); /*********”
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n) {
FILE *fp;
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Cannot open file!\n");
return;
}
fread(&n, sizeof(STU), 1, fp);
printf("sno:%ld\nname:%s\nscore[0]:%.2f\nscore[1]:%.2f\nscore[2]:%.2f\n", n.sno, n.name, n.score[0], n.score[1], n.score[2]);
fclose(fp);
}
int main() {
STU s[N] = {
{20210001, "Tom", {89, 78, 92}},
{20210002, "Jerry", {78, 87, 91}},
{20210003, "Mickey", {90, 77, 83}},
{20210004, "Minnie", {94, 92, 90}},
{20210005, "Donald", {85, 88, 82}}
};
FILE *fp;
fp = fopen("test.dat", "wb");
if (fp == NULL) {
printf("Cannot open file!\n");
return 0;
}
fwrite(&s[2], sizeof(STU), 1, fp);
fclose(fp);
fun("test.dat", s[2]);
return 0;
}
```
阅读全文