📜  C 程序的输出 | 29套

📅  最后修改于: 2022-05-13 01:56:11.033000             🧑  作者: Mango

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 视为“新行”,即使它在字符串。