• +91 9723535972
  • info@interviewmaterial.com

C Interview Questions and Answers

C Interview Questions and Answers

Question - 11 : - "union" Data Type What is the output of the following program? Why?

Answer - 11 : - #include main() { typedef union { int a; char b[10]; float c; } Union; Union x,y = {100}; x.a = 50; strcpy(x.b,"hello"); x.c = 21.50; printf("Union x : %d %s %f n",x.a,x.b,x.c); printf("Union y : %d %s %f n",y.a,y.b,y.c); }

Question - 12 : - String Processing --- Write out a function that prints out all the permutations of a string. For example, abc would give you abc, acb, bac, bca, cab, cba.

Answer - 12 : - void PrintPermu (char *sBegin, char* sRest) { int iLoop; char cTmp; char cFLetter[1]; char *sNewBegin; char *sCur; int iLen; static int iCount; iLen = strlen(sRest); if (iLen == 2) { iCount++; printf("%d: %s%s\n",iCount,sBegin,sRest); iCount++; printf("%d: %s%c%c\n",iCount,sBegin,sRest[1],sRest[0]); return; } else if (iLen == 1) { iCount++; printf("%d: %s%s\n", iCount, sBegin, sRest); return; } else { // swap the first character of sRest with each of // the remaining chars recursively call debug print sCur = (char*)malloc(iLen); sNewBegin = (char*)malloc(iLen); for (iLoop = 0; iLoop < iLen; iLoop ++) { strcpy(sCur, sRest); strcpy(sNewBegin, sBegin); cTmp = sCur[iLoop]; sCur[iLoop] = sCur[0]; sCur[0] = cTmp; sprintf(cFLetter, "%c", sCur[0]); strcat(sNewBegin, cFLetter); debugprint(sNewBegin, sCur+1); } } } void main() { char s[255]; char sIn[255]; printf("\nEnter a string:"); scanf("%s%*c",sIn); memset(s,0,255); PrintPermu(s, sIn); }

Question - 13 : - What will print out? What will print out? main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%s\n”,p2); } The pointer p2 value is also increasing with p1 . *p2++ = *p1++ means copy value of *p1 to *p2 , then increment both addresses (p1,p2) by one , so that they can point to next address . So

Answer - 13 : - empty string.

Question - 14 : - What will be printed as the result of the operation below: main() { int x=20,y=35; x=y++ + x++; y= ++y + ++x; printf(“%d%d\n”,x,y) ; }

Answer - 14 : - 5794

Question - 15 : - What will be printed as the result of the operation below: main() { int x=5; printf(“%d,%d,%d\n”,x,x<<2,>>2) ; }

Answer - 15 : - 5,20,1

Question - 16 : - What will be printed as the result of the operation below: #define swap(a,b) a=a+b;b=a-b;a=a-b; void main() { int x=5, y=10; swap (x,y); printf(“%d %d\n”,x,y) ; swap2(x,y); printf(“%d %d\n”,x,y) ; } int swap2(int a, int b) { int temp; temp=a; b=a; a=temp; return 0; } as x

Answer - 16 : - 10, 5

Question - 17 : - What will be printed as the result of the operation below: main() { char s1[]=“exam”; char s2[]= “material”; printf(“%s”,s1) ; }

Answer - 17 : - exam

Question - 18 : - The following variable is available in file1.c, who can access it?: static int average;

Answer - 18 : - all the functions in the file1.c can access the variable.

Question - 19 : - What will be the result of the following code? #define TRUE 0 // some code while(TRUE) { // some code }

Answer - 19 : - This will not go into the loop as TRUE is defined as 0.

Question - 20 : - What will be printed as the result of the operation below: int x; int modifyvalue() { return(x+=10); } int changevalue(int x) { return(x+=1); } void main() { int x=10; x++; changevalue(x); x++; modifyvalue(); printf("First output:%d\n",x); x++; changeval

Answer - 20 : - 12 , 13 , 13


NCERT Solutions

 

Share your email for latest updates

Name:
Email:

Our partners