Tuesday, 3 September 2013

TCS C Programming Language Placement Paper

0 comments

1. The C language terminator is
(a) semicolon
(b) colon
(c) period
(d) exclamation mark

2. What is false about the following -- A compound statement is
(a) A set of simple statements
(b) Demarcated on either side by curlybrackets
(c) Can be used in place of simple statement
(d) A C function is not a compound statement.

3. What is true about the following C Functions
(a) Need not return any value
(b) Should always return an integer
(c) Should always return a float
(d) Should always return more than one value

4. Main must be written as
(a) The first function in the program
(b) Second function in the program
(c) Last function in the program
(d) Any where in the program

5. Which of the following about automatic variables within a function is correct ?
(a) Its type must be declared before using the variable
(b) They are local
(c) They are not initialized to zero
(d) They are global

6. Write one statement equivalent to the following two statements: x=sqr(a);return(x);
Choose from one of the alternatives

(a) return(sqr(a));
(b) printf("sqr(a)");
(c) return(a*a*a);
(d) printf("%d",sqr(a));

7. Which of the following about the C comments is incorrect ?
(a) Comments can go over multiple lines
(b) Comments can start any where in the line
(c) A line can contain comments with out any language statements
(d) Comments can occur within comments

8. What is the value of y in the following code?
x=7;
y=0;
if(x=6) y=7;
else y=1;
(a) 7
(b) 0
(c) 1
(d) 6

9. Read the function conv() given below
conv(int t)
{
int u;
u=5/9 * (t-32);
return(u);
}
What is returned
(a) 15
(b) 0
(c) 16.1
(d) 29

10. Which of the following represents true statement either x is in the range of 10 and 50 or y
is zero

(a) x >= 10 && x <= 50 || y = = 0
(b) x<50
(c) y!=10 && x>=50
(d) None of these

11. Which of the following is not an infinite loop ?
(a) while(1)\{ ....}
(b) for(;;){...}
(c) x=0;
(d) # define TRUE 0
do{ /*x unaltered within the loop*/ ...
.....}while(x = = 0); while(TRUE){ ....}

12. What does the following function print?
func(int i)
{
if(i%2)return 0;
else return 1;
}
main()
{
int =3;
i=func(i);
i=func(i);
printf("%d",i);
}
(a) 3
(b) 1
(c) 0
(d) 2

13. How does the C compiler interpret the following two statements
p=p+x;
q=q+y;
(a) p= p+x;
(b) p=p+xq=q+y;
(c) p= p+xq;
(d) p=p+x/q=q+y;

14. Consider the following C code
main()
{
int i=3,x;
while(i>0)
{
x=func(i);
i--;
}
int func(int n)
{
static sum=0;
sum=sum+n;
return(sum);
}
}
The final value of x is
(a) 6
(b) 8
(c) 1
(d) 3

15. Int *a[5] refers to
(a) array of pointers
(b) pointer to an array
(c) pointer to apointer
(d) none of these

16. The format specified for hexa decimal is
(a) %d
(b) %o
(c) %x
(d) %u

17. Find the output of the following program
main()
{
int x=5, *p;
p=&x
printf("%d",++*p);
}
(a) 5
(b) 6
(c) 0
(d) none of these

18. Read the following code
# define MAX 100
# define MIN 100
if(x>MAX)
x=1;
else if(x<MIN)
x=-1;
x=50;
if the initial value of x=200,what is the value after executing this code?
(a) 200
(b) 1
(c) -1
(d) 50

19. A memory of 20 bytes is allocated to a string declared as char *s then the following two
statements are executed:
s="Entrance"
l=strlen(s);
what is the value of l ?
(a)20
(b)8
(c)9
(d)21

20. Given the piece of code
int a[50];
int *pa;
pa=a;
To access the 6th element of the array which of the following is incorrect?
(a) *(a+5)
(b) a[5]
(c) pa[5]
(d) *(*pa + 5}

21. 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

22. Identify the in correct expression
(a)a=b=3=4;
(b)a=b=c=d=0;
(c)float a=int b= 3.5;
(d)int a; floatb;a=b=3.5;

23. Regarding the scope of the varibles;identify the incorrect statement:
(a) automatic variables are automatically initialized to 0
(b) static variables are areautomatically initialized to 0
(c) the address of a register variable is not accessible
(d) static variables cannot be initialized with any expression

24. cond 1?cond 2?cond 3?:exp 1:exp 2:exp 3:exp 4; is equivalent to which of the following?
(a) if cond 1
exp 1;
else if cond 2
exp 2;
else if cond 3
exp 3;
else exp 4;
(b) if cond 1
if cond 2
if cond 3
exp 1;
else exp 2;
else exp 3;
else exp 4;
(c) if cond 1 && cond 2 && cond 3
exp 1 |exp 2|exp 3|exp 4;
(d) if cond 3
exp 1;
else if cond 2 exp 2;
else if cond 3 exp 3;
else exp 4;

25. The operator for exponentiation is
(a) **
(b) ^
(c) %
(d) not available

26. Which of the following is invalid
(a) a+=b
(b) a*=b
(c) a>>=b
(d) a**=b

27. What is y value of the code if input x=10
y=5;
if (x==10)
else if(x==9)
else y=8;
(a)9
(b)8
(c)6
(d)7

28. What does the following code do?
fn(int n, int p, int r)
{
static int a=p;
switch(n)
{
case 4:a+=a*r;
case 3:a+=a*r;
case 2:a+=a*r;
case 1:a+=a*r;
}
}
(a) computes simple interest for one year
(b) computes amount on compoundinterest for 1 to 4 years
(c) computes simple interest for four year
(d) computes compound interest for 1year

29.
a=0;
while(a<5)
printf("%d\n",a++);
How many times does the loop occurs?
(a) infinite
(b)5
(c)4
(d)6

30. How many times does the loop iterated ?
for(i=0;i=10;i+=2)
printf("Hi\n");
(a)10
(b) 2
(c) 5
(d) None of these

31. What is incorrect among the following
A recursive function
(a) calls itself
(b) is equivalent to a loop
(c) has a termination condition
(d) does not have a return value at all

32. Which of the following go out of the loop if expn 2 becoming false
(a) while(expn 1)\{...if(expn 2)continue;}
(b) while(!expn 1)\{if(expn 2)continue;...}
(c) do{..if(expn 1)continue;..}while(expn 2);
(d) while(!expn 2)\{if(expn 1)continue;..\}

33. Consider the following program
main()
{
unsigned int i=10;
while(i>=0)
{
printf("%u",i)
i--;
}
}
How many times the loop will get executed
(a)10
(b)9
(c)11
(d) infinite

34.Pick out the odd one out
(a) malloc()
(b) calloc()
(c) free()
(d) realloc()

35.Consider the following program
main()
{
int a[5]={1,3,6,7,0};
int *b;
b=&a[2];
}
The value of b[-1] is
(a) 1
(b) 3
(c) -6
(d) none

36. # define prod(a,b)=a*b
main()
{
int x=2;
int y=3;
printf("%d",prod(x+2,y-10));
}
the output of the program is
(a) 8
(b) 6
(c) 7
(d) None

37.Consider the following program segment
int n,sum=1;
switch(n)
{
case 2:sum=sum+2;
case 3:sum*=2;
break;
default:sum=0;
}
If n=2, what is the value of sum
(a) 0
(b) 6
(c) 3
(d) None of these

38. Identify the incorrect one
1.if(c=1)
2.if(c!=3)
3.if(a<b)then
4.if(c==1)
(a) 1 only
(b) 1&3
(c) 3 only
(d) All of the above

HCL Placement Question Paper for C Language

0 comments

Instructions:
1. Please ignore any case-sensitive errors and un-included libraries.

1.
main()
{
int i;
clrscr();
printf("%d", &i)+1;
scanf("%d", i)-1;
}

a. Runtime error.
b. Runtime error. Access violation.
c. Compile error. Illegal syntax
d. None of the above
Ans: d,printf( ) prints address/garbage of i,
scanf() dont hav & sign, so scans address for i
+1, -1 dont hav any effect on code

2.
main(int argc, char *argv[])
{
 (main && argc) ? main(argc-1, NULL) : return 0;
}

a. Runtime error.
b. Compile error. Illegal syntax
c. Gets into Infinite loop
d. None of the above
Ans: b) illegal syntax for using return
3.
main()
{
 int i;
 float *pf;
 pf = (float *)&i;
*pf = 100.00;
 printf("
%d", i);
}

a. Runtime error.
b. 100
c. Some Integer not 100
d. None of the above
Ans: d) 0

Q4.
main()
{
 int i = 0xff ;
 printf("
%d", i<<2);
}
a. 4
b. 512
c. 1020
d. 1024
Ans: c) 1020

5.
#define SQR(x) x * x

main()
{
 printf("%d", 225/SQR(15));
}

a. 1
b. 225
c. 15
d. none of the above
Ans: b) 225
6.
union u
{
 struct st
{
 int i : 4;
 int j : 4;
 int k : 4;
 int l;
}st;
int i;
}u;

main()
{
 u.i = 100;
 printf("%d, %d, %d",u.i, u.st.i, u.st.l);
}

a. 4, 4, 0
b. 0, 0, 0
c. 100, 4, 0
d. 40, 4, 0
Ans: c) 100, 4, 0

7.
union u
{
 union u
 {
 int i;
 int j;
 }a[10];
 int b[10];
}u;

main()
{
 printf("
%d", sizeof(u));
 printf(" %d", sizeof(u.a));
// printf("%d", sizeof(u.a[4].i));
}

a. 4, 4, 4
b. 40, 4, 4
c. 1, 100, 1
d. 40 400 4
Ans: 20, 200, error for 3rd printf
8.
main()
{
 int (*functable[2])(char *format, ...) ={printf, scanf};
 int i = 100;

(*functable[0])("%d", i);
 (*functable[1])("%d", i);
 (*functable[1])("%d", i);
 (*functable[0])("%d", &i);

}

a. 100, Runtime error.
b. 100, Random number, Random number, Random number.
c. Compile error
d. 100, Random number

9.
main()
{
 int i, j, *p;
 i = 25;
 j = 100;
 p = &i; // Address of i is assigned to pointer p
 printf("%f", i/(*p) ); // i is divided by pointer p
}

a. Runtime error.
b. 1.00000
c. Compile error
d. 0.00000

Ans: c) Error becoz i/(*p) is 25/25 i.e 1 which is int & printed as a float,
So abnormal program termination,
runs if (float) i/(*p) -----> Type Casting

10.
main()
{
 int i, j;
 scanf("%d %d"+scanf("%d %d", &i, &j));
 printf("%d %d", i, j);
}

a. Runtime error.
b. 0, 0
c. Compile error
d. the first two values entered by the user

Ans: d) two values entered, 3rd will be null pointer assignment

11.

main()
{
 char *p = "hello world";
 p[0] = 'H';
 printf("%s", p);
}

a. Runtime error.
b. "Hello world
c. Compile error
d. "hello world

Ans: b) Hello world

12.
main()
{
 char * strA;
 char * strB = I am OK;
 memcpy( strA, strB, 6);
}

a. Runtime error.
b. I am OK
c. Compile error
d. I am O

Ans: c) I am OK is not in " "

13. How will you print % character?
a. printf("\%)
b. printf("\%)
c. printf("%%)
d. printf("\%%)


Ans: c) printf(" %% ");

14.
const int perplexed = 2;
#define perplexed 3

main()
{
 #ifdef perplexed
 #undef perplexed
 #define perplexed 4
 #endif
 printf("%d",perplexed);
}

a. 0
b. 2
c. 4
d. none of the above

Ans: c)

15.
struct Foo
{
 char *pName;
};

main()
{
 struct Foo *obj = malloc(sizeof(struct Foo));
 clrscr();
 strcpy(obj->pName,"Your Name");
 printf("%s", obj->pName);
}

a. Your Name
b. compile error
c. Name
d. Runtime error

Ans a)

16.
struct Foo
{
 char *pName;
 char *pAddress;
};

main()
{
 struct Foo *obj = malloc(sizeof(struct Foo));
clrscr();
 obj->pName = malloc(100);
 obj->pAddress = malloc(100);

strcpy(obj->pName,"Your Name");
 strcpy(obj->pAddress, "Your Address");

free(obj);
 printf("%s", obj->pName);
 printf("%s", obj->pAddress);
}

a. Your Name, Your Address
b. Your Address, Your Address
c. Your Name Your Name
d. None of the above

Ans: d) printd Nothing, as after free(obj), no memory is there containing
obj->pName & pbj->pAddress

17.
main()
{
 char *a = "Hello ";
 char *b = "World";
clrscr();
 printf("%s", strcat(a,b));
}

a. Hello
b. Hello World
c. HelloWorld
d. None of the above

Ans: b)

18.

main()
{
 char *a = "Hello ";
 char *b = "World";
 clrscr();
 printf("%s", strcpy(a,b));
}

a. "Hello
b. "Hello World
c. "HelloWorld
d. None of the above

Ans: d) World, copies World on a, overwrites Hello in a.

19.
void func1(int (*a)[10])
{
 printf("Ok it works");
}

void func2(int a[][10])
{
 printf("Will this work?");
}

main()
{
 int a[10][10];
 func1(a);
 func2(a);
}

a. Ok it works
b. Will this work?
c. Ok it worksWill this work?
d. None of the above

Ans: c)

20.
main()
{
 printf("%d, %d", sizeof('c'), sizeof(100));
}

a. 2, 2
b. 2, 100
c. 4, 100
d. 4, 4

Ans: a) 2, 2

21.
main()
{
 int i = 100;
 clrscr();
 printf("%d", sizeof(sizeof(i)));
}

a. 2
b. 100
c. 4
d. none of the above

Ans: a) 2

22. 

main()
{
 int c = 5;
 printf("%d", main||c);
}

a. 1
b. 5
c. 0
d. none of the above

Ans: a) 1, if we use main|c then error, illegal use of pointer

23.
main()
{
 char c;
 int i = 456;
 clrscr();
 c = i;
 printf("%d", c);
}

a. 456
b. -456
c. random number
d. none of the above

Ans: d) -56

24.
void main ()
{
 int x = 10;
 printf ("x = %d, y = %d", x,--x++);
}

a. 10, 10
b. 10, 9
c. 10, 11
d. none of the above

Ans: d) Lvalue required

25.
main()
{
 int i =10, j = 20;
 clrscr();
 printf("%d, %d, ", j-- , --i);
 printf("%d, %d ", j++ , ++i);
}

a. 20, 10, 20, 10
b. 20, 9, 20, 10
c. 20, 9, 19, 10
d. 19, 9, 20, 10

Ans: c)

26.

main()
{
 int x=5;
 clrscr();

for(;x==0;x--) {
 printf("x=%d", x--);
 }
}

a. 4, 3, 2, 1, 0
b. 1, 2, 3, 4, 5
c. 0, 1, 2, 3, 4
d. none of the above

Ans: d) prints nothing, as condition x==0 is False

27
main()
{
 int x=5;

for(;x!=0;x--) {
 printf("x=%d
", x--);
 }
}

a. 5, 4, 3, 2,1
b. 4, 3, 2, 1, 0
c. 5, 3, 1
d. none of the above

Ans: d) Infinite loop as x is decremented twice, it never be 0
and loop is going on & on

28
main()
{
 int x=5;
 clrscr();

for(;x<= 0;x--)
{
 printf("x=%d ", x--);
 }
}
a. 5, 3, 1
b. 5, 2, 1,
c. 5, 3, 1, -1, 3
d. "3, -1, 1, 3, 5

Ans: prints nothing, as condition in loop is false.

29.
main()
{
 {
 unsigned int bit=256;
 printf("%d", bit);
 }
 {
 unsigned int bit=512;
 printf("%d", bit);
 }
}

a. 256, 256
b. 512, 512
c. 256, 512
d. Compile error

Ans: 256, 512, becoz these r different blocks, so declaration allowed

30.
main()
{
 int i;
 clrscr();
 for(i=0;i<5;i++)
 {
 printf("%d
", 1L << i);
 }
}
a. 5, 4, 3, 2, 1
b. 0, 1, 2, 3, 4
c. 0, 1, 2, 4, 8
d. 1, 2, 4, 8, 16

Ans: d) L does't make any diff.

31.
main()
{
 signed int bit=512, i=5;

for(;i;i--)
 {
 printf("%d
", bit = (bit >> (i - (i -1))));
 }
}

a. 512, 256, 128, 64, 32
b. 256, 128, 64, 32, 16
c. 128, 64, 32, 16, 8
d. 64, 32, 16, 8, 4

Ans: b)

32.
main()
{
 signed int bit=512, i=5;

for(;i;i--)
 {
 printf("%d
", bit >> (i - (i -1)));
 }
}

a. 512, 256, 0, 0, 0
b. 256, 256, 0, 0, 0
c. 512, 512, 512, 512, 512
d. 256, 256, 256, 256, 256

Ans: d) bit's value is not changed

33.
main()
{
 if (!(1&&0))
 {
 printf("OK I am done.");
 }
 else
 {
printf("OK I am gone.");
 }
}

a. OK I am done
b. OK I am gone
c. compile error
d. none of the above

Ans: a)

34
main()
{
 if ((1||0) && (0||1))
 {
 printf("OK I am done.");
 }
 else
 {
printf("OK I am gone.");
 }
}

a. OK I am done
b. OK I am gone
c. compile error
d. none of the above

Ans: a)

35
main()
{
 signed int bit=512, mBit;

{
mBit = ~bit;
bit = bit & ~bit ;

printf("%d %d", bit, mBit);
 }
}

a. 0, 0
b. 0, 513
c. 512, 0
d. 0, -513

Ans: d)

Sunday, 1 September 2013

Write a c program to swap two numbers without using third variable.

0 comments

Write a c program to swap two numbers without using third variable.

=> Swapping in c without temporary variable
=> Swap 2 numbers without using third variable in c
=> How to swap two numbers in c without using third variable

#include<stdio.h>

int main(){

    int a=5,b=10;

    //process one
    a=b+a;
    b=a-b;
    a=a-b;
    printf("a= %d  b=  %d",a,b);

    //process two
    a=5;b=10;
    a=a+b-(b=a);
    printf("\na= %d  b=  %d",a,b);

    //process three
    a=5;b=10;
    a=a^b;
    b=a^b;
    a=b^a;
    printf("\na= %d  b=  %d",a,b);

    //process four
    a=5;b=10;
    a=b-~a-1;
    b=a+~b+1;
    a=a+~b+1;
    printf("\na= %d  b=  %d",a,b);

    //process five
    a=5,b=10;
    a=b+a,b=a-b,a=a-b;
    printf("\na= %d  b=  %d",a,b);

    return 0;
}

Write a c program to swap two numbers.

0 comments

Write a c program to swap two numbers.

=> Swapping in c without temporary variable
=> Swap 2 numbers without using third variable in c
=> How to swap two numbers in c without using third variable

#include<stdio.h>

int main(){

    int a=5,b=10;

    //process one
    a=b+a;
    b=a-b;
    a=a-b;
    printf("a= %d  b=  %d",a,b);

    //process two
    a=5;b=10;
    a=a+b-(b=a);
    printf("\na= %d  b=  %d",a,b);

    //process three
    a=5;b=10;
    a=a^b;
    b=a^b;
    a=b^a;
    printf("\na= %d  b=  %d",a,b);

    //process four
    a=5;b=10;
    a=b-~a-1;
    b=a+~b+1;
    a=a+~b+1;
    printf("\na= %d  b=  %d",a,b);

    //process five
    a=5,b=10;
    a=b+a,b=a-b,a=a-b;
    printf("\na= %d  b=  %d",a,b);

    return 0;
}

Write a c program to convert the string from upper case to lower case.

0 comments

Write a c program to convert the string from upper case to lower case.

#include<stdio.h>
#include<string.h>
int main(){
  char str[20];
  int i;
  printf("Enter any string->");
  scanf("%s",str);
  printf("The string is->%s",str);
  for(i=0;i<=strlen(str);i++){
      if(str[i]>=65&&str[i]<=90)
       str[i]=str[i]+32;
  }
  printf("\nThe string in uppercase is->%s",str);
  return 0;
}

Algorithm:

ASCII value of 'A' is 65 while 'a' is 97. Difference between them is 97 – 65 = 32
So if we will add 32 in the ASCII value of 'A' then it will be 'a' and if will we subtract 32 in ASCII value of 'a' it will be 'A'. It is true for all alphabets.
In general rule:
Upper case character = Lower case character – 32
Lower case character = Upper case character + 32

Write a c program for merge sort.

0 comments

Write a c program for merge sort.

#include<stdio.h>
#define MAX 50

void mergeSort(int arr[],int low,int mid,int high);
void partition(int arr[],int low,int high);

int main(){
   
    int merge[MAX],i,n;

    printf("Enter the total number of elements: ");
    scanf("%d",&n);

    printf("Enter the elements which to be sort: ");
    for(i=0;i<n;i++){
         scanf("%d",&merge[i]);
    }

    partition(merge,0,n-1);

    printf("After merge sorting elements are: ");
    for(i=0;i<n;i++){
         printf("%d ",merge[i]);
    }

   return 0;
}

void partition(int arr[],int low,int high){

    int mid;

    if(low<high){
         mid=(low+high)/2;
         partition(arr,low,mid);
         partition(arr,mid+1,high);
         mergeSort(arr,low,mid,high);
    }
}

void mergeSort(int arr[],int low,int mid,int high){

    int i,m,k,l,temp[MAX];

    l=low;
    i=low;
    m=mid+1;

    while((l<=mid)&&(m<=high)){

         if(arr[l]<=arr[m]){
             temp[i]=arr[l];
             l++;
         }
         else{
             temp[i]=arr[m];
             m++;
         }
         i++;
    }

    if(l>mid){
         for(k=m;k<=high;k++){
             temp[i]=arr[k];
             i++;
         }
    }
    else{
         for(k=l;k<=mid;k++){
             temp[i]=arr[k];
             i++;
         }
    }
   
    for(k=low;k<=high;k++){
         arr[k]=temp[k];
    }
}

Sample output:
Enter the total number of elements: 5
Enter the elements which to be sort: 2 5 0 9 1
After merge sorting elements are: 0 1 2 5 9

Write a c program for quick sort.

0 comments

Write a c program for quick sort.

#include<stdio.h>

void quicksort(int [10],int,int);

int main(){
  int x[20],size,i;

  printf("Enter size of the array: ");
  scanf("%d",&size);

  printf("Enter %d elements: ",size);
  for(i=0;i<size;i++)
    scanf("%d",&x[i]);

  quicksort(x,0,size-1);

  printf("Sorted elements: ");
  for(i=0;i<size;i++)
    printf(" %d",x[i]);

  return 0;
}

void quicksort(int x[10],int first,int last){
    int pivot,j,temp,i;

     if(first<last){
         pivot=first;
         i=first;
         j=last;

         while(i<j){
             while(x[i]<=x[pivot]&&i<last)
                 i++;
             while(x[j]>x[pivot])
                 j--;
             if(i<j){
                 temp=x[i];
                  x[i]=x[j];
                  x[j]=temp;
             }
         }

         temp=x[pivot];
         x[pivot]=x[j];
         x[j]=temp;
         quicksort(x,first,j-1);
         quicksort(x,j+1,last);

    }
}

Output:
Enter size of the array: 5
Enter 5 elements: 3 8 0 1 2
Sorted elements: 0 1 2 3 8
 

C Programming Language Interview Questions and Answers Tutorial for beginners. Copyright 2013 All Rights Reserved