Which of the following will correctly allocate memory for an array of 10 integers?
Answer: B
malloc() allocates memory in bytes. To allocate for 10 integers, we need 10 * sizeof(int) bytes. Option A allocates only 10 bytes, insufficient for 10 integers.
Q.182Hard
What will be the output of: int x = 5; int y = x++ + ++x; ?
Answer: D
This expression involves modifying the same variable (x) multiple times without an intervening sequence point. This is undefined behavior in C, and the result cannot be predicted reliably.
Q.183Easy
Which function is used to read a single character from standard input?
Answer: B
getchar() reads a single character from standard input (stdin). While fgetc() can also read a character, getchar() is the standard dedicated function for this purpose.
Q.184Easy
In the expression: int arr[3][3]; arr[1][2] = 5; What is being accessed?
Answer: A
In C, array indices are 0-based. arr[1][2] refers to the element in the second row (index 1) and third column (index 2) of the 2D array.
Q.185Easy
What is the output of the following C code?
int main() {
int a = 10;
printf("%d", a += 5);
return 0;
}
Answer: B
The += operator adds 5 to a (a = a + 5 = 10 + 5 = 15), and printf prints the updated value 15.
Advertisement
Q.186Medium
What is the output of the following code?
int x = 5;
int y = ++x;
printf("%d %d", x, y);
Answer: B
++x is pre-increment, which increments x before assignment. So x becomes 6, then y is assigned 6. Both x and y are 6.
Q.187Easy
What is the purpose of the strlen() function in C?
Answer: B
The strlen() function returns the number of characters in a string, excluding the null terminator ('\0').
Q.188Medium
What will be the output of the following code?
int *ptr;
int arr[3] = {10, 20, 30};
ptr = arr;
printf("%d", *(ptr + 1));
Answer: B
ptr points to arr[0] (value 10). ptr + 1 points to arr[1] (value 20). *(ptr + 1) dereferences this pointer, giving 20.
Q.189Hard
What is the output of this recursive function?
int func(int n) {
if(n <= 1) return 1;
return n * func(n-1);
}
printf("%d", func(4));
What is the output of this code involving bitwise operations?
int x = 5; // binary: 0101
int y = 3; // binary: 0011
printf("%d", x ^ y); // XOR operation
Answer: A
XOR operation: 5 ^ 3. Binary: 0101 ^ 0011 = 0110 = 6. XOR returns 1 when bits are different, 0 when same.
Q.191Easy
What will be the value of 'x' after execution of the following code? int x = 10; x += 5; x *= 2;
Answer: B
Step 1: x = 10 initially. Step 2: x += 5 means x = x + 5 = 10 + 5 = 15. Step 3: x *= 2 means x = x * 2 = 15 * 2 = 30. Therefore, x = 30.
Q.192Medium
What is the primary difference between malloc() and calloc() functions in C?
Answer: B
Both malloc() and calloc() allocate dynamic memory. The key difference is that malloc() allocates uninitialized memory (contains garbage values), while calloc() allocates memory and initializes all bytes to zero. calloc() also takes two arguments (number of elements and size of each element), while malloc() takes one (total bytes needed).
Q.193Medium
If arr[5] = {1, 2, 3, 4, 5}, what will be the value of *(arr + 3)?
Answer: B
In array notation, arr is a pointer to the first element. *(arr + 3) dereferences the pointer that points to the 4th element (index 3). Since array indexing is 0-based: arr[0]=1, arr[1]=2, arr[2]=3, arr[3]=4. Therefore, *(arr + 3) = 4.
Q.194Easy
Which header file must be included to use the printf() function in C?
Answer: B
The printf() function is defined in the Standard Input/Output library. Therefore, '#include <stdio.h>' must be included at the beginning of the program to use printf() and other I/O functions like scanf(), getchar(), putchar(), etc.
Q.195Medium
Consider a structure: struct Point { int x; int y; }; If p is a pointer to this structure and we want to access member x, which notation is INCORRECT?
Answer: C
When p is a pointer to a structure, we cannot use p.x (dot notation) directly. The correct ways are: p->x (arrow operator) or (*p).x (dereference then dot operator). The notation p.x would be used only if p were a structure variable, not a pointer. Therefore, p.x is incorrect when p is a pointer.