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.261Medium

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

Q.262Medium

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

Q.263Medium

Which statement correctly declares a pointer to a pointer?

Q.264Medium

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

Q.265Medium

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

Q.266Medium

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

Q.267Medium

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.268Medium

Which of the following is valid pointer arithmetic in C?

Q.269Medium

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

Q.270Medium

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

Q.271Medium

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

Q.272Medium

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

Q.273Medium

Which pointer operation is NOT valid in C?

Q.274Medium

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

Q.275Medium

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

Q.276Medium

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

Q.277Medium

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

Q.278Medium

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

Q.279Medium

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

Q.280Medium

What is the difference between NULL and a wild pointer?