第一题
这题涉及到了全局变量没初始化时默认设置为0 ,以及sizeof()操作符得出的数为无符号整形,而我们int默认为有符号整形,当其进行比较时,有符号整型会隐式转化为无符号整形(系统自动转化),其中转化时二进制位不变,只是符号位变为数值位,导致多了2的n次方。从而非常大,所以大于成立。这题很有味道,考察了很多东西。其中还有隐式转换
第二题
有两种解法
相比之下第二种解法更简单,但也更难想,运用了位操作符。
而第一种更好想,但写代码容易出现较多错误 ,它是比较常见的方法
第三题
其中%[^\n]表示除\n不能识别 ,其他都能识别,所以可以认为它可以识别出一行的所有东西。于是可以用在这上面去识别出带有空格的字符串,能全部输入。
而%s遇到空格就会停止,所以遇到上述情况只能识别一部分,不能用它。
第四题
第五题