📜  C 程序的输出 | 13套

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

C 程序的输出 | 13套

难度等级:菜鸟

问题 1
预测以下程序的输出。

int main()
{
  char arr[] = "geeksforgeeks";
  printf("%d", sizeof(arr));
  getchar();
  return 0;
}

输出:14
字符串“geeksforgeeks”有 13 个字符,但大小为 14,因为当未明确提及字符数组大小时,编译器包含单个 '\0'(字符串终止符)。

问题2
在下面的程序中,你会用什么代替“?”打印“极客”。显然,不是“极客”。

int main()
{
  char arr[] = "geeksforgeeks";
  printf("%s", ?);
  getchar();
  return 0;
}

答案: (arr+8)
printf 语句打印从 arr+8 开始的所有内容,直到找到 '\0'



问题 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 %极客”

反斜杠 (\) 用作双引号 (") 的转义字符。有关 %% 的说明,请参见此处。