以下程序的运行结果是

以下程序的运行结果是,第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

结果是

3,3,1

因为printf执行的时候是从右往左的,先算a++

再算++a

最后算a

第一步

执行完a++之后

输出1,a的结果是2;

第二步

执行++a,先自加再使用

输出3,a的结果是3;

第三步

直接输出a

,即

输出3

答案是 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 =42+0=8

你的运行结果是正确地 #include<stdioh>

main()

{

int x=10;

int y=x++; /x先赋值给y再自增,执行这句之后y=10,x=11/

printf("%d,%d",(x++,y),y++); /(x++,y)逗号表达式是最后一个表达式即y的值,y=10,y++先输出10,之后y才变为11/

以上就是关于以下程序的运行结果是全部的内容,包括:以下程序的运行结果是、以下程序的运行结果是 printf("%d", (1,2),3);、以下程序的执行结果是( )。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9498537.html

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

发表评论

登录后才能评论

评论列表(0条)

保存