Η συνάρτηση paws (15 Μονάδες)
Ζητήσαμε από τον Κλαύδιο να προγραμματίσει κάτι στα γρήγορα και συμπεριέλαβε την
ακόλουθη συνάρτηση paws στον κώδικά του:
void paws(char *a, size_t len) {
int lo = 0, hi = len;
while(lo < hi) {
char tmp = a[lo];
a[lo++] = a[hi];
a[hi--] = tmp;
}
return;
}
paws (μέχρι 15 λέξεις εξήγηση);Τι θα τυπωθεί στην πρότυπη έξοδο μετά την εκτέλεση της παρακάτω ακολουθίας εντολών;
char buffer[] = { 33, 0x43, 'B', 0x41, '!', 0 };
paws(buffer, 3);
printf("Result: %s\n", buffer);
paws όπως είναι γραμμένη; Αν ναι,
εξηγήστε γιατί και πως θα το διορθώνατε. Αν όχι, εξηγήστε γιατί αυτή η υλοποίηση είναι
ορθή.Μετατρέψτε πρώτα τα στοιχεία του buffer σε χαρακτήρες με τον πίνακα ASCII (33 και
0x43, 0x41 σε δεκαδικό). Στη συνέχεια εκτελέστε τον βρόχο με το χέρι, γράφοντας τα
lo, hi και τα περιεχόμενα του πίνακα σε κάθε βήμα. Για το σφάλμα, αναρωτηθείτε
ποιος είναι ο δείκτης (index) του τελευταίου έγκυρου στοιχείου ενός πίνακα μήκους
len, τι γίνεται όταν len είναι 0, και τι σημαίνει η μετατροπή size_t σε int.
Αριθμός στον οδηγό: Α10.24
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2026-jun-q2 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2026-jun-q2.html ·
Markdown (GitHub)