main() { int i=3,j=2,k; k=i+j; { int k=8; if(i=4) printf("%d",k); else printf("%d",j) ; } printf("%
printf("%d%d",i,k);
}
这题没错!
这是在考察你模块定义及局部变量,main()函数中的{}即为一个模块,第二个k的定义是局部变渣态判量,属于该模块,在该模块结束后,作用域如改消失,而i没有重新定义,默认使用前模块中的i,所以结果为
中间模块中输出k=8(中间模块局部变量)。最后一个printf语句是输出i,j,k的值,分别为4,闭陆2,5。
不明白的地方可以给我留言。
很抱歉的谈咐棚告诉楼主,你的代码是错误的简并,根本不可能出现答案,首先是定义重复,数据K重复定义了两次,其次if语句应该是等于,是两个等号,一个等号是赋值,所以一定会执行if语句下面的,最后你的根本没有结束,最后的花括号都没有!楼主,希含则望你拿正确代码来问,谢谢合作
神马啊氏桥?!亏滑那个if(i=4)是给i赋值,不是判断。所以后面的printf("%d",k); 是无条件运行的,可以输出k=8;else是不会运行的。再后面“printf("% ( 你把代码写完啊)就跟一销核腊开始定义的值一样了。
那个i=4是赋值中碧,不是做判断,所以第闷知一次输出的k应该是8;然后蚂培消i=4,最后那个k是i+j=5。答案是845。