Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I.

Σχετικά έγγραφα
Προγραμματισμός Ι. Θεματική ενότητα 8: Δημιουργία προγραμμάτων

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

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

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

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

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

Προγραμματισμός Ι. Θεματική ενότητα 6: Πίνακες αλφαριθμητικά

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

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

Εισαγωγή στην γλώσσα προγραμματισμού C

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

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Γλώσσα Προγραμματισμού C

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

Προγραμματισμός σε C++

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Προγραμματισμός Ι. Θεματική ενότητα 2: Μεταβλητές σταθερές Ι/Ο κονσόλας

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Ι. Προτάσεις επανάληψης βρόχοι

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

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος lantzos@teiser.gr

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

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

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

Υπολογισμός - Εντολές Ελέγχου

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

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

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

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

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 14. Πίνακες Ι. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Δομές ελέγχου & επανάληψης

Δομημένος Προγραμματισμός

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

Βασικές Αρχές Προγραμματισμού

Υπολογισμός - Εντολές Επανάληψης

Εισαγωγή στον δομημένο προγραμματισμό

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Δομές Ελέγχου και Επανάληψης

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

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

Transcript:

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I. (1) Η γλώσσα C αποτελεί: (α) Γλώσσα προγραμματισμού υψηλού επιπέδου (β) Γλώσσα μηχανής (γ) Γλώσσα assembly (δ) Τίποτε από τα προηγούμενα (2) Ποια είναι η σωστή σειρά εκτέλεσης των ακόλουθων βημάτων; (α) i. Μεταγλώττιση και δημιουργία του αντικείμενου κώδικα ii. Δημιουργία του εκτελέσιμου κώδικα iii. Συγγραφή του πηγαίου κώδικα iv. Προεπεξεργασία και ενσωμάτωση των αρχείων κεφαλίδας (β) i. Συγγραφή του πηγαίου κώδικα ii. Προεπεξεργασία και ενσωμάτωση των αρχείων κεφαλίδας iii. Μεταγλώττιση και δημιουργία του αντικείμενου κώδικα iv. Δημιουργία του εκτελέσιμου κώδικα (γ) i. Προεπεξεργασία και ενσωμάτωση των αρχείων κεφαλίδας ii. Συγγραφή του πηγαίου κώδικα iii. Μεταγλώττιση και δημιουργία του αντικείμενου κώδικα iv. Δημιουργία του εκτελέσιμου κώδικα (δ) i. Μεταγλώττιση και δημιουργία του αντικείμενου κώδικα ii. Συγγραφή του πηγαίου κώδικα iii. Προεπεξεργασία και ενσωμάτωση των αρχείων κεφαλίδας iv. Δημιουργία του εκτελέσιμου κώδικα (3) H ακολουθία διαφυγής \n δηλώνει: (α) Εκτύπωση του χαρακτήρα \ (β) Εκτύπωση του χαρακτήρα n (γ) Μετακίνηση του κέρσορα στην επόμενη γραμμή (δ) Μετακίνηση του κέρσορα προς τα δεξιά κατά μία θέση στηλογνώμονα -1/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι (4) Η μορφοποιούμενη συνάρτηση εκτύπωσης στο κανάλι εξόδου (οθόνη) ονομάζεται: (α) print (β) write (γ) fprint (δ) printf (5) Ποιο από τα ακόλουθα σχόλια είναι σωστό; (α) /* Σχόλιο σχόλιο σχόλιο σχόλιο (β) /* Σχόλιο σχόλιο /* σχόλιο σχόλιο */ (γ) /* Σχόλιο σχόλιο σχόλιο σχόλιο */ (δ) /* Σχόλιο σχόλιο σχόλιο σχόλιο // (6) Το όνομα time_t αποτελεί: (α) Λέξη κλειδί (β) Τελεστή (γ) Αναγνωριστή (δ) Δεσμευμένη λέξη (7) Ποιο από τα ακόλουθα ονόματα μεταβλητών είναι σωστό; (α) _temp_in_f (β) total% (γ) $product (δ) 3rd (8) Ποια είναι η λειτουργία του ακόλουθου προγράμματος; #include <ctype.h> char ch; -2/15-

Ερωτήσεις αυτοαξιολόγησης printf( "Start writing letters without enter\n\n" ); do ch=getche(); printf( " -> ",ch ); if (islower(ch)) putchar(toupper(ch)); else putchar(tolower(ch)); printf( "\n" ); while (ch!='.'); (α) Ανάγνωση χαρακτήρων από αρχείο και μετατροπή των κεφαλαίων σε μικρά και τούμπαλιν. Το πρόγραμμα τερματίζει μόλις πληκτρολογηθεί μία τελεία (.). (β) Ανάγνωση χαρακτήρων από το πληκτρολόγιο και μετατροπή των κεφαλαίων σε μικρά και τούμπαλιν. Το πρόγραμμα τερματίζει μόλις πληκτρολογηθεί μία τελεία (.). (γ) Ανάγνωση χαρακτήρων από το πληκτρολόγιο και μετατροπή των κεφαλαίων σε μικρά και τούμπαλιν. Το πρόγραμμα τερματίζει μόλις πληκτρολογηθεί το κενό. (δ) Ανάγνωση χαρακτήρων από αρχείο και μετατροπή των κεφαλαίων σε μικρά και τούμπαλιν. Το πρόγραμμα τερματίζει μόλις πληκτρολογηθεί το κενό. (9) Να υπολογισθούν οι τελικές τιμές των x και y στις ακόλουθες διαδοχικές εκφράσεις. int x = 10, y = 20; ++ x; y = --x; y = x-- + y; y = y x++; (α) x=9, y=9 (β) x=9, y=11 (γ) x=10, y=10 (δ) x=10, y=11 (10) Ποια είναι τα αποτελέσματα του ακόλουθου προγράμματος; -3/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι char ch; int i; float fl; fl=i=ch='a'; printf( "ch=%c, i=%d, fl=%2.2f,\n",ch,i,fl ); ch=ch+1; i=fl+2*ch; fl=2.0*ch+i; printf( "ch=%c, i=%d, fl=%2.2f,\n",ch,i,fl ); (α) ch=b, i=197, fl=329.00, ch=a, =65, fl=329.00 (β) ch=197, i=b, fl=329.00, ch=65, i=a, fl=65.00 (γ) ch=a, i=65, fl=65.00, ch=b, i=197, fl=329.00 (δ) ch=65, i=a, fl=65.00, ch=197, i=b, fl=329.00 (11) Ποιος κώδικας είναι ισοδύναμος της έκφρασης max=(a>b?a:b) > c? (a>b?a:b):c; (α) if (a>b) max=a; else max=b; if (max<c) max=c; (β) if ((a>b) && (c<b)) max=b; (γ) if (max>b) max=a; else max=c; (δ) if (a>b) max=a; else max=c; (12) Ποιος από τους ακόλουθους κανόνες σύνταξης των εντολών switch-case είναι λανθασμένος; (α) Κάθε case πρέπει να έχει μία int ή char σταθερά έκφραση. (β) Δύο case δεν μπορούν να έχουν την ίδια τιμή. -4/15-

Ερωτήσεις αυτοαξιολόγησης (γ) Οι προτάσεις κάτω από την ετικέτα default εκτελούνται όταν δεν ικανοποιείται καμία από τις case ετικέτες. (δ) Η default είναι απαραίτητα η τελευταία ετικέτα. (13) Ποια είναι το αποτέλεσμα του ακόλουθου προγράμματος; #define ADD 1 #define SUB 2 #define MUL 3 #define DIV 4 float num1=12, num2=-12.5454; int result, choice=4; switch (choice) case ADD: result=num1+num2; break; case SUB: result=num1-num2; break; case MUL: result=num1*num2; break; case DIV: if (num2) result=num1/num2; else printf( "\t\t ERROR: division by 0" ); break; printf( "\n\tresult: %f\n",result ); (α) -0.545400-5/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι (β) -0.956526 (γ) 24.545400 (δ) -150.5448 (14) Ποιος από τους ακόλουθους κανόνες για το βρόχο do-while είναι λανθασμένος; (α) Ο βρόχος do-while οδηγείται αποκλειστικά από γεγονός. (β) Ο βρόχος do-while ελέγχει τη συνθήκη τερματισμού στο τέλος της εκτέλεσής του. (γ) Ο βρόχος do-while μπορεί να καταστεί λειτουργικά ισοδύναμος με το βρόχο for. (δ) Ο βρόχος do-while αποτελεί επαναληπτική πρόταση. (15) Ποιες από τις παρατηρήσεις που αφορούν στις ακόλουθες προτάσεις είναι λανθασμένη; i) while (++count<12) Π1 ii) while (count++<12) Π1 (α) Η πρόταση (i) χρησιμοποιεί την προθεματική σημειογραφία ενώ η (ii) τη μεταθεματική. (β) Στην πρόταση (i) πρώτα αυξάνεται η τιμή τής count και η νέα τιμή της συγκρίνεται με το 12. (γ) Και οι δύο προτάσεις θα εκτελεσθούν για τον ίδιο αριθμό επαναλήψεων. (δ) Στην πρόταση (ii) πρώτα συγκρίνεται η τιμή τής count με το 12 και στη συνέχεια αυξάνεται η τιμή της. (16) Ποιες από τις ακόλουθες παραλλαγές του βρόχου for είναι λανθασμένη; (α) Μπορεί να χρησιμοποιηθεί ο τελεστής μείωσης για μέτρηση προς τα κάτω: for (n=10; n>0; n- -) printf( "n=%d\n",n ); (β) Το βήμα καθορίζεται από το χρήστη: for (n=0; n<60; n=n+13) printf( "n=%d\n",n ); (γ) Χρησιμοποιώντας την ιδιότητα ότι κάθε χαρακτήρας του κώδικα ASCII έχει μία ακέραια τιμή, ο μετρητής μπορεί να είναι μεταβλητή χαρακτήρα: for (n= a ; n< z ; n++) printf( "n=%d, the ASCII value is %d\n",n,n ); (δ) Δεν επιτρέπεται γεωμετρική μεταβολή της τιμής του μετρητή: for (n=1.0;n<60.0; n=1.2*n) printf("n=%f\n",n ); (17) Ποια είναι τα αποτελέσματα του ακόλουθου προγράμματος; -6/15-

Ερωτήσεις αυτοαξιολόγησης int x,y; for (x=0,y=0; x+y<100; x=x+20,y=y+10) printf( "x=%d\ty=%d\t\n",x,y); printf( "x=%d\ty=%d ",x,y ); (α) Το πρόγραμμα θα εμφανίσει σφάλματα κατά τη μεταγλώττιση και δε θα εκτελεσθεί. (β) x=0 y=0 x=20 y=10 x=40 y=20 x=60 y=30 x=60 y=30 (γ) x=0 y=0 x=20 y=10 x=40 y=20 x=60 y=30 (δ) x=0 y=0 x=20 y=10 x=40 y=20 x=60 y=30 x=80 y=40 (18) Ποιο είναι το αποτέλεσμα της πρότασης for (i=0,j=10; i<8; i++,j++) t[j]=s[i]; (α) Αντιγραφή των οκτώ πρώτων στοιχείων του πίνακα s στον t, ξεκινώντας από το ενδέκατο στοιχείο τού t. (β) Αντιγραφή των οκτώ πρώτων στοιχείων του πίνακα s στον t. (γ) Αντιγραφή των έντεκα πρώτων στοιχείων του πίνακα s στον t, ξεκινώντας από το όγδοο στοιχείο τού t. (δ) Αντιγραφή των τεσσάρων πρώτων στοιχείων του πίνακα s στον t, ξεκινώντας από το ενδέκατο στοιχείο τού t. (19) Να μετασχηματισθεί ο βρόχος for στον λειτουργικά ισοδύναμο βρόχο while: for (n = 4; n > 0; n - - ) printf( "%d,",n/2 ); (α) while (n>0) printf( "%d,",n/2 ); -7/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι n- -; (β) n=4; while (n>0) printf( "%d,",n/2 ); n- -; (γ) n=4; while (n>0) n- -; printf( "%d,",n/2 ); (δ) while (n=4) printf( "%d,",n/2 ); n- -; (20) Ποιες από τις ακόλουθες παρατηρήσεις, που αφορούν στους μονοδιάστατους πίνακες, είναι λανθασμένη; (α) Όταν αποδίδονται αρχικές τιμές μπορεί να παραληφθεί το μέγεθος του πίνακα. Ο υπολογιστής θα υπολογίσει αυτόματα πόσα είναι τα στοιχεία του πίνακα από τον αριθμό των αρχικών τιμών που δίδονται, όπως φαίνεται στην παρακάτω δήλωση char d_ar[ ] = a, b, c, d ;, όπου δημιουργείται πίνακας τεσσάρων θέσεων χαρακτήρα. (β) Δεν υπάρχει διαφορά ανάμεσα στη δήλωση πίνακα και στην αναφορά στοιχείου πίνακα, καθώς και στις δύο περιπτώσεις ο δείκτης καθορίζει το μέγεθος του πίνακα. Π.χ. και στις δύο δηλώσεις int temp[13]; και temp[13]=21; αναφερόμαστε στο 13 ο στοιχείο του πίνακα, απλώς στη δεύτερη δήλωση του αποδίδουμε την τιμή 21. (γ) Μπορεί να βρεθεί το μέγεθος σε bytes ενός πίνακα χρησιμοποιώντας τον τελεστή sizeof. Για παράδειγμα, εάν θεωρηθεί ο πίνακας int ar[5]; η έκφραση sizeof(ar) δίνει τιμή 20 επειδή ο πίνακας αποτελείται από 5 ακεραίους των 4 bytes. (δ) Ο δείκτης θέσης στον πίνακα ξεκινά από το 0. -8/15-

Ερωτήσεις αυτοαξιολόγησης (21) Ποιες από τις ακόλουθες παρατηρήσεις, που αφορούν στους πολυδιάστατους πίνακες, είναι λανθασμένη; (α) Εάν αμεληθεί να δοθεί το μέγεθος του πίνακα, ο μεταγλωττιστής θα το καθορίσει αυτόματα με βάση τον αριθμό αρχικών τιμών που παρουσιάζονται. Ωστόσο στους πολυδιάστατους πίνακες μπορεί να παραληφθεί ο αριθμός των στοιχείων μόνο της πρώτης διάστασης, καθώς ο μεταγλωττιστής μπορεί να τον υπολογίσει από τον αριθμό των αρχικών τιμών που διατίθενται. (β) Η δήλωση int ar[ ][ ]= 1, 2, 3, 4, 5, 6; είναι ανεπίτρεπτη επειδή ο μεταγλωττιστής δεν μπορεί να γνωρίζει τι είδους θα ήταν αυτός ο πίνακας. Θα μπορούσε να το θεωρήσει είτε πίνακα 2x3 είτε 3x2. (γ) Η δήλωση printf( "%d",array[1,2] ); είναι λανθασμένη στη γλώσσα C αλλά δεν εντοπίζεται από το μεταγλωττιστή και οδηγεί σε ανεπιθύμητα αποτελέσματα. (δ) Η δήλωση printf( "%d",array[1][2] ); είναι λανθασμένη στη γλώσσα C και εντοπίζεται από το μεταγλωττιστή. (22) Ποιο είναι το αποτέλεσμα του ακόλουθου τμήματος κώδικα; char name1[12] = "abcd"; char name2[12] = "ef"; strcpy(name1,name2); printf( "%s\n", name1 ); (α) ef (β) abcdef (γ) efabcd (δ) efcd (23) Ποιες από τις ακόλουθες παρατηρήσεις, που αφορούν στη λειτουργία του προγράμματος, είναι λανθασμένη; #include <string.h> char msg1[20],msg2[20]; strcpy( msg1, "Lucky you!" ); strcpy( msg2, "Lucky me!" ); -9/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι printf( "msg1=%s\t\tmsg2=%s\n", msg1,msg2 ); strncat( msg1,msg2,3 ); printf( "msg1=%s\n", msg1 ); strcpy( msg1,"hello" ); printf( "msg1=%s\n", msg1 ); (α) Δηλώνονται δύο πίνακες χαρακτήρων 20 θέσεων και με χρήση της συνάρτησης αντιγραφής αλφαριθμητικών τους αποδίδονται τα περιεχόμενα "Lucky you!" και "Lucky me!", αντίστοιχα. (β) Οι τρεις πρώτοι χαρακτήρες του msg2 προσαρτώνται στο τέλος του msg1. (γ) Μετά την προσάρτηση το περιεχόμενο του msg2 διαγράφεται. (δ) Στο msg1 αντιγράφεται το αλφαριθμητικό "Hello". (24) Ποιο πρόγραμμα ικανοποιεί τις ακόλουθες προδιαγραφές: i) Θα εισάγονται από το πληκτρολόγιο 4 αλφαριθμητικά σε πίνακα αλφαριθμητικών, μήκους 7 χαρακτήρων το καθένα. ii) Θα λαμβάνονται οι τρεις πρώτοι χαρακτήρες κάθε αλφαριθμητικού και θα συνενώνονται σε ένα νέο αλφαριθμητικό, το οποίο και θα τυπώνεται. (α) #include <string.h> int i; char str[4][7], str_total[13]; for (i=0;i<4;i++) printf( "\ngive string no %d: ",i+1 ); scanf( "%s",str[i] ); if (i = = 0) strncpy(str_total,str[i],3); else strncat(str_total,str[i],3); printf( "Total string: %s\n",str_total ); (β) -10/15-

Ερωτήσεις αυτοαξιολόγησης (γ) (δ) int i; char str[4][8], str_total[13]; for (i=0;i<4;i++) printf( "\ngive string no %d: ",i+1 ); scanf( "%s",str[i] ); if (i = = 0) strncat(str_total,str[i],3); else strncat(str_total,str[i],3); printf( "Total string: %s\n",str_total ); #include <string.h> int i; char str[4][8], str_total[13]; for (i=0;i<4;i++) printf( "\ngive string no %d: ",i+1 ); scanf( "%s",str[i] ); if (i==0) strncpy(str_total,str[i],3); else strncat(str_total,str[i],3); printf( "Total string: %s\n",str_total ); #include <string.h> int i; -11/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι char str[4][7], str_total[12]; for (i=0;i<4;i++) printf( "\ngive string no %d: ",i+1 ); scanf( "%s",str[i] ); if (i = = 0) strncpy(str_total,str[i],3); else strncpy(str_total,str[i],3); printf( "Total string: %s\n",str_total ); (25) Ποιο πρόγραμμα ικανοποιεί τις ακόλουθες προδιαγραφές: i) Θα εισάγονται 6 πραγματικοί αριθμοί από το πληκτρολόγιο, θα αποθηκεύονται στον πίνακα array[] και θα τυπώνονται: i) οι θετικοί εξ αυτών ii) ο μεγαλύτερος iii) ο αριθμός των στοιχείων του array[], τα οποία έχουν τιμές στο διάστημα [1.05 50.8] (α) #define N 6 #define lower 1.05 #define upper 50.8 float array[n],maxim; int i,count=1; for (i=0;i<n;i++) printf( "\ngive %d number: ",i ); scanf( "%f",&array[i] ); maxim=array[0]; printf( "\n" ); for (i=0;i<n;i++) if (array[i] = = fabs(array[i])) -12/15-

Ερωτήσεις αυτοαξιολόγησης (β) printf( "array[%d]>0: %f\n",i,array[i] ); if (array[i]>maxim) maxim=array[i]; if ((array[i]>=lower) && (array[i]<=upper)) count++; printf( "Maximum=%f\n",maxim ); printf( "Numbers within [lower,upper]: %d\n",count ); #include <math.h> #define N 6 #define lower 1.05 #define upper 50.8 float array[n],maxim; int i,count=0; for (i=0;i<n;i++) printf( "\ngive %d number: ",i ); scanf( "%f",&array[i] ); maxim=array[0]; printf( "\n" ); for (i=0;i<n;i++) if (array[i] = = fabs(array[i])) printf( "array[%d]>0: %f\n",i,array[i] ); if (array[i]>maxim) maxim=array[i]; if ((array[i]>=lower) && (array[i]<=upper)) count++; -13/15-

Πάρις Μαστοροκώστας, Προγραμματισμός Ι (γ) (δ) printf( "Maximum=%f\n",maxim ); printf( "Numbers within [lower,upper]: %d\n",count ); #include <math.h> #define N 6 #define lower 1.05 #define upper 50.8 float array,maxim; int i,count=0; for (i=0;i<=n;i++) printf( "\ngive %d number: ",i ); scanf( "%f",&array[i] ); maxim=array[0]; printf( "\n" ); for (i=0;i<n;i++) if (array[i] = = fabs(array[i])) printf( "array[%d]>0: %f\n",i,array[i] ); if (array[i]>maxim) maxim=array[i]; if ((array[i]>=lower) && (array[i]<=upper)) count++; printf( "Maximum=%f\n",maxim ); printf( "Numbers within [lower,upper]: %d\n",count ); #include <math.h> -14/15-

Ερωτήσεις αυτοαξιολόγησης #define N 6 #define lower 1.05 #define upper 50.8 float array[n],maxim; int i,count=0; for (i=0;i<n;i++) printf( "\ngive %d number: ",i ); scanf( "%f",&array ); maxim=array[0]; printf( "\n" ); for (i=0;i<n;i++) if (array[i] = = abs(array[i])) printf( "array[%d]>0: %f\n",i,array[i] ); if (array[i]>maxim) maxim=array[i]; if ((array[i]>=lower) && (array[i]<=upper)) count++; printf( "Maximum=%f\n",maxim ); printf( "Numbers within [lower,upper]: %d\n",count ); -15/15-