Theoriefragen zu C/C++



  • Nathan schrieb:

    peaches schrieb:

    unsigned int k = -3;

    Wie ich solche richtig/falsch Dinger hasse...

    Ach? Dabei sind hier kaum welche strittig.

    3.) Abstrakte Klassen werden mit dem Schlüsselwort abstract deklariert.
    C++/CLI, lernen die das? Was das da nicht so?

    5.) Von abstrakten Klassen geerbte abstrakte Methoden müssen in konkrete Klassen implementiert werden.
    Ja, um was damit zu machen. Nein, kein Standfad verlangt es.

    7.) Abstrakte Klassen sind polymorph.
    Ja, sonst hätte man sie nicht gebaut. Nein, klar können sie allein stehen.

    8.) Abstrakte Klassen können instanziert werden, falls sie keine abstrakten Methoden besitzen.
    ex falso quod libet.

    14.) Klassen besitzen immer einen Konstruktor und einen Destruktor.
    Puh, meint er hingeschriebene?

    25.) Standardwerte für Parameter einer Methode werden während der Implementierung der Methode gesetzt.
    //Hä? Der Aufrufer baut sie, wer sonst? Wo man sie "setzt", weiß ich gerade nicht.

    27.) Nicht mehr referenzierte Objekte werden durch den sogenannten Garbage Collector beseitigt.
    //Jo, kann sein.

    Also keine sichere 1 möglich, egal wie gut man C++ kennt. Und ganz allgemein keine sichere 1 an Hochschulen möglich nur durch Fachwissen. Sichere 1 geht nur, wenn man den Prof lernt UND die Assis, die die Klausur bauen und bewerten, wobei man die vorher nicht kennenlernt. Also geht quasi nicht.

    Andererseits kriegt man regelmäßig schon eine 2 in programmierlastigen Fächern, wenn man eine Maus von einem Telefonhörer unterscheiden kann, sie also nicht gleich ans Ohr hält, um zu enträtseln, warum "das Programm nicht geht". Damit ist man in den top 3%.



  • peaches schrieb:

    Hallo an alle C-Programmierer! 🙂

    Nächste Woche steht eine C/C++-Programmieren-Klausur bevor, leider bin ich eine absolute Niete in diesem Fach. Deshalb möchte ich mir wenigstens bei den Aufgaben zur 1. Klausur 100% sicher sein. Könnte mir jemand bei den folgenden Aufgaben helfen? Dafür wäre ich wirklich sehr dankbar! 😃

    Viele liebe Grüße

    Wenn Du eine absolute Niete in diesem Fach bist, dann solltest Du in der Klausur durchfallen. Sonst ist was falsch an Deinem Studium. Setz Dich hin und lerne C oder C++ und dann gehst Du in die Klausur statt Prüfungsfragen auswendig zu lernen. Der Sinn eines Studiums ist doch schliesslich, dass Du etwas lernst.

    Die auch liebe Grüsse und viel Spaß beim Lernen einer Programmiersprache. Es kann einem richtig Freude bereiten.



  • unsigned int k = -3; falsch unsigned int k = 3;
    float alpha 1.57; falsch float alpha = 1.57;
    char *z = 238´; char ziffer = 24 ; falsch char ziffer =2´;
    void * zeiger = NULL ;
    int *s = {200,30} ;
    c = a|1 ; falsch c = a| |1;
    if ( k=3&a>0) x = a/k ; falsch if (k==3 && a>0) x/k;
    for ( int i = 0, i < 5, i++) s+2*i ; falsch for ( int i = 0, i < 5, i++) { s+2*i; }
    signed int k; falsch int k;
    void pZiffer = &ziffer ;
    double weg = -4872937434023; falsch Ganzzahl
    c = a && 1ç b ;
    if ( k ==3 | | a> 0 ) x = a/k ; falsch if ( k ==3 | | a> 0 ) {x = a/k ;}
    while(1) {s += 2*i ;} falsch while(1) {s += 2*i};
    char ziffer = 0xA3 ;
    int t [] = {200, 30, -23};
    float alpha = 1.57f; ???
    char *z =“238“; falsch char *z= 2´; char ziffer = 24; falsch char ziffer =2´;
    void zeiger = NULL;
    int * s = { 200, 30 };
    short size = -48236;
    if ( k = 3 && a > 0) x = a / k; falsch if ( k == 3 && a > 0) x = a / k;
    unsigned int i = -25, k = 1; falsch unsigned int i = 25, k = 1;
    char z = „schoen“; falsch String!
    char ziffer = 0xA3;
    int t [] = { 200, 30, -23 };
    short size = -48353456536; nicht short
    if ( k == 23 || a > 0) x = k / a;
    for (int i=0; i < 5; i++) s+=3
    i;
    das wären meine Antworten zu Aufgabe 1 🙂



  • unsigned int k = -3; falsch unsigned int k = 3;
    float alpha 1.57; falsch float alpha = 1.57;
    char *z = 238´; char ziffer = 24 ; falsch char ziffer =2´;
    void * zeiger = NULL ;
    int *s = {200,30} ;
    c = a|1 ; falsch c = a| |1;
    if ( k=3&a>0) x = a/k ; falsch if (k==3 && a>0) x/k;
    for ( int i = 0, i < 5, i++) s+2*i ; falsch for ( int i = 0, i < 5, i++) { s+2*i; }
    signed int k; falsch int k;
    void pZiffer = &ziffer ;
    double weg = -4872937434023; falsch Ganzzahl
    c = a && 1ç b ;
    if ( k ==3 | | a> 0 ) x = a/k ; falsch if ( k ==3 | | a> 0 ) {x = a/k ;}
    while(1) {s += 2*i ;} falsch while(1) {s += 2*i};
    char ziffer = 0xA3 ;
    int t [] = {200, 30, -23};
    float alpha = 1.57f; ???
    char *z =“238“; falsch char *z= 2´; char ziffer = 24; falsch char ziffer =2´;
    void zeiger = NULL;
    int * s = { 200, 30 };
    short size = -48236;
    if ( k = 3 && a > 0) x = a / k; falsch if ( k == 3 && a > 0) x = a / k;
    unsigned int i = -25, k = 1; falsch unsigned int i = 25, k = 1;
    char z = „schoen“; falsch String!
    char ziffer = 0xA3;
    int t [] = { 200, 30, -23 };
    short size = -48353456536; nicht short
    if ( k == 23 || a > 0) x = k / a;
    for (int i=0; i < 5; i++) s+=3
    i;
    das wären meine Antworten zu Aufgabe 1 🙂



  • Nathan schrieb:

    peaches schrieb:

    unsigned int k = -3;

    Wie ich solche richtig/falsch Dinger hasse...

    Stellt sich immer die Frage, falsch für wen? 😃



  • peaches schrieb:

    unsigned int k = -3; falsch unsigned int k = 3;
    float alpha 1.57; falsch float alpha = 1.57;
    char *z = 238´; char ziffer = 24 ; falsch char ziffer =2´;
    void * zeiger = NULL ;
    int *s = {200,30} ;
    c = a|1 ; falsch c = a| |1;
    if ( k=3&a>0) x = a/k ; falsch if (k==3 && a>0) x/k;
    for ( int i = 0, i < 5, i++) s+2*i ; falsch for ( int i = 0, i < 5, i++) { s+2*i; }
    signed int k; falsch int k;
    void pZiffer = &ziffer ;
    double weg = -4872937434023; falsch Ganzzahl
    c = a && 1ç b ;
    if ( k ==3 | | a> 0 ) x = a/k ; falsch if ( k ==3 | | a> 0 ) {x = a/k ;}
    while(1) {s += 2*i ;} falsch while(1) {s += 2*i};
    char ziffer = 0xA3 ;
    int t [] = {200, 30, -23};
    float alpha = 1.57f; ???
    char *z =“238“; falsch char *z= 2´; char ziffer = 24; falsch char ziffer =2´;
    void zeiger = NULL;
    int * s = { 200, 30 };
    short size = -48236;
    if ( k = 3 && a > 0) x = a / k; falsch if ( k == 3 && a > 0) x = a / k;
    unsigned int i = -25, k = 1; falsch unsigned int i = 25, k = 1;
    char z = „schoen“; falsch String!
    char ziffer = 0xA3;
    int t [] = { 200, 30, -23 };
    short size = -48353456536; nicht short
    if ( k == 23 || a > 0) x = k / a;
    for (int i=0; i < 5; i++) s+=3
    i;

    falsch
    und zwar soo viel, dass ein buch angeraten wäre (nicht der wolf)


  • Mod

    @volkard: Würdest du auf einen lieben Feind den Wolf hetzen?



  • Arcoth schrieb:

    @volkard: Würdest du auf einen lieben Feind den Wolf hetzen?

    da es keine lieben feinde gibt, sind beide antworten wahr.



  • Und das sind die meine Lösungen zu Aufgabe 2. Es ist sicherlich nicht alles richtig. Aber es wäre wirklich nett wenn jemand mal ein Auge darauf werfen könnte.

    Aussage

    w/f

    Abstrakte Klassen enthalten nur Konstanten und Methodenköpfe.

    f

    Abstrakte Klassen dürfen nicht instanziert werden.

    w

    Abstrakte Klassen werden mit dem Schlüsselwort abstract deklariert.

    w

    Besitzen Klassen eine abstrakte Methode, dann sind sie abstrakt.

    f

    Von abstrakten Klassen geerbte abstrakte Methoden müssen in konkrete Klassen implementiert werden.

    w

    Abstrakte Klassen dürfen Klassenvariablen besitzen.

    f

    Abstrakte Klassen sind polymorph.

    w

    Abstrakte Klassen können instanziert werden, falls sie keine abstrakten Methoden besitzen.

    f

    Abstrakte Klassen können eine abstrakte Methode besitzen.

    w

    Abstrakte Klassen müssen abstrakte Methoden besitzen.

    f

    Klassen besitzen nur die Konstruktoren, die explizit implementiert wurden.

    f

    Klassen können mehr als einen Konstruktor besitzen.

    w

    Klassen können nur von einer Klasse abgeleitet werden.

    f

    Klassen sind Referenztypen.

    w

    Klassen besitzen immer einen Konstruktor und einen Destruktor.

    w

    In Subklassen können von der Superklasse geerbte Methoden überladen werden.

    f

    In Subklassen können von der Superklasse geerbte Methoden überschrieben werden.

    w

    friend-Klassen einer Klasse dürfen auf deren private Attribute zugreifen.

    w

    Methoden werden nach dem Prinzip der frühen Bindung aufgerufen, falls sie als virtual deklariert werden.

    w

    Methoden von Subklassen dürfen auf als protected deklarierte Attribute der Superklassen zugreifen.

    w

    Die Parameter einer Methode können mit Standardwerten deklariert werden.

    w

    Standardwerte für Parameter einer Methode werden während der Implementierung der Methode gesetzt.

    w

    Strukturen werden an Funktionen per call by reference übergeben.

    w

    Attribute einer Struktur sind standardmäßig public und ihre Methoden public.

    f

    Das Überladen von Operatoren wie +,-,*,/,<<,>> ist für vom Benutzer definierte Datentypen erlaubt.

    w

    Die Operatoren * und -> dürfen ebenfalls überladen werden.

    w

    Nicht mehr referenzierte Objekte werden durch den sogenannten Garbage Collector beseitigt.

    w



  • So viele Fehler... Du hättest mal lieber lernen sollen.



  • Ich bin ja noch dabei, aber ein paar Hinweise wären trotzdem hilfbarer.



  • Trotzdem Danke!



  • Normalerweise wuerde ich ja korregieren und erklaeren, aber u.A.

    Klassen sind Referenztypen.
    w

    laesst bereits erkennen, dass du keine Ahnung von so grundlegenden Sachen wie dem Typststem hast.



  • volkard schrieb:

    Arcoth schrieb:

    @volkard: Würdest du auf einen lieben Feind den Wolf hetzen?

    da es keine lieben feinde gibt, [...]

    Oh doch, gibt es. Ich denk da an eine Ex von mir ... nach dem Streit war sie mir immer am liebsten 🤡



  • Nathan schrieb:

    peaches schrieb:

    unsigned int k = -3;

    Wie ich solche richtig/falsch Dinger hasse...

    Vorallem, wenn man nicht mal weiß, was er will. Das es kompiliert, ist richtig. Ob es das macht, was ein Anfänger denkt, wahrscheinlich falsch. Ob es das macht, was ein Fortgeschrittener denkt, wahrscheinlich richtig.



  • ja...... schrieb:

    Nathan schrieb:

    peaches schrieb:

    unsigned int k = -3;

    Wie ich solche richtig/falsch Dinger hasse...

    Vorallem, wenn man nicht mal weiß, was er will. Das es kompiliert, ist richtig. Ob es das macht, was ein Anfänger denkt, wahrscheinlich falsch. Ob es das macht, was ein Fortgeschrittener denkt, wahrscheinlich richtig.

    Genau das meinte ich.


Anmelden zum Antworten