Die 100 wichtigsten Fragen und Antworten im Vorstellungsgespräch zur C-Programmierung (PDF)
Hier finden Sie Fragen und Antworten zu Vorstellungsgesprächen im Bereich C-Programmierung für neue und erfahrene Kandidaten, die ihren Traumjob bekommen möchten.
Fragen und Antworten zu grundlegenden C-Programmierinterviews für Erstsemester
1) Wie erstellt man eine Inkrement- oder Dekrementanweisung in C?
Es gibt eigentlich zwei Möglichkeiten, dies zu tun. Eine besteht darin, den Inkrementoperator ++ und den Dekrementoperator – zu verwenden. Beispielsweise bedeutet die Anweisung „x++“, den Wert von x um 1 zu erhöhen. Ebenso bedeutet die Anweisung „x –“, den Wert von x um 1 zu verringern. Eine andere Möglichkeit, Inkrementanweisungen zu schreiben, besteht darin, das herkömmliche Pluszeichen + oder Minuszeichen – zu verwenden. Im Fall von „x++“ lautet die andere Schreibweise „x = x +1“.
👉Kostenloser PDF-Download: Fragen und Antworten zum C-Programmierung-Interview >>
2) Was ist der Unterschied zwischen Call by Value und Call by Reference?
Wenn Sie Call by Value verwenden, senden Sie den Wert einer Variablen als Parameter an eine Funktion, während Call by Reference die Adresse der Variablen sendet. Außerdem wird bei Call by Value der Wert im Parameter nicht von der ausgeführten Operation beeinflusst, während bei Call by Reference die Werte vom Prozess innerhalb der Funktion beeinflusst werden können.
3) Einige Programmierer debuggen ihre Programme, indem sie Kommentarsymbole in einige Codes einfügen, anstatt sie zu löschen. Wie hilft dies beim Debuggen?
Das Platzieren von Kommentarsymbolen /* */ um einen Code, auch „Auskommentieren“ genannt, ist eine Möglichkeit, einige Codes zu isolieren, von denen Sie glauben, dass sie Fehler im Programm verursachen, ohne den Code zu löschen. Die Idee besteht darin, dass Sie, wenn der Code tatsächlich korrekt ist, einfach die Kommentarsymbole entfernen und fortfahren. Es erspart Ihnen außerdem Zeit und Mühe, die Codes erneut eingeben zu müssen, wenn Sie sie ursprünglich gelöscht haben.
4) Was ist der entsprechende Code der folgenden Anweisung im WHILE LOOP-Format?
for (a=1; a<=100; a++) printf ("%d\n", a * a);
Antworten:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) Was ist ein Stapel?
Ein Stapel ist eine Form einer Datenstruktur. Die Daten werden mithilfe des FILO-Ansatzes (First In Last Out) in Stapeln gespeichert. Zu jedem Zeitpunkt ist nur der obere Teil des Stapels zugänglich. Das bedeutet, dass zum Abrufen der im Stapel gespeicherten Daten zuerst die Daten im oberen Teil extrahiert werden sollten. Das Speichern von Daten in einem Stapel wird auch als PUSH bezeichnet, während das Abrufen von Daten als POP bezeichnet wird.
6) Was ist eine sequentielle Zugriffsdatei?
Beim Schreiben von Programmen, die Daten in einer Datei speichern und abrufen, ist es möglich, diese Datei in verschiedenen Formen zu benennen. Bei einer Datei mit sequenziellem Zugriff werden Daten in sequentieller Reihenfolge gespeichert: Ein Datenelement wird nach dem anderen in die Datei eingefügt. Um auf bestimmte Daten in der sequentiellen Zugriffsdatei zuzugreifen, müssen die Daten einzeln gelesen werden, bis die richtigen Daten erreicht sind.
7) Was ist Variableninitialisierung und warum ist sie wichtig?
Damit ist der Vorgang gemeint, bei dem einer Variablen ein Anfangswert zugewiesen wird, bevor sie im Programm verwendet wird. Ohne Initialisierung hätte eine Variable einen unbekannten Wert, was bei der Verwendung in Berechnungen oder anderen Operationen zu unvorhersehbaren Ergebnissen führen kann.
8 Was ist Spaghetti-Programmierung?
Spaghetti-Programmierung bezeichnet Codes, die dazu neigen, sich im gesamten Programm zu verheddern und zu überlappen. Dieser unstrukturierte Ansatz zur Codierung wird normalerweise auf mangelnde Erfahrung des Programmierers zurückgeführt. Spaghetti-Programmierung macht ein Programm komplex und erschwert die Analyse der Codes und muss daher so weit wie möglich vermieden werden.
9) Unterscheiden Sie Quellcodes von Objektcodes
Quellcodes sind Codes, die vom Programmierer geschrieben wurden. Es besteht aus Befehlen und anderen englischsprachigen Schlüsselwörtern, die dem Computer Anweisungen geben sollen, was er tun soll. Allerdings wären Computer nicht in der Lage, Quellcodes zu verstehen. Daher werden Quellcodes mit einem Compiler kompiliert. Die resultierenden Ausgaben sind Objektcodes, die in einem Format vorliegen, das vom Computerprozessor verstanden werden kann. In C-ProgrammierungQuellcodes werden mit der Dateierweiterung .C gespeichert, während Objektcodes mit der Dateierweiterung .OBJ gespeichert werden
10) Wie fügt man bei der C-Programmierung Anführungszeichen (' und „) in den Ausgabebildschirm ein?
Dies ist ein häufiges Problem für Anfänger, da Anführungszeichen normalerweise Teil einer printf-Anweisung sind. Um das Anführungszeichen als Teil der Ausgabe einzufügen, verwenden Sie die Formatbezeichner \' (für einfache Anführungszeichen) und \” (für doppelte Anführungszeichen).
11) Wozu dient das Zeichen „\0“?
Es wird als abschließendes Nullzeichen bezeichnet und hauptsächlich verwendet, um das Ende eines Zeichenfolgenwerts anzuzeigen.
12) Was ist der Unterschied zwischen dem =-Symbol und dem ==-Symbol?
Das Symbol = wird häufig in mathematischen Operationen verwendet. Es wird verwendet, um einer bestimmten Variablen einen Wert zuzuweisen. Andererseits ist das Symbol ==, auch als „gleich“ oder „äquivalent zu“ bekannt, ein relationaler Operator, der zum Vergleichen zweier Werte verwendet wird.
13) Was ist der Modulooperator?
Der Modulo-Operator gibt den Rest einer Division aus. Er verwendet das Prozentzeichen (%). Beispiel: 10 % 3 = 1. Das bedeutet, wenn Sie 10 durch 3 teilen, ist der Rest 1.
14) Was ist eine verschachtelte Schleife?
Eine verschachtelte Schleife ist eine Schleife, die innerhalb einer anderen Schleife ausgeführt wird. Anders ausgedrückt: Sie haben eine innere Schleife, die sich innerhalb einer äußeren Schleife befindet. In diesem Szenario wird die innere Schleife so oft ausgeführt, wie durch die äußere Schleife angegeben. Bei jeder Umdrehung der äußeren Schleife wird zuerst die innere Schleife ausgeführt.
15) Welcher der folgenden Operatoren ist falsch und warum? ( >=, <=, <>, ==)
<> ist falsch. Obwohl dieser Operator beim Schreiben von bedingten Anweisungen korrekt als „ungleich“ interpretiert wird, ist er nicht der richtige Operator für C-Programmierung. Stattdessen muss der Operator != verwendet werden, um den Zustand „ungleich“ anzuzeigen.
16) Vergleichen und gegenüberstellen Sie Compiler und Interpreter.
Compiler und Interpreter befassen sich häufig damit, wie Programmcodes ausgeführt werden. Interpreter führen Programmcodes Zeile für Zeile aus, während Compiler das Programm als Ganzes nehmen und es in Objektcode umwandeln, bevor sie es ausführen. Der Hauptunterschied besteht darin, dass bei Interpretern ein Programm während der Ausführung möglicherweise auf Syntaxfehler stößt und von dort aus stoppt. Andererseits prüfen Compiler die Syntax des gesamten Programms und führen die Ausführung erst dann durch, wenn keine Syntaxfehler gefunden werden.
17) Wie deklariert man eine Variable, die String-Werte enthält?
Das Schlüsselwort char kann jeweils nur einen Zeichenwert enthalten. Indem Sie ein Array von Zeichen erstellen, können Sie darin Zeichenfolgenwerte speichern. Beispiel: „char MyName[1]; “ deklariert eine Zeichenfolgenvariable namens MyName, die maximal 50 Zeichen enthalten kann.
18) Können die geschweiften Klammern { } verwendet werden, um eine einzelne Codezeile einzuschließen?
Obwohl geschweifte Klammern hauptsächlich zum Gruppieren mehrerer Codezeilen verwendet werden, funktionieren sie auch fehlerfrei, wenn Sie sie für eine einzelne Zeile verwenden. Einige Programmierer bevorzugen diese Methode, um Codes zu organisieren und sie übersichtlicher zu gestalten, insbesondere bei bedingten Anweisungen.
19) Was sind Header-Dateien und wofür werden sie in der C-Programmierung verwendet?
Header-Dateien werden auch als Bibliotheksdateien bezeichnet. Sie enthalten zwei wesentliche Dinge: die Definitionen und Prototypen der in einem Programm verwendeten Funktionen. Einfach ausgedrückt handelt es sich bei Befehlen, die Sie in der C-Programmierung verwenden, tatsächlich um Funktionen, die in den einzelnen Header-Dateien definiert werden. Jede Header-Datei enthält eine Reihe von Funktionen. Beispiel: stdio.h ist eine Header-Datei, die Definitionen und Prototypen von Befehlen wie printf und scanf enthält.
20) Was ist ein Syntaxfehler?
Syntaxfehler sind mit Fehlern bei der Verwendung einer Programmiersprache verbunden. Möglicherweise wurde ein Befehl falsch geschrieben oder ein Befehl muss in Kleinbuchstaben eingegeben werden, wurde aber stattdessen mit einem Großbuchstaben eingegeben. Ein falsch platziertes oder fehlendes Symbol irgendwo in einer Codezeile kann ebenfalls zu einem Syntaxfehler führen.
21) Was sind Variablen und wie unterscheiden sie sich von Konstanten?
Variablen und Konstanten sehen auf den ersten Blick ähnlich aus, da beide Bezeichner sind, die aus einem oder mehreren Zeichen bestehen (Buchstaben, Zahlen und einigen zulässigen Sonderzeichen). Beide haben auch einen bestimmten Wert. Die von einer Variablen gehaltenen Werte können im gesamten Programm geändert und in den meisten Operationen und Berechnungen verwendet werden. Konstanten erhalten nur einmalig einen Wert, der am Anfang eines Programms steht. Dieser Wert wird im Programm nicht geändert. Sie können beispielsweise einer Konstanten mit dem Namen PI den Wert 3.1415 zuweisen. Sie können sie dann als PI im Programm verwenden, anstatt jedes Mal 3.1415 schreiben zu müssen, wenn Sie sie benötigen.
22) Wie greift man auf die Werte innerhalb eines Arrays zu?
Arrays enthalten eine Reihe von Elementen, abhängig von der Größe, die Sie bei der Variablendeklaration angegeben haben. Jedem Element wird eine Nummer von 0 bis Anzahl der Elemente 1 zugewiesen. Um den Wert eines bestimmten Elements zuzuweisen oder abzurufen, beziehen Sie sich auf die Elementnummer. Beispiel: Wenn Sie eine Deklaration mit der Aufschrift „intscores[5];“ haben, dann haben Sie 5 zugängliche Elemente, nämlich:Scores[0], Scores[1], Scores[2], Scores[3] und Scores[4 ].
23) Kann ich den Datentyp „int“ verwenden, um den Wert 32768 zu speichern? Warum?
Nein. Der Datentyp „int“ kann Werte von -32768 bis 32767 speichern. Um 32768 zu speichern, können Sie stattdessen „long int“ verwenden. Sie können auch „unsigned int“ verwenden, vorausgesetzt, Sie beabsichtigen nicht, negative Werte zu speichern.
24) Können zwei oder mehr Operatoren wie \n und \t in einer einzigen Programmcodezeile kombiniert werden?
Ja, es ist völlig zulässig, Operatoren zu kombinieren, insbesondere wenn die Notwendigkeit besteht.
Zum Beispiel: Sie können einen Code wie haben printf (“Hello\n\n\’World\'”)
um den Text „Hello“ in der ersten Zeile und „World“ in einfachen Anführungszeichen auszugeben, der in den nächsten beiden Zeilen erscheint.
25) Warum werden nicht alle Header-Dateien in jedem C-Programm deklariert?
Die Entscheidung, eine Header-Datei oben in jedem C-Programm zu deklarieren, hängt davon ab, welche Befehle/Funktionen Sie in diesem Programm verwenden. Da jede Header-Datei unterschiedliche Funktionsdefinitionen und Prototypen enthält, verwenden Sie nur die Header-Dateien, die die von Ihnen benötigten Funktionen enthalten. Die Deklaration aller Header-Dateien in jedem Programm würde nur die Gesamtdateigröße und die Auslastung des Programms erhöhen und wird nicht als guter Programmierstil angesehen.
26) Wann wird das Schlüsselwort „void“ in einer Funktion verwendet?
Beim Deklarieren von Funktionen entscheiden Sie, ob diese Funktion einen Wert zurückgibt oder nicht. Wenn diese Funktion keinen Wert zurückgibt, beispielsweise wenn der Zweck einer Funktion darin besteht, einige Ausgaben auf dem Bildschirm anzuzeigen, muss „void“ ganz links im Funktionsheader platziert werden. Wenn nach der Funktionsausführung ein Rückgabewert erwartet wird, wird der Datentyp des Rückgabewerts anstelle von „void“ platziert.
27) Was sind zusammengesetzte Aussagen?
Zusammengesetzte Anweisungen bestehen aus zwei oder mehr Programmanweisungen, die zusammen ausgeführt werden. Dies geschieht normalerweise beim Verarbeiten von Bedingungen, bei denen eine Reihe von Anweisungen ausgeführt wird, wenn TRUE oder FALSE ausgewertet wird. Zusammengesetzte Anweisungen können auch innerhalb einer Schleife ausgeführt werden. Geschweifte Klammern { } werden vor und nach zusammengesetzten Anweisungen gesetzt.
28) Welche Bedeutung hat ein Algorithmus für die C-Programmierung?
Bevor ein Programm geschrieben werden kann, muss zunächst ein Algorithmus erstellt werden. Ein Algorithmus bietet eine schrittweise Vorgehensweise, wie eine Lösung abgeleitet werden kann. Es dient auch als Blaupause dafür, wie ein Programm starten und enden wird, einschließlich der beteiligten Prozesse und Berechnungen.
29) Was ist der Vorteil eines Arrays gegenüber einzelnen Variablen?
Beim Speichern mehrerer zusammengehöriger Daten empfiehlt sich die Verwendung von Arrays. Dies liegt daran, dass Arrays nur mit einem Wort, gefolgt von einer Elementnummer, benannt werden. Beispiel: Um die 1 Testergebnisse eines Schülers zu speichern, kann man 10 verschiedene Variablennamen verwenden (Note1, Note10, Note1… Note2). Bei Arrays wird nur 3 Name verwendet, auf den Rest kann über den Indexnamen zugegriffen werden (note[10], grade[1], grade[0]… grade[1]).
30) Schreiben Sie eine Schleifenanweisung, die die folgende Ausgabe liefert:
1
12
123
1234
12345
Antworten:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
Fragen und Antworten im Vorstellungsgespräch zur C-Programmierung für Erfahrene
31) Was ist an dieser Aussage falsch? scanf(“%d”,whatnumber);
Vor dem Variablennamen whatnumber muss ein kaufmännisches Und-Zeichen und ein Zeichen stehen. Die Platzierung von & bedeutet, dass der vom Benutzer eingegebene ganzzahlige Wert an der „Adresse“ des Variablennamens gespeichert wird. Dies ist ein häufiger Fehler von Programmierern, der oft zu logischen Fehlern führt.
32) Wie generiert man Zufallszahlen in C?
Zufallszahlen werden in C erzeugt mit dem rand() command
. Zum Beispiel: anyNum = rand()
generiert jede Ganzzahl beginnend bei 0, vorausgesetzt, dass anyNum eine Variable vom Typ Ganzzahl ist.
33) Was könnte möglicherweise das Problem sein, wenn ein gültiger Funktionsname wie tolower() vom C-Compiler als undefiniert gemeldet wird?
Der wahrscheinlichste Grund für diesen Fehler ist, dass die Header-Datei für diese Funktion nicht oben im Programm angegeben wurde. Header-Dateien enthalten die Definition und den Prototyp für Funktionen und Befehle, die in einem C-Programm verwendet werden. Im Fall von „tolower()“ wird der Code „#include „muss zu Beginn des Programms vorhanden sein.
34) Was sind Kommentare und wie fügt man sie in ein C-Programm ein?
Ihre Nachricht sind eine großartige Möglichkeit, Bemerkungen oder Beschreibungen in ein Programm einzufügen. Es kann als Erinnerung daran dienen, worum es in dem Programm geht, oder als Beschreibung, warum ein bestimmter Code oder eine bestimmte Funktion überhaupt dort platziert wurde. Kommentare beginnen mit /* und enden mit */-Zeichen. Kommentare können eine einzelne Zeile umfassen oder sich sogar über mehrere Zeilen erstrecken. Es kann an einer beliebigen Stelle im Programm platziert werden.
35) Was ist Debuggen?
Beim Debuggen handelt es sich um den Prozess der Identifizierung von Fehlern innerhalb eines Programms. Während der Programmkompilierung werden gefundene Fehler dazu führen, dass das Programm nicht mehr vollständig ausgeführt werden kann. In diesem Zustand würde der Programmierer die möglichen Abschnitte untersuchen, in denen der Fehler aufgetreten ist. Das Debuggen gewährleistet die Beseitigung von Fehlern und spielt eine wichtige Rolle dabei, sicherzustellen, dass die erwartete Programmausgabe erreicht wird.
36) Was macht der &&-Operator in einem Programmcode?
Der && wird auch als AND-Operator bezeichnet. Bei Verwendung dieses Operators müssen alle angegebenen Bedingungen WAHR sein, bevor die nächste Aktion ausgeführt werden kann. Wenn Sie 10 Bedingungen haben und alle außer 1 nicht als WAHR ausgewertet werden, wird die gesamte Bedingungsanweisung bereits als FALSCH ausgewertet.
37) Welcher Befehl oder Code kann bei der C-Programmierung verwendet werden, um festzustellen, ob eine Zahl gerade oder ungerade ist?
Es gibt keinen einzelnen Befehl bzw Funktion in C Damit lässt sich prüfen, ob eine Zahl gerade oder ungerade ist. Dies kann jedoch erreicht werden, indem man die Zahl durch 2 teilt und dann den Rest prüft. Wenn der Rest 0 ist, ist die Zahl gerade, andernfalls ist sie ungerade. Sie können es in Code wie folgt schreiben:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) Was bedeutet das Format %10.2, wenn es in einer printf-Anweisung enthalten ist?
Dieses Format wird für zwei Zwecke verwendet: um die Anzahl der Leerzeichen für die Ausgabenummer festzulegen und um die Anzahl der Dezimalstellen festzulegen. Die Zahl vor dem Dezimalpunkt steht für den zugewiesenen Platz, in diesem Fall wären es 10 Plätze für die Ausgabezahl. Wenn die von der Ausgabenummer belegte Anzahl von Leerzeichen weniger als 10 beträgt, werden zusätzliche Leerzeichen vor der tatsächlichen Ausgabenummer eingefügt. Die Zahl nach dem Komma legt die Anzahl der Dezimalstellen fest, in diesem Fall sind es 2 Dezimalstellen.
39) Was sind logische Fehler und wie unterscheiden sie sich von Syntaxfehlern?
Programme, die logische Fehler enthalten, bestehen in der Regel den Kompilierungsprozess, die resultierende Ausgabe entspricht jedoch möglicherweise nicht der erwarteten. Dies geschieht, wenn eine falsche Formel in den Code eingefügt oder eine falsche Befehlsfolge ausgeführt wurde. Bei Syntaxfehlern hingegen handelt es sich um falsche Befehle, die falsch geschrieben sind oder vom Compiler nicht erkannt werden.
40) Welche verschiedenen Arten von Kontrollstrukturen gibt es in der Programmierung?
In der Programmierung gibt es drei Hauptkontrollstrukturen: Sequenz, Auswahl und Wiederholung. Die sequentielle Steuerung folgt bei der Ausführung eines Programms einem Ablauf von oben nach unten, sodass Schritt 3 zuerst ausgeführt wird, gefolgt von Schritt 1, bis der letzte Schritt ausgeführt wird. Bei der Auswahl handelt es sich um bedingte Anweisungen, was bedeutet, dass Codes abhängig von der Bewertung der Bedingungen als WAHR oder FALSCH ausgeführt werden. Dies bedeutet auch, dass möglicherweise nicht alle Codes ausgeführt werden und es darin alternative Abläufe gibt. Wiederholungen werden auch als Schleifenstrukturen bezeichnet und wiederholen eine oder zwei durch einen Zähler festgelegte Programmanweisungen.
41) Was ist der ||-Operator und wie funktioniert er in einem Programm?
Das || wird in der C-Programmierung auch als OR-Operator bezeichnet. Wenn Sie || verwenden, um logische Bedingungen auszuwerten, führt jede Bedingung, die als WAHR ausgewertet wird, dazu, dass die gesamte Bedingungsanweisung als WAHR ausgegeben wird.
42) Kann die „if“-Funktion zum Vergleichen von Zeichenfolgen verwendet werden?
Nein. Der Befehl „if“ kann nur zum Vergleichen von numerischen Werten und Einzelzeichenwerten verwendet werden. Für den Vergleich von String-Werten gibt es eine weitere Funktion namens strcmp, die sich speziell mit Strings befasst.
43) Was sind Präprozessoranweisungen?
Präprozessoranweisungen werden am Anfang jedes C-Programms platziert. Hier werden Bibliotheksdateien angegeben, die davon abhängen, welche Funktionen im Programm verwendet werden sollen. Eine weitere Verwendung von Präprozessordirektiven ist die Deklaration von Konstanten. Präprozessordirektiven beginnen mit dem #-Symbol.
44) Was ist das Ergebnis der folgenden bedingten Anweisung, wenn der Wert der Variablen s 10 ist?
s >=10 && s < 25 && s!=12
Das Ergebnis ist WAHR. Da der Wert von s 10 ist, wird s >= 10 als WAHR ausgewertet, da s nicht größer als 10, aber immer noch gleich 10 ist. s< 25 ist ebenfalls WAHR, da 10 kleiner als 25 ist. Genauso wird s!=12, was bedeutet, dass s nicht gleich 12 ist, als WAHR ausgewertet. && ist der UND-Operator und folgt der Regel, dass die gesamte Anweisung WAHR ist, wenn alle einzelnen Bedingungen WAHR sind.
45) Beschreiben Sie die Rangfolge der Operatoren in C.
Die Rangfolge bestimmt, welche Operation in einer Operationsanweisung oder bedingten Anweisung zuerst ausgeführt werden muss. Auf der obersten Rangfolgeebene stehen die unären Operatoren !, +, – und &. Darauf folgen die regulären mathematischen Operatoren (*, / und Modul % zuerst, gefolgt von + und -). Als nächstes folgen die relationalen Operatoren <, <=, >= und >. Darauf folgen dann die beiden Gleichheitsoperatoren == und !=. Als nächstes werden die logischen Operatoren && und || ausgewertet. Auf der letzten Ebene steht der Zuweisungsoperator =.
46) Was ist an dieser Aussage falsch? meinName = „Robin“;
Sie können das =-Zeichen nicht verwenden, um einer Zeichenfolgenvariablen Werte zuzuweisen. Verwenden Sie stattdessen die Funktion strcpy. Die richtige Anweisung wäre: strcpy(myName, „Robin“);
47) Wie bestimmt man die Länge eines String-Wertes, der in einer Variablen gespeichert wurde?
Um die Länge eines String-Werts zu ermitteln, verwenden Sie die Funktion strlen(). Wenn Sie beispielsweise über eine Variable mit dem Namen „FullName“ verfügen, können Sie die Länge des gespeicherten Zeichenfolgenwerts mithilfe dieser Anweisung ermitteln: I = strlen(FullName); Die Variable I wird nun die Zeichenlänge des String-Werts haben.
48) Ist es möglich, eine Variable zum Zeitpunkt ihrer Deklaration zu initialisieren?
Ja, Sie müssen nach der Variablendeklaration keine separate Zuweisungsanweisung schreiben, es sei denn, Sie planen, sie später zu ändern. Beispiel: char planet[15] = „Erde“; bewirkt zwei Dinge: Es deklariert eine String-Variable namens Planet und initialisiert sie dann mit dem Wert „Erde“.
49) Warum wird die C-Sprache als Sprache der mittleren Ebene betrachtet?
Dies liegt daran, dass die Sprache C über zahlreiche Funktionen verfügt, die sie wie eine höhere Programmiersprache agieren lassen, während sie gleichzeitig mit Methoden niedriger Ebene mit Hardware interagieren kann. Die Verwendung eines gut strukturierten Programmieransatzes in Verbindung mit englischähnlichen Wörtern in Funktionen lässt sie wie eine höhere Programmiersprache agieren. Andererseits kann C direkt auf Speicherstrukturen zugreifen, die Assemblersprachenroutinen ähneln.
50) Welche unterschiedlichen Dateierweiterungen gibt es beim Programmieren in C?
Quellcodes in C werden mit der Dateierweiterung .C gespeichert. Header-Dateien oder Bibliotheksdateien haben die Dateierweiterung .H. Jedes Mal, wenn ein Programmquellcode erfolgreich kompiliert wird, werden eine .OBJ-Objektdatei und eine ausführbare .EXE-Datei erstellt.
51) Was sind reservierte Wörter?
Reservierte Wörter sind Wörter, die Teil der Standard-C-Sprachbibliothek sind. Das bedeutet, dass reservierte Wörter eine besondere Bedeutung haben und daher nicht für andere als die ursprünglich vorgesehenen Zwecke verwendet werden können. Beispiele für reservierte Wörter sind int, void und return.
52) Was sind verknüpfte Listen?
Eine verknüpfte Liste besteht aus Knoten, die miteinander verbunden sind. Bei der C-Programmierung werden verknüpfte Listen mithilfe von Zeigern erstellt. Die Verwendung verknüpfter Listen ist eine effiziente Möglichkeit, Speicher für die Speicherung zu nutzen.
53) Was ist FIFO?
In der C-Programmierung gibt es eine Datenstruktur, die als Warteschlange bekannt ist. In dieser Struktur werden Daten im FIFO-Format oder First-In-First-Out gespeichert und abgerufen. Eine Warteschlange stellt eine Zeile dar, in der die ersten gespeicherten Daten auch die ersten sind, auf die zugegriffen werden kann.
54) Was sind Binärbäume?
Binärbäume sind eigentlich eine Erweiterung des Konzepts verknüpfter Listen. Ein Binärbaum hat zwei Zeiger, einen linken und einen rechten. Jede Seite kann weiter verzweigen, um zusätzliche Knoten zu bilden, wobei jeder Knoten auch zwei Zeiger hat. Lerne mehr über Binärbaum in der Datenstruktur wenn Sie interessiert sind.
55) Nicht alle reservierten Wörter werden in Kleinbuchstaben geschrieben. Richtig oder falsch?
FALSE. Alle reservierten Wörter müssen in Kleinbuchstaben geschrieben werden, sonst würde der C-Compiler dies als nicht identifiziert und ungültig interpretieren.
56) Was ist der Unterschied zwischen dem Ausdruck „++a“ und „a++“?
Im ersten Ausdruck würde die Inkrementierung zuerst auf die Variable a angewendet und der resultierende Wert wäre der zu verwendende. Dies wird auch als Präfixinkrementierung bezeichnet. Im zweiten Ausdruck wäre der aktuelle Wert der Variable a derjenige, der in einer Operation verwendet würde, bevor der Wert von a selbst inkrementiert wird. Dies wird auch als Postfixinkrementierung bezeichnet.
57) Was würde mit X in diesem Ausdruck passieren: X += 15; (vorausgesetzt, der Wert von X ist 5)
X +=15 ist eine Kurzform, um X = X + 15 zu schreiben. Wenn also der Anfangswert von X 5 ist, dann ist 5 + 15 = 20.
58) In der Sprache C sind die Variablen NAME, Name und Name alle gleich. Richtig oder falsch?
FALSCH. Die C-Sprache unterscheidet zwischen Groß- und Kleinschreibung. Daher sind NAME, Name und Name drei eindeutig unterschiedliche Variablen.
59) Was ist eine Endlosschleife?
Eine Endlosschleife kann zweierlei bedeuten. Zum einen wurde sie so konzipiert, dass sie so lange wiederholt wird, bis die Bedingung innerhalb der Schleife erfüllt ist. Danach würde eine Unterbrechungsfunktion das Programm veranlassen, die Schleife zu verlassen. Eine andere Vorstellung einer Endlosschleife ist, wenn eine falsche Schleifenbedingung geschrieben wurde, wodurch die Schleife fälschlicherweise endlos ausgeführt wird. Endlosschleifen werden oft als Endlosschleifen bezeichnet.
60) Was ist ein Programmablaufdiagramm und wie hilft es beim Schreiben eines Programms?
Ein Flussdiagramm bietet eine visuelle Darstellung des schrittweisen Vorgehens zur Lösung eines bestimmten Problems. Flussdiagramme bestehen aus Symbolen, wobei jedes Symbol eine andere Form hat. Jede Form kann eine bestimmte Entität innerhalb der gesamten Programmstruktur darstellen, beispielsweise einen Prozess, eine Bedingung oder sogar eine Eingabe-/Ausgabephase.
61) Was ist an dieser Programmanweisung falsch? ungültig = 10;
Das Wort void ist ein reserviertes Wort in der C-Sprache. Sie können reservierte Wörter nicht als benutzerdefinierte Variable verwenden.
62) Ist diese Programmanweisung gültig? INT = 10.50;
Unter der Annahme, dass INT eine Variable vom Typ float ist, ist diese Anweisung gültig. Man könnte denken, dass INT ein reserviertes Wort ist und nicht für andere Zwecke verwendet werden darf. Bedenken Sie jedoch, dass reservierte Wörter in Kleinbuchstaben ausgedrückt werden, sodass der C-Compiler dies nicht als reserviertes Wort interpretiert.
63) Was sind tatsächliche Argumente?
Wenn Sie Funktionen erstellen und verwenden, die eine Aktion für bestimmte Werte ausführen müssen, müssen Sie diese Werte an diese Funktion übergeben. Die Werte, die an die aufgerufene Funktion übergeben werden, werden als tatsächliche Argumente bezeichnet.
64) Was ist eine Newline-Escape-Sequenz?
Eine Newline-Escape-Sequenz wird durch das Zeichen \n dargestellt. Dies wird verwendet, um eine neue Zeile einzufügen, wenn Daten im Ausgabebildschirm angezeigt werden. Durch Einfügen weiterer \n-Zeichen können weitere Leerzeichen hinzugefügt werden. Beispielsweise würde \n\n zwei Leerzeichen einfügen. Eine Newline-Escape-Sequenz kann vor oder nach dem eigentlichen Ausgabeausdruck platziert werden.
65) Was ist Ausgabeumleitung?
Dabei handelt es sich um den Vorgang, Daten an eine alternative Ausgabequelle als den Bildschirm zu übertragen. Die Ausgabeumleitung ermöglicht es einem Programm, seine Ausgabe in einer Datei zu speichern. Wenn Sie beispielsweise ein Programm mit dem Namen COMPUTE haben, können Sie durch die Eingabe von COMPUTE >DATA in der Befehlszeile Benutzereingaben annehmen, bestimmte Berechnungen durchführen und die Ausgabe dann in eine Datei mit dem Namen DATA umleiten, anstatt sie auf dem Bildschirm anzuzeigen.
66) Was sind Laufzeitfehler?
Dies sind Fehler, die während der Ausführung des Programms auftreten. Ein häufiger Fall, in dem Laufzeitfehler auftreten können, ist, wenn Sie versuchen, eine Zahl durch Null zu teilen. Wenn Laufzeitfehler auftreten, wird die Programmausführung angehalten und angezeigt, welche Programmzeile den Fehler verursacht hat.
67) Was ist der Unterschied zwischen den Funktionen abs() und fabs()?
Diese beiden Funktionen führen im Grunde dieselbe Aktion aus, nämlich den Absolutwert des angegebenen Werts zu ermitteln. Abs() wird für ganzzahlige Werte verwendet, während fabs() für Zahlen vom Typ Floating verwendet wird. Außerdem befindet sich der Prototyp für abs() unter , während fabs() unter .
68) Was sind formale Parameter?
Bei der Verwendung von Funktionen in einem C-Programm enthalten formale Parameter die Werte, die von der aufrufenden Funktion übergeben wurden. Die Werte werden in diese formalen Parameter eingesetzt und in den im Hauptteil der aufgerufenen Funktion angegebenen Operationen verwendet.
69) Was sind Kontrollstrukturen?
Kontrollstrukturen übernehmen die Kontrolle darüber, welche Anweisungen in einem Programm ausgeführt werden sollen. Das bedeutet, dass der Programmfluss nicht unbedingt von einer Anweisung zur nächsten wechselt, sondern dass je nach Ergebnis der bedingten Anweisungen möglicherweise einige alternative Teile übergeben oder umgangen werden müssen.
70) Schreiben Sie ein einfaches Codefragment, das prüft, ob eine Zahl positiv oder negativ ist
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Wann ist eine „switch“-Anweisung einer „if“-Anweisung vorzuziehen?
Die switch-Anweisung wird am besten verwendet, wenn es um Auswahlen geht, die auf einer einzelnen Variablen oder einem einzelnen Ausdruck basieren. Switch-Anweisungen können jedoch nur Ganzzahl- und Zeichendatentypen auswerten.
72) Was sind globale Variablen und wie deklariert man sie?
Globale Variablen sind Variablen, auf die überall im Programm zugegriffen und sie manipuliert werden kann. Um eine Variable global zu machen, platzieren Sie die Variablendeklaration im oberen Teil des Programms, direkt nach dem Abschnitt mit den Präprozessoranweisungen.
73) Was sind Aufzählungstypen?
Aufzählungstypen ermöglichen es dem Programmierer, aussagekräftigere Wörter als Werte für eine Variable zu verwenden. Jedes Element in der Aufzählungstypvariablen ist tatsächlich einem numerischen Code zugeordnet. Beispielsweise kann man eine Aufzählungstypvariable mit dem Namen DAYS erstellen, deren Werte sind Monday, Dienstag… Sonntag.
74) Was macht die Funktion toupper()?
Es wird verwendet, um jeden Buchstaben in seinen Großbuchstabenmodus umzuwandeln. Der Funktionsprototyp Toupper() ist in deklariert . Beachten Sie, dass diese Funktion nur ein einzelnes Zeichen und nicht eine ganze Zeichenfolge konvertiert.
75) Ist es möglich, eine Funktion als Parameter in einer anderen Funktion zu haben?
Ja, das ist in der C-Programmierung erlaubt. Sie müssen lediglich den gesamten Funktionsprototyp in das Parameterfeld der anderen Funktion einfügen, in der er verwendet werden soll.
76) Was sind mehrdimensionale Arrays?
Mehrdimensionale Arrays können Daten in einer zwei- oder mehrdimensionalen Struktur speichern. Sie können beispielsweise ein zweidimensionales Array verwenden, um die aktuelle Position von Figuren in einem Schachspiel oder die Position von Spielern in einem Tic-Tac-Toe-Programm zu speichern.
77) Welche Funktion in C kann verwendet werden, um einen String an einen anderen String anzuhängen?
Die strcat-Funktion. Es benötigt zwei Parameter, den Quellstring und den Stringwert, der an den Quellstring angehängt werden soll.
78) Was ist der Unterschied zwischen den Funktionen getch() und getche()?
Beide Funktionen akzeptieren einen Zeicheneingabewert vom Benutzer. Bei Verwendung von getch() erscheint die gedrückte Taste nicht auf dem Bildschirm und wird automatisch erfasst und einer Variablen zugewiesen. Bei Verwendung von getche() wird die vom Benutzer gedrückte Taste auf dem Bildschirm angezeigt und gleichzeitig einer Variablen zugewiesen.
79) Führen diese beiden Programmanweisungen die gleiche Ausgabe aus? 1) scanf(“%c”, &letter); 2) Buchstabe=getchar()
Ja, beide machen genau das Gleiche, nämlich die nächste vom Benutzer gedrückte Taste zu akzeptieren und sie der Variablen namens „letter“ zuzuweisen.
80) Was sind Strukturtypen in C?
Strukturtypen werden hauptsächlich zum Speichern von Datensätzen verwendet. Ein Datensatz besteht aus verknüpften Feldern. Dies erleichtert die Organisation einer Gruppe verknüpfter Daten.
81) Was bedeuten die Zeichen „r“ und „w“, wenn man Programme schreibt, die Dateien verwenden?
„r“ bedeutet „lesen“ und öffnet eine Datei als Eingabe, in der Daten abgerufen werden sollen. „w“ bedeutet „schreiben“ und öffnet eine Datei zur Ausgabe. Zuvor in dieser Datei gespeicherte Daten werden gelöscht.
82) Was ist der Unterschied zwischen Textdateien und Binärdateien?
Textdateien enthalten Daten, die für Menschen leicht verständlich sind. Sie enthalten Buchstaben, Zahlen und andere Zeichen. Binärdateien enthalten dagegen Einsen und Nullen, die nur Computer interpretieren können.
83) Ist es möglich, eigene Header-Dateien zu erstellen?
Ja, es ist möglich, eine benutzerdefinierte Header-Datei zu erstellen. Fügen Sie darin einfach die Funktionsprototypen ein, die Sie in Ihrem Programm verwenden möchten, und verwenden Sie die Direktive #include, gefolgt vom Namen Ihrer Header-Datei.
84) Was ist eine dynamische Datenstruktur?
Die dynamische Datenstruktur bietet eine Möglichkeit, Daten effizienter im Speicher zu speichern. Verwenden Verwenden dynamische Speicherzuordnung, greift Ihr Programm nach Bedarf auf Speicherplätze zu. Dies steht im Gegensatz zur statischen Datenstruktur, bei der der Programmierer eine feste Anzahl an Speicherplatz angeben muss, die im Programm verwendet werden soll.
85) Welche verschiedenen Datentypen gibt es in C?
Die Grund Datentypen in C sind int, char und float. Int wird zum Deklarieren von Variablen verwendet, die ganzzahlige Werte speichern. Float wird zum Speichern von reellen Zahlen verwendet. Char kann einzelne Zeichenwerte speichern.
86) Was ist die allgemeine Form eines C-Programms?
Das AC-Programm beginnt mit den Präprozessoranweisungen, in denen der Programmierer angibt, welche Header-Datei und welche Konstanten (falls vorhanden) verwendet werden sollen. Darauf folgt die Überschrift der Hauptfunktion. Innerhalb der Hauptfunktion liegen die Variablendeklaration und die Programmanweisung.
87) Was ist der Vorteil einer Direktzugriffsdatei?
Wenn die in einer Datei gespeicherte Datenmenge ziemlich groß ist, können Sie sie mithilfe des Direktzugriffs schneller durchsuchen. Wäre es eine Datei mit sequenziellem Zugriff gewesen, müssten Sie jeweils einen Datensatz durchgehen, bis Sie die Zieldaten erreichen. Mit einer Direktzugriffsdatei können Sie direkt zur Zieladresse springen, an der sich die Daten befinden.
88) Was passiert in einer Switch-Anweisung, wenn eine Break-Anweisung weggelassen wird?
Wenn am Ende eines bestimmten Fallabschnitts keine Break-Anweisung platziert wurde? Es wird mit dem nächsten Fallabschnitt fortgefahren, was möglicherweise zu einer falschen Ausgabe führt.
89) Beschreiben Sie, wie Arrays an eine benutzerdefinierte Funktion übergeben werden können
Beachten Sie, dass Sie nicht das gesamte Array an eine Funktion übergeben können. Stattdessen übergeben Sie ihr einen Zeiger, der auf das erste Element des Arrays im Speicher zeigt. Geben Sie dazu den Namen des Arrays ohne Klammern an.
90) Was sind Zeiger?
Zeiger zeigen zu bestimmten Bereichen im Gedächtnis. Zeiger enthalten die Adresse einer Variablen, die wiederum einen Wert oder sogar eine Adresse zu einem anderen Speicher enthalten kann.
91) Kann man eine ganze Struktur an Funktionen übergeben?
Ja, es ist möglich, eine gesamte Struktur in einem Methodenaufrufstil an eine Funktion zu übergeben. Einige Programmierer ziehen es jedoch vor, die Struktur global zu deklarieren und dann eine Variable dieses Strukturtyps an eine Funktion zu übergeben. Diese Methode trägt dazu bei, Konsistenz und Einheitlichkeit in Bezug auf den Argumenttyp aufrechtzuerhalten.
92) Was ist die Funktion gets()?
Die gets() function
ermöglicht eine vollständige Dateneingabe durch den Benutzer. Wenn der Benutzer die Eingabetaste drückt, um die Eingabe zu beenden, wird die gesamte Zeichenzeile in einer Zeichenfolgenvariablen gespeichert. Beachten Sie, dass die Eingabetaste nicht in der Variablen enthalten ist, sondern stattdessen ein Null-Terminator \0 nach dem letzten Zeichen platziert wird.
93) Das %-Symbol hat in einer printf-Anweisung eine besondere Verwendung. Wie würden Sie dieses Zeichen als Teil der Ausgabe auf dem Bildschirm platzieren?
Sie können dies tun, indem Sie %% in der printf-Anweisung verwenden. Sie können beispielsweise printf(“10%%”) schreiben, damit die Ausgabe auf dem Bildschirm als 10 % erscheint.
94) Wie durchsucht man Daten in einer Datendatei mithilfe der Direktzugriffsmethode?
Verwenden Sie das fseek()
Funktion zum Durchführen von Eingaben/Ausgaben mit wahlfreiem Zugriff auf eine Datei. Nachdem die Datei mit der Funktion fopen() geöffnet wurde, benötigte fseek drei Parameter, um zu funktionieren: einen Dateizeiger auf die Datei, die Anzahl der zu durchsuchenden Bytes und den Ursprungspunkt in der Datei.
95) Werden Kommentare während der Kompilierungsphase eingefügt und auch in die EXE-Datei eingefügt?
Nein, vom Compiler erkannte Kommentare werden ignoriert. Kommentare dienen größtenteils nur der Orientierung des Programmierers und haben keinen weiteren wesentlichen Nutzen für die Programmfunktionalität.
96) Gibt es in C eine integrierte Funktion, die zum Sortieren von Daten verwendet werden kann?
Ja, benutze die qsort()
Funktion. Es ist auch möglich, benutzerdefinierte Sortierfunktionen zu erstellen, beispielsweise solche, die auf dem Ballonsortierungs- und Blasensortierungsalgorithmus basieren.
97) Was sind die Vor- und Nachteile eines Heaps?
Das Speichern von Daten auf dem Heap ist langsamer als bei Verwendung des Stacks. Der Hauptvorteil der Verwendung des Heaps ist jedoch seine Flexibilität. Das liegt daran, dass Speicher in dieser Struktur in beliebiger Reihenfolge zugewiesen und entfernt werden kann. Langsamkeit im Heap kann ausgeglichen werden, wenn ein Algorithmus gut entworfen und implementiert wurde.
98) Wie konvertiert man in C Zeichenketten in Zahlen?
Sie können Ihre eigenen Funktionen schreiben, um Zeichenfolgen in Zahlen umzuwandeln, oder stattdessen die in C integrierten Funktionen verwenden. Sie können atof zum Konvertieren in einen Gleitkommawert, atoi zum Konvertieren in einen ganzzahligen Wert und atol zum Konvertieren in einen langen ganzzahligen Wert verwenden.
99) Erstellen Sie ein einfaches Codefragment, das die Werte der beiden Variablen Num1 und Num2 vertauscht.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Wozu dient ein Semikolon (;) am Ende jeder Programmanweisung?
Es hat mit dem Parsing-Prozess und der Kompilierung des Codes zu tun. Ein Semikolon dient als Trennzeichen, sodass der Compiler weiß, wo jede Anweisung endet, und die Anweisung zur Syntaxprüfung in kleinere Elemente aufteilen kann.
Diese Interviewfragen helfen auch bei Ihrer mündlichen Prüfung