Рубрики

Вывод программ на 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;

}

Ответ: (обр + 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;

}

Выход: «ГИКСЫ% ДЛЯ% ГИКСОВ»

Обратная косая черта (/) работает как escape-символ для двойной кавычки («). Для объяснения %%, пожалуйста, смотрите это .

Пожалуйста, напишите комментарии, если вы найдете какие-либо ответы / объяснения неправильными, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше

Рекомендуемые посты:

Вывод программ на C | Набор 13

0.00 (0%) 0 votes