100 najpopularniejszych pytań i odpowiedzi na temat rozmów kwalifikacyjnych dotyczących programowania w języku C (PDF)

Oto pytania i odpowiedzi dotyczące rozmów kwalifikacyjnych w zakresie programowania C, przeznaczone zarówno dla nowszych, jak i doświadczonych kandydatów, którzy chcą zdobyć wymarzoną pracę.

 

Pytania i odpowiedzi do rozmowy kwalifikacyjnej dotyczące podstawowego programowania w języku C dla nowicjuszy

1) Jak skonstruować instrukcję inkrementacji lub dekrementacji w C?

Istnieją dwa sposoby, aby to zrobić. Jednym z nich jest użycie operatora inkrementacji ++ i operatora dekrementacji –. Na przykład, polecenie „x++” oznacza zwiększenie wartości x o 1. Podobnie polecenie „x –” oznacza zmniejszenie wartości x o 1. Innym sposobem pisania poleceń inkrementacji jest użycie konwencjonalnego znaku + plus lub znaku – minus. W przypadku „x++” innym sposobem zapisu jest „x = x +1”.

👉 Bezpłatne pobieranie pliku PDF: Pytania i odpowiedzi dotyczące wywiadu dotyczącego programowania C >>


2) Jaka jest różnica pomiędzy Call by Value a Call by Reference?

Używając Call by Value, wysyłasz wartość zmiennej jako parametr do funkcji, podczas gdy Call by Reference wysyła adres zmiennej. Ponadto, w Call by Value, wartość w parametrze nie jest zmieniana przez jakąkolwiek operację, która ma miejsce, podczas gdy w przypadku Call by Reference, wartości mogą być zmieniane przez proces wewnątrz funkcji.

Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej na temat programowania C


3) Niektórzy programiści debugują swoje programy, umieszczając symbole komentarzy na niektórych kodach zamiast je usuwać. W jaki sposób pomaga to w debugowaniu?

Umieszczanie symboli komentarza /* */ wokół kodu, zwane także „komentowaniem”, to sposób na wyizolowanie niektórych kodów, które Twoim zdaniem mogą powodować błędy w programie, bez usuwania kodu. Pomysł jest taki, że jeśli kod jest rzeczywiście poprawny, po prostu usuwasz symbole komentarza i kontynuujesz. Oszczędza to także czas i wysiłek związany z koniecznością ponownego wpisywania kodów, jeśli zostały one wcześniej usunięte.


4) Jaki jest kod równoważny poniższemu stwierdzeniu w formacie WHILE LOOP?

for (a=1; a<=100; a++)

printf ("%d\n", a * a);

Odpowiedź:

a=1;

while (a<=100) {

printf ("%d\n", a * a);

a++;

}

5) Co to jest stos?

Stos jest jedną z form struktury danych. Dane są przechowywane na stosach przy użyciu metody FILO (First In Last Out). W każdym konkretnym przypadku dostępna jest tylko górna część stosu, co oznacza, że ​​aby odzyskać dane przechowywane na stosie, należy najpierw wyodrębnić dane znajdujące się na górnej części stosu. Przechowywanie danych na stosie jest również określane jako PUSH, natomiast pobieranie danych jest określane jako POP.


6) Co to jest plik dostępu sekwencyjnego?

Pisząc programy, które będą przechowywać i pobierać dane z pliku, możliwe jest przypisanie tego pliku do różnych postaci. Plik o dostępie sekwencyjnym to taki, w którym dane są zapisywane w kolejności sekwencyjnej: jedne dane są umieszczane w pliku po drugim. Aby uzyskać dostęp do określonych danych w pliku dostępu sekwencyjnego, należy odczytywać dane pojedynczo, aż do znalezienia właściwych.


7) Co to jest inicjalizacja zmiennej i dlaczego jest ważna?

Odnosi się to do procesu, w którym zmiennej przypisywana jest wartość początkowa przed jej użyciem w programie. Bez inicjalizacji zmienna miałaby nieznaną wartość, co może prowadzić do nieprzewidywalnych wyników, gdy jest używana w obliczeniach lub innych operacjach.


8 Co to jest programowanie spaghetti?

Programowanie spaghetti odnosi się do kodów, które mają tendencję do plątania się i nakładania na siebie w całym programie. To niestrukturalne podejście do kodowania jest zwykle przypisywane brakowi doświadczenia ze strony programisty. Programowanie spaghetti sprawia, że ​​program jest złożony, a analiza kodów trudna, dlatego należy go unikać w miarę możliwości.


9) Odróżnij kody źródłowe od kodów obiektowych

Kody źródłowe to kody napisane przez programistę. Składa się z poleceń i innych słów kluczowych przypominających język angielski, które mają instruować komputer, co ma robić. Jednak komputery nie byłyby w stanie zrozumieć kodów źródłowych. Dlatego kody źródłowe są kompilowane przy użyciu kompilatora. Wynikowe dane wyjściowe to kody obiektowe w formacie zrozumiałym dla procesora komputera. W Programowanie C, kody źródłowe zapisywane są z rozszerzeniem pliku .C, natomiast kody wynikowe są zapisywane z rozszerzeniem pliku .OBJ


10) Jak w programowaniu w C wstawia się cudzysłowy („ i „) na ekranie wyjściowym?

To częsty problem dla początkujących, ponieważ cudzysłowy są zazwyczaj częścią instrukcji printf. Aby wstawić znak cudzysłowu jako część wyjścia, użyj specyfikatorów formatu \' (dla pojedynczego cudzysłowu) i \” (dla podwójnego cudzysłowu).


11) Jakie jest zastosowanie znaku „\0”?

Nazywa się go końcowym znakiem null i służy przede wszystkim do oznaczania końca wartości ciągu.


12) Jaka jest różnica między symbolem = a symbolem ==?

Symbol = jest często używany w operacjach matematycznych. Służy do przypisywania wartości danej zmiennej. Z drugiej strony symbol ==, znany również jako „równy” lub „równoważny”, jest operatorem relacyjnym, który służy do porównywania dwóch wartości.


13) Co to jest operator modułu?

Operator modulus wyprowadza resztę z dzielenia. Wykorzystuje symbol procentu (%). Na przykład: 10 % 3 = 1, co oznacza, że ​​gdy dzielisz 10 przez 3, reszta wynosi 1.


14) Co to jest pętla zagnieżdżona?

Pętla zagnieżdżona to pętla działająca w obrębie innej pętli. Ujmując to w inny sposób, masz wewnętrzną pętlę, która znajduje się wewnątrz zewnętrznej pętli. W tym scenariuszu pętla wewnętrzna jest wykonywana tyle razy, ile określono w pętli zewnętrznej. Dla każdego zwoju pętli zewnętrznej najpierw wykonywana jest pętla wewnętrzna.


15) Który z poniższych operatorów jest niepoprawny i dlaczego? ( >=, <=, <>, ==)

<> jest niepoprawne. Chociaż ten operator jest poprawnie interpretowany jako „nierówny” w pisaniu instrukcji warunkowych, nie jest to właściwy operator do użycia w Programowanie CZamiast tego należy użyć operatora !=, aby wskazać warunek „różny od”.


16) Porównaj i porównaj kompilatory z interpreterami.

Kompilatory i interpretery często zajmują się sposobem wykonywania kodów programów. Interpretatory wykonują kody programu po jednym wierszu na raz, podczas gdy kompilatory biorą program jako całość i konwertują go na kod obiektowy przed jego wykonaniem. Kluczowa różnica polega na tym, że w przypadku interpreterów program może napotkać błędy składniowe w trakcie wykonywania i wtedy się zatrzyma. Z drugiej strony kompilatory sprawdzają składnię całego programu i przystępują do wykonania dopiero wtedy, gdy nie znajdą żadnych błędów składniowych.


17) Jak zadeklarować zmienną, która będzie przechowywać wartości łańcuchowe?

Słowo kluczowe char może przechowywać tylko 1 wartość znaku na raz. Tworząc tablicę znaków, możesz przechowywać w niej wartości ciągu. Przykład: „char MyName[50]; ” deklaruje zmienną ciągu o nazwie MyName, która może przechowywać maksymalnie 50 znaków.


18) Czy nawiasy klamrowe { } można wykorzystać do umieszczenia pojedynczej linii kodu?

Podczas gdy nawiasy klamrowe są używane głównie do grupowania kilku wierszy kodu, nadal będą działać bezbłędnie, jeśli użyjesz ich do pojedynczego wiersza. Niektórzy programiści wolą tę metodę jako sposób organizowania kodów, aby wyglądały jaśniej, szczególnie w instrukcjach warunkowych.


19) Co to są pliki nagłówkowe i jakie są ich zastosowania w programowaniu w C?

Pliki nagłówkowe są również nazywane plikami bibliotek. Zawierają dwie istotne rzeczy: definicje i prototypy funkcji używanych w programie. Mówiąc najprościej, polecenia używane w programowaniu w C są w rzeczywistości funkcjami zdefiniowanymi w każdym pliku nagłówkowym. Każdy plik nagłówkowy zawiera zestaw funkcji. Na przykład: stdio.h to plik nagłówkowy zawierający definicję i prototypy poleceń takich jak printf i scanf.


20) Co to jest błąd składniowy?

Błędy składniowe są związane z błędami w użyciu języka programowania. Być może było to polecenie błędnie napisane lub polecenie, które należało wprowadzić małymi literami, ale zamiast tego wprowadzono je z użyciem dużej litery. Źle umieszczony symbol lub jego brak gdzieś w wierszu kodu może również prowadzić do błędu składniowego.


21) Co to są zmienne i czym różnią się od stałych?

Zmienne i stałe mogą na pierwszy rzut oka wyglądać podobnie, w tym sensie, że oba są identyfikatorami składającymi się z jednego lub więcej znaków (liter, cyfr i kilku dozwolonych symboli). Oba będą również posiadać określoną wartość. Wartości przechowywane przez zmienną mogą być zmieniane w całym programie i mogą być używane w większości operacji i obliczeń. Stałym nadawane są wartości tylko jednorazowo, umieszczane na początku programu. Wartość ta nie jest zmieniana w programie. Na przykład możesz przypisać stałą o nazwie PI i nadać jej wartość 3.1415. Następnie możesz jej używać jako PI w programie, zamiast pisać 3.1415 za każdym razem, gdy jej potrzebujesz.


22) Jak uzyskać dostęp do wartości w tablicy?

Tablice zawierają pewną liczbę elementów, w zależności od rozmiaru, jaki nadałeś im podczas deklaracji zmiennej. Każdemu elementowi przypisana jest liczba od 0 do liczby elementów-1. Aby przypisać lub pobrać wartość konkretnego elementu, należy zapoznać się z numerem elementu. Na przykład: jeśli masz deklarację „intscores[5];”, to masz 5 dostępnych elementów, a mianowicie: scores[0], scores[1], scores[2], scores[3] i scores[4 ]


23) Czy mogę użyć typu danych „int” do przechowywania wartości 32768? Dlaczego?

Nie. Typ danych „int” może przechowywać wartości od -32768 do 32767. Aby zapisać 32768, możesz zamiast tego użyć „long int”. Możesz także użyć „unsigned int”, zakładając, że nie zamierzasz przechowywać wartości ujemnych.


24) Czy dwa lub więcej operatorów, takich jak \n i \t, można połączyć w jednym wierszu kodu programu?

Tak, łączenie operatorów jest jak najbardziej dopuszczalne, zwłaszcza jeśli zajdzie taka potrzeba.
Na przykład: możesz mieć kod taki jak printf (“Hello\n\n\’World\'”) aby wypisać tekst „Hello” w pierwszym wierszu i „Świat” ujęty w pojedyncze cudzysłowy, który pojawi się w dwóch kolejnych wierszach.

25) Dlaczego nie wszystkie pliki nagłówkowe są deklarowane w każdym programie C?

Wybór zadeklarowania pliku nagłówkowego na górze każdego programu C będzie zależał od poleceń/funkcji, których będziesz używać w tym programie. Ponieważ każdy plik nagłówkowy zawiera różne definicje funkcji i prototypy, będziesz używać tylko tych plików nagłówkowych, które będą zawierać potrzebne funkcje. Zadeklarowanie wszystkich plików nagłówkowych w każdym programie zwiększyłoby jedynie ogólny rozmiar pliku i obciążenie programu i nie jest uważane za dobry styl programowania.


26) Kiedy w funkcji używane jest słowo kluczowe „void”?

Deklarując funkcje, decydujesz, czy funkcja ta będzie zwracać wartość, czy nie. Jeśli ta funkcja nie zwróci wartości, na przykład gdy celem funkcji jest wyświetlenie niektórych wyników na ekranie, wówczas „void” należy umieścić w skrajnej lewej części nagłówka funkcji. Gdy po wykonaniu funkcji oczekiwana jest wartość zwracana, zamiast „void” umieszczany jest typ danych zwracanej wartości.


27) Co to są instrukcje złożone?

Instrukcje złożone składają się z dwóch lub więcej instrukcji programu, które są wykonywane razem. Zwykle ma to miejsce podczas obsługi warunków, w których seria instrukcji jest wykonywana, gdy oceniana jest wartość TRUE lub FALSE. Instrukcje złożone mogą być również wykonywane w pętli. Przed i po instrukcjach złożonych umieszczane są nawiasy klamrowe { }.


28) Jakie znaczenie ma algorytm w programowaniu w C?

Zanim będzie można napisać program, należy najpierw stworzyć algorytm. Algorytm zapewnia procedurę krok po kroku znalezienia rozwiązania. Działa również jako plan rozpoczęcia i zakończenia programu, w tym związane z nim procesy i obliczenia.


29) Jaka jest przewaga tablicy nad pojedynczymi zmiennymi?

W przypadku przechowywania wielu powiązanych danych dobrym pomysłem jest użycie tablic. Dzieje się tak, ponieważ nazwy tablic składają się tylko z 1 słowa, po którym następuje numer elementu. Przykładowo: do przechowywania 10 wyników testów 1 ucznia można użyć 10 różnych nazw zmiennych (ocena1, ocena2, ocena3…ocena10). W przypadku tablic używana jest tylko 1 nazwa, pozostałe są dostępne poprzez nazwę indeksu (ocena[0], ocena[1], ocena[2]… ocena[9]).


30) Napisz instrukcję pętli, która wyświetli następujący wynik:

1

12

123

1234

12345

Odpowiedź:

for (a=1; a<=5; i++) {

for (b=1; b<=a; b++)

printf("%d",b);

printf("\n");

}

Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej z zakresu programowania C dla doświadczonych

31) Co jest nie tak w tym stwierdzeniu? scanf(“%d”,jakaliczba);

Przed nazwą zmiennej whatnumber należy umieścić ampersand i symbol. Umieszczenie & oznacza, że ​​wartość całkowita wprowadzona przez użytkownika jest przechowywana pod „adresem” nazwy zmiennej. Jest to częsty błąd programistów, często prowadzący do błędów logicznych.


32) Jak generować liczby losowe w języku C?

Liczby losowe są generowane w języku C przy użyciu rand() command. Na przykład: anyNum = rand() wygeneruje dowolną liczbę całkowitą zaczynającą się od 0, zakładając, że anyNum jest zmienną typu integer.


33) Jaki może być problem, jeśli kompilator C zgłasza prawidłową nazwę funkcji, taką jak tolower() jako niezdefiniowaną?

Najbardziej prawdopodobną przyczyną tego błędu jest to, że plik nagłówkowy tej funkcji nie został wskazany na górze programu. Pliki nagłówkowe zawierają definicję i prototyp funkcji i poleceń używanych w programie C. W przypadku „tolower()” kod „#include ” musi być obecne na początku programu.


34) Czym są komentarze i jak je wstawić do programu w C?

Komentarze to świetny sposób na umieszczenie uwag lub opisu w programie. Może służyć jako przypomnienie, o co chodzi w programie, lub też opis, dlaczego w ogóle umieszczono w nim dany kod lub funkcję. Komentarze zaczynają się od /* i kończą znakami */. Komentarze mogą obejmować pojedynczą linię lub nawet kilka linii. Można go umieścić w dowolnym miejscu programu.


35) Co to jest debugowanie?

Debugowanie to proces identyfikowania błędów w programie. Podczas kompilacji programu wykryte błędy spowodują całkowite zatrzymanie działania programu. W tym stanie programista sprawdza możliwe fragmenty, w których wystąpił błąd. Debugowanie zapewnia usunięcie błędów i odgrywa ważną rolę w zapewnieniu spełnienia oczekiwanych wyników programu.


36) Co robi operator && w kodzie programu?

Operator && jest również nazywany operatorem AND. Podczas używania tego operatora wszystkie określone warunki muszą być PRAWDĄ, zanim będzie można wykonać następną akcję. Jeśli masz 10 warunków i wszystkie oprócz jednego nie zostaną ocenione jako PRAWDA, całe stwierdzenie warunku zostanie już ocenione jako FAŁSZ.


37) Jakiego polecenia lub kodu można użyć w programowaniu w C, aby określić, czy liczba jest parzysta, czy nieparzysta?

Nie ma jednego polecenia lub funkcja w C który może sprawdzić, czy liczba jest nieparzysta czy parzysta. Można to jednak osiągnąć dzieląc tę ​​liczbę przez 2, a następnie sprawdzając resztę. Jeśli reszta wynosi 0, to liczba jest parzysta, w przeciwnym razie jest nieparzysta. Można to zapisać w kodzie jako:

if (num % 2 == 0)

printf("EVEN");

else

printf("ODD");

38) Co oznacza format %10.2, gdy jest zawarty w instrukcji printf?

Tego formatu używa się do dwóch celów: do ustawienia liczby spacji przydzielonych na liczbę wyjściową i do ustawienia liczby miejsc po przecinku. Liczba przed przecinkiem oznacza przydzielone miejsce, w tym przypadku przydzieliłoby 10 spacji na liczbę wyjściową. Jeżeli ilość miejsca zajmowanego przez numer wyjścia jest mniejsza niż 10, przed rzeczywistym numerem wyjścia zostaną wstawione dodatkowe znaki spacji. Liczba po przecinku określa liczbę miejsc po przecinku, w tym przypadku są to 2 miejsca po przecinku.


39) Czym są błędy logiczne i czym różnią się od błędów składniowych?

Programy zawierające błędy logiczne zwykle przechodzą proces kompilacji, ale wynikowy wynik może różnić się od oczekiwanego. Dzieje się tak w przypadku wstawienia do kodu błędnej formuły lub wykonania błędnej sekwencji poleceń. Z drugiej strony błędy składniowe dotyczą niepoprawnych poleceń, które są błędnie napisane lub nierozpoznane przez kompilator.


40) Jakie są różne typy struktur kontrolnych w programowaniu?

W programowaniu istnieją 3 główne struktury kontrolne: sekwencja, selekcja i powtarzanie. Sterowanie sekwencyjne przebiega według kolejności wykonywania programu od góry do dołu, tak że najpierw wykonywany jest krok 1, następnie krok 2, aż do wykonania ostatniego kroku. Wybór dotyczy instrukcji warunkowych, co oznacza, że ​​kody są wykonywane w zależności od oceny warunków jako PRAWDA lub FAŁSZ. Oznacza to również, że nie wszystkie kody mogą zostać wykonane i istnieją alternatywne przepływy. Powtórzenia są również znane jako struktury pętli i powodują powtórzenie jednej lub dwóch instrukcji programu ustawionych przez licznik.


41) Co to jest operator || i jak działa w programie?

|| jest również znany jako operator OR w programowaniu C. Podczas używania || do oceny warunków logicznych, każdy warunek, który jest oceniany jako TRUE, spowoduje, że całe stwierdzenie warunku będzie TRUE.


42) Czy można używać funkcji „if” do porównywania ciągów znaków?

Nie. Komendy „if” można używać wyłącznie do porównywania wartości numerycznych i wartości jednoznakowych. Do porównywania wartości ciągów służy inna funkcja o nazwie strcmp, która zajmuje się konkretnie ciągami.


43) Czym są dyrektywy preprocesora?

Dyrektywy preprocesora są umieszczane na początku każdego programu w C. W tym miejscu określane są pliki bibliotek, które zależą od tego, jakie funkcje mają być używane w programie. Innym zastosowaniem dyrektyw preprocesora jest deklaracja stałych. Dyrektywy preprocesora zaczynają się od symbolu #.


44) Jaki będzie wynik następującego polecenia warunkowego, jeśli wartość zmiennej s wynosi 10?

s >=10 && s < 25 && s!=12

Wynik będzie PRAWDA. Ponieważ wartość s wynosi 10, s >= 10 jest oceniane jako PRAWDA, ponieważ s nie jest większe od 10, ale nadal jest równe 10. s< 25 jest również PRAWDA, ponieważ 10 jest mniejsze od 25. Tak samo, s!=12, co oznacza, że ​​s nie jest równe 12, jest oceniane jako PRAWDA. && jest operatorem AND i podąża za regułą, że jeśli wszystkie poszczególne warunki są PRAWDA, całe stwierdzenie jest PRAWDA.


45) Opisz kolejność pierwszeństwa operatorów w języku C.

Kolejność pierwszeństwa określa, która operacja musi zostać wykonana jako pierwsza w instrukcji operacyjnej lub instrukcji warunkowej. Na najwyższym poziomie pierwszeństwa znajdują się operatory jednoargumentowe !, +, – i &. Następnie następują regularne operatory matematyczne (najpierw *, / i modulus %, a następnie + i -). Następne w kolejności są operatory relacyjne <, <=, >= i >. Następnie następują dwa operatory równości == i !=. Następnie oceniane są operatory logiczne && i ||. Na ostatnim poziomie znajduje się operator przypisania =.


46) Co jest nie tak z tym stwierdzeniem? mojeNazwa = „Robin”;

Nie można używać znaku = do przypisywania wartości do zmiennej łańcuchowej. Zamiast tego użyj funkcji strcpy. Prawidłowa instrukcja brzmiałaby: strcpy(myName, „Robin”);


47) Jak określić długość ciągu znaków zapisanego w zmiennej?

Aby uzyskać długość wartości ciągu, użyj funkcji strlen(). Na przykład, jeśli masz zmienną o nazwie FullName, możesz uzyskać długość przechowywanej wartości ciągu, używając tej instrukcji: I = strlen(FullName); zmienna Będę teraz mieć długość znaku wartości ciągu.


48) Czy można zainicjować zmienną w momencie jej zadeklarowania?

Tak, nie musisz pisać oddzielnego polecenia przypisania po deklaracji zmiennej, chyba że planujesz je później zmienić. Na przykład: char planet[15] = “Earth”; robi dwie rzeczy: deklaruje zmienną typu string o nazwie planet, a następnie inicjuje ją wartością “Earth”.


49) Dlaczego język C jest uważany za język średniego poziomu?

Dzieje się tak, ponieważ język C jest bogaty w funkcje, które sprawiają, że zachowuje się jak język wysokiego poziomu, a jednocześnie może współdziałać ze sprzętem za pomocą metod niskiego poziomu. Zastosowanie dobrze ustrukturyzowanego podejścia do programowania, w połączeniu ze słowami podobnymi do angielskiego używanymi w funkcjach, sprawia, że ​​zachowuje się jak język wysokiego poziomu. Z drugiej strony, C może bezpośrednio uzyskiwać dostęp do struktur pamięci, podobnie jak procedury języka asemblera.


50) Jakie są różne rozszerzenia plików stosowane podczas programowania w C?

Kody źródłowe w języku C są zapisywane z rozszerzeniem pliku .C. Pliki nagłówkowe lub pliki bibliotek mają rozszerzenie .H. Za każdym razem, gdy kod źródłowy programu zostanie pomyślnie skompilowany, tworzony jest plik obiektowy .OBJ i wykonywalny plik .EXE.


51) Co to są słowa zastrzeżone?

Słowa zastrzeżone to słowa będące częścią standardowej biblioteki języka C. Oznacza to, że słowa zastrzeżone mają specjalne znaczenie i dlatego nie mogą być używane do celów innych niż te, do których zostały pierwotnie przeznaczone. Przykładami słów zastrzeżonych są int, void i return.


52) Co to są listy połączone?

Lista połączona składa się z węzłów połączonych ze sobą. W programowaniu C listy połączone są tworzone za pomocą wskaźników. Korzystanie z list połączonych to skuteczny sposób wykorzystania pamięci do przechowywania.


53) Co to jest FIFO?

W programowaniu w języku C istnieje struktura danych zwana kolejką. W tej strukturze dane są przechowywane i dostępne w formacie FIFO, czyli „pierwsze weszło, pierwsze wyszło”. Kolejka reprezentuje linię, w której pierwsze zapisane dane będą również pierwszymi dostępnymi.


54) Czym są drzewa binarne?

Drzewa binarne są w rzeczywistości rozszerzeniem koncepcji list połączonych. Drzewo binarne ma dwa wskaźniki, lewy i prawy. Każda strona może dalej się rozgałęziać, tworząc dodatkowe węzły, z których każdy ma również dwa wskaźniki. Dowiedz się więcej o Drzewo binarne w strukturze danych Jeśli jesteś zainteresowany.


55) Nie wszystkie zastrzeżone słowa są pisane małymi literami. Prawda czy fałsz?

FAŁSZ. Wszystkie zastrzeżone słowa muszą być pisane małymi literami; w przeciwnym razie kompilator C zinterpretowałby to jako niezidentyfikowane i nieprawidłowe.


56) Jaka jest różnica między wyrażeniem „++a” i „a++”?

W pierwszym wyrażeniu inkrementacja nastąpi najpierw w zmiennej a, a wynikowa wartość będzie tą, która zostanie użyta. Jest to również znane jako inkrementacja prefiksowa. W drugim wyrażeniu bieżąca wartość zmiennej a będzie tą, która zostanie użyta w operacji, zanim wartość samej a zostanie zwiększona. Jest to również znane jako inkrementacja postfiksowa.


57) Co by się stało z X w tym wyrażeniu: X += 15; (zakładając, że wartość X wynosi 5)

X +=15 to krótka metoda zapisu X = X + 15, więc jeśli początkowa wartość X wynosi 5, to 5 + 15 = 20.


58) W języku C zmienne NAZWA, nazwa i Nazwa są takie same. Prawda czy fałsz?

FAŁSZ. Język C to język, w którym rozróżniana jest wielkość liter. Dlatego NAZWA, nazwa i nazwa są trzema jednoznacznie różnymi zmiennymi.


59) Co to jest nieskończona pętla?

Pętla nieskończona może oznaczać dwie rzeczy. Po pierwsze, została zaprojektowana tak, aby zapętlać się w sposób ciągły, aż do spełnienia warunku w pętli, po czym funkcja break powodowałaby wyjście programu z pętli. Innym pomysłem pętli nieskończonej jest sytuacja, gdy napisano nieprawidłowy warunek pętli, powodujący, że pętla będzie błędnie działać w nieskończoność. Pętle nieskończone są często nazywane pętlami nieskończonymi.


60) Co to jest schemat blokowy programu i jak pomaga w pisaniu programu?

Schemat blokowy zapewnia wizualną reprezentację procedury krok po kroku prowadzącej do rozwiązania danego problemu. Schematy blokowe składają się z symboli, a każdy symbol ma postać różnych kształtów. Każdy kształt może reprezentować konkretny element w całej strukturze programu, taki jak proces, warunek, a nawet fazę wejścia/wyjścia.


61) Co jest nie tak z tym oświadczeniem programowym? nieważne = 10;

Słowo void jest słowem zastrzeżonym w języku C. Nie można używać słów zastrzeżonych jako zmiennej zdefiniowanej przez użytkownika.


62) Czy to oświadczenie programowe jest ważne? INT = 10.50;

Zakładając, że INT jest zmienną typu float, stwierdzenie to jest prawidłowe. Można pomyśleć, że INT jest słowem zastrzeżonym i nie można go używać do innych celów. Należy jednak pamiętać, że słowa zastrzeżone są pisane małymi literami, więc kompilator C nie zinterpretuje tego jako słowa zastrzeżonego.


63) Jakie są faktyczne argumenty?

Kiedy tworzysz i używasz funkcji, które muszą wykonać akcję na określonych wartościach, musisz przekazać te wartości do tej funkcji. Wartości przekazywane do wywoływanej funkcji nazywane są rzeczywistymi argumentami.


64) Co to jest sekwencja ucieczki nowej linii?

Sekwencja ucieczki nowej linii jest reprezentowana przez znak \n. Służy do wstawiania nowej linii podczas wyświetlania danych na ekranie wyjściowym. Więcej spacji można dodać, wstawiając więcej \n znaków. Na przykład \n\n wstawi dwie spacje. Sekwencję ucieczki nowej linii można umieścić przed rzeczywistym wyrażeniem wyjściowym lub po.


65) Co to jest przekierowanie wyjścia?

Jest to proces przesyłania danych do alternatywnego źródła wyjściowego innego niż ekran wyświetlacza. Przekierowanie wyjściowe pozwala programowi na zapisanie swojego wyjścia do pliku. Na przykład, jeśli masz program o nazwie COMPUTE, wpisanie tego w wierszu poleceń jako COMPUTE >DATA może przyjąć dane wejściowe od użytkownika, wykonać pewne obliczenia, a następnie przekierować wyjście do pliku o nazwie DATA, zamiast pokazywać je na ekranie.


66) Czym są błędy wykonania?

Są to błędy, które występują podczas wykonywania programu. Jednym z powszechnych przypadków, w których błędy czasu wykonania mogą się zdarzyć, jest próba podzielenia liczby przez zero. Gdy wystąpią błędy czasu wykonania, wykonywanie programu zostanie wstrzymane, pokazując, który wiersz programu spowodował błąd.


67) Jaka jest różnica pomiędzy funkcjami abs() i fabs()?

Te dwie funkcje wykonują zasadniczo tę samą czynność, czyli pobranie wartości bezwzględnej podanej wartości. Abs() jest używane dla wartości całkowitych, podczas gdy fabs() jest używane dla liczb typu zmiennoprzecinkowego. Ponadto prototyp dla abs() znajduje się pod , podczas gdy fabs() jest pod .


68) Co to są parametry formalne?

Podczas używania funkcji w programie C parametry formalne zawierają wartości przekazane przez funkcję wywołującą. Wartości są podstawiane w tych parametrach formalnych i używane w dowolnych operacjach wskazanych w treści głównej wywoływanej funkcji.


69) Czym są struktury kontrolne?

Struktury kontrolne przejmują kontrolę nad tym, które instrukcje mają być wykonane w programie. Oznacza to, że przebieg programu niekoniecznie musi przechodzić z jednej instrukcji do następnej, ale raczej może zaistnieć potrzeba przejścia lub pominięcia niektórych alternatywnych części, w zależności od wyniku instrukcji warunkowych.


70) Napisz prosty fragment kodu, który sprawdzi, czy liczba jest dodatnia, czy ujemna

If (num>=0)

printf("number is positive");

else

printf ("number is negative");

71) Kiedy instrukcja „przełącznik” jest lepsza od instrukcji „jeśli”?

Kurs instrukcja switch najlepiej stosować, gdy mamy do czynienia z selekcjami opartymi na pojedynczej zmiennej lub wyrażeniu. Jednakże instrukcje switch mogą oceniać tylko typy danych całkowite i znakowe.


72) Co to są zmienne globalne i jak je deklarować?

Zmienne globalne to zmienne, do których można uzyskać dostęp i którymi można manipulować w dowolnym miejscu programu. Aby uczynić zmienną globalną, umieść deklarację zmiennej w górnej części programu, tuż za sekcją dyrektyw preprocesora.


73) Co to są typy wyliczone?

Typy wyliczeniowe pozwalają programiście używać bardziej znaczących słów jako wartości zmiennej. Każdy element wyliczonej zmiennej typu jest w rzeczywistości powiązany z kodem numerycznym. Na przykład można utworzyć zmienną typu wyliczeniowego o nazwie DAYS, której wartości wynoszą Monday, wtorek… niedziela.


74) Do czego służy funkcja toupper()?

Służy do konwersji dowolnej litery na tryb wielkich liter. Zadeklarowano prototyp funkcji Toupper(). . Należy pamiętać, że ta funkcja konwertuje tylko pojedynczy znak, a nie cały ciąg.


75) Czy możliwe jest posiadanie funkcji jako parametru w innej funkcji?

Tak, jest to dozwolone w programowaniu w C. Wystarczy umieścić cały prototyp funkcji w polu parametrów innej funkcji, w której ma ona zostać użyta.


76) Co to są tablice wielowymiarowe?

Tablice wielowymiarowe umożliwiają przechowywanie danych w strukturze dwu- lub więcejwymiarowej. Na przykład możesz użyć tablicy dwuwymiarowej do przechowywania aktualnej pozycji pionków w grze w szachy lub pozycji graczy w programie w kółko i krzyżyk.


77) Której funkcji w C można użyć do dołączenia ciągu znaków do innego ciągu?

Funkcja strcat. Do ciągu źródłowego należy dołączyć dwa parametry, ciąg źródłowy i wartość ciągu.


78) Jaka jest różnica pomiędzy funkcjami getch() i getche()?

Obie funkcje akceptują wartość wprowadzoną przez użytkownika. Podczas korzystania z getch() naciśnięty klawisz nie pojawi się na ekranie i zostanie automatycznie przechwycony i przypisany do zmiennej. W przypadku użycia funkcji getche() na ekranie pojawi się klawisz, który użytkownik nacisnął, będąc jednocześnie przypisanym do zmiennej.


79) Czy te dwie instrukcje programu dają ten sam wynik? 1) scanf(“%c”, &litera); 2) litera=getchar()

Tak, oba robią dokładnie to samo, czyli przyjmują kolejny naciśnięty przez użytkownika klawisz i przypisują go do zmiennej o nazwie litera.


80) Jakie są typy struktur w C?

Typy struktur są używane głównie do przechowywania rekordów. Rekord składa się z powiązanych pól. Ułatwia to organizowanie grupy powiązanych danych.


81) Co oznaczają znaki „r” i „w” podczas pisania programów, które będą korzystać z plików?

„r” oznacza „odczytaj” i otworzy plik jako dane wejściowe, z których mają zostać pobrane dane. „w” oznacza „zapis” i otworzy plik do wydrukowania. Poprzednie dane zapisane w tym pliku zostaną usunięte.


82) Jaka jest różnica między plikami tekstowymi a plikami binarnymi?

Pliki tekstowe zawierają dane, które mogą być łatwo zrozumiane przez ludzi. Zawierają litery, cyfry i inne znaki. Z drugiej strony pliki binarne zawierają jedynki i zera, które mogą interpretować tylko komputery.


83) czy można tworzyć własne pliki nagłówkowe?

Tak, możliwe jest utworzenie niestandardowego pliku nagłówkowego. Po prostu umieść w nim prototypy funkcji, których chcesz użyć w swoim programie i użyj dyrektywy #include, po której następuje nazwa pliku nagłówkowego.


84) Co to jest dynamiczna struktura danych?

Dynamiczna struktura danych umożliwia bardziej efektywne przechowywanie danych w pamięci. Używanie Używanie dynamiczna alokacja pamięci, Twój program będzie miał dostęp do przestrzeni pamięci w miarę potrzeb. Kontrastuje to ze statyczną strukturą danych, w której programista musi wskazać stałą liczbę miejsca w pamięci, które ma być wykorzystane w programie.


85) Jakie są różne typy danych w C?

Podstawy typy danych w C są int, char i float. Int jest używany do deklarowania zmiennych, które będą przechowywać wartości całkowite. Float jest używany do przechowywania liczb rzeczywistych. Char może przechowywać wartości pojedynczych znaków.


86) Jaka jest ogólna postać programu w C?

Program AC rozpoczyna się od dyrektyw preprocesora, w których programista określa, który plik nagłówkowy i jakie stałe (jeśli w ogóle) mają zostać użyte. Po nim następuje nagłówek funkcji głównej. W funkcji głównej znajduje się deklaracja zmiennej i instrukcja programu.


87) Jaka jest zaleta pliku o swobodnym dostępie?

Jeżeli ilość danych przechowywanych w pliku jest dość duża, zastosowanie losowego dostępu pozwoli na szybsze jego przeszukiwanie. Gdyby był to plik o dostępie sekwencyjnym, konieczne byłoby przeglądanie jednego rekordu na raz, aż dotrzesz do danych docelowych. Plik o dostępie swobodnym pozwala przejść bezpośrednio do adresu docelowego, pod którym znajdują się dane.


88) Co się stanie w instrukcji switch, jeśli pominięto instrukcję break?

Jeśli instrukcja break nie została umieszczona na końcu konkretnej części sprawy? Przejdzie do następnej części sprawy, co może spowodować nieprawidłowe wyniki.


89) Opisz, w jaki sposób tablice mogą być przekazywane do funkcji zdefiniowanej przez użytkownika

Należy zauważyć, że nie można przekazać całej tablicy do funkcji. Zamiast tego przekazuje się jej wskaźnik, który będzie wskazywał na pierwszy element tablicy w pamięci. Aby to zrobić, należy wskazać nazwę tablicy bez nawiasów.


90) Czym są wskaźniki?

Wskazówki wskazują do określonych obszarów pamięci. Wskaźniki zawierają adres zmiennej, która z kolei może zawierać wartość lub nawet adres do innej pamięci.


91) Czy możesz przekazać całą strukturę do funkcji?

Tak, możliwe jest przekazanie całej struktury do funkcji w stylu wywołania metody. Jednak niektórzy programiści wolą globalnie deklarować strukturę, a następnie przekazywać zmienną tego typu struktury do funkcji. Ta metoda pomaga zachować spójność i jednolitość pod względem typu argumentu.


92) Co to jest funkcja gets()?

Kurs gets() function umożliwia pełnoliniowe wprowadzanie danych od użytkownika. Gdy użytkownik naciśnie klawisz Enter, aby zakończyć wprowadzanie, cała linia znaków zostanie zapisana w zmiennej łańcuchowej. Należy zauważyć, że klawisz Enter nie jest zawarty w zmiennej, lecz zamiast tego po ostatnim znaku umieszczany jest terminator zerowy \0.


93) Symbol % ma specjalne zastosowanie w instrukcji printf. Jak umieściłbyś tę postać jako część wyjścia na ekranie?

Można to zrobić, używając %% w instrukcji printf. Na przykład możesz napisać printf(“10%%”), aby wynik był wyświetlany na ekranie jako 10%.


94) Jak przeszukiwać dane w pliku danych metodą dostępu swobodnego?

Użyj fseek() funkcja umożliwiająca dostęp swobodny do pliku. Po otwarciu pliku za pomocą funkcji fopen() funkcja fseek będzie wymagała do działania trzech parametrów: wskaźnika pliku do pliku, liczby bajtów do przeszukania oraz punktu początkowego w pliku.


95) Czy komentarze są uwzględniane na etapie kompilacji i umieszczane również w pliku EXE?

Nie, komentarze napotkane przez kompilator są ignorowane. Komentarze mają głównie charakter wskazówek dla programisty i nie mają żadnego innego istotnego zastosowania w funkcjonalności programu.


96) Czy w języku C istnieje wbudowana funkcja, której można użyć do sortowania danych?

Tak, użyj qsort() funkcjonować. Możliwe jest również tworzenie zdefiniowanych przez użytkownika funkcji sortowania, np. opartych na algorytmie sortowania balonowego i sortowania bąbelkowego.


97) Jakie są zalety i wady sterty?

Przechowywanie danych na stercie jest wolniejsze niż w przypadku korzystania ze stosu. Jednak główną zaletą korzystania ze sterty jest jej elastyczność. Dzieje się tak, ponieważ pamięć w tej strukturze można alokować i usuwać w dowolnej kolejności. Powolność na stercie można skompensować, jeśli algorytm został dobrze zaprojektowany i zaimplementowany.


98) Jak konwertować ciągi znaków na liczby w języku C?

Możesz napisać własne funkcje do konwersji ciągu znaków na liczby lub zamiast tego użyć funkcji wbudowanych w C. Możesz użyć atof do konwersji na wartość zmiennoprzecinkową, atoi do konwersji na wartość całkowitą i atol do konwersji na długą wartość całkowitą.


99) Utwórz prosty fragment kodu, który zamieni wartości dwóch zmiennych num1 i num2.

int temp;

temp = num1;

num1 = num2;

num2 = temp;

100) Do czego służy średnik (;) na końcu każdej instrukcji programu?

Ma to związek z procesem analizowania i kompilacją kodu. Średnik pełni rolę ogranicznika, dzięki czemu kompilator wie, gdzie kończy się każda instrukcja, i może przystąpić do dzielenia instrukcji na mniejsze elementy w celu sprawdzenia składni.

Te pytania podczas rozmowy kwalifikacyjnej pomogą również w Twoim życiu (ustach)