Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Trainieren Sie Ihre C-Kenntnisse Mit kommentierten Musterlösungen Für Studium und Selbststudium Dieses Übungsbuch wendet sich an Leser, die ihre C-Kenntnisse durch »Learning by Doing« erwerben und vertiefen möchten. Es ist ideal, um sich anhand von Übungen auf Prüfungen oder auf die Mitarbeit in einem C-Projekt vorzubereiten. Der Aufbau des Buches entspricht dem eines C-Lernbuches, beginnt also mit den Grundlagen und endet mit den komplexeren Themen. Es ist für alle Leser mit grundlegenden C-Kenntnissen geeignet. Alle Kapitel beginnen mit einer Zusammenfassung des Stoffes, zu dem anschließend Fragen und Aufgaben gestellt werden. Jedes Kapitel besteht neben der einführenden Beschreibung des Themas aus drei weiteren Teilen: Verständnisfragen, Programmieraufgaben und Musterlösungen zu allen Fragen und Aufgaben. Mit den Verständnisfragen können Sie testen, wie gut Sie sich in dem jeweiligen Themenbereich auskennen. Dabei treffen Sie auf Ja-Nein-Fragen, Multiple-Choice-Fragen und Aussagen, die vervollständigt werden müssen. Im Aufgabenteil können Sie dann Ihr Wissen praktisch umsetzen. In jedem Kapitel gibt es mindestens zehn Aufgaben mit steigendem Schwierigkeitsgrad. Bei der Auswahl der Problemstellungen für Aufgaben wurde stets darauf geachtet, dass diese typisch und praxisnah sind.Umfangreich kommentierte Musterlösungen am Ende eines Kapitels geben Ihnen ein direktes und ausführliches Feedback zu Ihren Lösungsansätzen. Nach dem Durcharbeiten des Buches verfügen Sie über fundierte Programmierkenntnisse und einen umfangreichen Fundus an Beispiel-Code. Zum kostenlosen Download: Musterlösungen zu den Aufgaben Aus dem Inhalt: Datentypen und Deklarationen Verwendung von Standardfunktionen Formatierte Ein- und Ausgabe Operatoren Verzweigungen und Schleifen Vektoren und Strings Makros und Funktionen Zeiger und Zeigerarithmetik Speicherreservierung zur Laufzeit Typumwandlungen und Speicherklassen Bitoperatoren und Bitfelder Strukturierte Datentypen High-Level-Dateizugriff
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 162
Veröffentlichungsjahr: 2018
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.
ISBN 978-3-95845-898-7
2. Auflage 2018
www.mitp.de
E-Mail: [email protected]
Telefon: +49 7953 / 7189 - 079
Telefax: +49 7953 / 7189 - 082
© 2018 mitp-Verlags GmbH & Co. KG, Frechen
Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Lektorat: Sabine Schulz
Sprachkorrektorat: Petra Heubach-Erdmann
Coverbild: © Gina Sanders / stock.adobe.com
Datenkonvertierung: CPI books GmbH, Leck
Dieses Ebook verwendet das EPUB-Format und ist optimiert für die Nutzung mit dem iBooks-Reader auf dem iPad von Apple. Bei der Verwendung von anderen Readern kann es zu Darstellungsproblemen kommen.
Der Verlag räumt Ihnen mit dem Kauf des E-Books das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.
Der Verlag schützt seine E-Books vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die E-Books mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert. Bei Kauf in anderen Ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.
Einleitung
1 Grundlagen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
2 Elementare Datentypen, Konstanten und Variablen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
3 Verwendung von Funktionen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
4 Formatierte Ein- und Ausgabe
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
5 Operatoren
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
6 Kontrollstrukturen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
7 Symbolische Konstanten und Makros
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
8 Typumwandlungen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
9 Vektoren und Strings
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
10 Funktionen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
11 Speicherklassen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
12 Bitoperatoren
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
13 Zeiger
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
14 Dynamische Speicherplatzverwaltung
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
15 Strukturierte Datentypen
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
16 High-Level-Dateizugriff
Verständnisfragen
Aufgaben
Lösungen zu den Verständnisfragen
Lösungen zu den Aufgaben
Dieses Buch wendet sich an Leser, die ihre C-Kenntnisse durch »Learning by Doing« vertiefen möchten. Es ist ideal, um sich im Stil eines Workshops auf Prüfungen oder auf die Mitarbeit in einem C-Projekt vorzubereiten.
Die Gliederung des Stoffs entspricht der eines C-Lernbuches, beginnt also mit den Grundlagen und endet mit den komplexeren Themen. Aber es ist nicht wesentlich, wie Sie C gelernt haben. Jedes Kapitel beginnt mit einer Übersicht und Zusammenfassung des Stoffs, zu dem anschließend Fragen und Aufgaben gestellt werden. Beispielsweise ist das Thema des 12. Kapitels »Bitoperatoren«. Wenn Ihnen dann der Inhalt der Zusammenfassung zu Bitoperatoren vertraut ist, sollten Sie auch ohne größere Probleme die anschließenden Fragen und Aufgaben lösen können.
Jedes Kapitel besteht neben der einführenden Beschreibung des Themas aus drei weiteren Teilen:
■ Verständnisfragen
■ Programmieraufgaben
■ Musterlösungen zu allen Fragen und Aufgaben
Mit jeweils 20 Verständnisfragen können Sie testen, wie gut Sie sich in dem jeweiligen Themenbereich auskennen. Die Art der Fragen sind entweder Ja-Nein-Fragen, Multiple-Choice-Fragen oder es muss eine Aussage vervollständigt werden.
Im Aufgabenteil können Sie dann Ihr Wissen praktisch umsetzen. Dabei können Sie Ihren vertrauten C/C++-Compiler verwenden. In jedem Kapitel gibt es zehn Aufgaben mit steigendem Schwierigkeitsgrad. Die Bearbeitung einfacher Aufgaben ist oft in wenigen Minuten erledigt. Dagegen kann die Lösung umfänglicherer Aufgaben auch erheblich länger dauern. Dies gilt insbesondere bei Aufgaben zu den Themen »Dynamische Speicherplatzverwaltung«, »Strukturierte Datentypen« und »High-Level-Dateizugriff«. Umfangreichere Problemstellungen sind dabei oft auf mehrere Aufgaben verteilt.
Bei der Auswahl der Problemstellungen für Aufgaben wurde stets darauf geachtet, dass sie typisch und praxisnah sind. Auf diese Weise lernen Sie viele interessante Algorithmen und Datenstrukturen kennen. Auch durch die Verwendung vieler Standardfunktionen vertiefen Sie Ihre Kenntnisse über die Standardbibliothek. In jedem Fall verfügen Sie nach der Durcharbeitung des Buches über fundierte Programmiererfahrungen und einen umfangreichen Fundus von Beispiel-Code.
Trotz ausführlicher Aufgabenstellungen und vieler Hinweise kann es immer mal vorkommen, dass man nicht zum Ziel kommt. Dann hilft ein Blick in die kommentierten Musterlösungen. Außerdem ist es sicher immer interessant, die eigene Lösung mit der im Buch zu vergleichen. Die Musterlösungen zusammen mit Projekten für den C/C++ Compiler von Microsoft Visual Studio finden Sie auch im Internet unter http://www.mitp.de/896.
Ich bedanke mich bei allen, die an der Entstehung des Buches mitgewirkt haben, insbesondere bei Frau Schulz vom mitp-Verlag für die konstruktive Zusammenarbeit.
Dem Leser wünsche ich viele Erfolgserlebnisse beim Lösen der Übungen.
Peter [email protected]
Dieses Kapitel enthält grundlegende Fragen und Aufgaben zur Erstellung von C-Programmen. Hierzu gehören folgende Themen:
■ Header-Dateien inkludierenEine Header-Datei beinhaltet Informationen, die von einem C-Programm verwendet werden. Zum Beispiel enthält die Header-Datei stdio.h Informationen über die Funktionen der Standardbibliothek, die für die Ein-/Ausgabe von Daten zuständig sind. Eine Header-Datei wird mit der #include-Direktive in ein Programm kopiert.
■ Anweisungen schreibenDie Anweisungen eines Programms legen fest, was das Programm macht. Jede Anweisung schließt mit einem Semikolon ab. Zur Ausgabe von Daten auf den Bildschirm steht in C die Funktion printf() zur Verfügung. So gibt z.B. die Anweisung
den Text Hallo! aus und setzt den Cursor an den Anfang der nächsten Zeile.
■ Eine main-Funktion definierenJedes C-Programm besteht im Wesentlichen aus Funktionen, die sich zur Laufzeit des Programms gegenseitig aufrufen. Die erste Funktion, die ausgeführt wird, ist stets die main-Funktion. Die auszuführenden Anweisungen stehen im Funktionsblock, d.h. innerhalb der Klammern { }. Bei Erreichen einer return-Anweisung oder der abschließenden Klammer } des Funktionsblocks wird die Funktion verlassen. Die Ausführung einer return-Anweisung in der main-Funktion beendet also das Programm.
■ Quelldateien kommentierenKommentare dienen zur Dokumentation des Quellcodes. Sie verbessern die Lesbarkeit und können bei der Fehlersuche nützlich sein. Jede Zeichenfolge, die in /* ... */ eingeschlossen ist oder innerhalb einer Zeile mit // beginnt, ist ein Kommentar. Der Compiler ignoriert Kommentare.
1.1 Ein C-Programm kann aus mehreren Quelldateien bestehen.
Richtig
Falsch
1.2 Die Übersetzung eines portablen C-Programms erzeugt eine ausführbare Datei, die auf allen Systemen lauffähig ist.
Richtig
Falsch
1.3 Eine Quelldatei wird mit einem _____________ übersetzt.
1.4 Der ___________ bindet eine Objektdatei mit anderen Modulen zu einer ausführbaren Datei.
1.5 Standardisierte Funktionen sind in der ____________________ enthalten.
1.6 Die Standardbibliothek ist eine Sammlung von
a) C-Quelldateien.
b) Objektdateien und Header-Dateien.
c) ausführbaren Dateien.
1.7 Bei der Suche nach Fehlern in einem C-Programm beginnen Sie immer mit
a) dem letzten vom Compiler angezeigten Fehler.
b) irgendeinem angezeigten Fehler.
c) dem ersten angezeigten Fehler.
1.8 Eine Warnung des Compilers kann einen
a) Syntaxfehler anzeigen.
b) logischen Fehler anzeigen.
c) möglichen Laufzeitfehler anzeigen.
1.9 Jedes C-Programm enthält die Funktion __________.
1.10 In einem C-Programm bedeutet das Doppelkreuz # am Anfang einer Zeile, dass diese Zeile für
a) den Compiler bestimmt ist.
b) den Präprozessor bestimmt ist.
c) die Header-Datei bestimmt ist.
1.11 Die Deklarationen der Standardfunktionen für die Ein-/Ausgabe befinden sich in der Header-Datei __________.
1.12 Die Programmausführung beginnt (abgesehen von allgemeinen Initialisierungen) mit
a) der ersten #include-Direktive.
b) der ersten Anweisung in der Funktion main().
c) der zuerst definierten Funktion.
1.13 Ein C-Programm gibt mit der printf-Funktion eine Meldung aus. Es enthält auch die Zeile
a) weil jedes C-Programm diese Zeile enthalten muss.
b) zur Deklaration der Funktion main().
c) zur Deklaration der Funktion printf().
1.14 In der Funktion main() bewirkt die Anweisung
a) das Verlassen von main().
b) die Beendigung des Programms.
c) die Rückgabe des Exitcodes 0 an das aufrufende Programm.
1.15 Die kürzeste Anweisung besteht aus ___________.
1.16 C-Funktionen müssen in einer bestimmten Reihenfolge definiert werden.
Richtig
Falsch
1.17 Die erste Funktion, die in einer Quelldatei definiert wird, ist stets die Funktion main().
Richtig
Falsch
1.18 Der Prototyp einer Funktion liefert dem Compiler die notwendigen Informationen, um die Funktion vor ihrer Definition aufzurufen.
Richtig
Falsch
1.19 Zeichenfolgen werden als Kommentare interpretiert, wenn sie
a) mit /* beginnen.
b) in /* */ eingeschlossen sind.
c) mit // beginnen.
1.20 In einer Zeile können mehrere Präprozessor-Direktiven stehen.
Richtig
Falsch
1.1 Was gibt das folgende Programm auf dem Bildschirm aus?
1.2 Formulieren Sie die entsprechenden Anweisungen, um
a) beginnend bei der aktuellen Cursorposition auszugeben.
b) am Anfang der nächsten Zeile auszugeben.
1.3 Jedes der folgenden Programme enthält zwei Fehler. Bestimmen und korrigieren Sie jeden Fehler.
a)
b)
c)
1.4 Schreiben Sie ein C-Programm, das Ihren Namen, Ihre Telefonnummer und E-Mail-Adresse in je einer Zeile auf dem Bildschirm ausgibt.
1.5 Fügen Sie Kommentare in die Lösung zur Aufgabe 1.4 ein, und zwar einen Programmnamen, den Namen des Programmierers sowie eine Beschreibung, was das Programm macht.
1.6 Schreiben Sie ein C-Programm, das folgendes Menü ausgibt:
1.7 Sind die folgenden C-Programme vollständig und fehlerfrei?
a)
b)
c)
1.8 Angenommen, die folgenden Anweisungen befinden sich innerhalb einer main-Funktion. Was ist falsch?
a) printf(Geben Sie eine Zahl ein: );
b) return "Alles klar!";
c) void pause() { printf("PAUSE!!!"); }
1.9 Verfolgen Sie den Ablauf des folgenden C-Programms und beschreiben Sie, was auf dem Bildschirm ausgegeben wird.
1.10 Ändern Sie die main-Funktion aus der letzten Aufgabe so, dass folgende Grafik ausgegeben wird:
Fügen Sie außerdem Kommentare in den Quellcode ein, die erklären, was das Programm und die einzelnen Anweisungen machen.
1.1 Richtig
1.2 Falsch (Das Programm muss für jedes System übersetzt werden.)
1.3 Compiler
1.4 Linker
1.5 Standardbibliothek
1.6 b)
1.7 c)
1.8 b) und c)
1.9 main()
1.10 b)
1.11 stdio.h
1.12 b)
1.13 c)
1.14 a), b) und c)
1.15 Einem Semikolon
1.16 Falsch
1.17 Falsch
1.18 Richtig
1.19 b) und c)
1.20 Falsch
1.1
1.2 a)
b)
1.3 a) In der ersten Zeile muss stdio.h statt stdio stehen. Die Funktion zur Ausgabe heißt printf(), nicht print().
b) Das Steuerzeichen \n muss im String stehen und die Anweisung mit einem Semikolon enden. Richtig ist also
Hinweis: Die Anweisung
darf in der main-Funktion fehlen. Sie wird dann automatisch am Ende der Funktion eingefügt.
c) Innerhalb der Funktion main() ist der Kommentar nicht korrekt. Richtig sind folgende Kommentare:
Außerdem muss das Argument der Funktion printf() wie in Teil a) oder b) in Klammern stehen.
1.4
1.5
1.6
1.7 a) Das Programm tut zwar nichts, der Quellcode ist aber fehlerfrei und vollständig.
b) Im Quellcode gibt es drei Fehler:
1. Das Zeichen # fehlt vor include.
2. Die Anweisung return 0; beendet die main-Funktion. Sie muss also hier am Ende der Funktion stehen.
3. Das Argument von printf() muss in Klammern stehen.
c) Der Quellcode ist fehlerfrei und vollständig, aber schlecht lesbar.
1.8 a) Bei dem String fehlen die Hochkommata. Richtig ist also:
b) Der Return-Wert der main-Funktion muss eine Ganzzahl sein.
c) Die Definition der Funktion pause() ist korrekt. Sie darf aber nicht innerhalb einer Funktion stehen, auch nicht innerhalb von main().
1.9
1.10
In diesem Kapitel arbeiten Sie mit
■ ganzzahligen TypenFür Zeichen und ganze Zahlen stehen in C die Typen char, short, int, long und long long zur Verfügung. Sie unterscheiden sich durch ihre Wertebereiche. Die ganzzahligen Typen, ausgenommen der Typ char, werden standardmäßig mit Vorzeichen interpretiert. Beim Typ char ist dies vom Compiler abhängig. Durch Voranstellen des Schlüsselworts signed oder unsigned kann explizit festgelegt werden, ob ein ganzzahliger Typ mit oder ohne Vorzeichen interpretiert wird.
■ GleitpunkttypenZur Darstellung reeller Gleitpunktzahlen gibt es die Typen float, double sowie long double. Sie unterscheiden sich durch ihren Wertebereich und die Genauigkeit. Die Genauigkeit n bedeutet, dass zwei Gleitpunktzahlen, die sich innerhalb der ersten n Dezimalziffern unterscheiden, auch verschieden gespeichert werden.
■ LiteralenBei einem Literal handelt es sich um eine Zeichenfolge, die eine numerische Konstante, eine Zeichenkonstante oder eine String-Konstante repräsentiert. Ganzzahlige Konstanten können dezimal, oktal (mit führender 0) oder hexadezimal (mit führendem 0x oder 0X) dargestellt werden. Für Gleitpunktkonstanten gibt es auch die exponentielle Schreibweise (z.B. 2.5E6). Zeichenkonstanten bestehen aus einem Zeichen eingeschlossen in einfachen Hochkommas (z.B. 'A'). String-Konstanten können mehrere Zeichen enthalten, die in doppelte Hochkommas (z.B. "Hallo?") eingeschlossen sind. Dabei können bestimmte Steuerzeichen als Escape-Sequenzen angegeben werden (z.B. \n für »Zeilenwechsel«, engl. line feed).
■ VariablenVariablen können Daten speichern. Jede Variable muss vor ihrer Verwendung deklariert werden. Die Deklaration legt den Typ und den Namen der Variablen fest. Dabei kann die Variable auch initialisiert werden.Namen bestehen aus einer Folge von Buchstaben (ohne Umlaute und ß), Ziffern oder Unterstrichen. Das erste Zeichen darf keine Ziffer sein. Groß- und Kleinschreibung wird unterschieden. Schlüsselwörter (wie z.B. long) dürfen nicht als Name verwendet werden.
2.1 Ein Datentyp bestimmt
a) die Art der internen Darstellung der Daten.
b) die Größe des benötigten Speicherplatzes.
c) wie Daten auf dem Bildschirm angezeigt werden.
2.2 In C ist nicht festgelegt, ob der Typ char mit oder ohne Vorzeichen interpretiert wird.
Richtig
Falsch
2.3 Mit welchen der folgenden Datentypen können Gleitpunktzahlen dargestellt werden?
a) long
b) float
c) long double
2.4 In einem portablen Programm sollen in einer Variablen ganze Zahlen im Bereich von -100000 bis 100000 gespeichert werden. In der Deklaration der Variablen ist dann der Typ _________ zu verwenden.
2.5 Konstanten zur Darstellung des kleinsten und größten Wertes eines ganzzahligen Typs sind definiert in der Header-Datei
a) stdio.h
b) math.h
c) limits.h
2.6 Der Ausdruck
liefert die Größe eines Objekts vom Typ int in Anzahl
a) Bits.
b) Bytes.
c) Megabytes.
2.7 Bei einer Genauigkeit von 6 Dezimalziffern ist garantiert, dass die Zahlen 0.0123456 und 0.0123457 unterschieden werden.
Richtig
Falsch
2.8 In einem C-Programm repräsentiert die Konstante 0xFF
a) die Zeichen FF.
b) einen ungültigen Wert.
c) den dezimalen Wert 255.
2.9 Welche der folgenden Konstanten haben einen Gleitpunkttyp?
a) 7.
b) 70
c) 7E-1
2.10 Welche numerischen Werte repräsentieren folgende Konstanten?
a) 0 ________.
b) '0' ________.
c) '\0' ________.
2.11 Die Konstanten 'A' und "A" sind gleichwertig. Beide repräsentieren das Zeichen A.
Richtig
Falsch
2.12 Der String "Hi" belegt ____ Bytes.
2.13 Die Escape-Sequenzen \t und \n repräsentieren die Steuerzeichen __________________ und __________________.
2.14 Stringkonstanten, die nur durch Zwischenraumzeichen (Blanks, Tabs und Newline-Zeichen) getrennt sind, werden zu einem String zusammengezogen.
Richtig
Falsch
2.15 Bei welcher der Zeichenfolgen handelt es sich um einen gültigen Namen?
a) _A_
b) Hans-Otto
c) 1x
2.16 Welche der folgenden Deklarationen sind korrekt?
2.17 Bei der Definition einer lokalen Variablen ohne Initialisierung wird
a) der Typ und Name der Variablen festgelegt.
b) der Speicherplatz für die Variable reserviert.
c) der Anfangswert 0 der Variablen automatisch zugewiesen.
2.18 Jede globale Variable ohne explizite Initialisierung wird mit _____ vorbelegt.
2.19 Eine ganze Zahl vom Typ double soll mit der Funktion printf() dezimal angezeigt werden. Welches Formatelement ist richtig?
a) %c
b) %d
c) %f
2.20 Das Datenobjekt limit ist wie folgt definiert:
Welche Anweisungen sind zulässig?
b) printf("Grenzwert: %d\n", limit);
2.1 Bestimmen Sie den Typ folgender Konstanten.
a) 'X'
b) '\033'
c) 0.123456f
d) 512UL
e) 0x10F
f) 2e+10
g) 1.2345678
h) 0101
i) 0xAL
2.2 Schreiben Sie die Anweisungen, die exakt die folgenden Ausgaben erzeugen.
Hinweis: Verwenden Sie Escape-Sequenzen zur Ausgabe von Sonderzeichen oder Steuerzeichen.
a)
wobei die Einrückung mit zwei horizontalen Tabs erfolgen soll.
b)
und einen Ton, um die Aufmerksamkeit des Benutzers zu wecken.
2.3 Nicht alle der folgenden Variablendefinitionen sind korrekt. Welche Fehler liegen vor?
2.4 Schreiben Sie ein C-Programm, das zwei Variablen für Gleitpunktzahlen initialisiert und ihre Werte am Bildschirm anzeigt. Anschließend berechnet das Programm die Summe, die Differenz, das Produkt und den Quotienten beider Zahlen und zeigt die Ergebnisse an.
2.5 Bestimmen Sie die Ausgabe des folgenden C-Programms, ohne das Programm auszuführen.
Hinweis: Eine ASCII-Code Tabelle ist hilfreich.
2.6 Schreiben Sie ein C-Programm, das die Größe des Speicherplatzes und den Wertebereich der Datentypen char und int anzeigt. Verwenden Sie die Konstanten CHAR_MIN, CHAR_MAX, INT_MIN und INT_MAX, die den kleinsten und größten möglichen Wert des jeweiligen Typs darstellen. Diese Konstanten sind in der Header-Datei limits.h definiert.
Hinweis: Der Operator sizeof liefert die Größe eines Typs in Anzahl Byte.
2.7 Die Header-Datei float.h definiert die Konstanten, die die Wertebereiche und Genauigkeiten der Gleitpunkttypen beschreiben. Für den Typ float sind das die Konstanten FLT_MAX, FLT_MIN und FLT_DIG. Sie stellen den größten Wert, den kleinsten positiven Wert und die Genauigkeit dar. Die entsprechenden Konstanten für den Typ double sind DBL_MAX, DBL_MIN und DBL_DIG. Schreiben Sie ein C-Programm, das den Wert dieser Konstanten anzeigt.
Hinweis: Zeigen Sie den größten und kleinsten Wert in exponentieller Schreibweise an. Verwenden Sie dazu das Formatelement %E.
2.8 Bestimmen und korrigieren Sie die vier Fehler in jedem der folgenden Programme.
a)
b)
2.9 In einem C-Programm ist zu einem Brutto-Betrag der zugehörige Netto-Betrag und die enthaltene Mehrwertsteuer zu berechnen.
Definieren Sie die Variablen brutto, netto, mwst und mwst_satz, wobei Sie die Variablen brutto und mwst_satz beispielsweise mit den Werten 500.00 und 0.19 initialisieren. Speichern Sie das Ergebnis in den Variablen netto und mwst und zeigen Sie es am Bildschirm an. Es gilt die Formel:
2.10 Was gibt folgendes C-Programm auf dem Bildschirm aus?
2.1 a) und b)
2.2 Richtig
2.3 b) und c)
2.4 long
2.5 c)
2.6 b)
2.7 Richtig
2.8 c)
2.9 a) und c)
2.10 0, 48, 0
2.11 Falsch ('A' ist der Zeichencode von A, also 65, und "A" ist ein String.)
2.12 3 (ein Byte für das String-Endezeichen \0)
2.13 Horizontaler Tabulator und Zeilenwechsel (new-line).
2.14 Richtig
2.15 a)
2.16 b) und c)
2.17 a) und b)
2.18 0
2.19 c)
2.20 a) und b)
2.1 a)int (Zeichencode von X)
c) float
d) unsigned long
e) int (hexadezimale Konstante)
f) double
g) double
h) int (oktale Konstante)
i) long (hexadezimale Konstante)
2.2 a)
b)
2.3 a) Korrekt (Groß- und Kleinschreibung wird unterschieden.)
c) Korrekt (Code des Sonderzeichens \ in einer short-Variablen.)
d) Namen dürfen nicht mit einer Ziffer beginnen.
e) Unzulässiger Name und 40000 nicht im Wertebereich von short.
f) Der Typ float
