C语言以下程序的运行结果是

C语言以下程序的运行结果是,第1张

函数sub中的引入参数是是形式参考,比方说第一个sub(x3, x4)

函数最先执行的语句是:int x = x3, int y = x4//把x3跟x4的值赋给x跟y

所以函数里面改变的是x跟y的值,而x跟y在函数结束后就被清除了,所以受改变的只有全局变量x1,第一次执行sub的时候,

x = x3

x1 = x//x1==10

同理,第二次的时候x1的值就等于x2了,所以x1最终值为40,其他值不变,输出结果是:

10, 20, 40, 40

答案是 B ,这和宏定义有关;

#define N 2

#define M N+1

#define NUM (M+1)*M/2

宏定义只做符号的替换

#define M N+1

#define NUM (M+1)*M/2

这句后 NUM=(N+1+1)*N+1/2

注意 :N+1是没有括号的,不是 NUM=(N+1+1)*(N+1)/2

N=2,代入,NUM=(2+1+1)*2+1/2 =4*2+0=8


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10997067.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存