Μετάβαση στο περιεχόμενο

Αντικειμενοστρεφής Προγραμματισμός — Ενδεικτικό τεστ

Μεταγραφή των σελίδων 7–9 του exams.pdf (ενδεικτικό τεστ θεωρίας και προγραμματισμού).

exams.pdf (σελ. 7-9)

Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.

Οντοκεντρικός Προγραμματισμός Προβολή Άσκησης

ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ Υπολειπόμενος χρόνος: 9:54

Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.

Ερώτηση 1 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Στον κύκλο ζωής ενός applet η μέθοδος start() εκτελείται

  • [ ] πρώτη
  • [ ] μετά την init()
  • [ ] πριν την init()
  • [ ] μετά την paint()

ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ

Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.

Ερώτηση 2 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Ένα νήμα είναι

  • [ ] στιγμιότυπο της Runnable
  • [ ] στιγμιότυπο της Thread
  • [ ] στιγμιότυπο υποκλάσης της Thread
  • [ ] στιγμιότυπο υποκλάσης της Runnable

ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ

Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.

Ερώτηση 3 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Πότε είναι χρήσιμος ο δείκτης this;

  • [ ] Όταν μια τοπική μεταβλητή έχει το ίδιο όνομα με μια μεταβλητή μέλος, μπορούμε να προσπελάσουμε το μέλος χρησιμοποιώντας το this
  • [ ] Για να επιστρέψουμε αναφορά στο τρέχον αντικείμενο
  • [ ] Για την αλυσιδωτή κλήση συναρτήσεων ενός αντικειμένου
  • [ ] Για όλα τα παραπάνω

ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ

Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.

Ερώτηση 4 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Τι ισχύει από τα παρακάτω;

  • [ ] Ο destructor καλείται αυτόματα όταν ένα αντικείμενο βγει εκτός εμβέλειας
  • [ ] Ο destructor καλείται αυτόματα όταν ένα static αντικείμενο βγει εκτός εμβέλειας
  • [ ] Ο constructor καλείται αυτόματα όταν ένα αντικείμενο δημιουργείται
  • [ ] Ο constructor καλείται όταν ένα αντικείμενο τον καλεί ρητά

Το τεστ αυτό περιέχει 4 ενδεικτικές ερωτήσεις προγραμματισμού, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτών.

Ερώτηση 1 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Δίνεται το παρακάτω πρόγραμμα

class Window{
  double size;
  boolean dmode = false;
  public Window() {
    size = 2.0;}}
class EWindow extends Window{
  protected boolean dmode = true;
  public EWindow (double size){
    this.size = size--;}}
public class RunWindow{
  public static void main(){
    EWindow w1 = new EWindow(3.5);
    ...System.out.println(w1.dmode);
}}

Τί θα εκτυπωθεί μετά την εκτέλεσή του;

  • [ ] true
  • [ ] false
  • [ ] null
  • [ ] τίποτα

Ερώτηση 2 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Δίνεται η παρακάτω μέθοδος της κλάσης CountChars.

public (1) changeString(String s, char c1, char c2)
{String snew;
 snew = (2).replace(c1, c2);
 return snew;
}

Πρέπει να συμπληρωθεί ο κώδικας στα σημεία (1) και (2). Ποια από τις παρακάτω δυάδες είναι η σωστή.

  • [ ] (1): int, (2): s
  • [ ] (1): String, (2): s
  • [ ] (1): String, (2): snew
  • [ ] (1): char, (2): snew

ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Το τεστ αυτό περιέχει 4 ενδεικτικές ερωτήσεις προγραμματισμού, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτών.

Ερώτηση 4 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)

Ποια είναι σωστή δήλωση για μια συνάρτηση που δέχεται σαν όρισμα ένα δείκτη float, ένα δείκτη σε δείκτη char και επιστρέφει ένα δείκτη σε δείκτη int;

  • [ ] int fun(float, char**)
  • [ ] int fun(float, char*)
  • [ ] int fun(float, char*)
  • [ ] int ***fun(*float, **char)
Λύσεις (⚪ AI, μη επαληθευμένο)

Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο

Προσοχή

Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.

AI λύσεις — 2023-endeiktiki

Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.

Θέμα Θεωρία 1/4 (applet start)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή

Κύκλος ζωής applet: init() → start() → paint(). Μετά την init() (2η επιλογή).

Θέμα Θεωρία 2/4 (νήμα)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή

Ένα νήμα είναι αντικείμενο της κλάσης Thread (ή υποκλάσης της)· το Runnable είναι απλώς η εργασία που εκτελεί. Οι επιλογές 2 και 3 είναι και οι δύο υπερασπίσιμες· η πιο γενική και ακριβής είναι «στιγμιότυπο της Thread». 2η επιλογή.

Θέμα Θεωρία 3/4 (δείκτης this)

Αξιοπιστία: ⚠ οι ανεξάρτητες λύσεις διαφωνούν: δες όλες και έλεγξε μόνος σου · εμπιστοσύνη λύτη: χαμηλή

Λύση 1: Και οι τρεις πρώτες χρήσεις είναι σωστές (ξεκαθάρισμα ονομάτων, επιστροφή *this, αλυσιδωτές κλήσεις). Για όλα τα παραπάνω (4η επιλογή).

Λύση 2: - [x] Για όλα τα παραπάνω

Αιτιολόγηση: Ο δείκτης this (σε C++ και Java) χρησιμοποιείται για τη διάκριση παραμέτρων/τοπικών μεταβλητών από πεδία με το ίδιο όνομα, για την επιστροφή αναφοράς στο τρέχον αντικείμενο (*this στη C++ ή this στη Java), επιτρέποντας έτσι και τη συνένωση/αλυσιδωτή κλήση μεθόδων (method chaining).


Λύση 3 (τρίτη γνώμη): Δεν λύθηκε: η ερώτηση 3/4 του προγραμματισμού λείπει πλήρως από το αρχείο θεμάτων exams.pdf (παρουσιάζονται μόνο οι 1/4, 2/4 και 4/4). Η ερώτηση απουσιάζει τόσο από το αρχείο θεμάτων όσο και από τις λύσεις Α και Β, επομένως δεν είναι δυνατόν να αξιολογηθεί.

Θέμα Θεωρία 4/4 (constructor/destructor)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή

Η 1η ισχύει μόνο για αυτόματα αντικείμενα (όχι δυναμικά)· η 2η είναι λάθος (τα static καταστρέφονται στο τέλος του προγράμματος, όχι στην έξοδο από εμβέλεια)· η 4η είναι λάθος ως γενικός κανόνας· η 3η ισχύει πάντα για κάθε δημιουργία αντικειμένου. Δύο επιλογές (1 και 3) είναι δεκτές, η 3η είναι η απόλυτα γενική. 3η επιλογή (αβέβαιο αν η εξέταση θεωρεί σωστή την 1η).

Θέμα Προγραμματισμός 1/4 (πεδίο dmode)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: μέτρια

Το πεδίο dmode της EWindow κρύβει (field hiding) αυτό της Window. Ο στατικός τύπος του w1 είναι EWindow, άρα w1.dmode είναι το true της υποκλάσης. true (1η επιλογή). (Τα ... και η main() χωρίς ορίσματα στην εκφώνηση θεωρούνται τυπογραφικά.)

Θέμα Προγραμματισμός 2/4 (changeString)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή

Η replace ανήκει στο String και επιστρέφει String: (1) String, (2) s (το snew δεν έχει ακόμα τιμή). (1): String, (2): s (2η επιλογή).

Θέμα Προγραμματισμός 4/4 (δήλωση συνάρτησης με δείκτες)

Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή

Επιστρέφει int**, παράμετροι float* και char**. int **fun(float*, char**) (3η επιλογή).

Θέμα Προγραμματισμός 3/4

Αξιοπιστία: δεν λύθηκε

Δεν λύθηκε: η ερώτηση λείπει από τη μεταγραφή.

✔ Επιβεβαίωσε · ✖ Βρήκα λάθος


✖ Βρήκα λάθος στη μεταγραφή