top 40 c programming interview questions
Συνήθεις ερωτήσεις και απαντήσεις συνέντευξης προγραμματισμού C:
Η γλώσσα προγραμματισμού C αναπτύχθηκε μεταξύ 1969 και 1973 από τον Dennis Ritchie στο Bell Labs. Χρησιμοποιεί αυτή τη νέα γλώσσα προγραμματισμού για να εφαρμόσει εκ νέου το λειτουργικό σύστημα UNIX.
Το C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου δομημένου προσανατολισμού που χρησιμοποιείται για απαιτήσεις προγραμματισμού γενικού σκοπού. Βασικά, το C είναι μια συλλογή των λειτουργιών της βιβλιοθήκης. Είναι επίσης ευέλικτο να προσθέσετε συναρτήσεις καθορισμένες από το χρήστη και να συμπεριλάβετε αυτές στη βιβλιοθήκη C.
Η κύρια χρήση της γλώσσας προγραμματισμού C περιλαμβάνει Γλωσσικούς μεταγλωττιστές, Λειτουργικά Συστήματα, Συγκεντρωτές, Επεξεργαστές Κειμένων, Εκτύπωση ουράς, Προγράμματα οδήγησης δικτύου, Σύγχρονα προγράμματα, Βάσεις δεδομένων, Διερμηνείς γλωσσών και Βοηθητικά προγράμματα.
Οι πιο συχνές ερωτήσεις συνέντευξης προγραμματισμού Γ
Ορίστε.
Q # 1) Ποια είναι τα βασικά χαρακτηριστικά της γλώσσας προγραμματισμού C;
Απάντηση: Τα χαρακτηριστικά έχουν ως εξής:
- Φορητότητα : Είναι μια γλώσσα ανεξάρτητη από την πλατφόρμα.
- Αρθρωτότητα: Δυνατότητα διάσπασης μεγάλων προγραμμάτων σε μικρές ενότητες.
- Ευκαμψία: Η δυνατότητα ενός προγραμματιστή να ελέγχει τη γλώσσα.
- Ταχύτητα: Το C έρχεται με υποστήριξη για προγραμματισμό συστήματος και ως εκ τούτου μεταγλωττίζει και εκτελεί με υψηλή ταχύτητα σε σύγκριση με άλλες γλώσσες υψηλού επιπέδου.
- Εκτατο : Δυνατότητα προσθήκης νέων δυνατοτήτων από τον προγραμματιστή.
Q # 2) Ποιοι είναι οι βασικοί τύποι δεδομένων που σχετίζονται με το C;
Απάντηση:
- Int - Αναπαριστά τον αριθμό (ακέραιος)
- Float - Αριθμός με ένα κλάσμα.
- Διπλό - Τιμή κυμαινόμενου σημείου διπλής ακρίβειας
- Χαρ - Ενιαίος χαρακτήρας
- Άκυρο - Τύπος ειδικού σκοπού χωρίς καμία αξία.
Q # 3) Ποια είναι η περιγραφή για τα συντακτικά σφάλματα;
Απάντηση: Τα λάθη / λάθη που προκύπτουν κατά τη δημιουργία ενός προγράμματος ονομάζονται σφάλματα σύνταξης. Λάθος εντολές ή λανθασμένες εντολές, λάθος αριθμός παραμέτρων στη μέθοδο / λειτουργία κλήσης, αναντιστοιχίες τύπου δεδομένων μπορούν να αναγνωριστούν ως κοινά παραδείγματα για σφάλματα σύνταξης.
Q # 4) Ποια είναι η διαδικασία δημιουργίας δήλωσης αύξησης και μείωσης στο C;
Απάντηση: Υπάρχουν δύο πιθανές μέθοδοι για την εκτέλεση αυτής της εργασίας.
- Χρησιμοποιήστε τον τελεστή αύξησης (++) και μείωσης (-).
Παράδειγμα Όταν x = 4, x ++ επιστρέφει 5 και x- επιστρέφει 3.
- Χρησιμοποιήστε το συμβατικό σύμβολο + ή -.
Παράδειγμα Όταν x = 4, χρησιμοποιήστε x + 1 για να πάρετε 5 και x-1 για να πάρετε 3.
Ε # 5) Τι είναι οι δεσμευμένες λέξεις με γλώσσα προγραμματισμού;
Απάντηση: Οι λέξεις που αποτελούν μέρος της τυπικής βιβλιοθήκης Γ γλώσσας ονομάζονται δεσμευμένες λέξεις . Αυτές οι δεσμευμένες λέξεις έχουν ειδική σημασία και δεν είναι δυνατόν να τις χρησιμοποιήσετε για οποιαδήποτε άλλη δραστηριότητα εκτός από την προβλεπόμενη λειτουργικότητά της.
Παράδειγμα: άκυρο, επιστροφή int.
Q # 6) Ποια είναι η εξήγηση για τον κρεμαστό δείκτη στο C;
Απάντηση: Όταν υπάρχει ένας δείκτης που δείχνει μια διεύθυνση μνήμης οποιασδήποτε μεταβλητής, αλλά μετά από κάποιο χρονικό διάστημα η μεταβλητή διαγράφηκε από τη θέση μνήμης, ενώ διατηρώντας το δείκτη προς εκείνη τη θέση είναι γνωστό ως αιωρούμενος δείκτης στο C.
Q # 7) Περιγράψτε τη στατική λειτουργία με τη χρήση της;
Απάντηση: Μια συνάρτηση, η οποία έχει έναν ορισμό συνάρτησης που προτάσσεται με μια στατική λέξη-κλειδί ορίζεται ως στατική συνάρτηση. Η στατική συνάρτηση πρέπει να καλείται μέσα στον ίδιο πηγαίο κώδικα.
Q # 8) Ποια είναι η διαφορά μεταξύ των λειτουργιών abs () και fabs ();
Απάντηση: Και οι δύο λειτουργίες πρέπει να ανακτήσουν την απόλυτη τιμή. abs () είναι για ακέραιες τιμές και fabs () είναι για αριθμούς κυμαινόμενου τύπου. Το πρωτότυπο για abs () βρίσκεται κάτω από το αρχείο βιβλιοθήκης και το fabs () είναι κάτω.
Q # 9) Περιγράψτε τους Wild Pointers στο C;
Απάντηση: Οι μη αρχικοποιημένοι δείκτες στον κώδικα C είναι γνωστοί Wild δείκτες . Δείχνουν κάποια αυθαίρετη θέση μνήμης και μπορούν να προκαλέσουν κακή συμπεριφορά προγράμματος ή σφάλμα προγράμματος.
Q # 10) Ποια είναι η διαφορά μεταξύ ++ a και ++;
Απάντηση: Το «++ a» ονομάζεται προκαταρκτική αύξηση και η αύξηση θα συμβεί πρώτα σε μια μεταβλητή. «A ++» ονομάζεται αύξηση μετά την επιδιόρθωση και η αύξηση συμβαίνει μετά την τιμή μιας μεταβλητής που χρησιμοποιείται για τις λειτουργίες.
Ε # 11) Περιγράψτε τη διαφορά μεταξύ = και == συμβόλων στον προγραμματισμό Γ;
Απάντηση: «==» είναι ο τελεστής σύγκρισης που χρησιμοποιείται για τη σύγκριση της τιμής ή της έκφρασης στην αριστερή πλευρά με την τιμή ή της έκφρασης στη δεξιά πλευρά.
«=» Είναι ο χειριστής ανάθεσης που χρησιμοποιείται για να αντιστοιχίσει την τιμή της δεξιάς πλευράς στη μεταβλητή στην αριστερή πλευρά.
Q # 12) Ποια είναι η εξήγηση για τη λειτουργία πρωτότυπου στο C;
εφαρμογή του αλγορίθμου dijkstra στην Java
Απάντηση: Η συνάρτηση πρωτοτύπου είναι μια δήλωση μιας συνάρτησης με τις ακόλουθες πληροφορίες στον μεταγλωττιστή.
- Όνομα της συνάρτησης.
- Ο τύπος επιστροφής της συνάρτησης.
- Λίστα παραμέτρων της συνάρτησης.
Σε αυτό το παράδειγμα Όνομα της συνάρτησης είναι Άθροισμα, ο τύπος επιστροφής είναι ο ακέραιος τύπος δεδομένων και δέχεται δύο ακέραιες παραμέτρους.
Q # 13) Ποια είναι η εξήγηση για την κυκλική φύση των τύπων δεδομένων στο C;
Απάντηση: Ορισμένοι από τους τύπους δεδομένων στο C έχουν ειδικό χαρακτηριστικό όταν ένας προγραμματιστής εκχωρεί τιμή πέρα από το εύρος του τύπου δεδομένων. Δεν θα υπάρξει σφάλμα μεταγλωττιστή και η τιμή αλλάζει σύμφωνα με μια κυκλική σειρά. Αυτό ονομάζεται κυκλική φύση. Οι τύποι δεδομένων Char, int, long int έχουν αυτήν την ιδιότητα. Άλλοι τύποι δεδομένων float, double και long double δεν έχουν αυτήν την ιδιότητα.
Ε # 14) Περιγράψτε το αρχείο κεφαλίδας και τη χρήση του στον προγραμματισμό Γ;
Απάντηση: Το αρχείο που περιέχει τους ορισμούς και τα πρωτότυπα των λειτουργιών που χρησιμοποιούνται στο πρόγραμμα ονομάζεται αρχείο κεφαλίδας. Είναι επίσης γνωστό ως αρχείο βιβλιοθήκης.
Παράδειγμα: Το αρχείο κεφαλίδας περιέχει εντολές όπως το printf και το scanf προέρχεται από το αρχείο βιβλιοθήκης stdio.h.
Ε # 15) Υπάρχει μια πρακτική στην κωδικοποίηση για να διατηρείτε ορισμένα μπλοκ κώδικα σε σύμβολα σχολίων παρά να το διαγράφετε κατά τον εντοπισμό σφαλμάτων. Πώς επηρεάζει αυτό κατά τον εντοπισμό σφαλμάτων;
Απάντηση: Αυτή η ιδέα ονομάζεται σχολιασμός και αυτός είναι ο τρόπος για να απομονώσετε κάποιο μέρος του κώδικα που σαρώνει πιθανή αιτία για το σφάλμα. Επίσης, αυτή η ιδέα βοηθά στην εξοικονόμηση χρόνου, επειδή εάν ο κώδικας δεν είναι ο λόγος για το ζήτημα, μπορεί απλά να αφαιρεθεί από το σχόλιο.
Q # 16) Ποια είναι η γενική περιγραφή για τις δηλώσεις βρόχου και τους διαθέσιμους τύπους βρόχων στο C;
Απάντηση: Μια δήλωση που επιτρέπει την εκτέλεση δηλώσεων ή ομάδων δηλώσεων με επαναλαμβανόμενο τρόπο ορίζεται ως βρόχος.
Το παρακάτω διάγραμμα εξηγεί μια γενική μορφή βρόχου.
Υπάρχουν 4 τύποι δηλώσεων βρόχου στο C.
- Ενώ βρόχος
- Για βρόχο
- Κάνε… ενώ το Loop
- Ένθετο βρόχο
Q # 17) Τι είναι ένας ένθετος βρόχος;
Απάντηση: Ένας βρόχος που τρέχει μέσα σε έναν άλλο βρόχο αναφέρεται ως α ένθετο βρόχο . Ο πρώτος βρόχος ονομάζεται Outer Loop και ο εσωτερικός βρόχος ονομάζεται Inner Loop. Ο εσωτερικός βρόχος εκτελεί τον αριθμό των φορών που ορίζονται σε έναν εξωτερικό βρόχο.
Q # 18) Ποια είναι η γενική μορφή συνάρτησης στο C;
Απάντηση: Ο ορισμός της συνάρτησης στο C περιέχει τέσσερις κύριες ενότητες.
return_type function_name( parameter list ) { body of the function }
- Τύπος επιστροφής : Τύπος δεδομένων της τιμής επιστροφής της συνάρτησης.
- Όνομα λειτουργίας: Το όνομα της συνάρτησης και είναι σημαντικό να υπάρχει ένα νόημα όνομα που περιγράφει τη δραστηριότητα της συνάρτησης.
- Παράμετροι : Οι τιμές εισόδου για τη συνάρτηση που χρησιμοποιούνται για την εκτέλεση της απαιτούμενης ενέργειας.
- Λειτουργία σώματος : Συλλογή δηλώσεων που εκτελεί την απαιτούμενη ενέργεια.
Q # 19) Τι είναι ο δείκτης σε δείκτη στη γλώσσα προγραμματισμού Γ;
Απάντηση: Μια μεταβλητή δείκτη που περιέχει τη διεύθυνση μιας άλλης μεταβλητής δείκτη ονομάζεται δείκτης σε δείκτη. Αυτή η έννοια παραπέμπει δύο φορές για να δείξει τα δεδομένα που διατηρούνται από μια μεταβλητή δείκτη.
Σε αυτό το παράδειγμα ** y επιστρέφει την τιμή της μεταβλητής a.
Ε # 20) Ποια είναι τα έγκυρα μέρη για τη λέξη-κλειδί 'Break';
Απάντηση: Ο σκοπός της λέξης κλειδί διακοπής είναι να βγάλει τον έλεγχο από το μπλοκ κώδικα που εκτελεί. Μπορεί να εμφανιστεί μόνο σε βρόχους ή εναλλαγή δηλώσεων.
Ε # 21) Ποια είναι η διαφορά συμπεριφοράς όταν το αρχείο κεφαλίδας περιλαμβάνεται σε διπλά εισαγωγικά ('') και γωνιακά τιράντες ();
Απάντηση: Όταν το αρχείο κεφαλίδας περιλαμβάνεται σε διπλά εισαγωγικά (''), ο μεταγλωττιστής αναζητά πρώτα στον κατάλογο εργασίας για το συγκεκριμένο αρχείο κεφαλίδας. Εάν δεν βρεθεί, τότε αναζητά το αρχείο στη διαδρομή συμπερίληψης. Αλλά όταν το αρχείο κεφαλίδας περιλαμβάνεται σε γωνιακά τιράντες (), ο μεταγλωττιστής αναζητά μόνο στον κατάλογο εργασίας για το συγκεκριμένο αρχείο κεφαλίδας.
Q # 22) Τι είναι ένα διαδοχικό αρχείο πρόσβασης;
Απάντηση: Τα γενικά προγράμματα αποθηκεύουν δεδομένα σε αρχεία και ανακτούν υπάρχοντα δεδομένα από αρχεία. Με το διαδοχικό αρχείο πρόσβασης, τέτοια δεδομένα αποθηκεύονται σε διαδοχικό μοτίβο. Κατά την ανάκτηση δεδομένων από τέτοια αρχεία κάθε δεδομένα διαβάζεται ένα προς ένα έως ότου βρεθούν οι απαιτούμενες πληροφορίες.
Q # 23) Ποια είναι η μέθοδος αποθήκευσης δεδομένων σε τύπο δομής δεδομένων στοίβας;
Απάντηση: Τα δεδομένα αποθηκεύονται στον τύπο δομής δεδομένων Stack χρησιμοποιώντας το Πρώτο στην τελευταία έξοδο (FILO) μηχανισμός. Μόνο η κορυφή της στοίβας είναι προσβάσιμη σε μια δεδομένη παρουσία. Ο μηχανισμός αποθήκευσης αναφέρεται ως PUSH και η ανάκτηση αναφέρεται ως POP.
Q # 24) Ποια είναι η σημασία των αλγορίθμων του προγράμματος C;
πώς να δημιουργήσετε έργο σε έκλειψη
Απάντηση: Ο αλγόριθμος δημιουργείται πρώτα και περιέχει βήμα προς βήμα οδηγίες για το πώς πρέπει να είναι η λύση. Επίσης, περιέχει τα βήματα που πρέπει να ληφθούν υπόψη και τους απαιτούμενους υπολογισμούς / λειτουργίες εντός του προγράμματος.
Q # 25) Ποιος είναι ο σωστός κωδικός για να έχετε την ακόλουθη έξοδο στο C χρησιμοποιώντας ένθετο για βρόχο;
Απάντηση:
#include int main () { int a; int b; /* for loop execution */ for( a = 1; a <6; a++ ) { /* for loop execution */ for ( b = 1; b <= a; b++ ) { printf('%d',b); } printf('
'); } return 0; }
Ε # 26) Εξηγήστε τη χρήση της λειτουργίας toupper () με ένα παράδειγμα κώδικα;
Απάντηση: Η συνάρτηση Toupper () χρησιμοποιείται για τη μετατροπή της τιμής σε κεφαλαία όταν χρησιμοποιείται με χαρακτήρες.
Κώδικας:
#include #include int main() { char c; c = 'a'; printf('%c -> %c', c, toupper(c)); c = 'A'; printf('
%c -> %c', c, toupper(c)); c = '9'; printf('
%c -> %c', c, toupper(c)); return 0; }
Αποτέλεσμα:
Q # 27) Ποιος είναι ο κωδικός σε ένα βρόχο λίγο που επιστρέφει την έξοδο του δεδομένου κώδικα;
#include int main () { int a; /* for loop execution */ for( a = 1; a <= 100; a++ ) { printf('%d
',a * a); } return 0; }
Απάντηση:
#include int main () { int a; while (a<=100) { printf ('%d
', a * a); a++; } return 0; }
Q # 28) Επιλέξτε τη λανθασμένη φόρμα χειριστή στην ακόλουθη λίστα (==,,> =,<=) and what is the reason for the answer?
Απάντηση: Ο λανθασμένος χειριστής είναι ''. Αυτή η μορφή είναι σωστή κατά τη σύνταξη δηλώσεων υπό όρους, αλλά δεν είναι η σωστή λειτουργία για να υποδείξετε ότι δεν είναι ίδια στον προγραμματισμό Γ. Δίνει ένα σφάλμα συλλογής ως εξής.
Κώδικας:
#include int main () { if ( 5 10 ) printf( 'test for ' ); return 0; }
Λάθος:
Ε # 29) Είναι δυνατόν να χρησιμοποιήσετε αγκύλες ({}) για να επισυνάψετε έναν κωδικό γραμμής στο πρόγραμμα C;
Απάντηση: Ναι, λειτουργεί χωρίς κανένα σφάλμα. Ορισμένοι προγραμματιστές θέλουν να το χρησιμοποιήσουν για να οργανώσουν τον κώδικα. Αλλά ο κύριος σκοπός των αγκύλων είναι η ομαδοποίηση πολλών γραμμών κωδικών.
Q # 30) Περιγράψτε τον τροποποιητή στο C;
Απάντηση: Ο τροποποιητής είναι ένα πρόθεμα του βασικού τύπου δεδομένων που χρησιμοποιείται για να υποδείξει την τροποποίηση της κατανομής χώρου αποθήκευσης σε μια μεταβλητή.
Παράδειγμα- Σε έναν επεξεργαστή 32-bit, ο αποθηκευτικός χώρος για τον τύπο δεδομένων int είναι 4. Όταν το χρησιμοποιούμε με τροποποιητή, ο χώρος αποθήκευσης αλλάζει ως εξής:
- Long int: Ο αποθηκευτικός χώρος είναι 8 bit
- Σύντομο int: Ο αποθηκευτικός χώρος είναι 2 bit
Q # 31) Ποιοι είναι οι διαθέσιμοι τροποποιητές στη γλώσσα προγραμματισμού C;
Απάντηση: Υπάρχουν 5 τροποποιητές στη γλώσσα προγραμματισμού C ως εξής:
- Μικρός
- Μακρύς
- Υπογεγραμμένο
- Χωρίς υπογραφή
- πολύ καιρό
Q # 32) Ποια είναι η διαδικασία δημιουργίας τυχαίων αριθμών στη γλώσσα προγραμματισμού C;
Απάντηση: Η εντολή rand () είναι διαθέσιμη για χρήση για το σκοπό αυτό. Η συνάρτηση επιστρέφει έναν ακέραιο αριθμό ξεκινώντας από το μηδέν (0). Το ακόλουθο δείγμα κώδικα δείχνει τη χρήση του rand ().
Κώδικας:
#include #include int main () { int a; int b; for(a=1; a<11; a++) { b = rand(); printf( '%d
', b ); } return 0; }
Παραγωγή:
Q # 33) Περιγράψτε τη νέα ακολουθία διαφυγής με ένα δείγμα προγράμματος;
Απάντηση: Η ακολουθία διαφυγής Newline αντιπροσωπεύεται από n. Αυτό δείχνει το σημείο ότι η νέα γραμμή ξεκινά στον μεταγλωττιστή και η έξοδος δημιουργείται ανάλογα. Το ακόλουθο δείγμα προγράμματος δείχνει τη χρήση της ακολουθίας διαφυγής νέας γραμμής.
Κώδικας:
/* * C Program to print string */ #include #include int main(){ printf('String 01 '); printf('String 02 '); printf('String 03
'); printf('String 01
'); printf('String 02
'); return 0; }
Παραγωγή:
Q # 34) Είναι δυνατόν να αποθηκεύσετε 32768 σε μια μεταβλητή τύπου δεδομένων;
Απάντηση: Ο τύπος δεδομένων Int μπορεί να αποθηκεύσει τιμές μόνο από - 32768 έως 32767. Για την αποθήκευση 32768 πρέπει να χρησιμοποιηθεί ένας τροποποιητής με τον τύπο δεδομένων int. Το Long Int μπορεί να χρησιμοποιηθεί και επίσης εάν δεν υπάρχουν αρνητικές τιμές, είναι επίσης δυνατή η χρήση του μη υπογεγραμμένου int.
Q # 35) Υπάρχει δυνατότητα δημιουργίας ενός προσαρμοσμένου αρχείου κεφαλίδας με γλώσσα προγραμματισμού C;
Απάντηση: Ναι, είναι δυνατό και εύκολο να δημιουργήσετε ένα νέο αρχείο κεφαλίδας. Δημιουργήστε ένα αρχείο με πρωτότυπα λειτουργιών που χρησιμοποιούνται στο πρόγραμμα. Συμπεριλάβετε το αρχείο στην ενότητα '#include' από το όνομά του.
Ε # 36) Περιγράψτε τη δυναμική δομή δεδομένων στη γλώσσα προγραμματισμού Γ;
Απάντηση: Η δυναμική δομή δεδομένων είναι πιο αποτελεσματική στη μνήμη. Η πρόσβαση στη μνήμη πραγματοποιείται όπως απαιτείται από το πρόγραμμα.
Ε # 37) Είναι δυνατόν να προσθέσετε δείκτες ο ένας στον άλλο;
Απάντηση: Δεν υπάρχει δυνατότητα προσθήκης δεικτών μαζί. Δεδομένου ότι ο δείκτης περιέχει λεπτομέρειες διεύθυνσης, δεν υπάρχει τρόπος να ανακτήσετε την τιμή από αυτήν τη λειτουργία.
Q # 38) Τι είναι η έμμεση;
Απάντηση: Εάν έχετε ορίσει έναν δείκτη σε μια μεταβλητή ή οποιοδήποτε αντικείμενο μνήμης, δεν υπάρχει άμεση αναφορά στην τιμή της μεταβλητής. Αυτό ονομάζεται έμμεση αναφορά. Αλλά όταν δηλώνουμε μια μεταβλητή, έχει άμεση αναφορά στην τιμή.
Q # 39) Ποιοι είναι οι τρόποι για ένα μηδενικό δείκτη που μπορεί να χρησιμοποιηθεί στη γλώσσα προγραμματισμού C;
Απάντηση: Οι μηδενικοί δείκτες μπορούν να χρησιμοποιηθούν με τρεις τρόπους.
- Ως τιμή σφάλματος.
- Ως τιμή φρουρού.
- Για να τερματίσετε την έμμεση στη δομή αναδρομικών δεδομένων.
Q # 40) Ποια είναι η εξήγηση για τον αρθρωτό προγραμματισμό;
Απάντηση: Η διαδικασία διαίρεσης του κύριου προγράμματος σε εκτελέσιμο υποτμήμα ονομάζεται προγραμματισμός ενότητας. Αυτή η ιδέα προωθεί την επαναχρησιμοποίηση.
συμπέρασμα
Ο ερωτητής βασίζεται στις έννοιες της γλώσσας προγραμματισμού C, συμπεριλαμβανομένης της διαχείρισης μνήμης με δείκτες, της γνώσης της σύνταξής του και ορισμένων παραδειγμάτων προγραμμάτων που χρησιμοποιούν τη δομή του προγράμματος Basic C Η θεατρική και πρακτική γνώση του υποψηφίου εξετάζεται με τις ερωτήσεις.
Συνιστώμενη ανάγνωση
- Ερωτήσεις και απαντήσεις συνέντευξης
- Μερικές δύσκολες μη αυτόματες ερωτήσεις και απαντήσεις
- C Vs C ++: 39 Κύριες διαφορές μεταξύ C και C ++ με παραδείγματα