#include #define SQR(x)x*x main() { int a,k=3; a=++SQR(k+1);
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/01 11:22:28
#include #define SQR(x)x*x main() { int a,k=3; a=++SQR(k+1); printf(”%d\n”,a);}
求满意 求赞同
宏做的事 仅仅是展开 所以看一下这句展开式怎样的
a = ++k+1*k+1; 现执行* 编程a = ++k+k+1; 然后从左至右执行 ++k k变为4 4+4+1 最后a=9
输出9
再问: 怎么变就可以使结果成为17了呢
再答: #include #define SQR(x)(x)*(x) main() { int a=0,k=3; a=SQR(k+1); ++a; printf("%d\n",a); }
再问: 只变#define SQR(x)(x)*(x) 可不可以
再答: 不可以 它会提示++需要一个左值 或者你可以改成 #include #define SQR(x)(x)*(x) main() { int a,k=3; ++(a=SQR(k+1)); printf("%d\n",a); }
宏做的事 仅仅是展开 所以看一下这句展开式怎样的
a = ++k+1*k+1; 现执行* 编程a = ++k+k+1; 然后从左至右执行 ++k k变为4 4+4+1 最后a=9
输出9
再问: 怎么变就可以使结果成为17了呢
再答: #include #define SQR(x)(x)*(x) main() { int a=0,k=3; a=SQR(k+1); ++a; printf("%d\n",a); }
再问: 只变#define SQR(x)(x)*(x) 可不可以
再答: 不可以 它会提示++需要一个左值 或者你可以改成 #include #define SQR(x)(x)*(x) main() { int a,k=3; ++(a=SQR(k+1)); printf("%d\n",a); }
#include #define SQR(x)x*x main() { int a,k=3; a=++SQR(k+1);
#define SQR(X) X*X #include void main(){ int a=16,k=2,b=4,m=
#define SQR(x) x*x void main() { int a=10,k=2,m=1; a/=SQR(k+
#define SQR(X) X*X main() { int a=16,k=2,m=1; a/=SQR(k+m)/SQ
以下程序的输出结果是 2为什么 #define SQR(X) X*X main() { int a=16,k=2,m=1
#include #define S(x) x*x void main() { int a,k=3,m=1; a=S(k
请问 #define sqr(x) x*x K=2,M=1 sqr(k+m)/sqr(k+m)为什么结果是7
#include #define S(x) x*x main() {int a=9,k=3,m=2; a/=S(k+m)
请问 #define sqr(x) x*x sqr(k+m)/sqr(k+m)为什么结果是7
#include"stdio.h" #define MA(x) x*(x-1) void main() { int a=
3.设有以下程序:、#include #define S(X) X*Xvoid main(void){int k=2;c
# include # define MAX(x,y) (x)>(y)?(x):(y) main() { int a=5