Search Jobs



C Interview Question

Top 50 commonly asked interview questions in C language along with answers and examples:

1. What is C?

   - C is a high-level programming language known for its simplicity and powerful features, developed by Dennis Ritchie.

2. What is the difference between printf and scanf ?

   - printf is used to print output, while scanf is used to take input. Example:


   printf("Hello, World!");

   int x;

   scanf("%d", &x);


3. Explain the difference between auto and static variables.

   - auto variables are local and have a scope limited to the block they are declared in, while

static variables retain their value between

function calls. Example:


   void func() {

    auto int a = 10;

    static int b = 5;



4. What is the use of const in C?

   - const is used to declare constant values that cannot be modified. Example:


   const int pi = 3.14;


5. Explain the difference between break

and continue.

   - break is used to exit from loops, while continue

is used to skip the current iteration and continue with the next one. Example:


   for (int i = 1; i <= 5; i++) {

    if (i == 3) {

        break; // Exits the loop when i equals 3.


    if (i == 2) {

        continue; // Skips the current

iteration when i equals 2.




6. What is a pointer in C?

   - A pointer is a variable that stores the memory address of another variable. Example:


   int x = 10;

   int *ptr = &x; // ptr stores the address of x.


7. Explain the use of malloc and free.

   - malloc is used to dynamically allocate memory, and free is used to deallocate memory. Example:


   int *arr = (int *)malloc(5 * sizeof(int));

   // Use arr...



8. What is a structure in C?

   - A structure is a user-defined data type that groups related data members together. Example:


   struct Student {

    char name[20];

    int age;



9. Explain the difference between strcpy and strcat.

   - strcpy is used to copy one string into another, while strcat is used to concatenate two strings. Example:


   char dest[20], src[10];

   strcpy(dest, "Hello");

   strcat(dest, " World");


10. What is recursion in C?

- Recursion is a technique where a function calls itself. Example (Factorial):


int factorial(int n) {

     if (n == 0) return 1;

     return n * factorial(n - 1);


11. What is the purpose of the switch statement?

- The switch statement is used to select one of many code blocks to be executed. Example:


switch (day) {

     case 1:



     case 2:



     // ...


         printf("Invalid day");


12. What are preprocessor directives in C?

- Preprocessor directives are commands to the C preprocessor that modify the source code before actual compilation. Example (#include):


#include <stdio.h>


13. What is the typedef keyword used for?

   - typedef is used to create custom data types in C. Example:


typedef int Length;

Length x = 10; // x is of type int.

14. Explain the use of enum in C.

- enum is used to create a set of named integer constants. Example:


enum Days { Sunday, Monday, Tuesday, Wednesday,

Thursday, Friday, Saturday };

15. How can you reverse a string in C?

- You can reverse a string by using a loop. Example:


void reverseString(char *str) {

     int len = strlen(str);

     for (int i = 0, j = len - 1; i < j; i++, j--) {

         char temp = str[i];

         str[i] = str[j];

         str[j] = temp;



16. What is the purpose of the sizeof operator in C?

   - The sizeof operator is used to determine the size (in bytes) of a data type or a variable. Example:


   int size = sizeof(int); // size contains

the size of an int.


17. Explain the concept of a pointer to a function in C.

   - A pointer to a function is a variable that stores the address of a function. It can be used to call functions dynamically. Example:


   int add(int a, int b) {

    return a + b;


   int (*funcPtr)(int, int) = add;

   int result = funcPtr(2, 3); // Calls the add function

through the pointer.


18. What is the ternary operator in C, and how is it used?

   - The ternary operator ( ? : ) is a shorthand way to write an if-else statement in a single line. Example:


   int x = 10;

   int y = (x > 5) ? 20 : 30; // If x is greater

than 5, y is set to 20; otherwise, it's set to 30.


19. Explain the use of typedef with structures in C.

   - typedef can be used to create a custom type for a structure, simplifying its usage. Example:

   typedef struct {

    char name[20];

    int age;

   } Person;

   Person p1;


20. What is the purpose of the union in C?

- A union is a data structure that allows different data types to be stored in the same memory location. Example:


union Value {

     int intValue;

     float floatValue;


union Value v;

v.intValue = 5;

21. What is a file pointer in C, and how is it used for file operations?

- A file pointer is a variable used to control file operations such as reading, writing, and seeking in files. Example (reading from a file):


FILE *file = fopen("example.txt", "r");

char buffer[100];

fgets(buffer, sizeof(buffer), file);


22. Explain the const pointer in C.

   - A const pointer is a pointer that points to a constant value. It can't be used to modify the value it points to. Example:


int value = 10;

const int *ptr = &value; // Cannot modify *ptr.

23. What is the purpose of the volatile keyword in C?

   - The volatile keyword is used to indicate that a variable's value may change unexpectedly, and the compiler should not optimize accesses to it. Example:


volatile int sensorValue;

24. Explain the #define directive in C.

- #define is used to create macros or symbolic constants in C. It's a way to replace text in your code with defined values. Example:


#define PI 3.14159265359

25. How do you dynamically allocate a 2D array in C?

- To dynamically allocate a 2D array, you can use a pointer to a pointer (double pointer). Example:


int rows = 3, cols = 4;

int **matrix = (int **)malloc(rows * sizeof(int *));

for (int i = 0; i < rows; i++) {

     matrix[i] = (int *)malloc(cols * sizeof(int));


26. Explain the difference between call by value and call by reference in C.C.**

- Call by value passes the value of a variable to a function, while call by reference passes the memory address of the variable. Changes to the parameter in a call by reference function affect the original variable. Example:


void callByValue(int x) {

     x = 20; // Changes won't affect the original



void callByReference(int *x) {

     *x = 20; // Changes will affect the original



27. What is a linked list in C, and how is it implemented?d?**

- A linked list is a data structure consisting of nodes, where each node contains data and a reference to the next node. Example (singly linked list):


struct Node {

     int data;

     struct Node *next;



20 more commonly asked interview questions in C language with answers and examples:

31. Explain what NULLPointer is in C.

   - AN ULLp ointer is a pointer that does not point to any memory location. It's often used to indicate the absence of a valid pointer.


   int *ptr = NULL;


32. What is the purpose of thee xit() function in C?

   - Thee xit()f unction is used to terminate a program and return an exit status to the operating system. It is typically used to indicate the success or failure of a program's execution.


   exit(0); // Indicates a successful program termination.


33. Explain the purpose of the const pointer in C.

   - A const pointer is a pointer whose value cannot be changed, meaning it always points to the same memory location.


   int x = 10;

   const int *ptr = &x; // Cannot change the address pointed to by ptr.


34. What are local and global variables in C?

   - Local variables are defined within a function and have local scope, while global variables are defined outside of any function and have global scope.


   int globalVar = 5; // Global variable

   void myFunction() {

    int localVar = 10; // Local variable



35. Explain the purpose of the static keyword for functions and variables in C.

   - The static keyword for functions limits the scope of a function to the file in which it's defined. For variables, it makes them retain their values between function calls.


   static int count = 0; // Retains its value between function calls.

   static void localFunction() {

    // This function is visible only within this file.



36. How is a character array different from a string in C?

   - A character array is a collection of characters, while a string in C is a character array terminated by a null character (


) that signifies the end of the string.


   char charArray[] = {'H', 'e', 'l', 'l', 'o'}; // Character array

   char str[] = "Hello"; // String


37. What is the difference between fprintf and fscanf

in C for file I/O?

   -fprintf iis used to write data to a file, and

fscanf is used to read data from a file.


   FILE *file = fopen("data.txt", "w");

   fprintf(file, "Hello, World!");


   FILE *file = fopen("data.txt", "r");

   char buffer[100];

   fscanf(file, "%s", buffer);



38. Explain the purpose of const pointer to const

variable in C.

   - A const pointer to a const variable is a pointer that cannot be used to modify the value it points to, and it cannot be pointed to a different memory location.


   const int value = 42;

   const int *const ptr = &value;


39. What is the purpose of the sizeof

operator in C?

   - The sizeof operator is used to determine the size (in bytes) of a data type or a variable.


   int size = sizeof(int); // `size` contains the size of an int.


40. Explain the #include directive and its use in C.

   - The #include Directive is used to include header files in a C program, allowing you to use external functions and declarations.


   #include <stdio.h>


41. What is a memory leak in C, and how can it be avoided?

   - A memory leak occurs when memory is allocated but not deallocated. It can be avoided by using


to release dynamically allocated memory when it's no longer needed.


   int *arr = (int *)malloc(10 * sizeof(int));

   // Use `arr`...

   free(arr); // Release the allocated memory.


42. Explain the use of the volatile keyword in C.

   - The volatile keyword is used to indicate that a variable's value may change unexpectedly, and the compiler should not optimize accesses to it.


   volatile int sensorValue;


Post a Comment