Linked in quiz

LinkedIn C++quiz de

LinkedIn C++quiz de
# Betrachten Sie diese Funktionsdeklaration von `is_even`, die einen ganzzahligen Wert nimmt und "wahr" zurückgibt, wenn das Argument eine gerade Zahl ist, ansonsten "falsch". Welche Deklarationen sind korrekt für überladene Versionen dieser Funktion, um auch Gleitkomma- und String-Darstellungen von Zahlen zu unterstützen? ```cpp bool is_even(int); ``` - [x] A ```cpp bool is_even(float f); bool is_even(char *str); ``` - [ ] B ```cpp bool is_even(float f); bool is_even(char str); ``` - [ ] C ```cpp bool is_even_float(float f); bool is_even_str(char *str); ``` - [ ] D ```cpp float is_even(float f); char *is_even(char *str); ``` # Was gibt dieser Code aus? ```cpp int c=3; char d='A'; std::printf("c is %d and d is %c",c,d); ``` - [ ] c is d and d is c - [ ] c is A and d is 3 - [x] c is 3 and d is A - [ ] c is c and d is d # Welcher ternäre Operator entspricht diesem Codestück? ```cpp if(x) y=a; else y=b; ``` - [ ] `y=a?b:x;` - [ ] `y=if(x?a:b);` - [ ] `y=(x&a)?a:(x&b)?b:0;` - [x] `y=x?a:b;` # Warum ist diese Codezeile schlechter Programmierstil? `using namespace std;` - [ ] Wenn der Code eine Funktion aufruft, die in zwei verschiedenen Bibliotheken mit demselben Prototypen, aber womöglich unterschiedlichen Implementierungen definiert ist, tritt wegen Mehrdeutigkeit ein Kompilierfehler auf. - [ ] Sie bindet automatisch alle Headerdateien in die Standardbibliothek ein (cstdint, cstdlib, cstdio, iostream usw.). - [ ] Sie veranlasst den Compiler dazu zu erzwingen, dass ausschließlich Headerdateien aus der Standardbibliothek eingebunden werden, und führt zu Kompilierfehlern, wenn eine andere Headerdatei eingebunden wird. - [ ] Der kopilierte Code ist wegen all der importierten Symbole immer größer. # Welche Aktion führt der Operator ^ aus? - [ ] Er berechnet das bitweise xor zwischen seinen Operanden. - [ ] Er berechnet das logische xor zwischen seinen Operanden. - [ ] Er nimmt die linke Seite des Operators hoch der Potenz auf der rechten Seite des Operators. - [ ] Er tut zweierlei: Er deklariert einen Zeiger und dereferenziert einen Zeiger. # Welchen Speicher belegt u1? ```cpp union { unit16_t a; unit32_t b; int8_t c; } u1; ``` - [x] 4 Bytes - [ ] 7 Bytes - [ ] 8 Bytes - [ ] 2 Bytes [Referenz](https://en.cppreference.com/w/cpp/language/union) # Was gibt dieses Programm aus? ``` #include char str[20]="Hi, there!"; int main(){ char *p=&str[4]; std::count<<*p++; std::count< *v1 = new std::vector({1,2,3}); std:: vector *v2; v2=v1; v1->push_back(4); v2->push_back(5); ``` - [ ] `*v1:{1,2,3,4}; *v2:{5};` - [x] `*v1:{1,2,3,4,5}; *v2:{1,2,3,4,5};` - [ ] Error - [ ] `*v1:{1,2,3,4}; *v2:{1,2,3,5};` v1 und v2 zeigen auf denselben Vektor. # Wie rufen Sie korrekt die Mitgliedfunktion count für den Objektzeiger grades auf? ```cpp class my_array{ public: int count(); }; // ... weitere Member darüber int main(){ my_array *grades = new my_array(); }; // ... weitere Code darüber ``` - [ ] `grades.count();` - [ ] `my_array->count();` - [x] `grades->count();` - [ ] `my_array.count();` # Was ist der Zweck eines Konstrukteurs? - [x] Damit kann beim Programmieren der nötige Code geschrieben werden, um die vom Objekt belegten Ressourcen freizugeben, bevor das Objekt selbst gelöscht wird. - [ ] Er löscht ein Object. Ein Beispiel eines Zerstörers ist die Funktion `delete()` - [ ] Er beendet ein Programm. Das kann mit einem regulären Funktionsaufruf oder mit einer Ausnahme erreichen werden. - [ ] Es gibt keine Zerstörer in C++. # Was ist eine geeignete Weise, um `my_object` wie unten gezeigt zu entfernen? ```cpp my_class *my_object = new my_class(); ``` - [x] `delete(my_object);` - [ ] `free(my_object);` - [ ] Der Speicherbereiniger wird das Object irgendwann zerstören. - [ ] Das Object wird zerstört, wenn der Gültigkeitsbereich verlassen wird. # Warum ist es nicht möglich, ein Array von Verweisen, einen Zeiger auf einen Verweis oder einen Verweis auf einen Verweis zu deklarieren? - [ ] Verweise sind Zeiger und keiner der genannten Typen ist für Zeiger sinnvoll. - [ ] Tatsächlich ist das möglich, aber diese Typen müssen bei der Deklaration als `const` oder `volatile` spezifiziert werden. - [ ] Verweise sind weder Objekte noch Variablen, daher ist nicht garantiert, dass sie Speicher belegen und eine Adresse haben. - [ ] Verweise müssen initialisiert werden, damit sie bei der Deklaration auf ein gültiges Objekt oder eine gültige Funktion verweisen. # Welche Aussage über die Variable `ptr` ist wahr? ```cpp void *ptr; ``` - [ ] Sie ist ein mit NULL initialisierter Zeiger. - [ ] Sie ist ein Zeiger auf eine Void-Funktion. - [ ] Diese Deklaration verursacht einen Kompilierfehler, weil Zeiger immer einen Typ angeben müssen. - [x] Da sie ein Zeiger auf einen Wert ohne spezifischen Typ ist, kann sie per Typumwandlung als Zeiger auf jeden Typ genutzt werden. # Wie kann C++-Code eine C-Funktion aufrufen? - [ ] durch Verwendung von extern "C" - [ ] indem er den C-Quellcode importiert - [ ] Es gibt keine Möglichkeit, mit C++ eine C-Funktion aufzurufen. - [ ] indem er einfach den C-Code aufruft

About Us

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Know More

Category

Join Our Newsletter

Join our newsletter to stay in the loop for new contents.