25 najczęstszych pytań i odpowiedzi na wywiad C [Dla nowicjuszy]

Opublikowany: 2020-12-18

C to potężny język programowania ogólnego przeznaczenia, który obsługuje paradygmaty proceduralne, imperatywne i strukturalne. Służy do tworzenia systemów operacyjnych, baz danych i oprogramowania aplikacyjnego dla szerokiej gamy architektur komputerowych (PLC, systemy wbudowane itp.). C to doskonały, przyjazny dla początkujących język z łatwą krzywą uczenia się.

Każdy, kto chce zbudować karierę w tworzeniu oprogramowania, musi opanować podstawy języka C. Gdy nauczysz się sedna języka programowania C, będziesz gotowy do zgryzienia rozmowy kwalifikacyjnej w języku C!

W tym blogu przeprowadzimy Cię przez niektóre z najczęściej zadawanych pytań do rozmów kwalifikacyjnych. Zazwyczaj rozmowa kwalifikacyjna rozpoczyna się od sprawdzenia Twojej podstawowej znajomości przedmiotu (w tym przypadku języka programowania C) i stopniowo przechodzi do odkrywania praktycznych umiejętności w tej dziedzinie.

Więc bez zbędnych ceregieli, sprawdźmy 25 najczęściej zadawanych pytań do rozmowy kwalifikacyjnej C!

C Pytania i odpowiedzi na rozmowę kwalifikacyjną

  1. Jakie są podstawowe cechy języka C?

Język programowania C to:

  • Średni poziom — C łączy najlepsze cechy języków niskiego i wysokiego poziomu, aby stworzyć dopracowany język programowania średniego poziomu.
  • Strukturalny — C jest językiem strukturalnym, co oznacza, że ​​programy w języku C są podzielone na wiele części.
  • Przenośny — po napisaniu programu w języku C można go uruchomić na dowolnej maszynie z minimalnymi zmianami lub bez zmian.
  • Szybko — C używa różnych typów danych i operatorów, dzięki czemu jest bardzo szybki i wydajny.
  • Rozszerzalny — C jest wysoce rozszerzalny, ponieważ może bezproblemowo dostosowywać się do nowych funkcji.
  • Zarządzanie pamięcią – C ma wbudowaną funkcję pamięci, która oszczędza pamięć i poprawia wydajność programu C.
  1. Jakie typy danych obsługuje C?

C ma cztery kategorie typów danych:

  • Podstawowy typ danych
  • Pochodny typ danych
  • Wyliczeniowy typ danych
  • Unieważniony typ danych
  1. Wyjaśnij „Dangling Pointer Variable” w języku C.

W programowaniu w C wskaźnik wskazuje lokalizację pamięci lub adres istniejącej zmiennej. Jeśli jednak ta zmienna zostanie usunięta, a wskaźnik skieruje się do tej samej lokalizacji w pamięci, nazywa się ją Zmienną Dangling Pointer.

  1. Co to jest „wskaźnik na wskaźniku”?

„Wskaźnik na wskaźniku” odnosi się do zmiennej wskaźnikowej, która przechowuje adres innej zmiennej wskaźnikowej. Zasadniczo wskaźnik odwołuje się dwukrotnie, aby wskazać dane zawarte w wyznaczonej zmiennej wskaźnikowej.

  1. Zdefiniuj „Tablica”.

Tablica to struktura danych zawierająca wiele elementów tego samego typu danych w zorganizowany sposób. Tablice są zwykle trzech typów: jednowymiarowe, dwuwymiarowe i trójwymiarowe.

  1. Co to jest zmienna statyczna? Dlaczego zmienne statyczne są używane w C?

Zmienna statyczna to taka, która jest deklarowana przez słowo kluczowe „Static”. Zmienna statyczna zachowuje swoją wartość między wieloma wywołaniami funkcji.

Zmienna statyczna jest używana jako wartość wspólna dla wszystkich metod i jest inicjowana tylko raz na stercie pamięci w celu zmniejszenia zużycia pamięci. Chociaż zmienna statyczna jest początkowo inicjowana na zero, jeśli zaktualizujesz wartość zmiennej, zaktualizowana wartość zostanie przypisana.

  1. Zdefiniuj „zakres” zmiennej.

Zakres zmiennej odnosi się do części kodu (funkcji), w której zmienna jest zadeklarowana. W języku programowania C wszystkie identyfikatory mają zakres statyczny lub leksykalny.

  1. Co to jest dynamiczne przydzielanie pamięci?

Dynamiczna alokacja pamięci to procedura przydzielania pamięci programowi w języku C i jego zmiennym w czasie wykonywania. Podczas gdy malloc(), calloc() i realloc() alokują pamięć, funkcja free() zwalnia zajętą ​​przestrzeń pamięci.

Przeczytaj : Pytania i odpowiedzi dotyczące wywiadu SQL

  1. Wyjaśnij różnicę między funkcjami calloc() i malloc().

W C zarówno calloc(), jak i malloc() to funkcje alokujące pamięć, które alokują pamięć z obszaru sterty (pamięć dynamiczna). Podstawowa różnica między dwiema funkcjami alokacji pamięci polega na tym, że calloc() ładuje wszystkie przypisane lokalizacje pamięci z wartością 0, podczas gdy malloc() nie.

  1. Wyjaśnij „Przydział pamięci statycznej”.

W przeciwieństwie do dynamicznej alokacji pamięci, która alokuje pamięć w czasie wykonywania, statyczna alokacja pamięci przydziela pamięć podczas kompilacji. Statyczna alokacja pamięci nie pozwala na zwiększenie alokacji pamięci podczas wykonywania programu C. Możesz zaimplementować pamięć statyczną za pomocą stosów/sterty i alokować pamięć za pomocą słowa kluczowego „Static”. Ogólnie rzecz biorąc, statyczna alokacja pamięci wymaga więcej miejsca w pamięci do przechowywania zmiennych niż dynamiczna alokacja pamięci.

  1. Nazwij kilka tokenów C?

Token to identyfikator. Jest to zwykle najmniejsza jednostka w programie C. Stałe, ciągi, słowa kluczowe, operatory, identyfikatory i znaki specjalne to kilka Tokenów C używanych do pisania programów w C.

  1. Czy kod C skompiluje się lub wykona bez funkcji main()?

W przypadku braku funkcji main(), program w C skompiluje się zamiast wykonywać, ponieważ funkcja main() jest obowiązkowa do uruchomienia dowolnego programu w C.

  1. Zdefiniuj „strukturę zagnieżdżoną”.

Struktura zagnieżdżona jest tworzona, gdy element lub element członkowski danych funkcji zawiera element członkowski danych innej struktury.

  1. Rozróżnij parametry rzeczywiste i formalne.

Aktualne parametry są wysyłane z funkcji podstawowej do funkcji subdivided, a parametry zadeklarowane jako funkcja Subdivided są nazywane parametrami formalnymi.

  1. Co to jest dyrektywa dotycząca preprocesorów?

Dyrektywa preprocesora to wbudowana, wstępnie zdefiniowana funkcja, która działa jako dyrektywa dla kompilatora w celu wykonania określonych zadań przed rozpoczęciem procesu kompilacji. Tak więc dyrektywa preprocesora jest zawsze wykonywana przed wykonaniem programu w C.

  1. Zdefiniuj „Argumenty wiersza polecenia”.

Argumenty przekazywane do funkcji main() podczas wykonywania programu w C są znane jako argumenty wiersza poleceń. Pierwszy argument oznacza liczbę argumentów i jest automatycznie aktualizowany przez system operacyjny. Drugi argument (tablica wskaźników znakowych) zawsze zawiera jako parametry łańcuchy.

  1. Jak przypisać parametry do funkcji?

Istnieją dwa sposoby przypisywania parametrów do funkcji:

  • Wywołaj według wartości — ta metoda jest wybierana tylko wtedy, gdy nie chcesz zmieniać rzeczywistych parametrów za pomocą parametrów formalnych, więc wysyłasz tylko kopię wartości jako parametry do funkcji.
  • Wywołaj przez odwołanie — w tym podejściu wysyłasz adres rzeczywistych parametrów, aby zmodyfikować je za pomocą parametrów formalnych.

Sprawdź: Pytania do wywiadu z deweloperem pełnego stosu

  1. Co to jest „Unia” w C?

W języku C Unia jest typem danych zdefiniowanym przez użytkownika, który może przechowywać wiele typów danych w jednej jednostce. Zawiera tylko pamięć największego członka zamiast całkowitej pamięci wszystkich członków. Ponieważ Unia przydziela wspólne miejsce dla wszystkich członków związku, możesz mieć dostęp tylko do jednej zmiennej na raz w Unii.

  1. Wyjaśnij „Rekurencja”.

Rekurencja ma miejsce, gdy funkcja wywołuje samą siebie, a funkcja, która sama siebie wywołuje, jest nazywana funkcją rekurencyjną. Funkcja rekurencyjna występuje w dwóch etapach:

  • Faza nawijania — gdy funkcja rekurencyjna wywołuje samą siebie i spełnia żądany warunek, faza nawijania się kończy.
  • Faza rozwijania – Po osiągnięciu fazy zwijania, faza rozwijania rozpoczyna się poprzez przywrócenie sterowania do pierwotnego wywołania.
  1. Jak zadeklarować funkcję w C?

Możesz zadeklarować funkcję w C w taki sposób:

return_type nazwa_funkcji (formalna lista parametrów)

{

Funkcja_Body;

}

  1. Co robi funkcja sprintf()?

Funkcja sprintf() służy do drukowania łańcuchów. Pobiera całkowitą liczbę znaków w ciągu. Ta funkcja przesyła dane do bufora, a co za tym idzie, nie wyświetla danych wyjściowych na ekranie. Składnia funkcji sprintf() to:

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

  1. Rozróżnić funkcje getch() i getche()?

W programie w C funkcja getch() odczytuje pojedynczy znak ze słowa kluczowego. Ponieważ używa żadnego bufora, nie wyświetli danych, które wpisujesz na ekranie. Wręcz przeciwnie, podczas gdy funkcja getche() odczytuje również pojedynczy znak ze słowa kluczowego, pokazuje dane na ekranie.

  1. Co to jest „R-wartość” i „I-wartość”?

Rvalue to wyrażenie, które znajduje się po prawej stronie operatora przypisania. Jest przypisywany do wartości I, która leży na operatorze przypisania. Wartość l musi odnosić się tylko do zmiennej, a nie do stałej.

  1. Nazwij różne specyfikatory klasy pamięci w C.

W C istnieją cztery specyfikatory pamięci:

  • Automatyczny
  • Statyczny
  • Zarejestrować
  • Zewnętrzny
  1. Czy jest jakaś różnica między deklarowaniem pliku nagłówkowego z „” a < >?

Jeśli zadeklarujesz plik nagłówkowy za pomocą „ ”, kompilator szuka pliku nagłówkowego w bieżącym katalogu roboczym, a jeśli nie znajdzie tam pliku, sonduje inne lokalizacje w celu znalezienia pliku nagłówkowego. Jeśli jednak zadeklarujesz plik nagłówkowy przy użyciu < >, kompilator wyszuka plik zgodnie z wbudowaną ścieżką.

Sprawdź: 15 wskazówek dotyczących rozmowy kwalifikacyjnej, aby wyróżnić się podczas rozmowy kwalifikacyjnej

Zapisz się na kursy inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

A więc gotowe: pytania i odpowiedzi na rozmowę kwalifikacyjną 25 C, które pomogą Ci przygotować się do następnej rozmowy kwalifikacyjnej. Chociaż te pytania tylko zarysowują powierzchnię programowania w C, miejmy nadzieję, że dadzą ci wyobrażenie o tym, czego możesz się spodziewać podczas wywiadów w C!

Jeśli chcesz dowiedzieć się więcej o tworzeniu oprogramowania z pełnym pakietem, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie tworzenia oprogramowania z pełnym pakietem, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Zostań programistą Full Stack

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania