Tuesday 3 September 2013

HCL Placement Question Paper for C Language



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)

0 comments:

Post a Comment

 

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