The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

C Pointers Interview Questions

In most of the MNC interview questions such as in ZOHO interview question, IVTL Infoview interview questions, Amazon interview questions, GOOGLE interview questions, Infosys interview questions and even in Voonik interview questions, We come across several Tricky C Questions about which 2:5 of the questions are from pointers in c. Solving that kind of tricky C questions is not an easy task for all C programmers. We need more practices to solve it with ease. So we provide 25+ interesting C questions in pointers to make your MNC interview very easy.

Pointers Interview Questions

26. What will be the output of the C program?

#include<stdio.h>
int main(){
	char *ptr = "Pointer in c", arr[15];
	arr[15] = *ptr;
	printf("%c",arr[0]);
	return 0;
}

A. Garbage value

B. Run time error

C. P

D. Compile time error

x

 

Option: A

Explanation

A pointer variable which is initialized by a string cannot to assigned to a array variable of size n. Thus some garbage value or empty output will be displayed

Answer


27. What will be the output of the C program?

#include<stdio.h>
int main(){
 char arr[15] = "pointer array";
 int *ptr;
 ptr = arr;
 printf("%c",ptr[1]);
 return 0;
}

A. Garbage value

B. o

C. t

D. Compile time error

x

 

Option: C

Explanation

As pointer variable *ptr is declare under integer datatype, ptr[1] address points to the address of arr[4] because the size of integer datatype is 4 where as the size of char datatype is 1. Thus the value in arr[4] i.e) t is displayed.

Answer


28. What will be the output of the C program?

#include<stdio.h>
int main()
{
 int a = 10, b = 6;
 int *ptr;
 ptr = &b;
 printf(" %d ", a  **ptr);
 return 0;
}

A. Pointer type error

B. Run time error

C. Compilation error

D. 60

x

 

Option: D

Explanation

The above program is simply a arithmetic pointer type.
i.e) a * *ptr
i.e) 10 * 6 = 60

Answer


29. What will be the output of the C program?

#include<stdio.h>
int main()
{
 int *iptr;
 int i, arr[2][2] = {10, 11, 12, 13};
 iptr = *arr ;
 printf("%d ", *(iptr+2));
 return 0;
}

A. 12

B. 13

C. Compilation Error

D. Garbage value

x

 

Option: A

Explanation

Here, iptr holds the address of first element in an array arr i.e) address of 10. In printf statement we increment the address by (2 * sizeof(int)). Thus iptr now points to the address of 12. Asterisks (*) in printf statement prints the value inside the address i.e) 12 is outputted.

Answer


30. What will be the output of the C program?

#include<stdio.h>
int main()
{
char *cities[] = {"Delhi", "London", "Sydney"};
int **i = &cities[0];
printf("%c\n", **i);
return 0;
}

A. Delhi

B. Garbage address

C. D

D. Compile Time Error

x

 

Option: C

Explanation

Tha above program is some what tricky. Actually cities[] is an array which has its own address and it hold the address of first element( D ) in it as a value. Then integer pointer to pointer variable **i is assigned with the address of cities[0]. Now coming to the printf statement, *i tells the printf to print the value inside cities[0] which is nothing more than the address of first element in an array, then **i tells the printf statement to print the value of address stored in cities[0] i.e) D is outputted.

Answer


Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report