难度等级: 菜鸟
null
问题1 预测以下程序的输出。
int main() { char arr[] = "geeksforgeeks" ; printf ( "%d" , sizeof (arr)); getchar (); return 0; } |
产出:14 字符串“geeksforgeks”有13个字符,但大小为14,因为在未明确提及字符数组大小时,编译器包含单个“”(字符串终止符)。
问题2 在下面的程序中,你会用什么来代替“?”打印“极客”。显然,不是“极客”。
int main() { char arr[] = "geeksforgeeks" ; printf ( "%s" , ?); getchar (); return 0; } |
回答:(arr+8) printf语句打印从arr+8开始的所有内容,直到找到“”
问题3 预测以下程序的输出。
int main() { int x, y = 5, z = 5; x = y==z; printf ( "%d" , x); getchar (); return 0; } |
问题的关键在于语句x=y==z。运算符==在=之前执行,因为比较运算符(<=、>=和==)的优先级高于赋值运算符=。 根据比较结果,比较运算符的结果为0或1。由于y等于z,表达式y==z的值变为1,并通过赋值运算符将该值赋值给x。
问题4 预测以下程序的输出。
int main() { printf ( " "GEEKS % FOR % GEEKS"" ); getchar (); return 0; } |
输出:“极客%FOR%极客”
反斜杠()用作双引号(“)的转义字符。有关%%的解释,请参阅 这 .
如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END