函数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);、以下程序的执行结果是( )。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)