iGET

C Programming - MCQ Practice Questions

C questions in placement tests and university exams are rarely about syntax alone. Most of what you will find here is output prediction, pointer arithmetic, arrays and strings, structures and unions, storage classes, recursion, and file handling. The explanations walk through memory behaviour step by step, which is usually where the confusion sits rather than in the code itself.

972 questions | 100% Free

Q.21Medium

What does calloc() do that malloc() doesn't?

Q.22Medium

What is the output of this code?
int *p, *q;
int x = 5;
p = &x;
q = p;
printf("%d %d", *p, *q);

Q.23Medium

Which statement correctly declares a pointer to a pointer?

Q.24Medium

What will be printed?
int x = 100, y = 200;
int *p = &x;
int *q = &y;
p = q;
printf("%d", *p);

Q.25Medium

What is the primary disadvantage of using free() without proper checks?

Q.26Medium

What will be the output?
char *str = "Hello";
printf("%c", *(str+1));

Q.27Medium

What is the output?
void func(int *arr) { arr[0] = 100; }
int main() {
int a[5] = {1,2,3,4,5};
func(a);
printf("%d", a[0]);
}

Q.28Medium

Which of the following is valid pointer arithmetic in C?

Q.29Medium

Which of the following correctly declares a pointer to a function that takes two integers and returns an integer?

Q.30Medium

What happens when you try to modify a string literal through a pointer?
char *str = "Hello";
str[0] = 'J';

Q.31Medium

Consider the code:
int *p = NULL;
int *q = malloc(sizeof(int));
free(q);
free(q);
What is the issue here?

Q.32Medium

What is the output?
int a = 10;
int *p = &a;
int *q = p;
q = NULL;
printf("%d", *p);

Q.33Medium

Which pointer operation is NOT valid in C?

Q.34Medium

What is the output?
int arr[2][3] = {{1,2,3}, {4,5,6}};
int *p = (int*)arr;
printf("%d", *(p+4));

Q.35Medium

Which of the following is correct about pointer assignment?
int *p, *q;
p = q; // What happens?

Q.36Medium

What is the output?
int x = 5;
int *const p = &x;
x = 10;
printf("%d", *p);

Q.37Medium

What is the output?
int arr[] = {10, 20, 30};
int *p = arr;
printf("%d", sizeof(p));

Q.38Medium

Consider the code: int x = 10; int *p = &x; int q = &p; What is the value of q?

Q.39Medium

Which operation is NOT allowed on void pointers in C without explicit casting?

Q.40Medium

What is the difference between NULL and a wild pointer?