Einige echte Interviewfragen C ++ [geschlossen]

8

Also habe ich einige Interviewfragen zusammengestellt, die mir gestellt wurden. Ich habe einige beantwortet und die Antworten auf diejenigen notiert, die ich nicht beantworten konnte. Einige Fragen sind nicht spezifisch und allgemein gehalten. Jeder kann seinen Beitrag zu den Fragen hinzufügen. Keine Verpflichtung, den Antworten zu folgen, die ich geschrieben habe!

Q1: Was wäre die Größe eines Zeigers auf einem 2-Bit-System und einem 16-Bit-System? A: 2 Bits und 2 Bytes

F2: Warum brauchen wir OOPs / Klassen, wenn wir in C Strukturen hatten und dasselbe erreichen konnten?
A: Überlassen Sie dies SO-Benutzern, um zu antworten!

F3: Wenn Sie aufgefordert wurden, ein Programm in verschiedene Teile für ein eingebettetes System aufzuteilen, was wären sie? A: IO-Teil und CPU-Teil

F4: Welche Hardware-Vorteile bietet die Verwendung von Threads? Irgendwelche geben ein einzelnes Beispiel für eine einzelne CPU (einzelner Kern) A: Ein Thread würde etwas Zahlenknirschen machen, das andere gerade leben für eine Millisekunde könnte signalisieren Sie ein Ereignis, um die Festplatte zu lesen.

F5: Wenn wir einen Zeiger char* p = NULL hätten, was würde dann cout<<sizeof(*p) ausgeben? A: Die Größe von char , nicht char* . Dies bedeutet die Menge an Speicher, auf die es zeigen kann, nicht die Größe des Zeigers selbst.

F6: Auf welche Funktionen zeigen Funktionszeiger in einer virtuellen Tabelle? A: Virtuelle Funktionen

Q7: Wie würden Sie berechnen, wie viele Threads ein Programm für eine optimale Leistung für eine einzelne CPU (Single-Core) generieren muss? Machst du einen physischen Test oder kannst du dein Programm automatisieren? Gib ein Beispiel. Oder beides, wieder ein Beispiel.
A: SO Benutzer Ihre Antwort hier!

Q8: Wenn eine virtuelle Funktion (nicht rein) Vererbung ist, wird sie nicht in der abgeleiteten Klasse implementiert. Nun, wenn ich einen Basisklassenzeiger auf ein abgeleitetes Klassenobjekt habe und dann einen Anruf mache baseObject->function() , was wird passieren? Wird es irgendwann während der Kompilierzeit / Laufzeit ein Problem geben? A: Keine. :)

    
Benjamin 24.12.2010, 13:51
quelle

2 Antworten

7

A1 2 Bits und 16 Bits ist die offensichtliche Antwort. Ich würde um Klarstellung bitten, wie "in technischer Hinsicht, was genau meinst du 2-Bit-System", nur um sicher zu gehen.

A2 Dies ist OOP 101-Material ... eine kurze Antwort könnte lauten: "Weil Klassen die Vererbung ermöglichen und die Vererbung viele nützliche Paradigmen (vor allem Polymorphie) ermöglicht, die die Komplexität des Codes verringern."

A3 Ich fürchte, ich würde Ihre Antwort nicht für richtig halten. Sie sollten auf jeden Fall gefragt haben "welche Art von Programm", um eine allgemeine Idee zu bekommen: ist es ein Service? ein Skript? eine Desktop-Anwendung? Ohne zusätzliche Eingaben würde ich "in UI und Geschäftslogik aufteilen" antworten.

A4 Auf Hardwarerebene ermöglichen Threads Ihrer Anwendung eine bessere Auslastung Ihrer Hardwareressourcen (z. B. mehrerer CPU-Kerne). Ein Beispiel wäre irgendein Divide-and-Conquer-Algorithmus, bei dem die geteilte Arbeit auf mehreren Threads parallel ablaufen kann (z. B. viele Sortieralgorithmen). Ich würde wieder deine Antwort für falsch halten.

A5 Richtig.

A6 Korrigieren.

A7 Zuallererst: Sehen Sie, ob das Programm CPU-gebunden ist (einige schnelle und schmutzige Messungen würden Ihnen das sagen). Wenn es nicht CPU-gebunden ist, dann wäre wahrscheinlich ein Thread genug. Wenn dies der Fall ist, sollten Sie so viele Threads wie möglich verwenden (dh so viele Teile wie Sie Ihre Arbeit partitionieren können), bis zur Anzahl der Threads, die Ihre Hardware gleichzeitig ausführen kann.

A8 Richtig: Kein Problem, die Implementierung der Basisklasse würde aufgerufen.

    
Jon 24.12.2010, 14:04
quelle
-1

Ähm .. nicht C ++ genau, aber das:

Stellen Sie sich vor, Sie haben zwei Hosts, einen Provider, ihren Router, Admins und eine Menge Bier. Sie möchten einen Host von dem anderen unter Verwendung von 192.168.0.5 (die andere Host-Privatadresse) telnet. Ist das möglich?

A: Ja, sicher, dass es möglich ist. Alles ist möglich mit Admins, wenn Sie viel Bier haben.

(Es ist eine echte Frage, die ich einmal in meinem Leben zu einem Interview bekommen habe. Nun, eine gute Laune während eines Interviews kann dem Mann helfen, sich zu entspannen und, naja, irgendwie die Atmosphäre im Interview leichter zu machen, weißt du was ich meine .)

Das sollte Community Wiki sein, oder? Und es gibt irgendwo ein Duplikat, wenn ich mich nicht irre.

    
iksemyonov 24.12.2010 14:05
quelle

Tags und Links