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.





Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.