C程序的输出|集13

难度等级: 菜鸟

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
喜欢就支持一下吧
点赞7 分享