25 самых распространенных вопросов и ответов на собеседовании на C [для первокурсников]

Опубликовано: 2020-12-18

C — мощный язык программирования общего назначения, поддерживающий процедурные, императивные и структурированные парадигмы. Он используется для разработки операционных систем, баз данных и прикладного программного обеспечения для широкого спектра компьютерных архитектур (ПЛК, встроенные системы и т. д.). C — отличный удобный для начинающих язык с легкой кривой обучения.

Любой, кто стремится построить карьеру в области разработки программного обеспечения, должен овладеть основами C. Как только вы изучите азы языка программирования C, вы будете готовы пройти собеседование по C!

В этом блоге мы познакомим вас с некоторыми из наиболее часто задаваемых вопросов на собеседовании на языке C. Как правило, собеседование начинается с проверки ваших базовых знаний предмета (в данном случае языка программирования C) и постепенно переходит к изучению ваших практических навыков в предметной области.

Итак, без лишних слов, давайте проверим 25 наиболее часто задаваемых вопросов на собеседовании!

C Вопросы и ответы на собеседовании

  1. Каковы основные особенности C?

Язык программирования Си это:

  • Средний уровень — C сочетает в себе лучшие черты низкоуровневых и высокоуровневых языков для создания усовершенствованного языка программирования среднего уровня.
  • Структурированный — C — это структурированный язык, что означает, что программы на C разделены на несколько частей.
  • Переносимость. После того, как вы написали программу на C, вы можете запустить ее на любой машине с минимальными изменениями или без изменений.
  • Быстрота — C использует множество типов данных и операторов, что делает его очень быстрым и эффективным.
  • Расширяемость — C обладает высокой расширяемостью, поскольку может легко адаптироваться к новым функциям.
  • Управление памятью — C имеет встроенную функцию памяти, которая экономит память и повышает эффективность программы C.
  1. Какие типы данных поддерживает C?

C имеет четыре категории типов данных:

  • Базовый тип данных
  • Производный тип данных
  • Перечислимый тип данных
  • Пустой тип данных
  1. Объясните «переменную висячего указателя» на языке C.

В программировании на C указатель указывает на ячейку памяти или адрес существующей переменной. Однако, если эта переменная удалена, а указатель указывает на ту же ячейку памяти, она называется переменной висячего указателя.

  1. Что такое «указатель на указатель»?

«Указатель на указатель» относится к переменной указателя, которая содержит адрес другой переменной указателя. По сути, указатель дважды отменяет ссылку, чтобы указать данные, содержащиеся в назначенной переменной указателя.

  1. Определите «массив».

Массив — это структура данных, содержащая несколько элементов одного типа данных в организованном порядке. Массивы обычно бывают трех типов: одномерные, двумерные и трехмерные.

  1. Что такое статическая переменная? Почему статические переменные используются в C?

Статическая переменная — это переменная, объявленная с помощью ключевого слова «Static». Статическая переменная сохраняет свое значение между несколькими вызовами функций.

Статическая переменная используется как общее значение, совместно используемое всеми методами, и инициализируется только один раз в куче памяти, чтобы уменьшить использование памяти. Хотя статическая переменная изначально инициализируется нулем, если вы обновите значение переменной, будет присвоено обновленное значение.

  1. Определите «область действия» переменной.

Область действия переменной относится к части кода (функции), в которой объявлена ​​переменная. В языке программирования C все идентификаторы имеют статическую или лексическую область видимости.

  1. Что такое динамическое выделение памяти?

Динамическое выделение памяти — это процедура выделения памяти программе C и ее переменным во время выполнения. В то время как malloc(), calloc() и realloc() выделяют память, функция free() освобождает используемое пространство памяти.

Читать : Вопросы и ответы на собеседовании по SQL

  1. Объясните разницу между функциями calloc() и malloc().

В C и calloc(), и malloc() являются функциями выделения памяти, которые выделяют память из области кучи (динамическая память). Основное различие между двумя функциями выделения памяти заключается в том, что calloc() загружает все назначенные ячейки памяти со значением 0, а malloc() — нет.

  1. Объясните «Распределение статической памяти».

В отличие от динамического выделения памяти, которое выделяет память во время выполнения, статическое выделение памяти выделяет память во время компиляции. Статическое выделение памяти не позволяет увеличить выделение памяти во время выполнения программы C. Вы можете реализовать статическую память с помощью стеков/кучи и выделить память с помощью ключевого слова «Static». Как правило, для статического выделения памяти требуется больше места в памяти для хранения переменных, чем для динамического выделения памяти.

  1. Назовите несколько токенов C?

Токен — это идентификатор. Обычно это наименьшая единица в программе на C. Константы, строки, ключевые слова, операторы, идентификаторы и специальные символы — это несколько токенов C, используемых при написании программ на C.

  1. Будет ли код C компилироваться или выполняться без функции main()?

В отсутствие функции main() программа C будет компилироваться, а не выполняться, поскольку функция main() является обязательной для запуска любой программы C.

  1. Определите «вложенную структуру».

Вложенная структура создается, когда элемент или член данных функции содержит член данных другой структуры.

  1. Различают фактические и формальные параметры.

Фактические параметры передаются от основной функции к подразделенной функции, а параметры, объявленные как подразделенная функция, известны как формальные параметры.

  1. Что такое директива препроцессора?

Директива препроцессора — это встроенная предопределенная функция, которая действует как директива компилятору для выполнения определенных задач до начала процесса компиляции. Таким образом, директива препроцессора всегда выполняется до выполнения программы на C.

  1. Определите «Аргументы командной строки».

Аргументы, передаваемые функции main() во время выполнения программы на C, известны как аргументы командной строки. Первый аргумент обозначает количество аргументов и автоматически обновляется операционной системой. Второй аргумент (массив указателей на символы) всегда содержит строки в качестве параметров.

  1. Как вы можете назначать параметры функциям?

Существует два способа назначения параметров функциям:

  • Вызов по значению — этот метод выбирается только в том случае, если вы не хотите изменять фактические параметры формальными параметрами, поэтому вы отправляете только копию значений в качестве параметров функциям.
  • Вызов по ссылке. В этом подходе вы отправляете адрес фактического параметра, чтобы изменить его с помощью формальных параметров.

Отъезд: Вопросы для собеседования с разработчиками полного стека

  1. Что такое «союз» в C?

В C Union — это определяемый пользователем тип данных, который может хранить несколько типов данных в одном блоке. Он содержит только память самого большого члена вместо общей памяти всех членов. Поскольку объединение выделяет общее пространство для всех членов объединения, вы можете получить доступ только к одной переменной за раз в объединении.

  1. Объясните «Рекурсия».

Рекурсия — это когда функция вызывает сама себя, а функция, которая вызывает сама себя, называется рекурсивной функцией. Рекурсивная функция происходит в два этапа:

  • Фаза намотки — когда рекурсивная функция вызывает сама себя и удовлетворяет желаемому условию, фаза намотки заканчивается.
  • Фаза раскручивания — по достижении фазы раскручивания начинается фаза раскручивания, возвращая управление исходному вызову.
  1. Как объявить функцию в C?

Вы можете объявить функцию в C следующим образом:

return_type имя_функции (формальный список параметров)

{

Функция_Тело;

}

  1. Что делает функция sprintf()?

Функция sprintf() используется для печати строк. Он извлекает общее количество символов в строке. Эта функция передает данные в буфер и, следовательно, не выводит результат на экран. Синтаксис функции sprintf():

int sprintf ( char * str, const char * format, … );

  1. Различать функции getch() и getche()?

В программе на C функция getch() считывает один символ из ключевого слова. Поскольку он использует какой-либо буфер, он не будет отображать данные, которые вы вводите на экране. Наоборот, хотя функция getche() также считывает один символ из ключевого слова, она показывает данные на экране.

  1. Что такое «Rvalue» и «Ivalue»?

Rvalue — это выражение, которое находится в правой части оператора присваивания. Он присваивается значению I, лежащему в операторе присваивания. lvalue должно ссылаться только на переменную, а не на константу.

  1. Назовите различные спецификаторы класса хранения в C.

В C есть четыре спецификатора памяти:

  • Авто
  • Статический
  • регистр
  • Внешний
  1. Есть ли разница между объявлением заголовочного файла с помощью «» и < >?

Если вы объявляете заголовочный файл с помощью " ", компилятор ищет заголовочный файл в текущем рабочем каталоге, и если он не находит там файл, он проверяет другие места для поиска заголовочного файла. Однако если вы объявляете файл заголовка с помощью < >, компилятор ищет файл по встроенному пути.

Проверьте: 15 советов по собеседованию, чтобы выделиться на собеседовании

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Итак, вот и все: 25 вопросов и ответов для интервью C, которые помогут вам подготовиться к следующему собеседованию при приеме на работу. Хотя эти вопросы лишь касаются поверхности программирования на C, надеюсь, они дадут вам представление о том, чего вы можете ожидать от интервью по C!

Если вам интересно узнать больше о разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Станьте разработчиком полного стека

Подать заявку на получение степени магистра в области разработки программного обеспечения