Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


#define min((a),(b)) ((a)<(b))?(a):(b)
main()
{
int i=0,a[20],*ptr;
ptr=a;
while(min(ptr++,&a[9])<&a[8]) i=i+1;
printf("i=%d\n",i);}

Answers were Sorted based on User's Feedback



#define min((a),(b)) ((a)<(b))?(a):(b) main() { int i=0,a[20],*ptr; ptr=a; while(mi..

Answer / guest

5

Is This Answer Correct ?    10 Yes 4 No

#define min((a),(b)) ((a)<(b))?(a):(b) main() { int i=0,a[20],*ptr; ptr=a; while(mi..

Answer / vignesh1988i

here the value will be 3.

EXPLANATION:
here the #define macros will blindly substitute the values
in the while loop before compailation.. then when it compails...
1)we will have the expanded macros like this:
while((ptr++<&a[9]?ptr++:&a[9])<&a[8])
i++;

hrer when the loop runs for the first time ptr will
increment by 2 since it is a integer type, which allocates 2
bytes.
first see the layout:
10 12 14 16 18 20 22 24 26 28 30 .....
| | | | | | | | | | | |
0 1 2 3 4 5 6 7 8 9 10 ....
0,1,2,3 represents index values...
10,12,14 represents addresses....
so the ptr variable will have the base address of array a.
when comin to while loop, it gets incremented to the next
location , address is 12,and go and check wit the address of
&a[9] in our case it is 28. so naturally it wil become true
so it executes the statement after ? symbol.. again in that
ptr++ is given so again ptr will be incremented to 14.. so
14 will be compared with &a[8] ,likely to be 26. it is TRUE
so the whole loop is true ,so i gets incremented so i=1.
next time ptr adds to 16 and then 16<28 and again ptr gets
incremented to 18 and 18<26 and whole while becomes true so
i will become 2.
similarly it will again increments ptr to 20 an dthis
becomes true an ptr again gets incremented to 22 and it
checks whether 22<26! yes, it will increment i to 3.

IMPORTANT:
after that it increments ptr to 24 and executes the
operation after ? operator and again ptr will have 26, this
26 is checked with 26 (&a[8]) the whole while loop becomes
false...
so it wont go to i++, it will printf the printf statement so
i=3.

Is This Answer Correct ?    3 Yes 2 No

#define min((a),(b)) ((a)<(b))?(a):(b) main() { int i=0,a[20],*ptr; ptr=a; while(mi..

Answer / bj

4

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More C Interview Questions

Is there anything like an ifdef for typedefs?

0 Answers  


Write a program that accepts a string where multiple spaces are given in between the words. Print the string ignoring the multiple spaces. Example: Input: “ We Are Student “ Output: "We Are Student"

1 Answers  


What are reserved words?

0 Answers  


consider the following structure: struct num nam{ int no; char name[25]; }; struct num nam n1[]={{12,"Fred"},{15,"Martin"},{8,"Peter"},{11,Nicholas"}}; ..... ..... printf("%d%d",n1[2],no,(*(n1 + 2),no) + 1); What does the above statement print? a.8,9 b.9,9 c.8,8 d.8,unpredictable value

4 Answers   TCS,


Can we include one C program into another C program if yes how?

7 Answers   Infosys,


shorting algorithmS

0 Answers   Wipro,


Why is void main used?

0 Answers  


i want to have a program to read a string and print the frequency of each character and it should work in turbo c

3 Answers   Persistent, Wipro,


what is void pointer?

1 Answers   Wipro,


Q-1: Create a structure to specify data on students given below: Roll number, Name, Department, Course, Year of joining Assume that there are not more than 450 students in the college.

8 Answers  


#include<stdio.h> #include<conio.h> int main() { int a[4][4]={{5,7,5,9}, {4,6,3,1}, {2,9,0,6}}; int *p; int (*q)[4]; p=(int*)a; q=a; printf("\n%u%u",p,q); p++; q++; printf("\n%u%u",p,q); getch(); return 0; } what is the meaning of this program?

2 Answers  


difference between the array and linked list general difference related to memory

2 Answers  


Categories