# (Paper) AMERICAN MEGATRENDS Inc.(AMI) BIOS- 24th FEB 2004-KOLKATA ( REASONING, C/C++)

PAPER: AMERICAN MEGATRENDS Inc.(AMI) BIOS- 24th FEB 2004-KOLKATA ( REASONING, C/C++)

Logical Reasoning:

1. 3 types of chickens: Baby chickens cost 5 cents, hen chickens cost 3 dollares, rooster chickens cost 5 dollars. Buy 100 chickens for 100 dollars. How many will you have from each?

2. Calculate : (x-a)(x-b)(x-c)....(x-z)?

3. What is the day after 4 days after 2 days before the day before tomorrow?

4. 2 trains each of length 1 mile enter into 2 tunnels of length 1 mile and 2 miles apart. speed if trains are 5 and 10 miles/hr. Give the position as viewed by a helicopter when the trains meet?

5. A says I'm not guilty
B says C is not guilty
C says A is not guilty
If all above are true.(i) Can we say anyone is guilty/innocent?
(ii)Who is most likely to be guilty?

6. 18 story building - Accountant's office is 5 times the lawyer's office. Architects office 2 floors up then he is halfway between Dentist's & Accountant's office. Architects office halfway down means between Dentist's and Lawyer's office. Give the order

7. How many tennis matches are to be arranged to conduct a tournament with 213 players?

8. In a family 7 children don't eat spinach, 6 don't eat carrot, 5 don't eat beans, 4 don't eat spinach & carrots, 3 don't eat carrot & beans, 2 don't eat beans & spinach. 1 doesn't eat all 3. Find the no. of children.

C/C++

-----
A. void main()
{
char a[6] = "INDIA";
while(*a)
{
printf("%c",*a);
a++;
}
}

1. india    2. I N D I A   3. no output    4. error    5.Null

B. protected derivation

C. int m = 10;
main()
{
int m = 20;
{int m = 30;}
printf("%d %d",m,::m);

1. 10 10      2. 10 20      3. 20 10     4. 20 30    5. 30 20     6. None

D. inline function is used to
1. reduce program size
2. reduce memory size

E. void func(float newtotal)
{ newtotal = newtotal-2;
}
main()
{
float tot = 100.34;
float sum = tot;
sum++;
func(sum);
cout<
}

1. 100.34       2. 99.34       3. 101.34      4. 102.34      5. None

F. unsigned char snapnib(unsigned char misc)
{
int aloha, hamalo;
hamalo = aloha = misc;
misc = (hamalo << 4)+((aloha & 0x0f)>>4);
return(misc);
}
main()
{
int getinp;
unsig char getmisc;
scanf("%x",&getinp);
getmisc = snapnib(getinp & 0xff);
printf("%x",getmisc);
}

1. Change line 4 to misc = (hamalo >> 4)+((aloha & oxof)<<4);
2. remove the 5
3. Change line 4 to misc = (hamalo >> 4)+((aloha & oxfo)<<4);
4. Change line 11 to getmisc = snapnib(getinp);
5. Nothing

G. main()
{
int getinp = 6;
while(--getinp)
{
printf("%d",getinp);
if(getinp++ != 3);
else
break;
if(getinp-- != 5)
continue;
else
getinp = getinp - 2;
}

1. 5421      2. 5420      3. 541      4. 6543      5. 5410

H. unsigned char inn[2] = "5";
int i,j = 0;
sscanf(inn,"%d",&i);
while(i)
{
i = i - 1;
j++;
printf("%d",++j);
}

1. 14    2. 12      3. 24      4. 35     5. none

I.   char *fn(int num)
{
char a[] = "Amen";
return(&a[num]);
}
main()
{
int i;
char *prechar;
scanf("%d",&i);
(input is 12)
prechar = fn(i);
printf("%c",*prechar);
}

1. a bus
2. give string "Amen" as global
3. use return(a[num]) instead of return(&a[num])
4. give main before fn

J. unsigned char u = 32767;
unsigned char y = 32768;
u = u + y;
printf("%d",(signed char)u);

1. 65535     2. -65535      3. -1      4. 1      5. none

K.    *name = "ANYTHING";
*foo = "ALRIGHT";
*name1 = "WRONG";
strcat(name,name1);
printf("%s %s \n",name,foo);
return(0);

1. ANYTHING WRONG? WRONG?
2. ANYTHING
3. ANYTHING WRONG? ALRIGHT
4. ERROR
5. NONE

Assembly
--------
A. swap 2 variables without temp variables
(use XOR, OR, AND, NOT)