C Interview Questions12
C Interview Questions12
C Interview Questions12
Answer:
These are the questions usually repeated for C written Test. You can alos use
these questions to brushup your skills.
Instructions:
1. Please ignore any case-sensitive errors and un-included libraries.
2. You may use the back of this question paper for any rough work.
Q1.
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
Q2.
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
Q3.
main()
{
int i;
float *pf;
pf = (float *)&i;
*pf = 100.00;
printf("n %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("n%d", i<<2);
}
a. 4
b. 512
c. 1020
d. 1024
Ans: c) 1020
Q5.
#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
Q6.
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
Q7.
union u
{
union u
{
int i;
int j;
}a[10];
int b[10];
}u;
main()
{
printf("n%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
Q8.
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
Q9.
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
Q10.
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
Q11.
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
Q12.
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 " "
Q13. How will you print % character?
a. printf(“%”)
b. printf(“\%”)
c. printf(“%%”)
d. printf(“%%”)
Q14.
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)
Q15.
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)
Q16.
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
Q18.
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.
Q19.
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)
Q20.
main()
{
printf("%d, %d", sizeof('c'), sizeof(100));
}
a. 2, 2
b. 2, 100
c. 4, 100
d. 4, 4
Ans: a) 2, 2
Q21.
main()
{
int i = 100;
clrscr();
printf("%d", sizeof(sizeof(i)));
}
a. 2
b. 100
c. 4
d. none of the above
Ans: a) 2
Q22.
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
Q23.
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
Q24.
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
Q27
main()
{
int x=5;
for(;x!=0;x--) {
printf("x=%dn", 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
Q28
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.
Q29.
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
Q30.
main()
{
int i;
clrscr();
for(i=0;i<5;i++)
{
printf("%dn", 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.
Q31.
main()
{
signed int bit=512, i=5;
for(;i;i--)
{
printf("%dn", 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)
Q32.
main()
{
signed int bit=512, i=5;
for(;i;i--)
{
printf("%dn", 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
Q33.
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)
Q34
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)
Q35
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)
1. C Programming
5. .output of the
following.
main()
{
int i;
char *p;
i=0X89;
p=(char *)i;
p++;
printf("%x\n",p);
}
ans:0X8A
20. What is the size of the following union. Assume that the size of int
=2, size of float =4 and size of
char =1.
Union Tag{
int a;
flaot b;
char c;
};
a)2 b)4 c)1 d) 7
21. What is the output of the following program? (. has been used to
indicate a space)
main()
{
char s[]="Hello,.world";
printf(%15.10s",s);
}
a )Hello,.World...
b)....Hello,.Wor
c)Hello,.Wor....
d)None of the above
(a) 4
(b) 5
(c) 6
(d) 11
(e) None of the above
main
{int x,j,k;
j=k=6;x=2;
x=j*k;
printf("%d", x);
i=20,k=0;
for(j=1;j<i;j=1+4*(i/j))
{k+=j<10?4:3;
}
printf("%d", k);
Ans. k=4
int i =10
main()
{int i =20,n;
for(n=0;n<=i;)
{int i=10;
i++;
}
printf("%d", i);
Ans. i=20
int x=5;
y= x&y
Y=10;
if( Y++>9 && Y++!=10 && Y++>10)
{printf("%d", Y);
else
printf("%d", Y);
}
Ans. 13
8. Find the output for the following C program
f=(x>y)?x:y
Ans. (a)
(a) 4 bytes
(b) 2 bytes
(c) compiler dependent
(d) 8 bytes
(a) <=
(b) ?:
(c) ==
(d) *
main()
{intx=2,y=6,z=6;
x=y==z;
printf(%d",x)
}
1)struct dlink{
int nodeid;
struct dlink *next;
struct dline *prev;
} dlink_t;
A pointer to the head of tha linked list is
maintained
as a global variable whose definition is
dlink_t *head;
The first node's prev and the last node's text are
NULL
remove_element (dlink_t *rp)
{
rp->prev->next =rp->next;
rp->next->prev =rp->prev;
if(head ==rp)
head =rp->next;
}
which of the following statement is true about the
function remove_element
a)it works when head is the same as rp;
b)it does not work whe rp is the last element on the
list
c)it sets the head of the list correctly
d)it works in all cases
ans:( b)
2.#define NULL 0
char *
index (sp,c)
register char *sp,c;
{
do {
if(*sp==c)
return(sp);
}while (*sp++);
return (NULL);
}
The first argument sp,is a pointer to a C string.
The
second argument c is a character. This function
searches for the character c in the string . If it
is
found
a pointer to that location is returned ,else NULL is
returned
3.main()
{
printf("%d\n",f(7));
}
f(x)
{
if(x<=4)
return x;
return f(--x);
}
a)4
b)5
c)6
d)7
5.which is correct?
6. main()
{
int i=20,*j=&i;
f1(j);
*j+=10;
f2(j);
printf("%d and %d ',i,*j);
}
f1(k)
int *k;
{ *k+=15;}
f2(x)
int *x;
{ int m=*x, *n=&m;
*n+=10;
}
The values printed by the program will be
a)20 and 55
b)20 and 45
c)45 and 45
d)55 and 55
e)35 and 35
ans : ( c )
7.int
func(int x)
{
if(x<=0)
return (1);
return func(x-1)+x;
}
main()
{
printf("%d",func(5));
}
a)12 b)16 c)15 d)11
9. void
funca(int *k)
{
*k+=20;
}
void
funcb(int *k)
{
int m=*x,*n=&m;
*n+=10;
}
main()
{
int var=25,;
*varp=&var;
funca(varp)
*varp+=10;
funcb(varp);
printf("%d%d,var,*varp);
}
(a) 20,55(b) 35,35(c) 25,25(d)55,55
ans : (d )
9. #include <stream.h>
class x{
public :
int a;
x();
};
x::x() { a=10;cout<< a ;}
class b:public x {
public :
b(); x();
};
b::b() { a=20;cout<<a;}
main()
{
b temp;
}
what will be the output of the following program?
a)10 b)20 c)20 10 d)10 20