C 程序的输出 | 29套
问题 1
#include
int main()
{
int i;
for (i = 0; i<5; i++)
{
int i;
i = 10;
printf("%d ", i) ;
}
return 0;
}
10 10 10 10 10
解释:
在这里,似乎因为 'i' 被分配了一个值 10,所以循环只会运行一次,因为循环条件将失败,因为 'i' 在下一次进入循环时变为 11。但是输出与我们预期的完全不同。这背后的原因是变量的范围在方法内。一旦循环退出,i 就会根据 for 循环的 i 进行计数,这使得条件为真最多 5 次 (0-4)。有关更多详细信息,请参阅范围规则。
在这里,循环根据循环外声明的“i”运行,因此它将运行五次,循环内的“i”将被打印五次。
问题2
#include
int main()
{
int i = 10;
static int x = i;
if (x==i)
printf("x and i are Equal\n");
return 0;
}
x and i are Equal
解释:
由于 x 和 i 的值相等,因此 if 条件满足并打印“x 和 i 相等”。
注意:在 C 中,同一个程序会产生编译时错误,因为静态变量是加载时实体,而自动变量是运行时实体,我们不能通过运行时变量初始化任何加载时变量。
问题 3
#include
#include
int main()
{
printf("GEEKS size = %ld \n\n", sizeof("GEEKS"));
printf("GEEKS length = %ld \n", strlen("GEEKS"));
return 0;
}
GEEKS size = 6
GEEKS length = 5
解释:
sizeof()函数返回包含空字符的字符串的大小,而 strlen()函数返回不包含空字符的字符串的长度。
问题 4
#include
int extern i;
int main()
{
printf("%d", i);
}
int i = 10;
10
解释:
在 extern 关键字的帮助下,变量的声明可以在程序的任何地方进行。这里,i 是一个变量,它在 main 之外的 printf 语句之后声明。尽管如此,它仍然可以通过 printf 语句访问,因为它是一个外部变量。有关关键字 extern 的更多详细信息
问题 5
#include
int main()
{
int a = 10;
printf("%o %x", a, a);
return 0;
}
12 a
解释:
因为, %o用于以八进制数字格式打印数字,而%x用于以十六进制数字格式打印数字。如果我们将十进制 10 转换为八进制,我们会得到12并且在十六进制中它会给出一个
问题 6
#include
int main()
{
printf("%s", "Geeks\nFor\nGeeks\nis\nthe\nbest");
}
Geeks
For
Geeks
is
the
best
解释:
输出不是Geeks\nFor\nGeeks\nis\nthe\nbest ,而是不同的输出。 %s 将 \n 视为“新行”,即使它在字符串。