C Faq3
C Faq3
CRANES VARSITY
Part I QUESTIONS
1. What is the output of the followng program: void foo(char *p) { p = (char *) 0xFFFF; } int main() { char *p = 0x0000; foo(p); printf("%p", p); } a)0x0000 b)0xFFFF c)(nil) d)Will crash when run 2. What will be the output of the following program int i = 50; void foo(int i) { i*= 2; } int main() { int i=1; foo(i); printf("%d", i); } a) b) c) d) 1 2 50 100
C FAQs
CRANES VARSITY
3.
What will be the output of the following program int foo() { static int i=0; i++; return i; } int main() { printf("%d ", foo()); printf("%d ", foo()); printf("%d ", foo()); } a) b) c) d) Compilation Error 0 0 0 1 1 1 1 2 3
4.
In C you can, a) b) c) d) Define Define Define Define local static variables global static variables static functions all of the above
C FAQs
CRANES VARSITY
5.
What will be the output of the following program /* Assume sizeof char=1, int=2, float=4 Assume sizeof a pointer =4 */ int main() { char *cp; int *ip; float *fp; printf("%d %d %d\t", sizeof(*cp), sizeof(*ip), sizeof(*fp)); printf("%d %d %d\n", sizeof(cp), sizeof(ip), sizeof(fp)); } a) Compilation Error b) 1 2 4 c) 2 2 2 d) 4 4 4 4 4 4 1 2 4 4 4 4
6.
What is the output of the following program: /* Assume sizeof char=1, int=2, float=4 Assume sizeof a pointer =4 */ struct employee { char* name; float sal; }; int main() { struct employee e1; e1.sal = 50.0; e1.name = (char *) malloc(30); strcpy(e1.name, "Sachin 10 the great."); printf("%d %d", sizeof(struct employee), sizeof(e1)); } a) 8 8 b) 8 30 c) 8 34 d) 8 38
3
C FAQs
CRANES VARSITY
7.
Consider the following pointer _expression: --*p++; In what order are the operators executed, state them from the first executed to the last executed. a) b) c) d) --, *, ++ *, --, ++ ++, --, * *, ++, --
8.
What is the output of the following program: struct employee { char* name; float sal; }; int main() { struct employee e1, e2; e1.sal = 50.0; e2.sal = 150.0; e1.name = (char *) malloc(20); e2.name = (char *) malloc(20); e1 = e2; strcpy(e1.name, "Kapil Dev"); strcpy(e2.name, "Sunil Gavaskar"); printf("%s %f", e1.name, e1.sal); } a) b) c) d) Kapil Sunil Kapil Sunil Dev 50.0 Gavaskar 150.0 Dev 150.0 Gavaskar 50.0
C FAQs
CRANES VARSITY
9.
What will be the output of the following program #define SQUARE(x) x * x int main() { printf("%d ", SQUARE(3+2)); } a) b) c) d) 5 10 11 25
10.
What happens when you increment a void* ? a) Compilation error. b) It goes up by the size of a pointer. c) It goes up by the size of the type it is pointing to. d) Run Time error
11.
What happens when you increment a void** ? a) b) c) to d) Compilation error It goes up by the size of a pointer It goes up by the size of the type it is pointing Run Time error
12.
What will be the output of the following program int main() { int i; printf("%d", i); } a) b) c) d) 0 -1 0xFFFF Garbage
C FAQs
CRANES VARSITY
13.
What will be the output of the following program: Consider the following code: struct node { char *firstname; char *lastname; char node* next; };
int main() { struct node *nPtr = (struct node *) malloc( sizeof(struct node) ); nPtr->firstname = (char*) malloc(10); nPtr->lastname = (char*) malloc(10); nPtr->next = NULL; // deallocating allocated memory??? } What is the correct way the deallocate memory in the above program. a) free(nPtr); b) free( nPtr->firstname ); free( nPtr->lastname ); nPtr=NULL; c) free( nPtr->firstname ); free( nPtr->lastname ); free(nPtr); d) free(nPtr); free( nPtr->firstname ); free( nPtr-> lastname);
14. What should be the prototype of a function that swaps two float pointers? a) b) c) d) void void void void swap(float, float); swap(float *, float *); swap(float **, float **); swap(float ***, float ***);
C FAQs
CRANES VARSITY
15.
What will be the output of the following program /* Assume sizeof char=1, int=2, float=4 Assume sizeof a pointer =4 */ int main() { char *cp = (char *) 0x0000; int *ip = (int *) 0x0000; float *fp = (float *) 0x0000; cp++; ip++; fp++; printf("%d %d %d", cp, ip, fp); } a) b) c) d) 1 1 2 4 1 2 2 4 1 4 2 4
16.
What is the output of the followng program: int main() { char *p = (char*) malloc( strlen("Keep the faith") ); strcpy(p,"Keep the faith" ); printf("%s", p); } a) b) c) d) Compilation error Keep the faith Keep the faith Garbage Garbage
C FAQs
CRANES VARSITY
17.
What will be the output of the following program int foo() { static int i=0; i++; return i; } int main() { printf("%d ", foo()); printf("%d ", foo()); printf("%d ", foo()); } a) b) c) d) Compilation Error 0 0 0 1 1 1 1 2 3
18.
What is the output of the followng program: void foo(char *p) { p = (char *) 0xFFFF; } int main() { char *p = 0x0000; foo(p); printf("%X", p); } a) b) c) d) 0x0000 0xFFFF 0xffff Will crash when run
C FAQs
CRANES VARSITY
19.
What will be the output of the following program /* Assume sizeof char=1, int=2, float=4 Assume sizeof a pointer =4 */ int main() { char *cp; int *ip; float *fp; printf("%d %d %d", sizeof(cp), sizeof(ip),sizeof(fp)); } a) b) c) d) Compilation Error 1 2 4 2 2 2 4 4 4
20.You have to write a program where that implements a cirlular linklist. Each node will store a char*.The node declaration will have how many entries? a) 2 b) 3 c) 4 d) 5 21. What will be the output of the following program /* Assume sizeof char=1, int=2, float=4 Assume sizeof a pointer =4 */ union endian { unsigned int i; char c; }; int main() { printf("%d", sizeof(union endian) ); } a) 2 b) 3 c) 4 d) 8
9
C FAQs
CRANES VARSITY
22.
What will be the output of the following program int i = 50; void foo(int i) { i *= 2; } int main() { int i=1; foo(i); printf("%d", i); } a) b) C) d) 1 2 50 100
23. You have to write a program where that implements a doubly linklist. Each node will store a float. The node declaration will have how many entries? a) b) c) d) 2 3 4 5
24. A long C program is given -- try to be familiar with few of the concepts listed below int *num=(int []){10,1,5,22,90}; main() { int *p,*q; int i; p = num; q = num+2; I = *p++; printf(*p = %u\n*q = %u\ni = %u\n(q p) = %u\n, *p, *q, i, q p); } how the values will change?
10
C FAQs
CRANES VARSITY
25.
One pointer diff is given like this: int *(*p[10])(char *, char*) Explain the variable assignment
26.
27. For the following C program void fn(int *a, int *b) { int *t; t = a; a = b; b = t; } main() { int a = 2; int b = 3; fn(&a, &b); printf("%d,%d", a,b); } What is the output? a) b) c) d) 28. Error at runtime Compilation error 2 3 3 2
For the following C program #define scanf "%s is a string" int main() { printf(scanf,scanf); } What is the output.
11
C FAQs
CRANES VARSITY
29.
For the following C program int main() { char *p = "abc"; char *q = "abc123"; while(*p = *q) printf("%c %c",*p,*q); } a) b) c) d) aabbcc aabbcc123 abcabc123 Runtime Error
30.
31. For the following C program #define void int #define PRINT(n) printf(%d , n) int i = 300; int main(void) { int i = 200; { int i = 100; PRINT(i) } PRINT(i); } What is the output?
12
C FAQs
CRANES VARSITY
32. For the following C program int x = 2; x = x<<2; printf("%d ",x); 33. For the following C program int a[] = {0,0X4,4,9}; /*some values are given*/ int i = 2; printf("%d %d",a[i],i[a]); What is the value? 34. How can the word YES be stored in any array. a)array[1] array[2] array[3] array[4] b)array[0] array[1] array[2] array[3] c)array[1] array[2] array[3] d)array[0] array[1] array[2] array[3] 35. a) b) c) d) = = = = = = = = = = = = = = = 'Y' 'E' 'S' '\0' "Y" "E" "S" "\0" "Y" "E" "S" 'Y' 'E' 'S' '\0'
Need not return any value. Should always return an integer. Should always return a float. Should always return more than one value.
13
C FAQs
CRANES VARSITY
37. Which of the following about automatic variables within a function is incorrect? 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. 38. Consider the following program segment int n, sum = 5; switch(n) { case 2:sum = sum-2; case 3:sum* = 5; break; default:sum = 0; } if a) b) c) d) n = 2, what is the value of the sum? 0 15 3 None of these.
14
C FAQs
CRANES VARSITY
39.Which of the following is not an infinite loop? a) x=0; b) # define TRUE 0.... do{ While(TRUE){....} /*x unaltered within the loop*/ C) for(;;) {....} ....} While(x==0); d) While(1) {....} 40. What does the following function print? func(int i) { if(i%2) return 0; else return 1; } main() { int i = 3; i = func(i); i = func(i); printf("%d",i) } a) b) c) d) 3 1 0 2
15
C FAQs
CRANES VARSITY
41.
Consider the following program int main() { int a[5] = {1,3,6,7,0}; int *b; b = &a[2]; } The value of b[-1] is a) 1 b) 2 c) -6 d) none
42.
Given a piece of code int x[10]; int *ab; ab = x; To access the 6th element of the array which of the following is incorrect? a) b) c) d) *(x+5) x[5] ab[5] *(*ab+5} .
43.
Which of the following is not a storage class in C? a) b) c) d) Static Register Extern Stack
44.
Which of the following 'return' statement is correct? a) b) c) d) return, return; return(1, 2, 3); return(return 4); return 5, return 6);
16
C FAQs
CRANES VARSITY
45.
The second argument to fopen() function is? a) b) c) d) char const char * int * FILE *
46.
What is the output of the program? #include <stdio.h> int main() { char buffer[10] = {"Genesis"}; printf(" %d ", &buffer[4]- (buffer)); } a) b) c) d) 3 4 0 Illegal pointer subtraction
47. If "arr" is an array of 5 x 5 dimension, arr[2][4] is same as a) b) c) d) **(a+3+4) *(a+3)+*(a+4) **(a+3)+4 *(*(a+2)+4)
17
C FAQs
CRANES VARSITY
48.
What will be the result of the following program? char *g() { static char x[1024]; return x; } main() { char*g1 = "First String"; strcpy(g(),g1); g1 = g(); strcpy(g1,"Second String"); printf("Answer is:%s", g()); } a) Answer is: First String b) Answer is: Second String c) Run time Error/Core Dump d) None of these
49. Output Of the program?. void zap(int n) { if(n<=1) zap = 1; else zap= zap(n-3)+zap(n-5); } int main() { zap(6); } 50. int main() { char *p1 = "Name"; char *p2; p2 = (char *)malloc(20); while(*p2++=*p1++); printf("%s\n",p2); }
18
C FAQs
CRANES VARSITY
51. int main() { int x = 20, y = 35; x = y++ + x++; y = ++y + ++x; printf("%d %d\n",x,y); } 52. int x; main() { int x = 0; { int x = 10; x++; change_value(x); x++; modify_value(); printf("First output: %d\n",x); } x++; change_value(x); printf("Second Output : %d\n",x); modify_value(); printf("Third Output : %d\n",x); } modify_value() { return (x+=10); } change_value() { return(x+=1); }
19
C FAQs
CRANES VARSITY
53. int main() { int x = 10, y = 15; x = x++; y = ++y; printf("%d %d\n",x,y); } 54. main() { int a = 0; if(a=0) printf("Ramco Systems\n"); printf("Ramco Systems\n"); } 55. #include<stdio.h> int SumElement(int *,int); int main(void) { int x[10]; int i = 10; for(;i;) { i--; *(x+i) = i; } printf("%d",SumElement(x,10)); } int SumElement(int array[],int size) { int i = 0; float sum = 0; for(;i<size;i++) sum+=array[i]; return sum; }
20
C FAQs
CRANES VARSITY
56. FIND
PROGRAM
#include<stdio.h> int main(void); int printf(const char*,...); int main(void) { int i = 100, j = 10, k = 20; int sum; float ave; char myformat[] = "ave=%.2f"; sum = i+j+k; ave = sum/3.0; printf(myformat,ave); } 57. FIND C
PROGRAM
PROGRAM
#include<stdio.h> int main(void) { struct s{ int x; float y; }s1={25,45.00}; union u{ int x; float y; } u1; u1=(union u)s1; printf("%d and %f",u1.x,u1.y); }
21
C FAQs
CRANES VARSITY
59. Find the output for the following C program Whats the O/P if c = 4? #include<stdio.h> int main(void) { unsigned int c; unsigned x=0x3; scanf("%u",&c); switch(c&x) { case 3: printf("Hello!\t"); case 2: printf("Welcome\t"); case 1: printf("To All\t"); default:printf("\n"); } } 60. Find the output for the following C program #include<stdio.h> int fn(void); void print(int,int(*)()); int i = 10; int main(void) { int i = 20; print(i,fn); } void print(int i,int (*fn1)()) { printf("%d\n",(*fn1)()); } int fn(void) { return(i-=5); }
22
C FAQs
CRANES VARSITY
61. Find the output for the following C program #include<stdio.h> int main(void); { char number[5][6]={"Zero","One","Two", "Three","Four"}; printf("%s is %c",&number[4][0],number[0][0]); } 62. Find the output for the following C program int bags[5]={20,5,20,3,20}; int main(void) { int pos=5,*next(); *next() = pos; printf("%d %d %d",pos,*next(),bags[0]); } int *next() { int i; for(I = 0; i<5; i++) if (bags[i]==20) return(bags+i); printf("Error!"); exit(0); } 63. Find the output for the following C program #include<stdio.h> int main(void) { int y,z; int x = y = z = 10; int f = x; float ans = 0.0; f *=x*y; ans=x/3.0+y/3; printf("%d %.2f",f,ans); }
23
C FAQs
CRANES VARSITY
64.
Find the output for the following C program #include<stdio.h> int main(void); { double dbl = 20.4530,d = 4.5710,dblvar3; double dbln(void); dblvar3 = dbln(); printf("%.2f\t%.2f\t%.2f\n",dbl,d,dblvar3); } double dbln(void) { double dblvar3; dbl = dblvar3 = 4.5; return(dbl+d+dblvar3); }
65. Find the output for the following C program #include<stdio.h> static int i = 5; int main(void) { int sum = 0; do { sum+=(1/i); }while(0<i--); }
24
C FAQs
CRANES VARSITY
66. Find the output for the following C program #include<stdio.h> int main(void) { int oldvar = 25,newvar = -25; int swap(int,int); swap(oldvar,newvar); printf("Numbers are %d\t%d",newvar,oldvar); } int swap(int oldval,int newval) { int tempval = oldval; oldval = newval; newval = tempval; } 67. Find the output for the following C program #include<stdio.h> int main(void); { int I = 100,j = 20; i++=j; i*=j; printf("%d\t%d\n",i,j); }
25
C FAQs
CRANES VARSITY
68.
Find the output for the following C program #include<stdio.h> int main(void); int newval(int); int main(void) { int ia[]={12,24,45,0}; int i; int sum = 0; for(i=0;ia[i];i++) { sum+=newval(ia[i]); } printf("Sum= %d",sum); } int newval(int x) { static int div=1; return(x/div++); }
69.
Find the output for the following C program #include<stdio.h> int main(void) { int var1,var2,var3,minmax; var1 = 5; var2 = 5; var3 = 6; minmax = (var1>var2)?(var1>var3)?var1:var3:(var2>var3)?var 2:var3; printf("%d\n",minmax); }
26
C FAQs
CRANES VARSITY
70.
Find the output for the following C program #include<stdio.h> int main(void); { void pa(int *a,int n); int arr[5]={5,4,3,2,1}; pa(arr,5); } void pa(int *a,int n) { int i; for(i = 0; i<n; i++) printf("%d\t",*(a++)+i); }
71.
Find the output for the following C program #include<stdio.h> int main(void); static int i = 50; int print(int i); int main(void) { static int i = 100; while(print(i)) { printf("%d\n",i); i--; } } int print(int x) { static int i = 2; return(i--); }
27
C FAQs
CRANES VARSITY
72.
Find the output for the following C program #include<stdio.h> int main(void); typedef struct NType { int i; char c; long x; } NewType; int main(void) { NewType *c; c = (NewType *)malloc(sizeof(NewType)); c->i=100; c->c='C'; (*c).x=100L; printf("(%d,%c,%4Ld)",c->i,c->c,c->x); }
73.
Find the output for the following C program #include<stdio.h> int main(void); const int k = 100; int main(void) { int a[100]; int sum = 0; for(k=0;k<100;k++) *(a+k)=k; sum+=a[--k]; printf("%d",sum); }
28
C FAQs
CRANES VARSITY
75. # define PRINT(num) printf(#num = %d, num); void func(int x,int y) { X = 3; y = 2; } main() { int i; func(i,i); print(i); } 76. which of the following is illegal for the program? main() { char const *p = p; } a) p++ b) *p++ c)(*p)++ d) None
29
C FAQs
CRANES VARSITY
77. what is the output of the following program void print(int ** arr) { printf("0 %f, 1 %f, 2 %f, arr[0][0],arr[0][1],arr[0][2]); } main() { int a[][3]={ {1,2,3}, {4,5,6} } int ** arr=a; print(arr); arr++; print(arr); } 78. If FILE1 and FILE2 are defined what files will be included in the Program. #ifdef FILE1 #include file1.h #elifdef FILE2 #include file2.1 #elifdef FILE3 #include file3.h #endif 79. int a[] = {1,2,3,4}; main() { printf("%d",sizeof(a)); } What will be the output of the program when executed. 80. char name = "Krishna Prasad"; main() { name[7] = '\0'; printf("%s",name); } what's the o/p.
30
C FAQs
CRANES VARSITY
81. what is the meaning of if (x^y = ~0) 82. how can you simplify this routine int max (int a, { if (a > b) return else return } int b then a; b;
84. What is the output of the following program int main () { unsigned int i; for (i = 10; i >= 0; i--) printf ("%d", i); } a) prints numbers 10 - 0 b) prints nos 10 - 1 c) goes into infinite loop
31
C FAQs
CRANES VARSITY
85.
87. The following statement is " The size of a struct is always equal to the sum of the sizes of its members" a) valid b) invalid c) can't say 88. How many x's are printed? for (i = 0, j = 10; i < j; i++, j--) printf ("x"); a) b) c) d) 89. 10 5 4 none
output? main () { int i = 2, j = 3, k = 1; swap (i, j) printf ("%d %d", i, j); } swap (const int i, int const j) { int temp; temp = i; i = j; j = temp; }
32
C FAQs
CRANES VARSITY
90. int i, b[] = {1, 2, 3, 4, 5}, *p; p = b; ++*p; p += 2; What is the value of *p; a) 2 b) 3 c) 4 d) 5
91. x = fopen (b, c) what is b? a) pointer to a character array which contains the filename b) filename whithin double quotes c) can be anyone of the above d) none 92. x = malloc (y). correct. a) b) c) d) Which of the following statements is
x is the size of the memory allocated y points to the memory allocated x points to the memory allocated none of the above
93. which is the valid declaration? a) b) c) d) #typedef struct { int i;}int typedef struct in {int i;}; #typedef struct int {int i;}; typedef struct {int i;} in;
33
C FAQs
CRANES VARSITY
94. union { int no; char ch; }u; What is the output? u.ch = '2'; u.no = 0; printf ("%d", u.ch); a) 2 b) 0 c) null character d) none 95. Which of these are valid declarations? i) union { ii) union u_tag { int i; int i; int j; int j; }; }; iii) union { int i; int j; FILE k; }u; }; a) all correct b) i, ii, iv c) ii & iv 96. p and q are pointers to the same type of data items. Which of these are valid? i) *(p+q) ii) *(p-q) iii) *p - *q a)all b)ii & iii c)iii is valid sometimes iv) union { int i; int j;
34
C FAQs
CRANES VARSITY
97.
which are valid? i) pointers can be added ii) pointers can be subtracted iii) integers can be added to pointers a) b) c) d) all correct only i and ii only ii and iii None
98.
int *i; float *f; char *c; which are the valid castings? a) (int *) &c b) (float *) &c c) (char *) &i
99. int i = 20; printf ("%x", i); what is the output? a) b) c) d) x14 14 20 none of the above
35
C FAQs
CRANES VARSITY
100. main () { char *name = "name"; change (name); printf ("%s", name); } change (char *name) { char *nm = "newname"; name = nm; } what is the output? a) b) c) d) 101. name newname name = nm not valid function call invalid
char name[] = {'n', 'a', 'm', 'e'} printf ("name = \n%s", name); a)name = name b) name = followed by funk characters c) name = \nname d) none
36
C FAQs
CRANES VARSITY
103. int x = 2, y = 2, z = 1; what is the value of x after the following statmements? if (x = y%2) z = crap else crap a)0 b)2 c)1 d)none 104. output? initially n = -24; printd (int n) { if (n < 0) { printf ("-"); n = -n; } if (n % 10) printf ("%d", n); else printf ("%d", n/10); printf ("%d", n); } a) -24 b)24 c)-2424 d)-224 105. #define max(a,b) (a>b?b:a) #define squre(x) x*x int i = 2, j = 3, k = 1; printf ("%d %d", max(i,j), squre(k)); output? a) b) c) d) 32 21 31 13
37
C FAQs
CRANES VARSITY
106.
struct adr { char *name; char *city; int zip; }; struct adr *adradr; which are valid references? a) b) c) d) adr->name X adradr->name adr.zip X adradr.zip
107. main (x, y) int x, char *y[]; { printf ("%d %s", x, y[1]); } output when invoked as prog arg1 a) b) c) d) 1 1 2 2 prog arg1 prog arg1
108. extern int s; int t; static int u; main () { } which of s, t and u are availeble to a function present in another file a) only s b) s & t c) s, t, u d) none
38
C FAQs
CRANES VARSITY
109. main () { } int a; f1(){} f2(){} which of the functions is int a available for? a) b) c) d) all of them only f2 only f1 f1 and f2 only
110. int a = 'a', d = 'd'; char b = "b", c = "cr"; main () { mixup (a, b, &c); } mixup (int p1, char *p2, char **p3) { int *temp; ....doesnt matter..... } What is the value of b after mixup? a)a b)b c)c d)none of the above
39
C FAQs
CRANES VARSITY
111.int { }
print (char *p) { while (*p != '\0') { if (*p != ".") printf ("%s", *p); p++; } } output? a)T.C.S b)TCS c)Runtime Error d) none of the above
40
C FAQs
CRANES VARSITY
112. main () { int ones, twos, threes, others; int c; ones = twos = threes = others = 0; while ((c = getchar ()) != EOF) { switch (c) { case '1': ++ones; case '2': ++twos; case '3': ++threes; break; default: ++others; break; } } printf ("%d %d", ones, others); } if the input is "1a1b1c" what is the output? a) 13 b) 33 c) 31 113. int f(int *a) { int b=5; a=&b; } main() { int i; printf("\n %d",i); f(&i); printf("\n %d",i); } what's the output? a)10,5 2)10,10 c)5,5 d)none
41
C FAQs
CRANES VARSITY
114. main() { int i; fork(); fork(); fork(); printf("----"); } how many times the printf will be executed . a) b) c) d) 115. void f(int i) { int j; for (j=0;j<16;j++) { if (i & (0x8000>>j)) printf("1"); else printf("0"); } } what's the purpose of the program a) b) c) d) its output is hex representation of i bcd binary decimal 3 6 5 8
42
C FAQs
CRANES VARSITY
116 .#define f(a,b) a+b #define g(a,b) a*b main() { int m; m=2*f(3,g(4,5)); printf("\n m is %d",m); } a) b) c) d) 117. main() { char a[10]; strcpy(a,"\0"); if (a==NULL) printf("\a is null"); else printf("\n a is not null");} } what happens with it ? a) b) c) d) 118. char a[5]="hello" a) b) c) d) 119. in array we can't do the operation . size of a is too large size of a is too small nothing wrong with it . compile time error. run-time error a is null a is not null. what's the value of m 70 50 26 69
local variables can be store by compiler a) b) c) d) in register or heap in register or stack in stack or heap global memory.
43
C FAQs
CRANES VARSITY
120. global variable conflicts due to multiple file occuranceis resolved during a) compile-time b) run-time c) link-time d) load-time 121.Two program is given of factorial. one with recursion and one without recursion question was which program won't run for very big no. input because of stack overfow i. with recursion ii. without recursion a) i only b) ii only c) i& ii both . d) none 122. struct a { int a; char b; int c; } union b { char a; int b; int c; }; which is correct . a) size of a is b) size of a is c) we can't say (not inorder) d)size of a can always diff. form size of b. always same form size of b. anything because of not-homogeneous be same if ...
44
C FAQs
CRANES VARSITY
123. typedef struct{ char *data; nodeptr next; } * nodeptr ; What does nodeptr stand for? 124. 125. What does. int *x[](); means ? struct list { int x; struct list *next; }*head; struct head.x =100 Is the above assignment to pointer is correct or wrong ? What is the output of the following int i; i = 1; i = i+2*i++; printf(%d,i); ?
126.
127.
What is the error in the following program FILE *fp1,*fp2; fp1=fopen("one","w") fp2=fopen("one","w") fputc('A',fp1) fputc('B',fp2) fclose(fp1) fclose(fp2)}
What are
45
C FAQs
CRANES VARSITY
128. #include<malloc.h> char *f() { char *s=malloc(8); strcpy(s,"goodbye") } int main() { char *f(); printf("%c",*f()='A'); } 129. #define MAN(x,y) (x)>(y)?(x):(y) { int i=10;j=5;k=0; k= MAX(i++,++j) printf(%d %d %d %d,i,j,k); } 130. a = 10;b = 5; c = 3;d = 3; if(a<b)&&(c=d++) printf(%d %d %d %d a,b,c,d) else printf("%d %d %d %d a,b,c,d);
46
C FAQs
CRANES VARSITY
131. #include<stdarg.h> show(int t,va_list ptr1) { int a,x,i; a=va_arg(ptr1,int) printf("\n %d",a) } display (char) { int x; listptr; va_star(otr,s); n=va_arg(ptr,int); show(x,ptr); } int main() { display("hello",4,12,13,14,44); } 132. int main() { int i = 10; printf(" %d %d %d \n", ++i, i++, ++i); } 133. #include<stdio.h> main() { int *p, *c, i; i = 5; p = (int*) (malloc(sizeof(i))); printf("\n%d",*p); *p = 10; printf("\n%d %d",i,*p); c = (int*) calloc(2); printf("\n%d\n",*c); }
47
C FAQs
CRANES VARSITY
134.
#define MAX(x,y) (x) >(y)?(x):(y) int main() { int I = 10,j = 5,k = 0; k = MAX(i++,++j); printf("%d..%d..%d",i,j,k); }
135.
#include <stdio.h> int { main() enum _tag{ left=10, right, front=100, back}; printf("left is %d, right is %d, front is %d, back is %d",left,right,front,back); }
136. int main() { int a = 10,b = 20; a>=5?b=100:b=200; printf("%d\n",b); } 137. #include<stdio.h> int main() { char s[] = "Bouquets and Brickbats"; printf("\n%c, ",*(&s[2])); printf("%s, ",s+5); printf("\n%s",s); printf("\n%c",*(s+2)); }
48
C FAQs
CRANES VARSITY
138. int { main() struct s1 { char *str; struct s1 *ptr; }; static struct s1 arr[] = { {"Hyderabad",arr+1}, {"Bangalore",arr+2}, {"Delhi",arr} }; struct s1 *p[3]; int i; for(i = 0; i<=2; i++) p[i] = arr[i].ptr; printf("%s\n",(*p)->str); printf("%s\n",(++*p)->str); printf("%s\n",((*p)++)->str); } 139. int main() { char *p = "hello world!"; p[0] = 'H'; printf("%s",p); } 140. You have to write a program where that implements a cirlular linklist. Each node will store a char*. The node declaration will have how many entries? a) b) c) d) 2 3 4 5
49
C FAQs
CRANES VARSITY
Part II
QUESTIONS
2. Which is the output produced by the following Program main() { int n=2; printf("%d %d\n", ++n, n*n); } a) b) c) d) 3,6 3,4 2,4 cannot determine
3. What is the output of the following program? int x main() { } a) b) c) d) compilation error 'A' 65 undefined = 0x65; char x; printf("%d\n",x)
50
C FAQs
CRANES VARSITY
4. What is the output of the following program main() { int a=10; int b=6; if(a=3) b++; printf("%d %d\n",a,b++); } a) 10,6 b)10,7 c) 3,6 d) 3,7 e) none 5. What can be said of the following program? main() { enum Months {JAN =1,FEB,MAR,APR}; Months X = JAN; if(X==1) printf("Jan is the first month"); } a) b) c) d) Does not print anything Prints : Jan is the first month Generates compilation error Results in runtime error
51
C FAQs
CRANES VARSITY
6. What is the output of the following program? main() { char *src = "Hello World"; char dst[100]; strcpy(src,dst); printf("%s",dst); } strcpy(char *dst,char *src) { while(*src) *dst++ = *src++; } a) "Hello World" b)"Hello" c)"World" d) runtime error e)undenfined 7. What is the output of the following program? main() { int l=6; switch(l) { default : l+=2; case 4: l=4; case 5: l++; break; } printf("%d",l); } a)8 b)6 c)5 d)4 e)none
52
C FAQs
CRANES VARSITY
8. What is the output of the following program? main() { int x=20; int y=10; swap(x,y); printf("%d %d",y,x+2); } swap(int x,int y) { int temp; temp =x; x=y; y=temp; } a)10,20 b) 20,12 c) 22,10 d)10,22 e)none 9. What is the output of the following problem ? #define INC(X) X++ main() { int X=4; printf("%d",INC(X++)); } a)4 b)5 c)6 d)compilation error e) runtime error
53
C FAQs
CRANES VARSITY
10. What can be said of the following struct Node { char *word; int count; struct Node left; struct Node right; } a) Incorrect definition b) structures cannot refer to other structure c) Structures can refer to themselves. Hence the statement is OK d) Structures can refer to maximum of one other structure 11. 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 12. What is the output of the following program? main() { char s[]="Hello,.world"; printf(%15.10s",s); } a)Hello,.World... b)Hello,.Wor c)Hello,.Wor.... d)None of the above
54
C FAQs
CRANES VARSITY
13. Consider the following function written in c: #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. This function works a) Always b) Always, but fails when the first byte contains the character c c) works when c is a non NULL character only d) Works only when the character c is found in the string
14. What is printed when this program is executed main() { printf ("%d\n",f(7)); } f(int x) { if (x<= 4) return x; return f(--x); } a) b) c) d) 4 5 6 7
55
C FAQs
CRANES VARSITY
15. Which of the following is the correct code for strcpy, that is used to copy the contents from src to dest? a) strcpy (char *dst,char *src) { while (*src) *dst++ = *src++; } b) strcpy (char *dst,char *src) { while(*dst++ = *src++) } c) strcpy (char *dst,char *src) { while(*src) { *dst = *src; dst++; src++; } } d) strcpy(char *dst, char *src) { while(*++dst = *++src); } 16. On a machine where pointers are 4 bytes long, what happens when the following code is executed. main() { int x=0,*p=0; x++; p++; printf ("%d and %d\n",x,p); } a) b) c) d) 1 and 1 is printed 1 and 4 is printed 4 and 4 is printed causes an exception
56
C FAQs
CRANES VARSITY
17. Consider the following program 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) 45 and 55 e) 35 and 35
57
C FAQs
CRANES VARSITY
18. What is printed when the following program is compiled and executed? int func (int x) { if (x<=0) return(1); return func(x -1) +x; } main() { printf("%d\n",func(5)); } a) b) c) d) 19. 12 16 15 11
Consider the following of c code in two files which will be linked together and executed . a.c ___ int i; main() { i = 30; f1(); printf("%d\n",i) } b.c ___ static int f1() { i+=10; }
58
C FAQs
CRANES VARSITY
20. which of the following is true ? a) a.c will fail in compilation phase because f1() is not declared b) b.c will fail in compilation because the variable is not declared c) will print 30 d) will print 40 e) a & b 21. Consider the following program void funca (int *k) { *k += 20 } void funcb (int *x) { int m=*x,*n = &m; *n+=10; } main() { int var = 25,*varp=&var; funca(varp); *varp += 10; funcb(varp); printf ("%d and %d\n",var,*varp); } The values printed executed are: a) b) c) d) e) 20 20 45 55 35 and and and and and 55 45 55 55 35 when the above prg is complied and
59
C FAQs
CRANES VARSITY
22. Given the following statement enum day = { jan = feb = april, may }; What is the value of may? a)4 b)5 c)6 d)11 e)None 1, 4,
23. Find the output for the following C program main() { int x,j,k; j=k)=6; x=2; x=j*k; printf("%d", x); } 23. Find the output for the following C program int i=20,k=0; int main() { for(j=1; j<i; j=1+4*(i/j)) { k+=j<10?4:3; } printf("%d", k); }
60
C FAQs
CRANES VARSITY
24. Find the output for the following C program int i=10; main() { int i=20,n; for(n=0;n<=i;) { int i=10; i++; } printf("%d", i); } 25. Find the output for the following C program int Y=10; if(Y++>9 && Y++!=10 printf("%d", Y); else printf("%d", Y); } && Y++>10)
26. Find the output for the following C program f=(x>y)?x:y a)f points b)f points c)error to to max min of of x x and and y y
define f(x,y) x##y int main() { printf("%s",f("This","This is")); } a) This b)is c)ThisThis is d) None
61
C FAQs
CRANES VARSITY
27.
#define INC(x) x++ int main() { int a = 1; printf("%d",INC(a++)); } a) 1 b) 2 c) 3 d) Program won't compile
28. Assume the size of the int to be 4 #define NULL 0 int main() { int i=0,*p = NULL; i++;p++; printf("%d %d",i,p); } a) 1 4 b) 4 1 c) 4 4 d) 1 1 29. In ANSI C the output of the following C code segment is i = 5; a[5] = 5; a[6] = 11; a[7] = 12; a[i] = i++; printf("%d %d",a[5],a[6]); a) b) c) d) 6 11 5 11 5 6 None
62
C FAQs
CRANES VARSITY
31. int main() { int x=8; x = x > 10 ? x<<2 : x>7 ? printf("%d",x); } a) b) c) d) 1 2 4 None
x>>2 : x<<3;
32. The value of a and b after assignment are int a,b; a = (10,15); b = 10,15; a) b) c) d) 33. In a) b) c) d) 10 15 10 15 15 10 10 15
C arguments could be passed only by reference by value by name address & value
34. typedef struct { char * str; NODEF next; } * NODEF; a) b) c) d) works works works Won't only in C only in C++ in C & C++ compile in both C & C++
63
C FAQs
CRANES VARSITY
35. #define NULL 0 char * f(str,c) register char * str,c; { while(*str) if(*str++ == c) return str; return NULL; } a) the above function will always work b) won't work for c = NULL c) won't work if c is not found d) won't work if c is the first character 36. int main() { int x = 10, y = 6, z = 4; x=y==z; printf("%d",x); } a) 0 b) 1 c) 6 d) compiler Error e) None of the above 37. static functions in C could be called only a) b) c) d) after decleration after defination after decleration and before defination anywhere
64
C FAQs
CRANES VARSITY
38. void f(int *x,int y) { int temp; temp = *x; *x = y; y = temp; } void f1(int *x) { int *a,b; b = *x; a = &b; *a += 10; } int main() { int a =10,b=5; int *c; c = &a; f(c,b); f1(c); printf("%d %d",a,b); } a) 5 5 b)10 5 c)15 10 d)None
65
C FAQs
CRANES VARSITY
39. void f(int *x) { *x += 10; } void f1(int *y) { int temp,*pt; temp = *y; pt = &temp; *pt += 15; } int main() { int x = 10; f(&x); f1(&x); printf("%d",x); } a)35 b)25 c)20 d)10 40. expression in switch statement can not acc ept the data type a) int b) char c) short d) float 41. Which of the following is not a basic data type a) char b) char * c) float d) double
66
C FAQs
CRANES VARSITY
42. f(int a,int b) { if(a<b) return &a; return &b; } int main() { int a=10,b=5,*c; c = f(b,a); printf("%d",*c); } a) compile error b) 10 c) 5 d) Junk 43. Which one could be a substitute for strcpy() a) b) c) d) 44. main() { printf("%d",printf("HelloSoft")); } Output? 45. case 1: case 2: typedef struct { typedef struct { int a; char p; char b; int q; int d; char k; char e; int l; }A; }A; Assuming 'packing' is not enabled, which case will give an error of Sizeof(A) less. while(*str++ = *dtr++); while(*++str)*str = *++dtr; while(*++str = *++dtr); None
67
C FAQs
CRANES VARSITY
46. main() { int i=3; printf("%d %d %d",i++,i,++i); } 47. main() { int i = 10; int j,k = 5; int a[10]; for(j=0;j<10;j++) a[j]=(i+k)+(i*k); } Optimize the above code. 48. main() { int *p=0x100; int *q=0x100; int k=p*q; printf("%x\n",k); } Output ? 49. char* foo() { char str[4]; strcpy(str,"HelloSoft"); return str; } Output? 50. int a[10][20][30][40]; int *p; How to access an element of a using p?
68
C FAQs
CRANES VARSITY
51. int main() { int i=10; if(i>20) if(i==10) print("Hi"); else printf("Bye"); } Output ? 52. int i =10; main() { int i =20,n; for(n=0;n<=i;) { int i=10; i++; } printf("%d", i); } 53. Which of the following about the following two declaration is true i ) int *F() ii) int (*F)() Choice : a) Both are identical b) The first is a correct declaration and the second is wrong c) The first declaraion is a function returning a pointer to an integer and the second is a pointer to function returning int d) Both are different ways of declarin pointer to a function
69
C FAQs
CRANES VARSITY
54. What are the values printed by the following program? #define dprint(expr) printf(#expr "=%d\n",expr) int main() { int x=7; int y=3; dprintf(x/y); } Choice: a) #2 = 2 b) expr=2 c) x/y=2 d) none 55. Which of the following is true of the following program main() { char *c; int *p; c =(char *)malloc(100); ip=(int *)c; free(ip); } Is the above code correct? 56. Whats the output of the following. main() { int i; char *p; i=0X89; p=(char *)i; p++; printf("%x\n",p); } 57. Which of the following is not a ANSI C language keyword? a)return b)auto c)_Bool d)function
70
C FAQs
CRANES VARSITY
58. When an array is passed as parameter to a function, which of the following statement is correct choice: a) The function can change values in the original array b) In C parameters are passed by value. The funciton cannot change the original value in the array c) It results in compilation error when the function tries to access the elements in the array d) Results in a run time error when the funtion tries to access the elements in the array. 59. What is the value assigned to the variable X if b is 7 ? X = b>8 ? b <<3 : b>4 ? b>>1:b; a) b) c) d) e) 7 28 3 14 None
60. int *data[10]; what does the variable data denotes? 61. int main() { int a[]={10,20,30,40,50}; (void)fun(a+1); } int fun(int *p) { for(int i=1;i<=3;i++) printf("%d",*(p+i)); } If this program is compiled as per ANSI-C99, whats the Output? 62. enum day { saturday, sunday=3, monday, tuesday }; value of saturday,tuesday.
71
C FAQs
CRANES VARSITY
63. enum day { saturday, sunday=-1, monday, tuesday }; int x=monday; value of x? 64. #define ADD(X,Y) X+Y main() { #undef ADD(X,Y) fun(); } fun() { int y=ADD(3,2); printf("%d",y); } o/p? 65. #define ADD(X,Y) X+Y main() { #undef ADD; fun(); } fun() { #if !defined(ADD) define ADD(X+Y) X*Y int y=ADD(3,2); printf("%d",y); } o/p?
72
C FAQs
CRANES VARSITY
66. main( ) { int x,y, z; x=2; y=5; z= x+++y; printf("%d %d %d", x, y z); } a)3 5 7 b)option 2 c)option 3 d)option 4 67. # define swap(a,b) temp=a; a=b; b=temp; main( ) { int i, j, temp; i=5; j=10; temp=0; if( i > j) swap( i, j ); printf( "%d %d %d", i, j, temp); } 68. Which is a good way of representing varaibles in recursion a) local variables b) static varaibles c) global variables 69. Given the following c program func() { static int i = 10; printf("%d",i); i++; } main() { func(); func(); } What is the value of i printed at last?
73
C FAQs
CRANES VARSITY
Part I
1. (nil) 2. 1 3. 1 2 3
ANSWERS
4. Define all of the above 5. 1 2 4 4 4 4 6. 8 8 7. *, --, ++ 8. Sunil Gavaskar 150.0 9. 11 10. Compilation error. 11. It goes up by the size of a pointer 12. Garbage 13. free( nPtr->firstname ); free( nPtr->lastname ); free(nPtr); 14. void swap(float **, float **); 15. 1 2 4 16. Keep the faith Garbage 17. 1 2 3 18. 0x0000 19. 4 4 4 20. 2 21. 2 22. 1 23. 3 24. Its a compound literal. num is pointer to the compound literal of type integer array. *p = 1 *q = 5 i = 10
74
C FAQs
CRANES VARSITY
(q p) = 1 25. Array of 10 pointers to function which take two pointers to char as argument returning pointer to int. 26. Sizeof(a)/sizeof(char *) = 16/4 = 4. 27. 2 3 (Pointers in swap functions are swapped, not the values!) 28. Ans. %s is string is string 29. Runtime error 30. UINT_MAX 31. 100 200 32. 8 33. 4 4 34. array[0]='Y' array[1]='E' array[2]='S' array[3]= '\0' 35. Need not return any value. 36. 7 37. They are global. 38. 15 39. b 40. 1 41. 2 42. *(*ab+5) 43. Stack 44. return(1, 2, 3); 45. const char * 46. 4 47. *(*(a+2)+4) 48. (b)
75
C FAQs
CRANES VARSITY
49. Compiler Error 50. An empty String 51. 57 94 52. 12 1 1 53. 11 16 54. Ony one time 55. 45 56. 43.33 57. Compiler Error 58. Error: cast to union type from type not present in union 59. A new line is printed 60. 5 61. Four is Z 62. 5 20 5 63. 1000 6.33 64. 4.50 4.57 13.57 65. Floating point exception 66. Numbers are -25 25 67. invalid lvalue in assignment 68. Sum = 39 69. 6 70. 5 5 5 5 5 71. 100 99 72. (100,C,-5233182629565562780) 73. Cant modify read-only location 74. i = Garbage 75. 3 76. none 77. Segmentation fault 78. "file1.h only".
76
C FAQs
CRANES VARSITY
79. Ans : 8. if integer takes 2 byte. 80. Ans : Compilation error. Since you can't assign a String Constant to Char variable. 81. Compiler Error: invalid lvalue assignment 82. return ( (a > b) ? a : b ); 83. b) 84. c) 85. a) 86. a) 87. c 88. b 89. Warning 90. b 91. c 92. c 93. d 94. b 95. a 96. b 97. c 98. All 99. 14 100. a 101. b 102. b 103. a 104. c 105. b 106. ii 107. 2 arg1
77
C FAQs
CRANES VARSITY
108. b 109. a 110. d 111. c 112. a 113. d 114. d 115. c 116. c 117. d 118. c 119. b 120. c 121. a 122. a 123. Error inside the structure 124. x is array of function returning pointer to int (Not possible to implement) 125. Wrong 126. 4 127. Ans. no error. But It will over writes on same file. 128. A 129. 10 5 0 130. 10 5 3 3 131. 12 132. 13 11 11 133. Compiler Error 134. 12..6..11 135. left is 10, right is 11, front is 100, back is 101
78
C FAQs
CRANES VARSITY
136. Compiler Error: invalid lvalue in assignment 137. u, ets and Brickbats, Bouquets and Brickbats u 138. Bangalore Delhi Delhi 139. Segmentation fault 140. 2
79
C FAQs
CRANES VARSITY
Part II
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. b b d d b d c d d c b c a a b b b c d c c
ANSWERS
C FAQs
CRANES VARSITY
30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
main() { int i=10; int j,k=5; int prod = i * k, sum = i + k; int a[10];
81
C FAQs
CRANES VARSITY
for(j=0;j<10;j++) a[j]=sum+prod; } 48. Warning 49. Warning : the function returns the address of local variable. 50. int a[10][20][30][40], *p = a[0][0][0];and *p = 100; places the value 100 into the 0th element of 0th 1D array of 0th 2D array int of 0th 3D array.For eg. as below: threeD[2][3][4] looks like 0 0 0 1 2 1 2 3
0 1 1 2 Observations:
threeD
is
the
synonym
for
&threeD[0]
C FAQs
CRANES VARSITY
the memory allocated 56. 57. 58. 59. 60. 61. 62. 63. 64. fun 65. C Preprocessor Error : + may not appear in 0X8A d a c data is an array of 10 pointer to int 30 40 50 0 5 0 Linker Error: undefined reference to ADD in
69.