### Palindrome Bit

To Find the bit k’th position from right :

“   x & (  1 << (  k - 1  )  )

`// This function returns true if k'th bit in x is set (or 1).`
`// For example if x (0010) is 2 and k is 2, then it returns true`
`bool` `isKthBitSet(unsigned ``int` `x, unsigned ``int` `k)`
`{`
`    ``return` `(x & (1 << (k-1)))? ``true``: ``false``;`
`}`
`// This function returns true if binary representation of x is`
`// palindrome. For example (1000...001) is paldindrome`
`bool` `isPalindrome(unsigned ``int` `x)`
`{`
`    ``int` `l = 1; ``// Initialize left position`
`    ``int` `r = ``sizeof``(unsigned ``int``)*8; ``// initialize right position`
`    ``// One by one compare bits`
`    ``while` `(l < r)`
`    ``{`
`        ``if` `(isKthBitSet(x, l) != isKthBitSet(x, r))`
`            ``return` `false``;`
`        ``l++;     r--;`
`    ``}`
`    ``return` `true``;`
`}`

The number from right to left and generate another number using these bits from left to right.

``````int isBitPalindrome(int x) {
int reversed = 0, aux = x;
while (aux > 0) {
/*
Taking LSB of aux and putting it as LSB of reversed
variable. Before doing that shifting reversed to
right, to build it from left to right.
*/
reversed = (reversed  << 1) | (aux & 1);

/*
Loop is depend of number of bits in aux. Taking next bit into
LSB position by shifting aux toward right once.
*/
aux = aux >> 1;
}
return (reversed  == x) ? 1 : 0;
}``````

### C Questions

C Questions
C Questions

Note : All the programs are tested under Turbo C/C++ compilers.
It is assumed that,
Programs run under DOS environment, The underlying machine is an x86 system, Program is compiled using Turbo C/C++ compiler.
The program output may depend on the information based on this assumptions (for example sizeof(int) == 2 may be assumed).
Predict the output or error(s) for the following:

void main()
{
int const * p=5; printf("%d",++(*p));
}
Compiler error: Cannot modify a constant value.
Explanation:
p is a pointer to a "constant integer". But we tried to change the value of the "constant integer".
main()
{
char s[ ]="man"; int i;
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}
aaaa nnnn
Explanation

### Zoho Interview | Set 1 (Advanced Programming Round)

Third Round: (Advanced Programming Round) Here they asked us to create a “Railway reservation system” and gave us 4 modules. The modules were:
1. Booking
2. Availability checking
3. Cancellation
4. Prepare chart
We were asked to create the modules for representing each data first and to continue with the implementation phase.

My Solution :