Home » C programming language

Find output of C programs Questions with Answers (Set - 1)



Question - 1

int main()
{
	int x[10]={0,1,2,3,4,5,6,7,8,9};
	int *ptr1,*ptr2;
	ptr1=&x[0];
	ptr2=&x[5];
	
	printf("%p\n",(ptr1+ptr2));
	
	return 0;
}

Output

error: invalid operands to binary + (have 'int *' and 'int *')

Explanation

Error in the statement printf("%p\n",(ptr1+ptr2));

Addition of two pointers is not allowed.

Question - 2

int main()
{
	int color=2;
	switch(color)
	{
		case 0: printf("Black");
		case 1: printf("Blue");
		case 2: printf("Green");
		case 3: printf("Aqua");
		default: printf("Other");
	}
	return 0;
}

Output

GreenAquaOther

Explanation

There are no break statements, so all the statements after case 2 will be executed including default statement.

Question - 3

int main()
{
	char str[10]="Hello";
	printf("%d,%d\n",strlen(str),sizeof(str));
	return 0;
}

Output

5,10

Explanation

strlen gives length of the string that is 5; sizeof gives total number of occupied memory for a variable that is 8; since str is a pointer so sizeof(str) may be 2,4 or 8. It depends on the computer architecture.

Question - 4

int main()
{
	char *str="Hello";
	printf("%d,%d\n",strlen(str),sizeof(str));
	return 0;
}

Output

5,8

Explanation

strlen gives length of the string that is 5; sizeof gives total number of occupied memory for a variable that is 10; Since str is a variable with maximum number of characters 10, so sizeof will be 10.

Question - 5

void test(struct number n)
{
	n.x=100;
}
struct number{ int x; };

int main()
{
	struct number num;
	test(num);
	printf("%d\n",num.x);	
	return 0;
}

Output

error: parameter 1 ('n') has incomplete type

Explanation

Structure number should be defined before test function definition.

Question - 6

int main()
{
	if(0);
		printf("Hello");
	printf("Hi");
	return 0;
}

Output

HelloHi

Explanation

There is a semicolon after the if statement, so this statement will be considered as separate statement; and here printf("Hello"); will not be associated with the if statement. Both printf statements will be executed.

Question - 7

int main()
{
	int x,y;
	int *ptr;
	x=100;
	ptr=&x;
	y=*ptr;
	printf("%d\n",y);
	return 0;
}

Output

100

Explanation

Here, y is assigned the value stored at the pointee variable, which is pointer through ptr.

Question - 8

int main() 
{
	int val=1;
	
	do{ 
		val++; 
		++val;
	}while(val++>25); 
	
	printf("%d\n",val); 
	
	return 0;
}

Output

4

Explanation

Here, do while loop executes once and then it will check condition while will be false meanwhile value will be increased 3 times (two times in do while body and once while checking the condition); hence value will be 4.

Question - 9

int main() 
{
	char *str="A%%B";
	printf("A%%B ");
	printf("%s\n",str);
	return 0;
}

Output

A%B A%%B

Explanation

printf("A%%B"); will print "A%B" because "%%" will always print "%" while str contains "A%%B" will print "A%%B" - in this statement "%%" will not replace with single "%"

Question - 10

int main() 
{
	printf("%d,%d,%d\n",sizeof(char*),
	sizeof(int*),sizeof(float*));;
	return 0;
}

Output

8,8,8

Explanation

No matter which kind of pointers are. Pointer variables take same bytes in the memory. The value may be 2, 4 or 8 depending on the computer architecture.

In our case we are using 64 bits computer architecture, so output is 8, 8, 8.






Was this page helpful? YES NO

Are you a blogger? Join our Blogging forum.



Comments and Discussions


We are using Google to publish ads on our website; Google has its own privacy policies. They may save log, cookies on your system. Google may also collect information of your system like IP address, region, city, country. For more details please go through the Google’s privacy policy.