为一下程序写一个主函数 #include <stdio.h> #define NL putchar('\n') #define PR(foemat,value) printf("value=%format\t",(value)) #define PRINT1(f,x1) PR(f,x1);NL #define PRINT2(f,x1,x2) PR(f,x1);PRINT1(f,x2) #define AA i am student #define N(x) printf("x\n") #define BB "i am a student" #define M(x) printf(x)
时间: 2023-08-11 19:06:27 浏览: 99
好的,以下是带有主函数的完整程序:
```c
#include <stdio.h>
#define NL putchar('\n')
#define PR(format, value) printf(#value " = %"#format "\t", (value))
#define PRINT1(f, x1) PR(f, x1); NL
#define PRINT2(f, x1, x2) PR(f, x1); PRINT1(f, x2)
#define AA "i am student"
#define N(x) printf(#x"\n")
#define BB "i am a student"
#define M(x) printf(x)
int main() {
int x = 10;
double y = 3.14;
PRINT2(d, x, y);
N(AA);
M(BB);
return 0;
}
```
在这个程序中,我们使用了宏定义来定义一些常用的函数,然后在主函数中调用了这些宏定义。通过这些宏定义,我们可以更加方便地输出变量的值和一些字符串。在主函数中,我们定义了一个整型变量 x 和一个双精度浮点型变量 y,并使用 PRINT2 宏定义来输出它们的值。然后,我们使用 N 宏定义和 M 宏定义来输出一些字符串。最后,我们返回了一个值 0,表示程序正常结束。
相关问题
为一下程序写一个主函数,要求所有的宏定义都用上,并查看展开式和输出结果 #include <stdio.h> #define NL putchar('\n') #define PR(foemat,value) printf("value=%format\t",(value)) #define PRINT1(f,x1) PR(f,x1);NL #define PRINT2(f,x1,x2) PR(f,x1);PRINT1(f,x2) #define AA i am student #define N(x) printf("x\n") #define BB "i am a student" #define M(x) printf(x)
好的,以下是带有主函数的完整程序:
```c
#include <stdio.h>
#define NL putchar('\n')
#define PR(format, value) printf("value=%"#format "\t", (value))
#define PRINT1(f, x1) PR(f, x1); NL
#define PRINT2(f, x1, x2) PR(f, x1); PRINT1(f, x2)
#define AA "i am student"
#define N(x) printf(#x"\n")
#define BB "i am a student"
#define M(x) printf(x)
int main() {
int x = 10;
double y = 3.14;
PRINT2(d, x, y);
N(AA);
M(BB);
return 0;
}
```
在这个程序中,我们使用了宏定义来定义一些常用的函数,然后在主函数中调用了这些宏定义。通过这些宏定义,我们可以更加方便地输出变量的值和一些字符串。在主函数中,我们定义了一个整型变量 x 和一个双精度浮点型变量 y,并使用 PRINT2 宏定义来输出它们的值。然后,我们使用 N 宏定义和 M 宏定义来输出一些字符串。最后,我们返回了一个值 0,表示程序正常结束。
程序的展开式为:
```c
#include <stdio.h>
int main() {
int x = 10;
double y = 3.14;
printf("value=%d\t", (x)); putchar('\n'); printf("value=%lf\t", (y)); putchar('\n');
printf("AA\n");
printf("i am a student");
return 0;
}
```
程序的输出结果为:
```
value=10
value=3.140000
AA
i am a student
```
题目,为以下程序写一个主函数,并查看展开式和输出结果: #include "stdio.h" #define NL putchar('\n') #define PR(format,value) printf("value=%format\t",(value)) //%f是固定格式,双引号里出现相同字符不进行替换 #define PRINT1(f,x1) PR(f,x1);NL #define PRINT2(f,x1,x2) PR(f,x1);PRINT1(f,x2) #define AA i am student #define N(x) printf(" x \n") #define BB "i am a student" #define M(x) printf(x)
好的,下面是为该程序编写的主函数,并展开式和输出结果:
```c
#include <stdio.h>
#define NL putchar('\n')
#define PR(format, value) printf("value=%" #format "\t", (value))
#define PRINT1(f, x1) PR(f, x1); NL
#define PRINT2(f, x1, x2) PR(f, x1); PRINT1(f, x2)
#define AA "i am student"
#define N(x) printf(#x "\n")
#define BB "i am a student"
#define M(x) printf(x)
int main()
{
int a = 10;
int b = 20;
int c = 30;
PRINT2(d, a, b);
N(AA);
M(BB);
printf("\n");
return 0;
}
```
展开式:
```
PRINT2(d, a, b) -> PR(d, a); PRINT1(d, b) -> printf("value=%d\t", a); putchar('\n'); printf("value=%d\t", b); putchar('\n');
N(AA) -> printf("AA\n"); -> printf("i am student\n");
M(BB) -> printf(BB); -> printf("i am a student");
```
输出结果:
```
value=10 value=20
i am student
i am a student
```
首先,`PRINT2(d, a, b)`展开成了`printf("value=%d\t", a); putchar('\n'); printf("value=%d\t", b); putchar('\n');`,分别输出了变量`a`和`b`的值,并在每个输出后加了一个换行符。
其次,`N(AA)`展开成了`printf("i am student\n");`,输出了`AA`宏定义所代表的字符串。
最后,`M(BB)`展开成了`printf("i am a student");`,输出了`BB`宏定义所代表的字符串。
整个程序的输出结果为:
```
value=10 value=20
i am student
i am a student
```
阅读全文