Probeklausur: Programmieren I

Ähnliche Dokumente
Klausur: Java (Liste P)

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

Einführung in die Programmierung

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

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

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

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

Welche Informatik-Kenntnisse bringen Sie mit?

Fakultät Angewandte Informatik Lehrprofessur für Informatik

RO-Tutorien 3 / 6 / 12

Einführung in die C-Programmierung

Klausur in Programmieren

JAVA für Nichtinformatiker - Probeklausur -

Programmieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff

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

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

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Unterlagen. CPP-Uebungen-08/

5. Tutorium zu Programmieren

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C Eine Einführung

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Klausur in Programmieren

Algorithmen zur Datenanalyse in C++

Advanced Programming in C

Klausur in Programmieren

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

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

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

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

Einstieg in die Informatik mit Java

Allgemeine Informatik II SS :30-13:30 Uhr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Einführung in die Informatik I Informatik I/A

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

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

ALP II Dynamische Datenmengen

Objektorientierung Grundlagen

Allgemeine Hinweise:

Lösungsvorschlag zur 9. Übung

Programmierung mit C Zeiger

Praxis der Programmierung

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

Einführung in die Programmierung

Tutorium Rechnerorganisation

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

10 Die Programmiersprache C99: Zusammenfassung

Klausur Grundlagen der Programmierung

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

Klausur in Programmieren

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Einstieg in die Informatik mit Java

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

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Elementare Datentypen in C++

Modellierung und Programmierung

Moderne C-Programmierung

Lösung Übungszettel 6 Aufgabe 1-4

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

Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS

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

Probeklausur: Programmierung WS04/05

Klausur Programmieren 2 WS2016/17

Programmierung in C. Grundlagen. Stefan Kallerhoff

ihrer Klasse benötigt die Funktion einfuegenan:

6. Verkettete Strukturen: Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Einführung in die Programmierung Wintersemester 2011/12

Objektbasierte Entwicklung

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

Informatik Repetitorium SS Volker Jaedicke

Musterlösung Stand: 5. Februar 2009

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

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Grundlagen der Programmierung

Programmieren in C (Übungsblatt 1)

Programmieren I + II Regeln der Code-Formatierung

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Einführung in Python Übung 1

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Programmieren I. Kapitel 5. Kontrollfluss

1 RPC-Protokoll-Definitionssprache (Protocol Definition Language )

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Klausurvorbereitung Lösung

Einführung in C#.NET. 1 Übersicht. 2 Typen (Types) Dieser Artikel stammt aus dem Magazin von C++.de (

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Angewandte Mathematik und Programmierung

Transkript:

Probeklausur: Programmieren I WS09/10 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis und den Studentenausweis auf den Tisch. Bearbeitungszeit: 90 Minuten Unterschrift Benotung Aufgabe: 1 2 3 4 5 6 Gesamt Note Punkte: 12 16 18 20 18 16 100 erreicht: WS09/10 Probeklausur: Programmieren I (Seite 1) 14.12.2009

Aufgabe 1 Führen Sie folgendes Programme von Hand aus und nortieren Sie die sich ändernden Werte der einzelnen Variabeln. a) 1 #include <stdio.h> 2 3 int main(){ 4 int x=0; 5 int y=1; 6 for (x=10;x!=y;x=x-y){ 7 if (y>x) break; 8 y=y+1; 9 printf("x=%d y=%d\n",x,y); 10 } 11 12 return 0; 13 } 14 Aufgabe1a.c WS09/10 Probeklausur: Programmieren I (Seite 2) 14.12.2009

b) 1 #include <stdio.h> 2 3 int main(){ 4 int x=52; 5 switch (x%4==0){ 6 case 1: x=x+1; 7 case 2: x=x+2; 8 default: x=x+3; 9 } 10 printf("x=%d\n",x); 11 return 0; 12 } Aufgabe1b.c WS09/10 Probeklausur: Programmieren I (Seite 3) 14.12.2009

Aufgabe1c.c c) 1 #include <stdio.h> 2 int main(){ 3 int x=0; 4 int y=3; 5 for (;y>0;y--){ 6 while (x<5){ 7 x=x+1; 8 if (x%2==0) continue; 9 printf("x: %i y: %i\n",x,y); 10 } 11 } 12 return 0; 13 } WS09/10 Probeklausur: Programmieren I (Seite 4) 14.12.2009

d) 1 #include <stdio.h> 2 Aufgabe1d.c 3 typedef struct {int x;int y;} Punkt; 4 5 Punkt verschiebe(punkt p,int dx,int dy){ 6 Punkt result=p; 7 p.x=p.x+dx; 8 p.y=p.y+dy; 9 return result; 10 } 11 12 void printpunkt(punkt p){ 13 printf("(%i,%i)\n",p.x,p.y); 14 } 15 16 int main(){ 17 Punkt p={17,4}; 18 printpunkt(p); 19 Punkt p2 = verschiebe(p,25,38); 20 printpunkt(p); 21 printpunkt(p2); 22 return 0; 23 } WS09/10 Probeklausur: Programmieren I (Seite 5) 14.12.2009

Aufgabe 2 Schreiben Sie folgende Funtionen auf Zeichenketten: a) Für Strings ist eine Funktion: boolean ispalindrom(char* str1); zu implementieren. Es soll zurückgegeben werden, ob ein String Palindrom ist. (Palindrom sind Wörter, die vorwärts und rückwärts gelesen gleich sind, z.b.: Otto, Anna, Lagerregal, Rentner) b) Für Strings ist eine Funktion: unsigned int howoftencontaind(char* str, char c) zu implementieren. Es soll berechnet werden, wie oft das Zeichen c im String str enthalten ist. WS09/10 Probeklausur: Programmieren I (Seite 6) 14.12.2009

Aufgabe 3 Realisieren Sie die folgenden mathematischen Funktionen in C a) { 0, falls n = 0, p(n) = n 1, sonst b) { m, falls n = 0, s(m, n) = p(s(m, n 1)), sonst WS09/10 Probeklausur: Programmieren I (Seite 7) 14.12.2009

c) 0 falls m = 0 f(m, n) = f(m 1, 1) falls m > 0, n = 0 f(m 1, f(m, n 1)) falls m > 0, n > 0 WS09/10 Probeklausur: Programmieren I (Seite 8) 14.12.2009

Aufgabe 4 Entwerfen Sie in dieser Aufgabe eine kleine Bibliothek zur Darstellung von Studentendaten. Ein Studentendatensatz besteht dabei aus einem Wert für Vorname, einem Wert für den Nachname, einen Wert für das Fachsemester und einen Wert für die Anzahl der bereits erreichten Creditpoints. a) Schreiben Sie eine geeignete Struktur struct Studentendaten für die Bibliothek. b) Schreiben Sie eine geeignete Konstruktorfunktion, mit der ein Zeiger auf ein Studentendatenobjekt erzeugt und dieses Objekt initialisiert wird. WS09/10 Probeklausur: Programmieren I (Seite 9) 14.12.2009

c) Schreiben Sie eine Funktion, die zwei Studentenobjekte als Parameter erhält und einen bool schen Wert zurückgibt, der anzeigt ob der erste Student in einem niedrigeren Fachsemester ist, und mehr Creditpoints erreicht hat. d) Schreiben Sie eine Funktion, die als ersten Parameter ein Studentenobjekt erhöht und als zweiten Parameter ein Integer. Der zweite Paramter gibt die Anzahl der Creditpoints an, die dem Student gut geschrieben werden sollen. Hinweis Das Objekt wird verändert! WS09/10 Probeklausur: Programmieren I (Seite 10) 14.12.2009

Aufgabe 5 Gegeben Sei folgende Implementierung von einfach verketteten Listen, wie aus der Vorlesung bekannt. Die Listenelemente sind ganze Zahlen L.h 1 typedef enum {false,true} boolean; 2 3 struct Liste{ 4 boolean isempty; 5 int head; 6 struct Liste* tail; 7 }; 8 9 typedef struct Liste Li; 10 Li* newli(char head,li* tail); 11 Li* newemptyli(); Implementieren Sie folgende Funktionen rekursiv: a) int sum(li* this); Es soll die Summe aller in der Liste gespeicherten Elemente berechnet werden. Für die leere Liste sei das Ergebnis 0. WS09/10 Probeklausur: Programmieren I (Seite 11) 14.12.2009

b) int last(li* this); Es soll da letzte Listenelement zurück gegeben werden. Für leere Listen soll auch hier die 0 als Ergebnis zurückgegeben werden. WS09/10 Probeklausur: Programmieren I (Seite 12) 14.12.2009

Aufgabe 6 Erklären Sie in kurzen Worten. a) Strings werden C als Zeiger auf das ersten Zeichen der Zeichenkette dargestellt. Auch Reihungen sind Zeiger auf das erste Element der Reihung., Trotzdem gibt es einen entscheidenen Unterschied zwischen char* str = (char*)malloc(...) und char str [] = {...} b) In C-Funktionen können statische Variable deklariert werden. Was bedeutet das? WS09/10 Probeklausur: Programmieren I (Seite 13) 14.12.2009

c) Welche Möglickeit hat man, wenn man eine Reihung als Zeiger auf das erste Element übergeben bekommt, die Anzahl der Elemente in dieser Reihung zu bestimmen? d) Was ist bei folgenden Code problematisch? 1 int* f(int i){ 2 int result = 42*i; 3 printf("%d\n",result); 4 return &result; 5 } WS09/10 Probeklausur: Programmieren I (Seite 14) 14.12.2009