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

What is the difference between pointer and array name in C?

Q.522Medium

What will be the output?
int a[] = {10, 20, 30};
int *p = a;
printf("%d", *(p+2));

Q.523Medium

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

Q.524Medium

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

Q.525Medium

Which statement correctly declares a pointer to a pointer?

Q.526Medium

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

Q.527Medium

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

Q.528Medium

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

Q.529Hard

What is the relationship between arrays and pointers in C?

Q.530Hard

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

Q.531Hard

What does realloc() do?

Q.532Medium

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

Which of the following is valid pointer arithmetic in C?

Q.534Hard

What is the primary use of const pointer (int * const p)?

Q.535Easy

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

Q.536Medium

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

Q.537Easy

What will be the size of the pointer variable on a 64-bit system?
int *ptr;

Q.538Easy

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

Q.539Medium

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

Q.540Medium

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