#include<stdio.h> #define S(a, b) (a)>(b) ? (a):(b) int f1(char ch) { int grade; switch(ch){ case “A”: grade =95; break; case “B”: grade =85; break; case “C”: grade =75; case “D”: grade =65; break; default: grade=0; } return grade; } int f2( ) { static int k=1, s; s = s+k; k++; return s ; } int f3 (int n ) { if (n = = 1) return 2; else return f3(n-1); } main() { int i; printf(“%d\n”, f1(‘C’)); for (i=1; i<=3; i++) f2( ); printf(“%d\n”, f2( )); printf(“%d\n”, f3(4)); printf(“%d\n”, S(3, 2+2)); }
时间: 2023-12-16 10:04:54 浏览: 519
这是一段 C 语言代码,包含了几个函数和一个主函数。下面是各个函数的作用:
- f1(char ch):根据输入的字符 ch,返回一个对应的成绩 grade,A 对应 95 分,B 对应 85 分,C 对应 75 分,D 对应 65 分,其他字符对应 0 分。
- f2():返回一个静态变量 s 的值,并将该变量加上一个静态变量 k 的值,每次调用后 k 的值加 1。
- f3(int n):递归函数,返回一个数字,当 n 为 1 时返回 2,否则返回 f3(n-1) 的值。
- 主函数:分别调用了各个函数并输出了它们的返回值。同时,使用了一个宏定义 S(a, b),如果 a 大于 b,返回 a,否则返回 b。
希望我的回答可以帮助到你!
相关问题
#include <stdio.h> #define a 9 #define b 9 #define c 10如何在主函数中自定义更改宏定义
在主函数中无法直接更改宏定义,因为宏定义是在预处理阶段展开的。但你可以在主函数中重新定义另外的常量或变量来达到相同的效果,例如:
```
#include <stdio.h>
#define a 9
#define b 9
#define c 10
int main() {
printf("a=%d, b=%d, c=%d\n", a, b, c);
#undef a
#define a 100
printf("After redefining: a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
```
在上面的示例代码中,我们使用 `#undef` 取消了宏定义 `a`,然后重新定义为 `100`。这样就可以在主函数中自定义更改宏定义的值了。但是需要注意,重新定义宏定义可能会导致代码混乱,所以应该谨慎使用。
#include <stdio.h> #define a 9 #define b 9 #define c 10如何在主函数中更改宏定义的数值
宏定义是在编译时进行处理的,一旦定义了就不能直接更改。如果需要更改宏定义的数值,需要重新定义或者使用变量来代替宏定义。例如:
```
#include <stdio.h>
#define A 9
#define B 9
int main() {
printf("%d %d\n", A, B);
#undef A // 取消宏定义A
#define A 10 // 重新定义宏定义A为10
printf("%d %d\n", A, B);
int C = 11; // 使用变量来代替宏定义C
printf("%d %d %d\n", A, B, C);
return 0;
}
```
输出结果为:
```
9 9
10 9
10 9 11
```
阅读全文