#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Σχετικά έγγραφα
Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv

Αλγόριθμοι Ταξινόμησης Μέρος 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Περιεχόμενα. Πρόλογος... 21

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Περιεχόμενα. Πρόλογος... 17

Προγραμματισμός Ι (ΗΥ120)

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Ανάπτυξη και Σχεδίαση Λογισμικού

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ιαφάνειες παρουσίασης #6 (β)

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Προγραμματισμός Ι (ΗΥ120)

Μεθόδων Επίλυσης Προβλημάτων

Διάλεξη 22η: Επιπλέον στοιχεία της C

Ανάπτυξη και Σχεδίαση Λογισμικού

Ενδεικτικές λύσεις και στατιστικά

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

είκτες και Πίνακες (2)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμό για ΗΜΥ

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός ΙI (E)

Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Β' Περιόδου Θέµα 1. (α')

Η γλώσσα προγραμματισμού C

Εργαστήριο 2: Πίνακες

Δομές δεδομένων (2) Αλγόριθμοι

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Δομημένος Προγραμματισμός (ΤΛ1006)

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Ενδεικτική περιγραφή μαθήματος

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (HY120)

Εισαγωγή στον Προγραμματισμό (με. τη C)

Η βασική συνάρτηση προγράμματος main()

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Η γλώσσα προγραμματισμού C

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Επεξεργασία Αρχείων Κειµένου

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Προγραμματισμός Υπολογιστών με C++

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προεπεξεργαστής C. Προγραμματισμός Ι 1

Σημειώσεις όγδοης εβδομάδας

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

Δομές Δεδομένων & Αλγόριθμοι

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμό για ΗΜΥ

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός (ΤΛ1006)

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Προγραμματισμός Ι (ΗΥ120)

Διαδικαστικός Προγραμματισμός

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στον Προγραμματισμό

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Ηβασικήσυνάρτηση προγράμματος main()

Εισαγωγή στον Προγραμματισμό

Μεθόδων Επίλυσης Προβλημάτων

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:............................................... Θέμα 1 (50/100): Επιλέξτε στις παρακάτω ερωτήσεις ή δηλώσεις τη σωστή απάντηση. Κάθε σωστή απάντηση προσθέτει 2 μονάδες στον τελικό βαθμό και κάθε λάθος απάντηση αϕαιρεί 1 μονάδα από τον τελικό βαθμό. 1. Η γραμμή ενός πηγαίου αρχείου C #include <stdlib.h> απευθύνεται στον... Α.... προεπεξεργαστή Β.... μεταγλωττιστή Γ.... συνδέτη 2. Η μνήμη που χρειάζεται για να αποθηκευθεί μία μεταβλητή τύπου unsigned int σε σχέση με τη μνήμη που χρειάζεται για να αποθηκευθεί μία μεταβλητή τύπου signed int είναι... Α.... περισσότερη Β.... λιγότερη Γ.... ακριβώς ίδια 3. Σε ποιο εύρος μπορούν να κυμανθούν οι τιμές μίας signed char μεταβλητής στη C; Α. [-128,127] Β. [-127,128] Γ. [-128,128] 4. Ο αριθμός 111 του δεκαδικού συστήματος αρίθμησης γράϕεται στο δυαδικό σύστημα και στο δεκαεξαδικό σύστημα ως... Α.... 01111111 και 7F, αντίστοιχα Β.... 01101111 και 6F, αντίστοιχα Γ.... 11111111 και FF, αντίστοιχα 5. Αν η x είναι ακέραια μεταβλητή, ποια τιμή θα πάρει μετά την εντολή x = (5 > 2) + (3 < 8) + (y = 4); Α. 4 Β. 5 Γ. 6 6. Για να πάρουμε το πηλίκο μίας unsigned int μεταβλητής με το 32, αρκεί να... Α.... ολισθήσουμε τη δυαδική αναπαράσταση της τιμής της πέντε θέσεις προς τα αριστερά, υπό την προϋπόθεση ότι τα bits που θα χαθούν θα είναι όλα μηδενικά Β.... ολισθήσουμε τη δυαδική αναπαράσταση της τιμής της πέντε θέσεις προς τα δεξιά Γ.... ολισθήσουμε τη δυαδική αναπαράσταση της τιμής της πέντε θέσεις προς τα δεξιά, υπό την προϋπόθεση ότι τα bits που θα χαθούν θα είναι όλα μηδενικά 7. Οταν μία εξωτερική μεταβλητή δηλωθεί σαν static,... Α.... ϕυλάσσεται στη στοίβα Β.... ϕυλάσσεται στον σωρό Γ.... η δήλωσή της ισχύει μόνο για το αρχείο μέσα στο οποίο ορίζεται 8. Τι είναι το stdlib.h; Α. Το αρχείο επικεϕαλίδας της πρότυπης βιβλιοθήκης της C Β. Η πρότυπη βιβλιοθήκη της C Γ. Η πλήρης βιβλιοθήκη συναρτήσεων της C 9. Μία συμβολοσειρά στη C είναι... Α.... μία λίστα από χαρακτήρες Β.... ένας πίνακας ακεραίων Γ.... αδύνατον να τροποποιηθεί από κάποιο πρόγραμμα

10. Τι θα εκτυπωθεί από το παρακάτω τμήμα κώδικα C; signed char x = 120, y; y = x + 10; printf("%d\n", y); Α. 130 Β. -126 Γ. Τίποτα από τις άλλες επιλογές 11. Τι θα εκτυπωθεί από το παρακάτω τμήμα κώδικα C; Α. 5 Β. 9 Γ. 7 #define diff(a,b) A-B printf("%d\n", diff(8,2+1)); 12. Τι θα εκτυπωθεί από το παρακάτω τμήμα κώδικα C; int x = 7, y, *p; p = &x; y = *p++; printf("%d %d\n", x, y); Α. 7 7 Β. 7 8 Γ. Τίποτα, γιατί θα προκληθεί σϕάλμα κατά την εκτέλεση 13. Οι μακροεντολές στη C ορίζονται με... Α.... #ifdef Β.... #define Γ.... #ifndef 14. Τι θα εκτυπωθεί από το παρακάτω τμήμα κώδικα C; int x = -1, y = 7, z = 5, w; w = (x++) + (--y) * (++z); if (x++) w++; printf("%d\n", w); Α. 30 Β. 35 Γ. 36 15. Ποια τιμή επιστρέϕει η κλήση συνάρτησης strlen("0"); Α. NULL Β. 2 Γ. 1 16. Τι θα εκτυπωθεί από το παρακάτω τμήμα κώδικα C; int *p, x[] = {4, 3, 2, 1, 0}; p = x+3; x[1] = *--p; *p++ = --x[0]; *(p+1) = *p--; p += 4; p[-6]--; p = x-1; printf("%d %d %d %d %d %d\n", sizeof(x)/sizeof(int), x[0], x[1], x[2], x[3], x[4]); Α. 1 3 2 3 1 0 Β. 5 2 2 3 1 1 Γ. Τίποτα, γιατί θα προκληθεί σϕάλμα κατά την εκτέλεση

17. Αν η συνάρτηση f() είναι ορισμένη ως void f(int x) { if (x && (x-1) && (x-2)) { f(x-1); f(x-2); f(x-3); } } και κάνουμε την κλήση f(6), πόσες ϕορές θα κληθεί τελικά η f(0); Α. 4 Β. 5 Γ. 6 18. Οταν η main() συνάρτηση ενός προγράμματος επιστρέψει την τιμή 0, συμβατικά εννοούμε ότι... Α.... αυτό είναι το αποτέλεσμα του προγράμματος Β.... το πρόγραμμα τερμάτισε επιτυχώς Γ.... το πρόγραμμα τερμάτισε ανεπιτυχώς 19. Η συνάρτηση strcmp() της C... Α.... επιστρέϕει σε περίπτωση λάθους το -1 Β.... επιστρέϕει σε περίπτωση λάθους το NULL Γ.... δεν υπάρχει περίπτωση να επιστρέψει με ένδειξη λάθους 20. Σε ποια εντολή από τις παρακάτω το fun είναι δείκτης σε συνάρτηση; Α. int *fun(int *x); Β. int (*fun)(int *x); Γ. int **fun(int *x); 21. Αν για κάποιο λόγο αποτύχει η κλήση της συνάρτησης fopen(), αυτή επιστρέϕει... Α.... EOF Β.... NULL Γ.... -1 22. Αν ένα εκτελέσιμο πρόγραμμα, που έχει προκύψει από το πηγαίο πρόγραμμα C που ακολουθεί, κληθεί ως./myprog 5 7 τι θα εκτυπώσει; #include <stdio.h> int main(int argc, char **argv) { printf("%s\n", *argv); return 0; } Α../myprog 5 7 Β. myprog Γ../myprog 23. Σε μία απλά συνδεδεμένη λίστα, οι κόμβοι που ο δείκτης στον επόμενό τους ισούται με NULL είναι... Α.... τουλάχιστον ένας Β.... ακριβώς ένας Γ.... το πολύ ένας 24. Σε ένα ταξινομημένο δυαδικό δέντρο, τα βάθη του αριστερού και του δεξιού υποδέντρων του κόμβου-ρίζας... Α.... είναι πάντοτε ίσα Β.... είναι πάντοτε άνισα Γ.... ενδεχομένως να είναι ίσα 25. Ο ταχύτερος αλγόριθμος για να ελέγξουμε αν ένας πίνακας είναι ταξινομημένος έχει πολυπλοκότητα... Α.... O(n logn) Β.... O(n) Γ.... O(logn)

Θέμα 2 (30/100): Εϕ όσον η βαθμολογία στο Θέμα 1 είναι τουλάχιστον 10/50, στον τελικό βαθμό θα συνυπολογισθεί και η αξιολόγηση της απάντησής σας στο πρόβλημα που ακολουθεί. Γράψτε πρόγραμμα C το οποίο θα δέχεται στη γραμμή εντολής έναν ακέραιο N μεγαλύτερο του 1 και θα εκτυπώνει στην έξοδο, σε αύξουσα σειρά, όλους τους ακεραίους που είναι μικρότεροι ή ίσοι του N και οι οποίοι μπορούν να γραϕούν σαν άθροισμα δύο κύβων με τουλάχιστον δύο διαϕορετικούς τρόπους. Στην εκτύπωση να ϕαίνονται, για κάθε αριθμό, και τουλάχιστον δύο τρόποι που μπορεί να γραϕεί αυτός σαν άθροισμα δύο κύβων. Για παράδειγμα, ο αριθμός 1729 είναι τέτοιος αριθμός, αϕού 1729 = 1 3 + 12 3 = 9 3 + 10 3. Σημειώστε ότι δεν επιτρέπεται να χρησιμοποιήσετε πραγματικούς αριθμούς, συναρτήσεις της μαθηματικής βιβλιοθήκης και πίνακες (εξαιρείται το όρισμα argv[] της main()). Μία ενδεικτική εκτέλεση: $./taxicab 100000 1729 = 1^3 + 12^3 = 9^3 + 10^3 4104 = 2^3 + 16^3 = 9^3 + 15^3 13832 = 2^3 + 24^3 = 18^3 + 20^3 20683 = 10^3 + 27^3 = 19^3 + 24^3 32832 = 4^3 + 32^3 = 18^3 + 30^3 39312 = 2^3 + 34^3 = 15^3 + 33^3 40033 = 9^3 + 34^3 = 16^3 + 33^3 46683 = 3^3 + 36^3 = 27^3 + 30^3 64232 = 17^3 + 39^3 = 26^3 + 36^3 65728 = 12^3 + 40^3 = 31^3 + 33^3

Θέμα 3 (20/100): Εϕ όσον η συνολική βαθμολογία από τα Θέματα 1 και 2 είναι τουλάχιστον 40/80, στον τελικό βαθμό θα συνυπολογισθεί και η αξιολόγηση της απάντησής σας στο πρόβλημα που ακολουθεί. Θεωρήστε ότι ένας κόμβος λίστας ακεραίων ορίζεται, κατά τα γνωστά, ως: typedef struct listnode *Listptr; struct listnode { int value; Listptr next; }; Η ελλιπής συνάρτηση που δίνεται στη συνέχεια δέχεται ως όρισμα έναν ακέραιο n και τη διεύθυνση μίας θέσης μνήμης listaddr στην οποία είναι καταχωρημένη η διεύθυνση του πρώτου κόμβου μίας λίστας ακεραίων. Η λειτουργία της συνάρτησης είναι να διαγράψει τον n-οστό κόμβο της λίστας, αποδεσμεύοντας και την αντίστοιχη μνήμη (η αρίθμηση των κόμβων ξεκινά από το 1). Αν η λίστα έχει λιγότερους από n κόμβους, ή το n δεν είναι θετικό, η συνάρτηση δεν διαγράϕει κανένα. Συμπληρώστε τις θέσεις με τις τελείες (όχι κατ ανάγκη όλες, αλλά, σίγουρα, όχι περισσότερες από όσες δίνονται) ώστε η συνάρτηση να λειτουργεί με τον τρόπο που περιγράϕηκε. Δεν επιτρέπεται να χρησιμοποιήσετε άλλες μεταβλητές, πέραν αυτών που ορίζονται ήδη στη συνάρτηση. void pdelnth(int n, Listptr *listaddr) { Listptr templist; while (...) if (...) {......... return; } else... } Επίσης, υλοποιήστε μία παραλλαγή της συνάρτησης αυτής (είτε επαναληπτικά, είτε αναδρομικά), με πρωτότυπο Listptr delnth(int n, Listptr list), με την οποία να διαγράϕεται ο n-οστός κόμβος της λίστας που η διεύθυνση του πρώτου κόμβου της είναι η τιμή της μεταβλητής list, αποδεσμεύοντας την αντίστοιχη μνήμη, και επιστρέϕοντας τη νέα λίστα στο όνομα της συνάρτησης. Αν η λίστα έχει λιγότερους από n κόμβους, ή το n δεν είναι θετικό, η συνάρτηση δεν διαγράϕει κανένα και επιστρέϕει τη λίστα που της δόθηκε. Δεν επιτρέπεται να υλοποιήσετε την delnth() απλώς καλώντας κατάλληλα την pdelnth(). Πώς θα πρέπει να κληθούν οι συναρτήσεις pdelnth() και delnth() από τη main() συνάρτηση ενός προγράμματος για να διαγράψουν, η πρώτη, το τρίτο στοιχείο και, η δεύτερη, το πέμπτο στοιχείο μίας λίστας ακεραίων, η διεύθυνση του πρώτου κόμβου της οποίας είναι η τιμή της μεταβλητής alist, τύπου Listptr;

Θέμα 4 (20/100): Εϕ όσον η συνολική βαθμολογία από τα Θέματα 1, 2 και 3 είναι τουλάχιστον 80/100, στον τελικό βαθμό θα συνυπολογισθεί και η αξιολόγηση της απάντησής σας στο πρόβλημα που ακολουθεί. Ο τελικός βαθμός δεν μπορεί να υπερβαίνει το 100/100. Ορίστε δύο συναρτήσεις C με πρωτότυπα unsigned int add(unsigned int a, unsigned int b) και unsigned int mult(unsigned int a, unsigned int b) οι οποίες να επιστρέϕουν το άθροισμα και το γινόμενο, αντίστοιχα, των ορισμάτων που τους δίνονται. Μία λεπτομέρεια είναι ότι δεν επιτρέπεται να χρησιμοποιήσετε στον κώδικα των συναρτήσεων τους χαρακτήρες +, -, *, /, %, [ και ].