(Paper) i2 Technology Placement Paper (Aptitude Question) 

Paper: i2 Technology Placement Paper (Aptitude Question) 

Q1.Convert 0.9375 to binary

a) 0.0111 
b) 0.1011 
c) 0.1111 
d) none

Ans. (c)

Q2.( 1a00 * 10b )/ 1010 = 100 

a) a=0, b=0 
b)a=0, b=1 
c) none

Ans. (b)

Q3. In 32 bit memory machine 24 bits for mantissa and 8 bits for exponent. To increase the range of floating point.
a) more than 32 bit is to be there.
b) increase 1 bit for mantissa and decrease 1 bit for exponent
c) increase 1 bit for exponent and decrease one bit for mantissa

Q4.In C, "X ? Y : Z " is equal to
a) if (X==0) Y ;else Z
b) if (X!=0) Y ;else Z
c) if (X==0) Y ; Z

Ans. (b)

Q5. From the following program
foo()
int foo(int a, int b)
{
if (a&b) return 1;
return 0;
}

a) if either a or b are zero returns always 0
b) if both a & b are non zero returns always 1
c) if both a and b are negative returns 0

Q6. The following function gives some error. What changes have to be made
void ( int a,int b)
{
int t; t=a; a=b; b=t;
}
a) define void as int and write return t
b) change everywhere a to *a and b to *b

Q7. Which of the following is incorrect
a) if a and b are defined as int arrays then (a==b) can never be true
b) parameters are passed to functions only by values
c) defining functions in nested loops

Q8. include<stdio.h>
void swap(int*,int*);
main()
{
int arr[8]={36,8,97,0,161,164,3,9}
for (int i=0; i<7; i++)
{
for (int j=i+1; j<8;j++)
if(arr[i]<arr[j]) swap(&arr[i],&arr[j]);
}

void swap(int*x,int*y)
{
int temp; static int cnt=0;
temp= *x;
*x=*y;
*y=temp;
cnt++;
}
What is cnt equal to

a) 7 
b) 15 
c) 1 
d) none of these

Q9. int main()
{
FILE *fp;
fp=fopen("test.dat","w");
fprintf(fp,'hello\n");
fclose(fp);
fp=fopen ("test.dat","w");
fprintf (fp, "world");
fclose(fp);
return 0;
}

If text.dat file is already present after compiling and execution how many bytes does the file occupy ?

a) 0 bytes 
b) 5 bytes 
c) 11 bytes 
d) data is insufficient

Q10. f1(int*x,intflag)
int *y;
*y=*x+3;
switch(flag)
{
case 0: 
*x=*y+1;
break;
case 1:
*x=*y;
break;
case 2:
*x=*y-1; 
break;

return(*y)

main()
{
*x=5;
i=f1(x,0); j=f1(x,1);
printf("%d %d %d ",i,j,*x);
}

What is the output?

a) 8 8 8 
b) 5 8 8 
c) 8 5 8 
d) none of these