文章目录
问题答案
以下有一大部分均为个人观点,如有错误请指正。
第1题
在C语言中,注释不允许嵌套。在下面的代码段中,用注释来“注释掉”一段语句会导致什么结果?
void
squares( int limit )
{
/* Comment out this entire functio
int i; /* loop counter */
/*
** Print table of squares
*/
for( i = 0; i < limit; i += 1 )
printf( "%d %d0, i, i * i );
End of commented-out code */
}
相信有很多人看到这段代码的颜色就可以知道哪里出了问题,所以学习最好的方法就是上机。
首先 变量 i 没有被定义,最后那一段注释没有被注释掉,还有引号打成了0.
第2题
把一个大型程序放入一个单一的源文件中有什么优点?有什么缺点?
优点
- 编译时只需要编译一个文件
- 易于管理和维护
- 避免重复声明
- 适合个人开发
缺点
- 改一小部分,需要对整个程序重新编译
- 难以阅读和分析代码(可读性差)
- 不适合于团队开发
第3题
你需要用printf函数打印出下面这段文本(包括两边的双引号)。你应该使用什么样的字符串常量参数?
“Blunder??!??”
printf("\"Blunder??\!??\"");
第4题
\40的值是多少?\100、\x40、\x100、\0123、\x0123的值又分别是多少?
首先\ddd是八进制,\xddd是十六进制。
所以\40=32=空格字符
\100=64=’@’
\x40=64=’@’
\100占据12位(尽管前三位为零)。在绝大多数机器上,这个值关于庞大,无法存储于应该字符内,所以它的结果因编译器而异。
\0123 由两个字符组成,‘\012’和‘\3’.其结果值因编译器而异。 \x0123 过于庞大,无法存储于一个字符内,其结果值因编译器而异。
第5题
下面这条语句的结果是什么?
int x/*blah blah*/y;
变量y未被定义