今天看到一个不错的C语言试题,请看题:以下会输出什么?
11803b1706674b1bb0f95e4ab18441ac?from=pc.jpg
解析本题主要考究的是C语言基础内容,变量的作用域问题以及后置++运算。
main函数中重新声明变量i和j,j的值未初始化,因此用j给本身赋值结果未定义,而if语句中声明k变量,此时k变量的作用域仅到if语句结束。因此,如果开始没有声明全局变量k,编译将不通过,错误原因是k未声明,而此程序开始就声明了全局变量k,后面k默认为全局变量,全局变量未初始化则默认初始化为0,所以k++打印的是0,但k变为1,因此答案为未定义,0。
运行测试 ecb1f118d03c4ef1b1d6ea56e2a5e495?from=pc.jpg
aaeea79bf5bd48b78b3e6b940a046173?from=pc.jpg



来源:C语言基础