Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

100 Pertanyaan & Jawaban Wawancara Pemrograman C Teratas (2024)

100 Pertanyaan & Jawaban Wawancara Pemrograman C Teratas (2024)

Di bawah ini Anda akan menemukan jawaban singkat, tingkat ahli, untuk pertanyaan wawancara pemrograman C yang paling sering diajukan. Setiap jawaban ditulis untuk menunjukkan keahlian yang jelas, pengalaman nyata, dan pengetahuan otoritatif sambil tetap menarik dan dapat dipercaya.

1) Bagaimana membuat pernyataan increment atau decrement dalam C?

Anda dapat menggunakan operator unary ++ dan -- atau operator aritmatika. Misalnya, x++ atau x = x + 1 keduanya menambahkan x dengan satu, sementara x-- atau x = x - 1 menguranginya.

2) Apa perbedaan antara Call by Value dan Call by Reference?

Call by value melewatkan salinan nilai variabel; fungsi tidak dapat mengubah aslinya. Call by reference melewatkan alamat variabel, memungkinkan fungsi untuk mengubah nilai asli secara langsung.

3) Bagaimana mengomentari kode membantu dalam debugging?

Mengomentari bagian (misalnya, /* ... */) secara sementara menghapus kode dari eksekusi sambil melestarikannya untuk diaktifkan kembali dengan cepat. Ini mengisolasi sumber potensi kesalahan tanpa menghapus baris asli.

4) Konversi for loop berikut menjadi while loop:
for (a = 1; a <= 100; a++) printf("%d\n", a * a);

Jawaban:

a = 1; while (a <= 100) { printf("%d\n", a * a); a++; }
5) Apa itu stack?

Stack adalah struktur data Last-In-First-Out (LIFO). Operasinya mencakup PUSH (tambah) dan POP (hapus). Hanya elemen teratas yang dapat diakses langsung.

6) Apa itu file akses sekuensial?

Data disimpan satu record demi record. Untuk membaca record tertentu, Anda harus melintasi file secara sekuensial sampai mencapainya.

7) Apa itu inisialisasi variabel dan mengapa penting?

Inisialisasi menetapkan nilai yang diketahui ke variabel sebelum digunakan. Variabel yang tidak diinisialisasi berisi nilai tidak terdefinisi, yang mengarah pada perilaku yang tidak dapat diprediksi.

8) Apa itu spaghetti programming?

Kode spaghetti mengacu pada kode yang rumit, tidak terstruktur, yang sulit dibaca dan dipelihara. Biasanya timbul dari kurangnya perencanaan dan menghasilkan alur kontrol yang kompleks.

9) Bedakan kode sumber dari kode objek.

Kode sumber (.c) adalah teks C yang dapat dibaca manusia. Compiler menerjemahkannya menjadi kode objek (.obj atau .o), yang dapat dibaca mesin dan dapat ditautkan menjadi eksekusi.

10) Bagaimana mencetak karakter kutip dalam C?

Gunakan escape sequence: \' untuk kutip tunggal dan \" untuk kutip ganda dalam string printf.

11) Apa tujuan karakter \0?

Itu menandai akhir literal string dalam C, memungkinkan fungsi seperti strlen dan printf untuk menentukan di mana string berakhir.

12) Perbedaan antara = dan ==?

= menetapkan nilai ke variabel; == membandingkan dua nilai untuk kesetaraan.

13) Apa itu operator modulus?

Dinyatakan oleh %, ini mengembalikan sisa dari pembagian integer. Contoh: 10 % 3 menghasilkan 1.

14) Apa itu nested loop?

Loop di dalam loop lain. Loop dalam berjalan sepenuhnya untuk setiap iterasi loop luar.

15) Operator mana yang salah: >=, <=, <>, ==?

Dalam C, <> tidak valid; operator "tidak sama dengan" yang benar adalah !=.

16) Bandingkan compiler dan interpreter.

Compiler menterjemahkan seluruh program menjadi kode mesin sebelum eksekusi, menangkap semua kesalahan sintaks di depan. Interpreter mengeksekusi kode baris demi baris dan berhenti pada kesalahan pertama.

17) Bagaimana mendeklarasikan variabel string?

Gunakan array karakter: char name[50]; menyediakan ruang untuk hingga 49 karakter plus penutup null.

18) Dapatkah kurung kurawal melingkupi satu baris kode?

Ya. Meskipun opsional untuk pernyataan tunggal, kurung meningkatkan keterbacaan dan mengurangi kesalahan saat kode diperluas nanti.

19) Apa itu file header dan kegunaannya?

File header (.h) berisi prototipe dan definisi fungsi. Menyertakannya (#include <stdio.h>) membuat fungsi standar seperti printf tersedia.

20) Apa itu kesalahan sintaks?

Kesalahan dalam kode yang melanggar tata bahasa bahasa, seperti titik koma yang hilang atau kata kunci yang salah eja.

21) Variabel vs. konstanta.

Variabel dapat berubah selama eksekusi; konstanta tetap pada waktu kompilasi. Gunakan #define atau const untuk nilai yang tidak dapat diubah.

22) Mengakses elemen array.

Elemen diindeks dari 0 hingga size-1. Untuk int scores[5];, indeks yang valid adalah 0–4.

23) Dapatkah int menyimpan 32768?

Tidak. int umumnya berkisar dari –32768 hingga 32767 pada sistem 16-bit. Gunakan long atau unsigned int untuk nilai yang lebih besar.

24) Menggabungkan escape sequences.

Ya. Misalnya, printf("Hello\n\tWorld"); mencetak “Hello” pada satu baris, diikuti oleh “World” yang diberi tab.

25) Mengapa tidak menyertakan setiap file header?

Hanya sertakan header yang diperlukan untuk fungsi yang digunakan. Header yang tidak perlu menambah waktu kompilasi dan ukuran biner.

26) Kapan void digunakan?

Dalam tanda tangan fungsi, void menunjukkan bahwa fungsi tidak mengembalikan nilai, misalnya, void display(void).

27) Apa itu pernyataan majemuk?

Blok kode yang dikelilingi oleh kurung yang dieksekusi sebagai satu unit, sering dalam if atau loop.

28) Signifikansi algoritma.

Algoritma menyediakan rencana langkah demi langkah untuk menyelesaikan masalah, memandu logika program dan memastikan kebenaran.

29) Keuntungan array dibandingkan variabel tunggal.

Array memungkinkan penyimpanan dan manipulasi data terkait yang efisien menggunakan satu pengidentifikasi dan indeks, mengurangi kekacauan kode.

30) Loop untuk mencetak angka bertambah:
for (int a = 1; a <= 5; a++) { for (int b = 1; b <= a; b++) printf("%d", b); printf("\n"); }
31) Masalah dengan scanf("%d", whatnumber);

Kurangnya ampersand: scanf("%d", &whatnumber); melewatkan alamat variabel.

32) Menghasilkan angka acak.

Gunakan rand() setelah seeding dengan srand(time(NULL));. Contoh: int anyNum = rand();

33) Kesalahan tolower() yang tidak terdefinisi.

Sertakan header yang tepat: #include <ctype.h>.

34) Cara menyisipkan komentar.

Satu baris: // comment; multi-baris: /* comment */.

35) Apa itu debugging?

Proses sistematis untuk menemukan dan memperbaiki kesalahan untuk memastikan program menghasilkan keluaran yang diinginkan.

36) Fungsi dari &&.

Logical AND: semua kondisi harus benar agar ekspresi secara keseluruhan mengevaluasi ke benar.

37) Menentukan ganjil atau genap.

Periksa sisa: if (num % 2 == 0) printf("EVEN"); else printf("ODD");

38) Arti dari %10.2 dalam printf.

Ini menyediakan 10 spasi karakter untuk angka dan mencetak 2 desimal.

39) Kesalahan logis vs. sintaks.

Kesalahan logis dikompilasi tetapi menghasilkan hasil yang salah; kesalahan sintaks mencegah kompilasi.

40) Tipe struktur kontrol.

Sequence, Selection (if/else, switch), dan Repetition (loop).

41) Fungsi dari ||.

Logical OR: jika salah satu kondisi benar, ekspresi benar.

42) Dapatkah if membandingkan string?

Tidak. Gunakan strcmp() untuk perbandingan string.

43) Apa itu direktif preprocessor?

Instruksi yang diproses sebelum kompilasi, seperti #include dan #define.

44) Hasil dari s >=10 && s < 25 && s!=12 ketika s adalah 10.

Benar, karena semua perbandingan individu mengevaluasi ke benar.

45) Prioritas operator dalam C.

Unary !, +, -, *, /, %, + -, relational (< > <= >=), equality (== !=), logical (&& ||), assignment (=).

46) Penugasan yang benar ke variabel string.

Gunakan strcpy(myName, "Robin"); alih-alih myName = "Robin";.

47) Tentukan panjang string.

Panggil strlen(). Contoh: int len = strlen(FullName);

48) Menginisialisasi variabel saat deklarasi.

Ya. Contoh: char planet[15] = "Earth";

49) Mengapa C adalah bahasa tingkat menengah?

C menggabungkan abstrak tingkat tinggi dengan manipulasi memori tingkat rendah, menawarkan keterbacaan dan performa.

50) Ekstensi file dalam C.

Sumber: .c, Header: .h, Objek: .o atau .obj, Eksekusi: .exe.

51) Apa itu kata kunci reserved?

Kata kunci yang didefinisikan oleh C yang memiliki arti khusus (misalnya, int, return). Mereka tidak dapat digunakan sebagai pengidentifikasi.

52) Apa itu linked list?

Struktur data dinamis yang terdiri dari node yang terhubung melalui pointer, yang memungkinkan penyisipan dan penghapusan yang efisien.

53) Apa itu FIFO?

First-In-First-Out; digunakan dalam struktur antre di mana elemen yang paling awal dimasukkan adalah yang pertama dikeluarkan.

54) Apa itu binary trees?

Struktur data pohon di mana setiap node memiliki paling banyak dua anak, yang memudahkan operasi pencarian yang efisien.

55) Apakah kata kunci reserved case-sensitive?

Salah. Semua kata kunci reserved harus ditulis huruf kecil; jika tidak, compiler memperlakukannya sebagai pengidentifikasi.

56) Perbedaan antara ++a dan a++.

Pre-increment (++a) menambah a sebelum nilainya digunakan; post-increment (a++) menggunakan nilai saat ini terlebih dahulu, kemudian menambahkannya.

57) Efek dari X += 15; ketika X adalah 5.

Hasil: X menjadi 20.

58) Apakah NAME, name, Name sama?

Salah. C case-sensitive.

59) Apa itu endless loop?

Juga disebut infinite loop; berjalan selamanya karena kondisi loop tidak pernah menjadi salah.

60) Apa itu program flowchart?

Diagram visual yang menguraikan urutan operasi, titik keputusan, dan loop dalam program.

61) Masalah dengan void = 10;.

‘void’ adalah tipe reserved; tidak dapat digunakan sebagai nama variabel.

62) Validitas dari INT = 10.50;.

Hanya jika INT adalah pengidentifikasi yang ditentukan pengguna (bukan kata kunci int). Kata kunci harus huruf kecil.

63) Apa itu actual arguments?

Nilai yang dilewatkan ke fungsi saat dipanggil; mereka sesuai dengan parameter formal fungsi.

64) Apa itu newline escape sequence?

Dinyatakan oleh \n, memindahkan kursor ke baris berikutnya.

65) Apa itu output redirection?

Menggunakan operator shell seperti > untuk mengirim output program ke file alih-alih konsol.

66) Apa itu run-time errors?

Kesalahan yang terjadi saat program sedang dieksekusi (misalnya, pembagian dengan nol, null pointer dereference).

67) Perbedaan antara abs() dan fabs().

Keduanya mengembalikan nilai absolut; abs() bekerja pada integer (stdlib.h), fabs() pada bilangan floating-point (math.h).

68) Apa itu formal parameters?

Variabel yang dideklarasikan dalam definisi fungsi yang menerima actual arguments selama panggilan.

69) Apa itu control structures?

Mekanisme yang menentukan urutan eksekusi: sequence, selection, dan repetition.

70) Periksa apakah angka positif atau negatif.
if (num >= 0) printf("number is positive"); else printf("number is negative");
71) Kapan menggunakan switch alih-alih if?

Ketika satu variabel integer atau karakter dapat mengambil banyak nilai diskrit; switch menawarkan percabangan yang lebih jelas dan lebih efisien.

72) Apa itu global variables dan cara mendeklarasikannya?

Variabel yang dideklarasikan di luar semua fungsi; dapat diakses di seluruh file. Contoh: int counter; sebelum int main().

73) Apa itu enumerated types?

Tipe integer kustom yang didefinisikan dengan enum, menetapkan nama simbolis ke nilai konstan.

74) Apa yang dilakukan toupper()?

Mengkonversi karakter alfabet huruf kecil menjadi setara huruf besarnya (C standard library).

75) Dapatkah fungsi dilewatkan sebagai argumen?

Ya. Melewatkan pointer fungsi ke fungsi lain, misalnya, void sort(int (*cmp)(int, int));

76) Apa itu multidimensional arrays?

Array dengan dua atau lebih indeks, seperti int matrix[3][4];, berguna untuk tabel atau grid.

77) Fungsi untuk menambahkan satu string ke string lain.

Gunakan strcat(dest, src); dari string.h.

78) Perbedaan antara getch() dan getche().

getch() membaca karakter tanpa echo; getche() menampilkan karakter ke konsol.

79) Apakah scanf("%c", &letter) dan letter = getchar() menghasilkan hasil yang sama?

Ya, keduanya membaca karakter berikutnya dari standar input dan menyimpannya di letter.

80) Apa itu structure types?

Tipe data komposit yang mengelompokkan variabel terkait ke dalam satu entitas.

81) Arti dari r dan w dalam file modes.

‘r’ membuka file untuk membaca; ‘w’ membuka untuk menulis, memotong konten yang ada.

82) Text vs. binary files.

Text files berisi karakter yang dapat dibaca manusia; binary files menyimpan byte mentah untuk pemrosesan mesin yang efisien.

83) Dapatkah Anda membuat custom header files?

Ya. Buat file dengan ekstensi .h, sertakan prototipe, dan #include "myheader.h" dalam sumber Anda.

84) Apa itu dynamic data structure?

Struktur data yang mengalokasikan memori pada runtime (misalnya, linked lists, trees) menggunakan malloc() dan free().

85) Berbagai tipe data dalam C.

Tipe dasar: int, char, float, double. Setiap satu melayani kebutuhan penyimpanan yang berbeda.

86) Bentuk umum program C.

Direktif preprocessor, definisi tipe, variabel global, main(), deklarasi lokal, pernyataan, dan nilai kembali.

87) Keuntungan random access files.

Langsung lompat ke record mana pun menggunakan fseek(), mempercepat operasi pencarian dibandingkan akses sekuensial.

88) Efek dari mengabaikan break dalam switch.

Fall-through terjadi: eksekusi melanjutkan ke blok case berikutnya, yang dapat menyebabkan perilaku yang tidak diinginkan.

89) Melewatkan array ke fungsi.

Melewatkan pointer ke elemen pertama: void func(int arr[]); atau void func(int *arr);.

90) Apa itu pointers?

Variabel yang menyimpan alamat memori, memungkinkan manipulasi data tidak langsung dan manajemen memori dinamis.

91) Melewatkan seluruh struktur ke fungsi.

Diizinkan; seluruh struktur disalin kecuali dilewatkan melalui pointer, yang menghindari duplikasi.

92) Apa itu gets()?

Membaca seluruh baris ke dalam buffer sampai newline ditemukan. Tidak lagi digunakan karena risiko buffer overflow; gunakan fgets() sebagai gantinya.

93) Mencetak tanda persen.

Escape dengan %% dalam printf.

94) Pencarian random access file.

Gunakan fseek() untuk memindahkan pointer file ke offset yang diinginkan, lalu baca record.

95) Apakah komentar dikompilasi?

Tidak. Komentar dihapus selama preprocessing dan tidak muncul dalam eksekusi.

96) Fungsi sorting bawaan.

Gunakan qsort() dari stdlib.h untuk sorting generik.

97) Kelebihan dan kekurangan heap.

Keuntungan: fleksibel, alokasi dinamis; Kerugian: akses lebih lambat, fragmentasi.

98) Konversi string ke angka.

Gunakan atoi() untuk integer, atof() untuk float, dan atol() untuk long.

99) Tukar dua variabel.
int temp = num1; num1 = num2; num2 = temp;
100) Tujuan titik koma.

Itu mengakhiri pernyataan, memungkinkan compiler untuk memparsing dan memisahkan instruksi yang berbeda.

Unduhan PDF Gratis: C Programming Interview Questions & Answers

Bahasa C

  1. Panduan Wawancara Cloud 2024: Pertanyaan & Jawaban Ahli
  2. 10 Komputer Papan Tunggal Terbaik Tahun 2021: Performa, Daya, dan Aplikasi
  3. Otomasi Cetak Injeksi: Wawasan Ahli dan Tren Munculan
  4. 3 Tantangan Utama dalam Mempersiapkan Data IoT untuk Sukses Industri
  5. Platform Analitik IoT Berbasis Cloud Terkemuka untuk 2026
  6. Panduan Definitif untuk 10 Platform IIoT Teratas (2024)
  7. 8 Model Komputasi Awan Kunci Tahun 2021
  8. 17 Buku Pemrograman Terbaik untuk Meningkatkan Keterampilan Coding pada 2021
  9. Memilih Antara Data Matrix dan QR Code: Mana yang Terbaik untuk Bisnis Anda
  10. Resolusi CMMS Teratas untuk 2021: Transformasi Manajemen Pemeliharaan