### Archive

Posts Tagged ‘microsoft’

## Interview C puzzles

Here I want to share some of the simple & tricky C puzzles and interview questions I faced.

1) Write single line swapping function

Please check here for C code

2) Write single line macro to swap two numbers

```
#include< stdio.h >

#define swap(a,b) b=(a+b)-(a=b)

int main(void)
{
int a=12;
int b=-34;
printf("Before swapping a=%d, b=%d\n",a,b);
swap(a,b);
printf("After swapping a=%d, b=%d\n",a,b);
return 0;
}
```

3) Write a macro to check whether a given number is a power of two or not

```
#include < stdio.h >

#define isPowOf2(x) ( ( x & ( x - 1 ) ) == 0) ? 1:0

int main(void)
{
if(isPowOf2(4))
printf("It is power of two\n");
else
printf("It is not power of two\n");
if(isPowOf2(41))
printf("It is power of two\n");
else
printf("It is not power of two\n");
if(isPowOf2(64))
printf("It is power of two\n");
else
printf("It is not power of two\n");
if(isPowOf2(400))
printf("It is power of two\n");
else
printf("It is not power of two\n");

return 0;

}
```

4) Write code to swap two numbers with out using temporary variable and  using shifting operators

5) Write a function to round off a given float/double to the nearest integer

```#include < stdio.h >

int Myround(double n)
{
return (int)(n+0.5);
}
int main(void)
{
printf("%d\n",Myround(25.7));
printf("%d\n",Myround(25.2));
printf("%d\n",Myround(25.6));
printf("%d\n",Myround(25.9));
return 0;
}
```

5) Write a one line macro to round off a given float/double to the nearest integer

```Ans: same as above
#define myround(a) (int)(a+0.5)```

6) Write a function to print binary representation of a given integer

```#include < stdio.h >

int binaryRep(int n)
{
int i=0;
for(i = sizeof(int)*8 - 1;i >= 0; i--)
{
if( ( n & (1 << i ) ) > 0 )
printf("%d", 1);
else
printf("%d", 0);
if(i%4==0)
printf(" ");
}
}

int main(void)
{
binaryRep(10);
printf("\n");
binaryRep(100);
}
```

7) Write a macro to check whether a specified bit in a number is on or off

```#include < stdio.h >

#define onROff(n,i) ( (n & (1 << i-1)) > 0 ) ? 1 : 0

int main(void)
{
if(onROff(15,1))
printf("first bit is on\n");
else
printf("first bit is off\n");

if(onROff(15,2))
printf("second bit is on\n");
else
printf("second bit is off\n");

if(onROff(15,3))
printf("third bit is on\n");
else
printf("third bit is off\n");

return 0;
}
```

8 ) Write a macro to switch On a bit in a given number

```#include < stdio.h >

#define switchOn(n ,i) n|=(1 << (i-1))

int main(void)
{
int n=10;
switchOn(n,1);
printf("After switching on first bit of n=%d\n",n);
switchOn(n,3);
printf("After switching on third bit of n=%d\n",n);
}
```

9) Write a macro to switch Off a bit in a given number

```
#include < stdio.h >

#define switchOfff(n,i) n = n & (~ (1 << (i-1) ) )

int main(void)
{
int n=15;
switchOfff(n,1);
printf("After switching off first bit n=%d\n", n);
switchOfff(n,2);
printf("After switching off second bit n=%d\n", n);
switchOfff(n,3);
printf("After switching off third bit n=%d\n", n);
switchOfff(n,4);
printf("After switching off fourth bit n=%d\n", n);
return 0;
}
```

Some of the following questions can be applications of the above specified bit wise operators and other programs specified in this blog. Some of them cab be easily found in the web. I wish all the best for your technical C interview.

10) Write a macro to reverse a bit at a given position

11) Write a function to display binary representation of a given floating/double number

12) Write a function to find the largest sum of  a sub sequence of an array.

ex: { 1 , – 4, 5, 7}

in the above example the highest sum sub sequence is {1,5,7}. If all the elements in the array are +ve then  the whole array itself is the largest sum subsequence. But the given array contains some -ves also.

13) Write a program to mirror a binary tree

ex: Here we have to mirror the whole left sub tree with right sub tree and right sub tree with the left one

14) Write DFS with out using recursion

15) How best (time complexity in Big – Oh )you can write an algorithm which finds the first repeated value in a sorted  array.

16) Write an algorithm which sorts an array with time complexity less than O(nlogn)

Hint: Take some assumptions and solve

17) Write an algorithm for finding a given string in a file and replacing it with a replacement string

ex:    findAndReplace(FILE *fp, char * findString, char * replaceString)

18) How to find size of a structure / data type with out using sizeof operator

Hint: Use pointers and arithmetic operations principles

19) How do you develop a object collector in C (like one in Java)

20) Find the first repeating character in a string. Constraint use only O(n) time complexity and O(1) space complexity

21) Write BFS using recursion

22) Find the middle of a linked list

23) How do you find last but one and third from last in a linked list

24) How do you find a loop in a linked list

Hint: For the above three linked list questions you can use the concept of fast * pointer and slow * pointer

25) Write Ceil function with out using any comparison operators

26) Reverse a linked list using recursion and with out using recursion

27) Longest continuous sequence

28) All the subsets in a given array (Out put should have 2 ^ n entries)

## Real world understanding of Cloud Computing

The term Cloud Computing is now famous and trending topic all over the world. It is becoming so popular because so much business can be done with the Cloud, already many companies started making money out of it. Here I want to give a brief excerpt from the talk given by Dr. Dinkar sitaram from HP Systems Tech and Software Division as a part of ICIIS @NIT K Surathkal.

The conventional definition of cloud computing is “Cloud computing is an internet based model which allows the computer resources to be provided on-demand basis, like other services (for example electricity)”. Most of the times we are getting the benefits of cloud computing with out being aware of, One such an example is “Google Docs”.

In practical, Cloud Computing use can be described with the following example, Let us assume that there is a cheese manufacturing corporation and there is a bar code scanner for every rack from where the covered cheese is sold and is scanned at the time of selling, same is maintained in the database. In the shop where the cheese is sold they maintain the information in the database who is buying the cheese. If the cheese corporation finds cheese in a particular rack is not good then they can send a message directly to the customer who has bought that cheese, if both the databases, cheese corporation and shop databases, are in the cloud. Still there can be innumerable advantages we can get using the booming cloud concept.

In fact this cloud can be distributed and maintained in any data center all over the world, most of the times the cloud vendors establish the data centers where the resources are cheap like electricity, land cost etc., Users will be given choice of using the datacenters from different places based on the choice but cost may vary.

Some of the cloud vendors include Amazon, Microsoft, HP etc.,

The cloud is not very useful for all the applications. We can benefit for certain applications which require maximum resources in terms of hardware and software, typical example for this is a batch of programs to be run on a high powerful hardware that requires one or two hours of execution time. Applications including data extraction from billions and trillions of bytes of data in the process of Mining and some complex analysis of genes are very beneficial for using vendor related cloud.

There are some issues most of the cloud vendors facing

1)  Privacy

2)  Legal rights

3)  Everything as Service

The most important of all is the privacy, “no one knows the data is safe in the cloud(Customers perspective)”, despite the fact that the vendors giving full assurance. Many feel insecure using the cloud because of Privacy.

Categories: Technology