Κορυφαίες 100 ερωτήσεις και απαντήσεις για συνέντευξη προγραμματισμού C (PDF)
Ακολουθούν ερωτήσεις και απαντήσεις συνέντευξης προγραμματισμού C για πιο φρέσκους αλλά και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.
Βασικές Ερωτήσεις και Απαντήσεις Συνέντευξης Προγραμματισμού Γ για Νεομαθείς
1) Πώς κατασκευάζετε μια πρόταση αύξησης ή μια δήλωση μείωσης στο C;
Υπάρχουν πραγματικά δύο τρόποι για να το κάνετε αυτό. Το ένα είναι να χρησιμοποιήσετε τον τελεστή αύξησης ++ και τον τελεστή μείωσης –. Για παράδειγμα, η πρόταση "x++" σημαίνει αύξηση της τιμής του x κατά 1. Ομοίως, η πρόταση "x -" σημαίνει μείωση της τιμής του x κατά 1. Ένας άλλος τρόπος γραφής εντολών αύξησης είναι να χρησιμοποιήσετε το συμβατικό σύμβολο + + ή – σύμβολο πλην. Στην περίπτωση του "x++", ένας άλλος τρόπος για να το γράψετε είναι "x = x +1".
👉 Δωρεάν λήψη PDF: Ερωτήσεις & Απαντήσεις για Συνέντευξη Προγραμματισμού C >>
2) Ποια είναι η διαφορά μεταξύ Call by Value και Call by Reference;
Όταν χρησιμοποιείτε το Call by Value, στέλνετε την τιμή μιας μεταβλητής ως παράμετρο σε μια συνάρτηση, ενώ το Call by Reference στέλνει τη διεύθυνση της μεταβλητής. Επίσης, στο Call by Value, η τιμή στην παράμετρο δεν επηρεάζεται από οποιαδήποτε λειτουργία που πραγματοποιείται, ενώ στην περίπτωση Call by Reference, οι τιμές μπορούν να επηρεαστούν από τη διαδικασία εντός της συνάρτησης.
3) Μερικοί κωδικοποιητές διορθώνουν τα προγράμματά τους τοποθετώντας σύμβολα σχολίων σε ορισμένους κωδικούς αντί να τα διαγράφουν. Πώς βοηθά αυτό στον εντοπισμό σφαλμάτων;
Η τοποθέτηση συμβόλων σχολίων /* */ γύρω από έναν κωδικό, που αναφέρεται επίσης ως "σχολιασμός", είναι ένας τρόπος απομόνωσης ορισμένων κωδικών που πιστεύετε ότι μπορεί να προκαλούν σφάλματα στο πρόγραμμα, χωρίς να διαγράψετε τον κώδικα. Η ιδέα είναι ότι εάν ο κώδικας είναι στην πραγματικότητα σωστός, απλώς αφαιρείτε τα σύμβολα σχολίων και συνεχίζετε. Σας εξοικονομεί επίσης χρόνο και προσπάθεια για να χρειαστεί να πληκτρολογήσετε ξανά τους κωδικούς, εάν τους έχετε διαγράψει εξαρχής.
4) Ποιος είναι ο ισοδύναμος κωδικός της ακόλουθης πρότασης σε μορφή WHILE LOOP;
for (a=1; a<=100; a++)
printf ("%d\n", a * a);
Απάντηση:
a=1;
while (a<=100) {
printf ("%d\n", a * a);
a++;
}
5) Τι είναι η στοίβα;
Μια στοίβα είναι μια μορφή δομής δεδομένων. Τα δεδομένα αποθηκεύονται σε στοίβες χρησιμοποιώντας την προσέγγιση FILO (First In Last Out - Πρώτο Εισερχόμενο Τελευταίο Έξω). Σε κάθε συγκεκριμένη περίπτωση, μόνο η κορυφή της στοίβας είναι προσβάσιμη, πράγμα που σημαίνει ότι για να ανακτηθούν δεδομένα που είναι αποθηκευμένα μέσα στη στοίβα, αυτά που βρίσκονται στο πάνω μέρος θα πρέπει να είναι εκτός σύνδεσης.tracΗ αποθήκευση δεδομένων σε μια στοίβα αναφέρεται επίσης ως PUSH, ενώ η ανάκτηση δεδομένων αναφέρεται ως POP.
6) Τι είναι ένα αρχείο διαδοχικής πρόσβασης;
Όταν γράφετε προγράμματα που θα αποθηκεύουν και θα ανακτούν δεδομένα σε ένα αρχείο, είναι δυνατό να ορίσετε αυτό το αρχείο σε διαφορετικές μορφές. Ένα αρχείο διαδοχικής πρόσβασης είναι τέτοιο ώστε τα δεδομένα να αποθηκεύονται με διαδοχική σειρά: το ένα δεδομένα τοποθετείται στο αρχείο μετά το άλλο. Για να αποκτήσετε πρόσβαση σε συγκεκριμένα δεδομένα μέσα στο αρχείο διαδοχικής πρόσβασης, τα δεδομένα πρέπει να διαβάζονται ένα δεδομένο κάθε φορά, μέχρι να επιτευχθεί το σωστό.
7) Τι είναι η προετοιμασία μεταβλητής και γιατί είναι σημαντική;
Αυτό αναφέρεται στη διαδικασία κατά την οποία μια μεταβλητή εκχωρείται μια αρχική τιμή πριν χρησιμοποιηθεί στο πρόγραμμα. Χωρίς αρχικοποίηση, μια μεταβλητή θα είχε μια άγνωστη τιμή, η οποία μπορεί να οδηγήσει σε απρόβλεπτες εξόδους όταν χρησιμοποιείται σε υπολογισμούς ή άλλες λειτουργίες.
8 Τι είναι ο προγραμματισμός σπαγγέτι;
Ο προγραμματισμός σπαγγέτι αναφέρεται σε κώδικες που τείνουν να μπλέκονται και να επικαλύπτονται σε όλο το πρόγραμμα. Αυτή η αδόμητη προσέγγιση κωδικοποίησης συνήθως αποδίδεται στην έλλειψη εμπειρίας από την πλευρά του προγραμματιστή. Ο προγραμματισμός σπαγγέτι κάνει ένα πρόγραμμα πολύπλοκο και την ανάλυση των κωδικών δύσκολη, και έτσι πρέπει να αποφεύγεται όσο το δυνατόν περισσότερο.
9) Διαφοροποίηση Πηγής Codes από το αντικείμενο Codes
Οι πηγαίοι κώδικες είναι κώδικες που γράφτηκαν από τον προγραμματιστή. Αποτελείται από εντολές και άλλες λέξεις-κλειδιά που μοιάζουν με τα αγγλικά που υποτίθεται ότι καθοδηγούν τον υπολογιστή τι να κάνει. Ωστόσο, οι υπολογιστές δεν θα μπορούσαν να κατανοήσουν τους πηγαίους κώδικες. Επομένως, οι πηγαίοι κώδικες μεταγλωττίζονται χρησιμοποιώντας έναν μεταγλωττιστή. Οι έξοδοι που προκύπτουν είναι κωδικοί αντικειμένων, οι οποίοι είναι σε μορφή κατανοητή από τον επεξεργαστή του υπολογιστή. Σε C προγραμματισμού, οι πηγαίοι κώδικες αποθηκεύονται με την επέκταση αρχείου .C, ενώ οι κωδικοί αντικειμένων αποθηκεύονται με την επέκταση αρχείου .OBJ
10) Στον προγραμματισμό C, πώς εισάγετε χαρακτήρες εισαγωγικών (' και ") στην οθόνη εξόδου;
Αυτό είναι ένα κοινό πρόβλημα για αρχάριους, επειδή τα εισαγωγικά αποτελούν συνήθως μέρος μιας δήλωσης printf. Για να εισαγάγετε τον χαρακτήρα εισαγωγικού ως μέρος της εξόδου, χρησιμοποιήστε τους προσδιοριστές μορφής \' (για μεμονωμένα εισαγωγικά) και \” (για διπλό εισαγωγικό).
11) Ποια είναι η χρήση του χαρακτήρα '\0';
Αναφέρεται ως τερματικός μηδενικός χαρακτήρας και χρησιμοποιείται κυρίως για να δείξει το τέλος μιας τιμής συμβολοσειράς.
12) Ποια είναι η διαφορά μεταξύ του συμβόλου = και του συμβόλου ==;
Το σύμβολο = χρησιμοποιείται συχνά σε μαθηματικές πράξεις. Χρησιμοποιείται για να εκχωρήσει μια τιμή σε μια δεδομένη μεταβλητή. Από την άλλη πλευρά, το σύμβολο ==, επίσης γνωστό ως "ίσο με" ή "ισοδύναμο με", είναι ένας σχεσιακός τελεστής που χρησιμοποιείται για τη σύγκριση δύο τιμών.
13) Τι είναι ο τελεστής συντελεστή;
Ο τελεστής συντελεστή εξάγει το υπόλοιπο μιας διαίρεσης. Χρησιμοποιεί το σύμβολο ποσοστού (%). Για παράδειγμα: 10 % 3 = 1, που σημαίνει ότι όταν διαιρέσετε το 10 με το 3, το υπόλοιπο είναι 1.
14) Τι είναι ο ένθετος βρόχος;
Ένας ένθετος βρόχος είναι ένας βρόχος που τρέχει μέσα σε έναν άλλο βρόχο. Με άλλη έννοια, έχετε έναν εσωτερικό βρόχο που βρίσκεται μέσα σε έναν εξωτερικό βρόχο. Σε αυτό το σενάριο, ο εσωτερικός βρόχος εκτελείται αρκετές φορές όπως καθορίζεται από τον εξωτερικό βρόχο. Για κάθε στροφή στον εξωτερικό βρόχο, εκτελείται πρώτα ο εσωτερικός βρόχος.
15) Ποιος από τους παρακάτω τελεστές είναι λανθασμένος και γιατί; ( >=, <=, <>, ==)
Το <> είναι λάθος. Ενώ αυτός ο τελεστής ερμηνεύεται σωστά ως "μη ίσος με" στη σύνταξη δηλώσεων υπό όρους, δεν είναι ο κατάλληλος τελεστής που πρέπει να χρησιμοποιείται σε C προγραμματισμού. Αντίθετα, ο τελεστής != πρέπει να χρησιμοποιηθεί για να υποδείξει τη συνθήκη "όχι ίσο με".
16) Συγκρίνετε και αντιπαραβάλλετε μεταγλωττιστές από διερμηνείς.
Οι μεταγλωττιστές και οι διερμηνείς συχνά ασχολούνται με το πώς εκτελούνται οι κώδικες προγραμμάτων. Οι διερμηνείς εκτελούν τους κώδικες προγράμματος μία γραμμή τη φορά, ενώ οι μεταγλωττιστές παίρνουν το πρόγραμμα ως σύνολο και το μετατρέπουν σε κώδικα αντικειμένου, πριν το εκτελέσουν. Η βασική διαφορά εδώ είναι ότι στην περίπτωση των διερμηνέων, ένα πρόγραμμα μπορεί να αντιμετωπίσει συντακτικά σφάλματα στη μέση της εκτέλεσης και θα σταματήσει από εκεί. Από την άλλη πλευρά, οι μεταγλωττιστές ελέγχουν τη σύνταξη ολόκληρου του προγράμματος και θα προχωρήσουν στην εκτέλεση μόνο όταν δεν εντοπιστούν συντακτικά σφάλματα.
17) Πώς δηλώνετε μια μεταβλητή που θα περιέχει τιμές συμβολοσειράς;
Η λέξη-κλειδί char μπορεί να περιέχει μόνο 1 τιμή χαρακτήρα κάθε φορά. Δημιουργώντας έναν πίνακα χαρακτήρων, μπορείτε να αποθηκεύσετε τιμές συμβολοσειρών σε αυτόν. Παράδειγμα: “char MyName[50]; ” δηλώνει μια μεταβλητή συμβολοσειράς με το όνομα MyName που μπορεί να περιέχει έως 50 χαρακτήρες.
18) Μπορούν οι αγκύλες { } να χρησιμοποιηθούν για να περικλείσουν μία γραμμή κώδικα;
Ενώ οι σγουρές αγκύλες χρησιμοποιούνται κυρίως για την ομαδοποίηση πολλών γραμμών κωδικών, θα εξακολουθεί να λειτουργεί χωρίς σφάλματα εάν το χρησιμοποιήσατε για μία μόνο γραμμή. Μερικοί προγραμματιστές προτιμούν αυτή τη μέθοδο ως τρόπο οργάνωσης κωδίκων για να φαίνεται πιο ξεκάθαρη, ειδικά σε δηλώσεις υπό όρους.
19) Τι είναι τα αρχεία κεφαλίδας και ποιες είναι οι χρήσεις τους στον προγραμματισμό C;
Τα αρχεία κεφαλίδας είναι επίσης γνωστά ως αρχεία βιβλιοθήκης. Περιέχουν δύο βασικά πράγματα: τους ορισμούς και τα πρωτότυπα των συναρτήσεων που χρησιμοποιούνται σε ένα πρόγραμμα. Με απλά λόγια, οι εντολές που χρησιμοποιείτε στον προγραμματισμό C είναι στην πραγματικότητα συναρτήσεις που ορίζονται μέσα από κάθε αρχείο κεφαλίδας. Κάθε αρχείο κεφαλίδας περιέχει ένα σύνολο συναρτήσεων. Για παράδειγμα: το stdio.h είναι ένα αρχείο κεφαλίδας που περιέχει ορισμό και πρωτότυπα εντολών όπως printf και scanf.
20) Τι είναι το συντακτικό σφάλμα;
Τα συντακτικά σφάλματα σχετίζονται με λάθη στη χρήση μιας γλώσσας προγραμματισμού. Ίσως μια εντολή που ήταν ανορθόγραφη ή μια εντολή που πρέπει να έχει εισαχθεί σε πεζά γράμματα αλλά αντ' αυτού εισήχθη με κεφαλαίο χαρακτήρα. Ένα λάθος σύμβολο ή έλλειψη συμβόλου, κάπου μέσα σε μια γραμμή κώδικα μπορεί επίσης να οδηγήσει σε συντακτικό σφάλμα.
21) Τι είναι οι μεταβλητές και σε τι διαφέρει από τις σταθερές;
Οι μεταβλητές και οι σταθερές μπορεί αρχικά να μοιάζουν με την έννοια ότι και οι δύο είναι αναγνωριστικά που αποτελούνται από έναν ή περισσότερους χαρακτήρες (γράμματα, αριθμούς και μερικά επιτρεπόμενα σύμβολα). Και τα δύο θα έχουν επίσης μια ιδιαίτερη αξία. Οι τιμές που διατηρούνται από μια μεταβλητή μπορούν να τροποποιηθούν σε όλο το πρόγραμμα και μπορούν να χρησιμοποιηθούν στις περισσότερες λειτουργίες και υπολογισμούς. Στις σταθερές δίνονται τιμές μόνο μία φορά, τοποθετημένες στην αρχή ενός προγράμματος. Αυτή η τιμή δεν αλλάζει στο πρόγραμμα. Για παράδειγμα, μπορείτε να αντιστοιχίσετε μια σταθερά με το όνομα PI και να της δώσετε μια τιμή 3.1415 . Στη συνέχεια, μπορείτε να το χρησιμοποιήσετε ως PI στο πρόγραμμα, αντί να χρειάζεται να γράφετε 3.1415 κάθε φορά που το χρειάζεστε.
22) Πώς αποκτάτε πρόσβαση στις τιμές μέσα σε έναν πίνακα;
Οι πίνακες περιέχουν έναν αριθμό στοιχείων, ανάλογα με το μέγεθος που τους δώσατε κατά τη δήλωση μεταβλητής. Σε κάθε στοιχείο εκχωρείται ένας αριθμός από το 0 στον αριθμό των στοιχείων-1. Για να εκχωρήσετε ή να ανακτήσετε την τιμή ενός συγκεκριμένου στοιχείου, ανατρέξτε στον αριθμό του στοιχείου. Για παράδειγμα: εάν έχετε μια δήλωση που λέει "inscores[5];", τότε έχετε 5 προσβάσιμα στοιχεία, συγκεκριμένα: scores[0], scores[1], scores[2], scores[3] και scores[4 ].
23) Μπορώ να χρησιμοποιήσω τον τύπο δεδομένων "int" για να αποθηκεύσω την τιμή 32768; Γιατί;
Όχι. Ο τύπος δεδομένων "int" μπορεί να αποθηκεύει τιμές από -32768 έως 32767. Για να αποθηκεύσετε το 32768, μπορείτε να χρησιμοποιήσετε το "long int". Μπορείτε επίσης να χρησιμοποιήσετε το "unsigned int", υποθέτοντας ότι δεν σκοπεύετε να αποθηκεύσετε αρνητικές τιμές.
24) Μπορούν δύο ή περισσότεροι τελεστές όπως \n και \t να συνδυαστούν σε μία γραμμή κώδικα προγράμματος;
Ναι, είναι απολύτως έγκυρο να συνδυάσετε χειριστές, ειδικά εάν παραστεί ανάγκη.
Για παράδειγμα: μπορείτε να έχετε έναν κωδικό όπως printf (“Hello\n\n\’World\'”) για την έξοδο του κειμένου "Hello" στην πρώτη γραμμή και "World" που περικλείεται σε μονά εισαγωγικά για να εμφανίζεται στις επόμενες δύο γραμμές.
25) Γιατί δεν δηλώνονται όλα τα αρχεία κεφαλίδας σε κάθε πρόγραμμα C;
Η επιλογή της δήλωσης ενός αρχείου κεφαλίδας στην κορυφή κάθε προγράμματος C θα εξαρτηθεί από τις εντολές/λειτουργίες που θα χρησιμοποιήσετε σε αυτό το πρόγραμμα. Δεδομένου ότι κάθε αρχείο κεφαλίδας περιέχει διαφορετικούς ορισμούς συναρτήσεων και πρωτότυπο, θα χρησιμοποιείτε μόνο εκείνα τα αρχεία κεφαλίδας που θα περιέχουν τις συναρτήσεις που θα χρειαστείτε. Η δήλωση όλων των αρχείων κεφαλίδας σε κάθε πρόγραμμα θα αύξανε μόνο το συνολικό μέγεθος αρχείου και το φορτίο του προγράμματος και δεν θεωρείται καλό στυλ προγραμματισμού.
26) Πότε χρησιμοποιείται η λέξη κλειδί "void" σε μια συνάρτηση;
Κατά τη δήλωση συναρτήσεων, θα αποφασίσετε εάν αυτή η συνάρτηση θα επέστρεφε μια τιμή ή όχι. Εάν αυτή η συνάρτηση δεν επιστρέψει μια τιμή, όπως όταν ο σκοπός μιας συνάρτησης είναι να εμφανίσει ορισμένες εξόδους στην οθόνη, τότε το "void" πρέπει να τοποθετηθεί στο αριστερό μέρος της κεφαλίδας της συνάρτησης. Όταν αναμένεται μια επιστρεφόμενη τιμή μετά την εκτέλεση της συνάρτησης, ο τύπος δεδομένων της τιμής επιστροφής τοποθετείται αντί για "void".
27) Τι είναι οι σύνθετες προτάσεις;
Οι σύνθετες εντολές αποτελούνται από δύο ή περισσότερες εντολές προγράμματος που εκτελούνται μαζί. Αυτό συμβαίνει συνήθως κατά τον χειρισμό συνθηκών όπου μια σειρά από εντολές εκτελούνται όταν αξιολογείται ένα TRUE ή FALSE. Οι σύνθετες εντολές μπορούν επίσης να εκτελεστούν μέσα σε ένα βρόχο. Οι σγουρές αγκύλες { } τοποθετούνται πριν και μετά από σύνθετες προτάσεις.
28) Ποια είναι η σημασία ενός αλγορίθμου για τον προγραμματισμό C;
Για να μπορέσει να γραφτεί ένα πρόγραμμα, πρέπει πρώτα να δημιουργηθεί ένας αλγόριθμος. Ένας αλγόριθμος παρέχει μια διαδικασία βήμα προς βήμα για το πώς μπορεί να εξαχθεί μια λύση. Λειτουργεί επίσης ως σχέδιο για το πώς θα ξεκινήσει και θα τελειώσει ένα πρόγραμμα, συμπεριλαμβανομένης της διαδικασίας και των υπολογισμών που εμπλέκονται.
29) Ποιο είναι το πλεονέκτημα ενός πίνακα σε σχέση με μεμονωμένες μεταβλητές;
Όταν αποθηκεύετε πολλά σχετικά δεδομένα, είναι καλή ιδέα να χρησιμοποιείτε πίνακες. Αυτό συμβαίνει επειδή οι πίνακες ονομάζονται χρησιμοποιώντας μόνο 1 λέξη ακολουθούμενη από έναν αριθμό στοιχείου. Για παράδειγμα: για να αποθηκεύσετε τα 10 αποτελέσματα δοκιμών 1 μαθητή, μπορείτε να χρησιμοποιήσετε 10 διαφορετικά ονόματα μεταβλητών (βαθμός1, βαθμός2, βαθμός3… βαθμός10). Με τους πίνακες, χρησιμοποιείται μόνο 1 όνομα, ενώ τα υπόλοιπα είναι προσβάσιμα μέσω του ονόματος ευρετηρίου (βαθμός[0], βαθμός[1], βαθμός[2]… βαθμός[9]).
30) Γράψτε μια δήλωση βρόχου που θα δείχνει την ακόλουθη έξοδο:
1
12
123
1234
12345
Απάντηση:
for (a=1; a<=5; i++) {
for (b=1; b<=a; b++)
printf("%d",b);
printf("\n");
}
Γ Προγραμματισμός Συνέντευξη Ερωτήσεις και Απαντήσεις για Έμπειρους
31) Τι είναι λάθος σε αυτή τη δήλωση; scanf(“%d”,whatnumber);
Ένα σύμβολο και ένα σύμβολο πρέπει να τοποθετηθεί πριν από το όνομα της μεταβλητής whatnumber. Τοποθέτηση & σημαίνει ότι οποιαδήποτε ακέραια τιμή εισάγεται από τον χρήστη αποθηκεύεται στη «διεύθυνση» του ονόματος της μεταβλητής. Αυτό είναι ένα συνηθισμένο λάθος για τους προγραμματιστές, που συχνά οδηγεί σε λογικά σφάλματα.
32) Πώς δημιουργείτε τυχαίους αριθμούς στο C;
Οι τυχαίοι αριθμοί δημιουργούνται στο C χρησιμοποιώντας το rand() command. Για παράδειγμα:
anyNum = rand() θα δημιουργήσει οποιονδήποτε ακέραιο αριθμό που ξεκινά από το 0, υποθέτοντας ότι το anyNum είναι μια μεταβλητή τύπου ακέραιος.
33) Ποιο θα μπορούσε να είναι το πρόβλημα εάν ένα έγκυρο όνομα συνάρτησης όπως το tolower() αναφέρεται από τον μεταγλωττιστή C ως απροσδιόριστο;
Ο πιο πιθανός λόγος πίσω από αυτό το σφάλμα είναι ότι το αρχείο κεφαλίδας για αυτήν τη λειτουργία δεν υποδεικνύεται στην κορυφή του προγράμματος. Τα αρχεία κεφαλίδας περιέχουν τον ορισμό και το πρωτότυπο για συναρτήσεις και εντολές που χρησιμοποιούνται σε ένα πρόγραμμα C. Στην περίπτωση του "tolower()", ο κωδικός "#include ” πρέπει να υπάρχει στην αρχή του προγράμματος.
34) Τι είναι τα σχόλια και πώς τα εισάγετε σε ένα πρόγραμμα C;
Σχόλια είναι ένας πολύ καλός τρόπος για να βάλετε κάποιες παρατηρήσεις ή περιγραφή σε ένα πρόγραμμα. Μπορεί να χρησιμεύσει ως υπενθύμιση σχετικά με το τι είναι το πρόγραμμα ή μια περιγραφή για το γιατί ένας συγκεκριμένος κώδικας ή συνάρτηση τοποθετήθηκε αρχικά εκεί. Τα σχόλια ξεκινούν με /* και τελειώνουν με */ χαρακτήρες. Τα σχόλια μπορεί να είναι μία μόνο γραμμή ή ακόμη και να εκτείνονται σε πολλές γραμμές. Μπορεί να τοποθετηθεί οπουδήποτε στο πρόγραμμα.
35) Τι είναι ο εντοπισμός σφαλμάτων;
Ο εντοπισμός σφαλμάτων είναι η διαδικασία εντοπισμού σφαλμάτων μέσα σε ένα πρόγραμμα. Κατά τη μεταγλώττιση του προγράμματος, τα σφάλματα που εντοπίζονται θα σταματήσουν την πλήρη εκτέλεση του προγράμματος. Σε αυτήν την κατάσταση, ο προγραμματιστής θα εξετάσει τα πιθανά τμήματα όπου παρουσιάστηκε το σφάλμα. Ο εντοπισμός σφαλμάτων διασφαλίζει την αφαίρεση των σφαλμάτων και διαδραματίζει σημαντικό ρόλο στη διασφάλιση της επίτευξης της αναμενόμενης εξόδου του προγράμματος.
36) Τι κάνει ο τελεστής && σε έναν κώδικα προγράμματος;
Το && αναφέρεται επίσης ως τελεστής AND. Όταν χρησιμοποιείτε αυτόν τον τελεστή, όλες οι συνθήκες που καθορίζονται πρέπει να είναι TRUE πριν να πραγματοποιηθεί η επόμενη ενέργεια. Εάν έχετε 10 συνθήκες και όλες εκτός από 1 αποτυγχάνουν να αξιολογηθούν ως TRUE, ολόκληρη η δήλωση συνθήκης έχει ήδη αξιολογηθεί ως FALSE
37) Στον προγραμματισμό C, ποια εντολή ή κώδικας μπορεί να χρησιμοποιηθεί για να προσδιοριστεί εάν ένας αριθμός περιττών ή ζυγών;
Δεν υπάρχει ενιαία εντολή ή λειτουργία στο Γ που μπορεί να ελέγξει αν ένας αριθμός είναι μονός ή ζυγός. Ωστόσο, αυτό μπορεί να επιτευχθεί διαιρώντας αυτόν τον αριθμό με το 2 και μετά ελέγχοντας το υπόλοιπο. Αν το υπόλοιπο είναι 0, τότε αυτός ο αριθμός είναι άρτιος, διαφορετικά είναι περιττός. Μπορείτε να το γράψετε σε κώδικα ως εξής:
if (num % 2 == 0)
printf("EVEN");
else
printf("ODD");
38) Τι σημαίνει η μορφή %10.2 όταν περιλαμβάνεται σε μια δήλωση printf;
Αυτή η μορφή χρησιμοποιείται για δύο πράγματα: για να ορίσετε τον αριθμό των διαστημάτων που εκχωρούνται για τον αριθμό εξόδου και να ορίσετε τον αριθμό των δεκαδικών ψηφίων. Ο αριθμός πριν από την υποδιαστολή είναι για τον εκχωρημένο χώρο, σε αυτήν την περίπτωση θα εκχωρούσε 10 κενά για τον αριθμό εξόδου. Εάν ο αριθμός του χώρου που καταλαμβάνει ο αριθμός εξόδου είναι μικρότερος από 10, οι χαρακτήρες πρόσθεσης διαστήματος θα εισαχθούν πριν από τον πραγματικό αριθμό εξόδου. Ο αριθμός μετά την υποδιαστολή ορίζει τον αριθμό των δεκαδικών ψηφίων, σε αυτήν την περίπτωση, είναι 2 δεκαδικά.
39) Τι είναι τα λογικά σφάλματα και σε τι διαφέρει από τα συντακτικά σφάλματα;
Το πρόγραμμα που περιέχει λογικά σφάλματα τείνει να περάσει τη διαδικασία μεταγλώττισης, αλλά το αποτέλεσμα που προκύπτει μπορεί να μην είναι το αναμενόμενο. Αυτό συμβαίνει όταν εισήχθη λάθος τύπος στον κώδικα ή εκτελέστηκε μια λανθασμένη σειρά εντολών. Τα συντακτικά σφάλματα, από την άλλη πλευρά, αντιμετωπίζουν λανθασμένες εντολές που είναι ανορθόγραφες ή δεν αναγνωρίζονται από τον μεταγλωττιστή.
40) Ποιοι είναι οι διαφορετικοί τύποι δομών ελέγχου στον προγραμματισμό;
Υπάρχουν 3 κύριες δομές ελέγχου στον προγραμματισμό: Ακολουθία, Επιλογή και Επανάληψη. Ο διαδοχικός έλεγχος ακολουθεί μια ροή από πάνω προς τα κάτω κατά την εκτέλεση ενός προγράμματος, έτσι ώστε το βήμα 1 να εκτελείται πρώτα, ακολουθούμενο από το βήμα 2, μέχρι να εκτελεστεί το τελευταίο βήμα. Η επιλογή ασχολείται με δηλώσεις υπό όρους, οι οποίες σημαίνει ότι οι κώδικες εκτελούνται ανάλογα με την αξιολόγηση των συνθηκών ως TRUE ή FALSE. Αυτό σημαίνει επίσης ότι δεν μπορούν να εκτελεστούν όλοι οι κώδικες και υπάρχουν εναλλακτικές ροές εντός. Οι επαναλήψεις είναι επίσης γνωστές ως δομές βρόχου και θα επαναλάβουν μία ή δύο εντολές προγράμματος που ορίζονται από έναν μετρητή.
41) Τι είναι || χειριστή και πώς λειτουργεί σε ένα πρόγραμμα;
Το || είναι επίσης γνωστός ως τελεστής OR στον προγραμματισμό C. Όταν χρησιμοποιείτε || Για την αξιολόγηση των λογικών συνθηκών, οποιαδήποτε συνθήκη αξιολογείται ως TRUE θα αποδώσει ολόκληρη τη δήλωση συνθήκης ως TRUE.
42) Μπορεί η συνάρτηση «αν» να χρησιμοποιηθεί στη σύγκριση συμβολοσειρών;
Όχι. Η εντολή "if" μπορεί να χρησιμοποιηθεί μόνο για τη σύγκριση αριθμητικών τιμών και τιμών μεμονωμένων χαρακτήρων. Για τη σύγκριση τιμών συμβολοσειρών, υπάρχει μια άλλη συνάρτηση που ονομάζεται strcmp που ασχολείται συγκεκριμένα με τις συμβολοσειρές.
43) Τι είναι οι οδηγίες προεπεξεργαστή;
Οι οδηγίες προεπεξεργαστή τοποθετούνται στην αρχή κάθε προγράμματος C. Εδώ καθορίζονται τα αρχεία βιβλιοθήκης, τα οποία θα εξαρτηθούν από τις λειτουργίες που πρόκειται να χρησιμοποιηθούν στο πρόγραμμα. Μια άλλη χρήση των οδηγιών προεπεξεργαστή είναι η δήλωση σταθερών. Οι οδηγίες προεπεξεργαστή ξεκινούν με το σύμβολο #.
44) Ποιο θα είναι το αποτέλεσμα της παρακάτω υπό όρους πρότασης εάν η τιμή της μεταβλητής s είναι 10;
s >=10 && s < 25 && s!=12
Το αποτέλεσμα θα είναι ΑΛΗΘΕΙΑ. Δεδομένου ότι η τιμή του s είναι 10, το s >= 10 υπολογίζεται σε TRUE επειδή το s δεν είναι μεγαλύτερο από 10 αλλά εξακολουθεί να είναι ίσο με 10. Το s< 25 είναι επίσης TRUE αφού το 10 είναι μικρότερο από 25. Ακριβώς το ίδιο, s!=12 , που σημαίνει ότι το s δεν είναι ίσο με 12, αξιολογείται ως TRUE. Ο τελεστής && είναι ο τελεστής AND και ακολουθεί τον κανόνα ότι εάν όλες οι μεμονωμένες συνθήκες είναι TRUE, ολόκληρη η δήλωση είναι TRUE.
45) Περιγράψτε τη σειρά προτεραιότητας όσον αφορά τους τελεστές στο C.
Η σειρά προτεραιότητας καθορίζει ποια πράξη πρέπει να λάβει χώρα πρώτα σε μια δήλωση λειτουργίας ή μια δήλωση υπό όρους. Στο υψηλότερο επίπεδο προτεραιότητας βρίσκονται οι μονατικοί τελεστές !, +, – και &. Ακολουθούν οι κανονικοί μαθηματικοί τελεστές (*, / και % πρώτα, ακολουθούμενοι από + και -). Ακολουθούν οι σχεσιακές τελεστές <, <=, >= και >. Αυτό ακολουθείται από τους δύο τελεστές ισότητας == και !=. Οι λογικοί τελεστές && και || αξιολογούνται στη συνέχεια. Στο τελευταίο επίπεδο βρίσκεται ο τελεστής ανάθεσης =.
46) Τι είναι λάθος με αυτή τη δήλωση; myName = "Robin";
Δεν μπορείτε να χρησιμοποιήσετε το σύμβολο = για να εκχωρήσετε τιμές σε μια μεταβλητή συμβολοσειράς. Αντίθετα, χρησιμοποιήστε τη συνάρτηση strcpy. Η σωστή πρόταση θα ήταν: strcpy(myName, “Robin”);
47) Πώς προσδιορίζετε το μήκος μιας τιμής συμβολοσειράς που ήταν αποθηκευμένη σε μια μεταβλητή;
Για να λάβετε το μήκος μιας τιμής συμβολοσειράς, χρησιμοποιήστε τη συνάρτηση strlen(). Για παράδειγμα, εάν έχετε μια μεταβλητή με το όνομα FullName, μπορείτε να λάβετε το μήκος της αποθηκευμένης τιμής συμβολοσειράς χρησιμοποιώντας αυτήν την πρόταση: I = strlen(FullName); η μεταβλητή I θα έχει τώρα το μήκος χαρακτήρα της τιμής συμβολοσειράς.
48) Είναι δυνατή η προετοιμασία μιας μεταβλητής τη στιγμή που δηλώθηκε;
Ναι, δεν χρειάζεται να γράψετε μια ξεχωριστή δήλωση ανάθεσης μετά τη δήλωση μεταβλητής, εκτός και αν σκοπεύετε να την αλλάξετε αργότερα. Για παράδειγμα: char planet[15] = «Γη»; κάνει δύο πράγματα: δηλώνει μια μεταβλητή συμβολοσειράς με το όνομα planet και στη συνέχεια την αρχικοποιεί με την τιμή "Earth".
49) Γιατί η γλώσσα C θεωρείται γλώσσα μεσαίου επιπέδου;
Αυτό συμβαίνει επειδή η γλώσσα C είναι πλούσια σε χαρακτηριστικά που την κάνουν να συμπεριφέρεται σαν γλώσσα υψηλού επιπέδου ενώ ταυτόχρονα μπορεί να αλληλεπιδρά με το υλικό χρησιμοποιώντας μεθόδους χαμηλού επιπέδου. Η χρήση μιας καλά δομημένης προσέγγισης στον προγραμματισμό, σε συνδυασμό με λέξεις που μοιάζουν με αγγλικά που χρησιμοποιούνται σε συναρτήσεις, τον κάνει να λειτουργεί ως γλώσσα υψηλού επιπέδου. Από την άλλη πλευρά, η C μπορεί να έχει άμεση πρόσβαση σε δομές μνήμης παρόμοιες με τις ρουτίνες της γλώσσας assembly.
50) Ποιες είναι οι διαφορετικές επεκτάσεις αρχείων που εμπλέκονται κατά τον προγραμματισμό σε C;
Οι πηγαίοι κώδικες στο C αποθηκεύονται με την επέκταση αρχείου .C. Τα αρχεία κεφαλίδας ή τα αρχεία βιβλιοθήκης έχουν την επέκταση αρχείου .H. Κάθε φορά που ένας πηγαίος κώδικας προγράμματος μεταγλωττίζεται με επιτυχία, δημιουργεί ένα αρχείο αντικειμένου .OBJ και ένα εκτελέσιμο αρχείο .EXE.
51) Ποιες είναι οι δεσμευμένες λέξεις;
Οι δεσμευμένες λέξεις είναι λέξεις που αποτελούν μέρος της βιβλιοθήκης της τυπικής γλώσσας C. Αυτό σημαίνει ότι οι δεσμευμένες λέξεις έχουν ειδικό νόημα και επομένως δεν μπορούν να χρησιμοποιηθούν για σκοπούς άλλους από αυτόν για τον οποίο προορίζονταν αρχικά. Παραδείγματα δεσμευμένων λέξεων είναι int, void και return.
52) Τι είναι η συνδεδεμένη λίστα;
Μια συνδεδεμένη λίστα αποτελείται από κόμβους που συνδέονται με έναν άλλο. Στον προγραμματισμό C, οι συνδεδεμένες λίστες δημιουργούνται χρησιμοποιώντας δείκτες. Η χρήση συνδεδεμένων λιστών είναι ένας αποτελεσματικός τρόπος χρήσης της μνήμης για αποθήκευση.
53) Τι είναι το FIFO;
Στον προγραμματισμό C, υπάρχει μια δομή δεδομένων γνωστή ως ουρά. Σε αυτή τη δομή, τα δεδομένα αποθηκεύονται και προσπελάζονται χρησιμοποιώντας τη μορφή FIFO ή First-In-First-Out. Μια ουρά αντιπροσωπεύει μια γραμμή όπου τα πρώτα δεδομένα που αποθηκεύτηκαν θα είναι και τα πρώτα προσβάσιμα.
54) Τι είναι τα δυαδικά δέντρα;
Τα δυαδικά δέντρα είναι στην πραγματικότητα μια επέκταση της έννοιας των συνδεδεμένων λιστών. Ένα δυαδικό δέντρο έχει δύο δείκτες, έναν αριστερό και έναν δεξιό. Κάθε πλευρά μπορεί να διακλαδωθεί περαιτέρω για να σχηματίσει πρόσθετους κόμβους, οι οποίοι κάθε κόμβος έχει επίσης δύο δείκτες. Μάθε περισσότερα για Δυαδικό δέντρο στη δομή δεδομένων αν ενδιαφέρεσαι.
55) Δεν είναι όλες οι δεσμευμένες λέξεις γραμμένες με πεζά. Σωστό ή λάθος?
ΨΕΥΔΗΣ. Όλες οι δεσμευμένες λέξεις πρέπει να γράφονται με πεζά. Διαφορετικά, ο μεταγλωττιστής C θα το ερμήνευε ως μη αναγνωρισμένο και άκυρο.
56) Ποια είναι η διαφορά μεταξύ της έκφρασης «++a» και «a++»;
Στην πρώτη παράσταση, η προσαύξηση θα συμβεί πρώτα στη μεταβλητή a και η τιμή που προκύπτει θα είναι αυτή που θα χρησιμοποιηθεί. Αυτό είναι επίσης γνωστό ως αύξηση του προθέματος. Στη δεύτερη έκφραση, η τρέχουσα τιμή της μεταβλητής a θα ήταν αυτή που θα χρησιμοποιηθεί σε μια πράξη, πριν αυξηθεί η ίδια η τιμή του a. Αυτό είναι επίσης γνωστό ως προσαύξηση postfix.
57) Τι θα συνέβαινε με το X σε αυτήν την έκφραση: X += 15; (υποθέτοντας ότι η τιμή του X είναι 5)
Το X +=15 είναι μια σύντομη μέθοδος γραφής X = X + 15, οπότε αν η αρχική τιμή του X είναι 5, τότε 5 + 15 = 20.
58) Στη γλώσσα C, οι μεταβλητές NAME, name και Name είναι όλες ίδιες. Σωστό ή λάθος?
ΨΕΥΔΗΣ. Η γλώσσα C είναι μια γλώσσα με διάκριση πεζών-κεφαλαίων. Επομένως, το NAME, το όνομα και το όνομα είναι τρεις μοναδικά διαφορετικές μεταβλητές.
59) Τι είναι ένας ατελείωτος βρόχος;
Ένας ατελείωτος βρόχος μπορεί να σημαίνει δύο πράγματα. Το ένα είναι ότι σχεδιάστηκε για συνεχή βρόχο μέχρι να ικανοποιηθεί η συνθήκη εντός του βρόχου, μετά την οποία μια συνάρτηση διακοπής θα έκανε το πρόγραμμα να βγει από τον βρόχο. Μια άλλη ιδέα ενός ατέρμονου βρόχου είναι όταν γράφτηκε μια εσφαλμένη συνθήκη βρόχου, με αποτέλεσμα ο βρόχος να εκτελείται λανθασμένα για πάντα. Οι ατελείωτοι βρόχοι αναφέρονται συχνά ως άπειροι βρόχοι.
60) Τι είναι ένα διάγραμμα ροής προγράμματος και πώς βοηθά στη σύνταξη ενός προγράμματος;
Ένα διάγραμμα ροής παρέχει μια οπτική αναπαράσταση της διαδικασίας βήμα προς βήμα προς την επίλυση ενός δεδομένου προβλήματος. Τα διαγράμματα ροής αποτελούνται από σύμβολα, με κάθε σύμβολο να έχει τη μορφή διαφορετικών σχημάτων. Κάθε σχήμα μπορεί να αντιπροσωπεύει μια συγκεκριμένη οντότητα σε ολόκληρη τη δομή του προγράμματος, όπως μια διαδικασία, μια συνθήκη ή ακόμα και μια φάση εισόδου/εξόδου.
61) Τι είναι λάθος με αυτήν τη δήλωση προγράμματος; κενό = 10;
Η λέξη void είναι μια δεσμευμένη λέξη στη γλώσσα C. Δεν μπορείτε να χρησιμοποιήσετε δεσμευμένες λέξεις ως μεταβλητή που ορίζεται από το χρήστη.
62) Είναι έγκυρη αυτή η δήλωση προγράμματος; INT = 10.50;
Υποθέτοντας ότι το INT είναι μια μεταβλητή τύπου float, αυτή η δήλωση είναι έγκυρη. Κάποιος μπορεί να σκεφτεί ότι το INT είναι μια δεσμευμένη λέξη και δεν πρέπει να χρησιμοποιείται για άλλους σκοπούς. Ωστόσο, θυμηθείτε ότι οι δεσμευμένες λέξεις εκφράζονται με πεζά, επομένως ο μεταγλωττιστής C δεν θα το ερμηνεύσει ως δεσμευμένη λέξη.
63) Ποια είναι τα πραγματικά επιχειρήματα;
Όταν δημιουργείτε και χρησιμοποιείτε συναρτήσεις που πρέπει να εκτελέσουν μια ενέργεια σε ορισμένες δεδομένες τιμές, πρέπει να μεταβιβάσετε αυτές τις δεδομένες τιμές σε αυτήν τη συνάρτηση. Οι τιμές που μεταβιβάζονται στην καλούμενη συνάρτηση αναφέρονται ως πραγματικά ορίσματα.
64) Τι είναι μια ακολουθία διαφυγής νέας γραμμής;
Μια ακολουθία διαφυγής νέας γραμμής αντιπροσωπεύεται από τον χαρακτήρα \n. Χρησιμοποιείται για την εισαγωγή νέας γραμμής κατά την εμφάνιση δεδομένων στην οθόνη εξόδου. Μπορούν να προστεθούν περισσότερα κενά εισάγοντας περισσότερους \n χαρακτήρες. Για παράδειγμα, \n\n θα εισαγάγει δύο κενά. Μια ακολουθία διαφυγής νέας γραμμής μπορεί να τοποθετηθεί πριν από την πραγματική έκφραση εξόδου ή μετά.
65) Τι είναι η ανακατεύθυνση εξόδου;
Είναι η διαδικασία μεταφοράς δεδομένων σε μια εναλλακτική πηγή εξόδου διαφορετική από την οθόνη. Η ανακατεύθυνση εξόδου επιτρέπει σε ένα πρόγραμμα να αποθηκεύσει την έξοδό του σε ένα αρχείο. Για παράδειγμα, εάν έχετε ένα πρόγραμμα με το όνομα COMPUTE, typing Αυτό στη γραμμή εντολών ως COMPUTE >DATA μπορεί να δεχτεί είσοδο από τον χρήστη, να εκτελέσει ορισμένους υπολογισμούς και, στη συνέχεια, να ανακατευθύνει την έξοδο σε ένα αρχείο με όνομα DATA, αντί να την εμφανίζει στην οθόνη.
66) Τι είναι τα σφάλματα χρόνου εκτέλεσης;
Αυτά είναι σφάλματα που παρουσιάζονται κατά την εκτέλεση του προγράμματος. Μια συνηθισμένη περίπτωση όπου μπορεί να συμβούν σφάλματα χρόνου εκτέλεσης είναι όταν προσπαθείτε να διαιρέσετε έναν αριθμό με το μηδέν. Όταν προκύπτουν σφάλματα χρόνου εκτέλεσης, η εκτέλεση του προγράμματος θα σταματήσει, δείχνοντας ποια γραμμή προγράμματος προκάλεσε το σφάλμα.
67) Ποια είναι η διαφορά μεταξύ των συναρτήσεων abs() και fabs();
Αυτές οι 2 συναρτήσεις βασικά εκτελούν την ίδια ενέργεια, η οποία είναι να πάρουμε την απόλυτη τιμή της δεδομένης τιμής. Η Abs() χρησιμοποιείται για ακέραιες τιμές, ενώ η fabs() για αριθμούς κυμαινόμενου τύπου. Επίσης, το πρωτότυπο για την abs() είναι κάτω , ενώ η fabs() είναι under .
68) Τι είναι οι τυπικές παράμετροι;
Κατά τη χρήση συναρτήσεων σε ένα πρόγραμμα C, οι τυπικές παράμετροι περιέχουν τις τιμές που μεταβιβάστηκαν από τη συνάρτηση κλήσης. Οι τιμές αντικαθίστανται σε αυτές τις τυπικές παραμέτρους και χρησιμοποιούνται σε οποιεσδήποτε πράξεις όπως υποδεικνύεται στο κύριο σώμα της καλούμενης συνάρτησης.
69) Τι είναι οι δομές ελέγχου;
Οι δομές ελέγχου αναλαμβάνουν τις εντολές που πρέπει να εκτελεστούν σε ένα πρόγραμμα. Αυτό σημαίνει ότι η ροή του προγράμματος μπορεί να μην μετακινείται απαραίτητα από τη μια πρόταση στην επόμενη, αλλά μάλλον κάποια εναλλακτικά τμήματα μπορεί να χρειαστεί να περάσουν ή να παρακαμφθούν από αυτά, ανάλογα με το αποτέλεσμα των εντολών υπό όρους.
70) Γράψτε ένα απλό κομμάτι κώδικα που θα ελέγχει εάν ένας αριθμός είναι θετικός ή αρνητικός
If (num>=0)
printf("number is positive");
else
printf ("number is negative");
71) Πότε είναι προτιμότερη η δήλωση «switch» έναντι της δήλωσης «if»;
The δήλωση διακόπτη χρησιμοποιείται καλύτερα όταν ασχολούμαστε με επιλογές που βασίζονται σε μια μεμονωμένη μεταβλητή ή έκφραση. Ωστόσο, οι δηλώσεις διακόπτη μπορούν να αξιολογήσουν μόνο τύπους δεδομένων ακεραίων και χαρακτήρων.
72) Τι είναι οι καθολικές μεταβλητές και πώς τις δηλώνετε;
Οι καθολικές μεταβλητές είναι μεταβλητές που μπορούν να προσπελαστούν και να χειριστούν οπουδήποτε στο πρόγραμμα. Για να κάνετε μια μεταβλητή καθολική, τοποθετήστε τη δήλωση μεταβλητής στο επάνω τμήμα του προγράμματος, ακριβώς μετά την ενότητα οδηγίες προεπεξεργαστή.
73) Ποιοι είναι οι απαριθμημένοι τύποι;
Οι απαριθμημένοι τύποι επιτρέπουν στον προγραμματιστή να χρησιμοποιεί λέξεις με πιο νόημα ως τιμές σε μια μεταβλητή. Κάθε στοιχείο στη μεταβλητή τύπου απαριθμείται στην πραγματικότητα συσχετίζεται με έναν αριθμητικό κώδικα. Για παράδειγμα, μπορεί κανείς να δημιουργήσει μια απαριθμημένη μεταβλητή τύπου με το όνομα DAYS της οποίας οι τιμές είναι Monday, Τρίτη… Κυριακή.
74) Τι κάνει η συνάρτηση toupper();
Χρησιμοποιείται για τη μετατροπή οποιουδήποτε γράμματος στη λειτουργία κεφαλαίων. Το πρωτότυπο της συνάρτησης Toupper() δηλώνεται στο . Σημειώστε ότι αυτή η συνάρτηση θα μετατρέψει μόνο έναν χαρακτήρα και όχι ολόκληρη συμβολοσειρά.
75) Είναι δυνατόν να υπάρχει συνάρτηση ως παράμετρος σε άλλη συνάρτηση;
Ναι, αυτό επιτρέπεται στον προγραμματισμό C. Απλώς πρέπει να συμπεριλάβετε ολόκληρο το πρωτότυπο της συνάρτησης στο πεδίο παραμέτρων της άλλης συνάρτησης όπου πρόκειται να χρησιμοποιηθεί.
76) Τι είναι οι πολυδιάστατοι πίνακες;
Οι πολυδιάστατοι πίνακες είναι ικανοί να αποθηκεύουν δεδομένα σε δισδιάστατη ή περισσότερες δομή. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε έναν πίνακα 2 διαστάσεων για να αποθηκεύσετε την τρέχουσα θέση των κομματιών σε μια παρτίδα σκακιού ή τη θέση των παικτών σε ένα πρόγραμμα tic-tac-toe.
77) Ποια συνάρτηση στο C μπορεί να χρησιμοποιηθεί για την προσθήκη μιας συμβολοσειράς σε μια άλλη συμβολοσειρά;
Η συνάρτηση strcat. Χρειάζονται δύο παράμετροι, η συμβολοσειρά πηγής και η τιμή συμβολοσειράς για να προσαρτηθούν στη συμβολοσειρά πηγής.
78) Ποια είναι η διαφορά μεταξύ των συναρτήσεων getch() και getche();
Και οι δύο συναρτήσεις θα δέχονται μια τιμή εισαγωγής χαρακτήρων από το χρήστη. Όταν χρησιμοποιείτε το getch(), το πλήκτρο που πατήθηκε δεν θα εμφανιστεί στην οθόνη και καταγράφεται αυτόματα και εκχωρείται σε μια μεταβλητή. Όταν χρησιμοποιείτε το getche(), το πλήκτρο που πάτησε ο χρήστης θα εμφανιστεί στην οθόνη, ενώ ταυτόχρονα θα εκχωρηθεί σε μια μεταβλητή.
79) Αυτές οι δύο εντολές προγράμματος εκτελούν την ίδια έξοδο; 1) scanf("%c", &γράμμα); 2) letter=getchar()
Ναι, και οι δύο κάνουν ακριβώς το ίδιο πράγμα, δηλαδή να αποδεχτούν το επόμενο πλήκτρο που θα πατήσει ο χρήστης και να το αντιστοιχίσουν σε μια μεταβλητή με όνομα γράμμα.
80) Ποιοι είναι οι τύποι δομής στο C;
Οι τύποι δομών χρησιμοποιούνται κυρίως για την αποθήκευση εγγραφών. Μια εγγραφή αποτελείται από σχετικά πεδία. Αυτό διευκολύνει την οργάνωση μιας ομάδας σχετικών δεδομένων.
81) Τι σημαίνουν οι χαρακτήρες "r" και "w" όταν γράφετε προγράμματα που θα κάνουν χρήση αρχείων;
Το "r" σημαίνει "ανάγνωση" και θα ανοίξει ένα αρχείο ως είσοδο στο οποίο πρόκειται να ανακτηθούν δεδομένα. Το "w" σημαίνει "εγγραφή" και θα ανοίξει ένα αρχείο για έξοδο. Τα προηγούμενα δεδομένα που ήταν αποθηκευμένα σε αυτό το αρχείο θα διαγραφούν.
82) Ποια είναι η διαφορά μεταξύ αρχείων κειμένου και δυαδικών αρχείων;
Τα αρχεία κειμένου περιέχουν δεδομένα που μπορούν εύκολα να γίνουν κατανοητά από τον άνθρωπο. Περιλαμβάνει γράμματα, αριθμούς και άλλους χαρακτήρες. Από την άλλη πλευρά, τα δυαδικά αρχεία περιέχουν 1 και 0 που μόνο οι υπολογιστές μπορούν να ερμηνεύσουν.
83) είναι δυνατόν να δημιουργήσετε τα δικά σας αρχεία κεφαλίδας;
Ναι, είναι δυνατή η δημιουργία ενός προσαρμοσμένου αρχείου κεφαλίδας. Απλώς συμπεριλάβετε σε αυτό τα πρωτότυπα συναρτήσεων που θέλετε να χρησιμοποιήσετε στο πρόγραμμά σας και χρησιμοποιήστε την οδηγία #include ακολουθούμενη από το όνομα του αρχείου κεφαλίδας σας.
84) Τι είναι η δυναμική δομή δεδομένων;
Η δυναμική δομή δεδομένων παρέχει ένα μέσο για την πιο αποτελεσματική αποθήκευση δεδομένων στη μνήμη. Χρήση Χρήση δυναμική κατανομή μνήμης, το πρόγραμμά σας θα έχει πρόσβαση σε χώρους μνήμης όπως απαιτείται. Αυτό έρχεται σε αντίθεση με τη στατική δομή δεδομένων, όπου ο προγραμματιστής πρέπει να υποδείξει έναν καθορισμένο αριθμό χώρου μνήμης που θα χρησιμοποιηθεί στο πρόγραμμα.
85) Ποιοι είναι οι διαφορετικοί τύποι δεδομένων στο C;
Το βασικό τύποι δεδομένων σε C είναι int, char και float. Το Int χρησιμοποιείται για τη δήλωση μεταβλητών που θα αποθηκεύουν ακέραιες τιμές. Το Float χρησιμοποιείται για την αποθήκευση πραγματικών αριθμών. Το Char μπορεί να αποθηκεύσει μεμονωμένες τιμές χαρακτήρων.
86) Ποια είναι η γενική μορφή ενός προγράμματος C;
Το πρόγραμμα AC ξεκινά με τις οδηγίες προεπεξεργαστή, στις οποίες ο προγραμματιστής θα καθόριζε ποιο αρχείο κεφαλίδας και ποιες σταθερές (εάν υπάρχουν) που θα χρησιμοποιηθούν. Αυτό ακολουθείται από την επικεφαλίδα της κύριας λειτουργίας. Μέσα στην κύρια συνάρτηση βρίσκεται η δήλωση μεταβλητής και η δήλωση προγράμματος.
87) Ποιο είναι το πλεονέκτημα ενός αρχείου τυχαίας πρόσβασης;
Εάν ο όγκος των δεδομένων που αποθηκεύονται σε ένα αρχείο είναι αρκετά μεγάλος, η χρήση της τυχαίας πρόσβασης θα σας επιτρέψει να το αναζητήσετε πιο γρήγορα. Εάν ήταν ένα αρχείο διαδοχικής πρόσβασης, θα έπρεπε να περάσετε από μία εγγραφή κάθε φορά μέχρι να φτάσετε στα δεδομένα-στόχους. Ένα αρχείο τυχαίας πρόσβασης σάς επιτρέπει να μεταβείτε απευθείας στη διεύθυνση προορισμού όπου βρίσκονται τα δεδομένα.
88) Σε μια πρόταση διακόπτη, τι θα συμβεί εάν παραληφθεί μια εντολή διακοπής;
Εάν μια δήλωση διακοπής δεν τοποθετήθηκε στο τέλος ενός συγκεκριμένου τμήματος υπόθεσης; Θα προχωρήσει στο επόμενο τμήμα θήκης, προκαλώντας πιθανώς λανθασμένη έξοδο.
89) Περιγράψτε πώς μπορούν να περάσουν οι πίνακες σε μια συνάρτηση που ορίζεται από το χρήστη
Ένα πράγμα που πρέπει να σημειωθεί είναι ότι δεν μπορείτε να περάσετε ολόκληρο τον πίνακα σε μια συνάρτηση. Αντίθετα, του μεταβιβάζετε έναν δείκτη που θα δείχνει στο πρώτο στοιχείο του πίνακα στη μνήμη. Για να το κάνετε αυτό, υποδεικνύετε το όνομα του πίνακα χωρίς τις αγκύλες.
90) Τι είναι οι δείκτες;
Σημείο δεικτών σε συγκεκριμένες περιοχές της μνήμης. Οι δείκτες περιέχουν τη διεύθυνση μιας μεταβλητής, η οποία με τη σειρά της μπορεί να περιέχει μια τιμή ή ακόμα και μια διεύθυνση σε μια άλλη μνήμη.
91) Μπορείτε να μεταβιβάσετε μια ολόκληρη δομή σε συναρτήσεις;
Ναι, είναι δυνατό να περάσει μια ολόκληρη δομή σε μια συνάρτηση σε στυλ κλήσης με μέθοδο. Ωστόσο, ορισμένοι προγραμματιστές προτιμούν να δηλώνουν τη δομή καθολικά και μετά να μεταβιβάζουν μια μεταβλητή αυτού του τύπου δομής σε μια συνάρτηση. Αυτή η μέθοδος βοηθά στη διατήρηση της συνέπειας και της ομοιομορφίας όσον αφορά τον τύπο του επιχειρήματος.
92) Τι είναι η συνάρτηση gets();
The gets() function επιτρέπει την εισαγωγή δεδομένων πλήρους γραμμής από τον χρήστη. Όταν ο χρήστης πατήσει το πλήκτρο enter για να τερματίσει την εισαγωγή, ολόκληρη η γραμμή χαρακτήρων αποθηκεύεται σε μια μεταβλητή συμβολοσειράς. Σημειώστε ότι το κλειδί enter δεν περιλαμβάνεται στη μεταβλητή, αλλά αντίθετα τοποθετείται ένας τερματιστής μηδενός \0 μετά τον τελευταίο χαρακτήρα.
93) Το σύμβολο % έχει ειδική χρήση σε μια πρόταση printf. Πώς θα τοποθετούσατε αυτόν τον χαρακτήρα ως μέρος της εξόδου στην οθόνη;
Μπορείτε να το κάνετε αυτό χρησιμοποιώντας το %% στη δήλωση printf. Για παράδειγμα, μπορείτε να γράψετε printf(“10%%”) για να εμφανίζεται η έξοδος ως 10% στην οθόνη.
94) Πώς πραγματοποιείτε αναζήτηση δεδομένων σε ένα αρχείο δεδομένων χρησιμοποιώντας τη μέθοδο τυχαίας πρόσβασης;
Χρησιμοποιήστε το fseek() λειτουργία για την εκτέλεση εισόδου/εξόδου τυχαίας πρόσβασης σε ένα αρχείο. Μετά το άνοιγμα του αρχείου από τη συνάρτηση fopen(), το fseek θα απαιτούσε τρεις παραμέτρους για να λειτουργήσει: έναν δείκτη αρχείου στο αρχείο, τον αριθμό των byte προς αναζήτηση και το σημείο προέλευσης στο αρχείο.
95) Περιλαμβάνονται σχόλια κατά το στάδιο της μεταγλώττισης και τοποθετούνται και στο αρχείο EXE;
Όχι, τα σχόλια που συναντήθηκαν από τον μεταγλωττιστή δεν λαμβάνονται υπόψη. Τα σχόλια είναι κυρίως για την καθοδήγηση του προγραμματιστή μόνο και δεν έχουν καμία άλλη σημαντική χρήση στη λειτουργικότητα του προγράμματος.
96) Υπάρχει μια ενσωματωμένη συνάρτηση στο C που μπορεί να χρησιμοποιηθεί για την ταξινόμηση δεδομένων;
Ναι, χρησιμοποιήστε το qsort() λειτουργία. Είναι επίσης δυνατή η δημιουργία συναρτήσεων που ορίζονται από το χρήστη για ταξινόμηση, όπως αυτές που βασίζονται στον αλγόριθμο ταξινόμησης με μπαλόνι και ταξινόμησης με φυσαλίδες.
97) Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα ενός σωρού;
Η αποθήκευση δεδομένων στο σωρό είναι πιο αργή από ό,τι θα χρειαζόταν κατά τη χρήση της στοίβας. Ωστόσο, το κύριο πλεονέκτημα της χρήσης του σωρού είναι η ευελιξία του. Αυτό συμβαίνει επειδή η μνήμη σε αυτήν τη δομή μπορεί να εκχωρηθεί και να αφαιρεθεί με οποιαδήποτε συγκεκριμένη σειρά. Η βραδύτητα στο σωρό μπορεί να αντισταθμιστεί εάν ένας αλγόριθμος σχεδιάστηκε και εφαρμόστηκε καλά.
98) Πώς μετατρέπετε τις συμβολοσειρές σε αριθμούς στο C;
Μπορείτε να γράψετε τις δικές σας συναρτήσεις για να κάνετε μετατροπές συμβολοσειρών σε αριθμούς ή αντ' αυτού να χρησιμοποιήσετε ενσωματωμένες συναρτήσεις C. Μπορείτε να χρησιμοποιήσετε το atof για μετατροπή σε τιμή κινητής υποδιαστολής, το atoi για τη μετατροπή σε μια ακέραια τιμή και το atol για τη μετατροπή σε μια μεγάλη ακέραια τιμή.
99) Δημιουργήστε ένα απλό τμήμα κώδικα που θα ανταλλάξει τις τιμές δύο μεταβλητών num1 και num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Ποια είναι η χρήση του ερωτηματικού (;) στο τέλος κάθε δήλωσης προγράμματος;
Έχει να κάνει με τη διαδικασία ανάλυσης και μεταγλώττισης του κώδικα. Ένα ερωτηματικό λειτουργεί ως οριοθέτης, έτσι ώστε ο μεταγλωττιστής να γνωρίζει πού τελειώνει κάθε πρόταση και μπορεί να προχωρήσει στη διαίρεση της δήλωσης σε μικρότερα στοιχεία για έλεγχο σύνταξης.
Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας

