Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;

Ähnliche Dokumente
Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Praxis der Programmierung

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

Übungspaket 14 Eindimensionale Arrays

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

6. Zeiger Allgemeines Definition eines Zeigers

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Übungspaket 23 Mehrdimensionale Arrays

Übungen zu Systemprogrammierung 1 (SP1)

Klausur C-Programmierung / / Klingebiel / 60 Minuten / 60 Punkte

Lösung Übungszettel 6 Aufgabe 1-4

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Hochschule München, FK 03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Zeiger und dynamischer Speicher

Übungspaket 23 Mehrdimensionale Arrays

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

C- Kurs 09 Dynamische Datenstrukturen

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Tafelübung zu BS 4. Speicherverwaltung

CEN1112 Labor Software-Entwicklung

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

Objektbasierte Entwicklung

Die Programmiersprache C Eine Einführung

Dr. Monika Meiler. Inhalt

GI Vektoren

Klausur Informatik I WS 2006/2007

Informatik Repetitorium SS Volker Jaedicke

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Deklarationen in C. Prof. Dr. Margarita Esponda

2. Semester, 2. Prüfung, Lösung

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher

Einstieg in die Informatik mit Java

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

+ C - Formatierte Eingabe mit scanf()

Klausur in Programmieren

Übersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)

Einführung in die Programmierung

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einstieg in die Informatik mit Java

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Programmieren in C/C++ und MATLAB

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Programmieren in C (Übungsblatt 1)

Advanced Programming in C

Einstieg in die Informatik mit Java

Grundlagen der Informatik

Wiederholung C-Programmierung

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Klausur Programmieren 2 WS2016/17

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Erste Schritte der Programmierung in C

Objektorientierte Programmierung mit C++ Vector und List

Dynamische Speicherverwaltung

Arrays (Felder/Vektoren)

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Probeklausur: Programmierung WS04/05

Vorkurs C++ Programmierung

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

U:\Files\cprg\adressver\final\adressverwaltung.c :35

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian

Übungspaket 19 Programmieren eigener Funktionen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Hilfsblatt für C++ Prüfungen im 5. Semester

Hochschule München, FK 03 FA SS Ingenieurinformatik

Zusammengesetzte Datentypen -- Arrays und Strukturen

"Einführung in die Programmierung" Krefeld, den 24. September 2013

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Ingenieurinformatik (FK 03) Übung 4

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Eine kleine Befehlssammlung für Java Teil1

MAXIMUM2.STR Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Musterlösung. Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

C++-Zusammenfassung. H. Schaudt. August 18, 2005

Klausur Programmieren 2 SS 2016

Programmierung mit C Zeiger

Einführung in die Programmierung für Wirtschaftsinformatik

2. Programmierung in C

PIWIN 1 Übung Blatt 5

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Musterlösung Stand: 5. Februar 2009

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

C für Java-Programmierer

Transkript:

Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 26.1.2009 Bearbeitungsdauer: 90 min Hilfsmittel: Vorlesungsunterlagen und C/C++ Einführungsbücher (z.b. Kernighan/Ritchie) Jegliche Art von elektronischen Hilfsmitteln sind nicht erlaubt. 1. Aufgabe (6 Punkte) Betrachten Sie folgendes Programm: #include <stdio.h> int main() char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text; while(*tmp) tmp++; while(tmp!=text) printf("%c", *--tmp); printf("\n"); Begründen Sie, warum in den eckigen Klammern der Variable Text keine Zahl stehen braucht: Was gibt das Programm auf dem Bildschirm aus? 2. Aufgabe (6 Punkte) Erstellen Sie einen neuen Datentyp mit Namen trichtung, der nur die Zustände Nord, Ost, Süd und West einnehmen kann. Hinter den vier Himmelsrichtungen sollen sich die Werte eins bis vier verbergen. Definieren Sie eine Variable des eben erstellten Typs mit Namen sunrise und initialisieren Sie diese mit dem Wert Ost. Dr. Robert Heß Klausur PR2 26.1.2009 Seite 1 von 6

3. Aufgabe (10 Punkte) Schreiben Sie ein kleines Programm, welches die Text-Datei Brief.txt mit folgendem Inhalt erstellt: Guten Tag, bla bla bla. Auf Wiedersehen! #include <stdio.h> int main() 4. Aufgabe (9 Punkte) Eine verkettete Liste hat für seine Kettenelemente folgende Struktur: typedef struct skette double Wert; struct skette *next; tkette; Es soll eine Funktion erstellt werden, die das erste Kettenglied entfernt. Der Funktion wird hierfür die Adresse des Zeigers auf das erste Kettenglied übergeben. Das Element next des letzten Kettenglieds hat den Wert NULL. Der Speicher wurde dynamisch mit der Funktion malloc() reserviert. Bei Erfolg soll der Wert null, bei einem Fehler der Wert 1 zurückgegeben werden. int drop(tkette **Start) Dr. Robert Heß Klausur PR2 26.1.2009 Seite 2 von 6

Nachname:... Vorname:... MatrNr.:... 5. Aufgabe (14 Punkte) Gegeben sei folgende Funktionsdeklaration: int Funktion(int a, int b); Die Implementation der Funktion wird durch folgendes Struktogramm beschrieben: Erstellen Sie die Implementation der Funktion: int Funktion(int a, int b) Was gibt die Funktion bei folgenden Parametern zurück? Parameter a Parameter b Rückgabewert 12 8 6 9 7 8 Geben Sie der Funktion einen sinnvollen Namen: Dr. Robert Heß Klausur PR2 26.1.2009 Seite 3 von 6

6. Aufgabe (10 Punkte) In das Programm auf der folgenden Seite haben sich in 12 Zeilen Fehler eingeschlichen. Der erste Fehler wurde beispielhaft unten eingetragen. Finden Sie 10 der verbleibenden 11 fehlerhaften Zeilen, und tragen Sie diese mit der dazugehörigen Korrektur und die folgende Tabelle ein. Zeile Fehler Korrektur 4 Kommentarende fehlt... 2008 */ Dr. Robert Heß Klausur PR2 26.1.2009 Seite 4 von 6

Nachname:... Vorname:... MatrNr.:... /* 1 */ /* Name der Datei: main.c */ /* 2 */ /* Autor: Robert Heß / E2a */ /* 3 */ /* Version: 1.0 */ /* 4 */ /* Datum: 22.9.2008 /* 5 */ /* 6 */ #jnclude <stdio.h> /* 7 */ /* 8 */ int Notenanzahl(int Note); /* 9 */ /* 10 */ int main() /* 11 */ /* 12 */ int Note(6); /* Anzahl der Noten 1 bis 6 */ /* 13 */ int i; /* lokale Laufvariable */ /* 14 */ int bestanden; /* Anzahl der bestandenen Schüler */ /* 15 */ int nichtbestanden /* Anzahl der durchgefallenen Schüler */ /* 16 */ double Durchschnitt=0; /* Notendurchschnitt */ /* 17 */ /* 18 */ /* Überschrift ausgeben */ /* 19 */ printf(" >>> NOTENSPIEGEL <<<\n"); /* 20 */ /* 21 */ /* Anzahl der Noten abfragen */ /* 22 */ for(i=0; i<=6; i++) Note[i] = Notenanzahl(i+1); /* 23 */ /* 24 */ /* Berechnungen zum Notenspiegel durchführen */ /* 25 */ bestanden = Note[0]+Note[1]+Note[2]+Note[3]; /* 26 */ nichtbestanden = Note[5]+Note[6]; /* 27 */ for(i=0; i<6; i++) Durchschnitt += Note[i]*(i+1); /* 28 */ if(bestanden+nichtbestanden>0) /* 29 */ Durchschnitt /= (bestanden+nichtbestanden); /* 30 */ /* 31 */ /* Ergebnisse ausgeben */ /* 32 */ printf("bestanden: %d\n", bestanden); /* 33 */ printf("nicht bestanden: %d\n", nichtbestanden); /* 34 */ if(durchschnitt>0) /* 35 */ printf("durchschnitt: %d\n", Durchschnitt); /* 36 */ else printf("durchschnitt:?\n"); /* 37 */ /* 38 */ /* Schlussmeldung */ /* 39 */ printf("das war's!\n); /* 40 */ /* 41 */ return 0; /* 42 */ /* 43 */ /* 44 */ int Notenanzahl(int Note); /* 45 */ /* 46 */ int Anzahl=0; /* Anzahl der Noten */ /* 47 */ int korrekt=0; /* zeigt eine korrekte Eingabe an */ /* 48 */ /* 49 */ do /* 50 */ /* Benutzerabfrage */ /* 51 */ printf("bitte geben Sie die Anzahl der Note %d ein: ", Note); /* 52 */ fflush(stdin); /* 53 */ /* 54 */ /* Test, ob Zahl eingegeben wurde */ /* 55 */ if(scanf("%d", Anzahl)!=1) /* 56 */ printf(" Das war keine Zahl!\n"); /* 57 */ /* 58 */ /* Wertebereich testen */ /* 59 */ else if(anzahl<0 Anzahl>999) /* 60 */ printf(" Bitte nur der Wertebereich 0 bis 999!\n"); /* 61 */ /* 62 */ /* Eingabe korrekt */ /* 63 */ else korrekt = 1; /* 64 */ while(korrekt); /* 65 */ /* 66 */ return Anzahl; /* 67 */ Dr. Robert Heß Klausur PR2 26.1.2009 Seite 5 von 6

7. Aufgabe (6 Punkte) Mit welchen vier Funktionen erfolgt in C die dynamische Speicherverwaltung? Mit welchen Funktionen/Operatoren erfolgt in C++ die dynamische Speicherverwaltung? Was wird mit memory leakage bezeichnet? 8. Aufgabe (7 Punkte) Wann wird in C++ der Konstruktor einer Klasse aufgerufen? Wann wird in C++ der Destruktor einer Klasse aufgerufen? In einer Klasse gibt es die drei Zugriffsebenen private, protected und public. Auf welche der Ebenen kann innerhalb und außerhalb einer Klasse zugegriffen werden? Zugriffsbereich innerhalb der Klasse außerhalb der Klasse private zugänglich protected zugänglich public zugänglich zugänglich zugänglich zugänglich Dr. Robert Heß Klausur PR2 26.1.2009 Seite 6 von 6