0% found this document useful (0 votes)
86 views4 pages

C Interview Questions and Answers: What Is C Language?

The C programming language was developed in the 1970s by Ken Thompson and Dennis Ritchie for use with UNIX. It has since spread to many operating systems and is one of the most widely used languages, prized for its efficiency. Common C functions like printf(), malloc(), and calloc() are discussed along with their differences and examples. Linked lists and unions are also covered with examples to check for circular lists and the output of a union program. String permutations are generated with a recursive function.

Uploaded by

bilo044
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views4 pages

C Interview Questions and Answers: What Is C Language?

The C programming language was developed in the 1970s by Ken Thompson and Dennis Ritchie for use with UNIX. It has since spread to many operating systems and is one of the most widely used languages, prized for its efficiency. Common C functions like printf(), malloc(), and calloc() are discussed along with their differences and examples. Linked lists and unions are also covered with examples to check for circular lists and the output of a union program. String permutations are generated with a recursive function.

Uploaded by

bilo044
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

C Interview Questions And Answ ers

[C Frequently

Asked Questions ,C FAQ ]

What is C language?
The C programming language is a standardized programming language developed in
the early 1970s by Ken Thompson and Dennis Ritchie for use on the UNIX
operating system. It has since spread to many other operating systems, and is one
of the most widely used programming languages. C is prized for its efficiency, and is
the most popular programming language for writing system software, though it is
also used for writing applications. ...
printf() Function

What is the output of printf("%d")?


1. When we write printf("%d",x); this means compiler will print the value of x. But
as here, there is nothing after %d so compiler will show in output window
garbage value.
2. When we use %d the compiler internally uses it to access the argument in the
stack (argument stack). Ideally compiler determines the offset of the data variable
depending on the format specification string. Now when we write printf("%d",a) then
compiler first accesses the top most element in the argument stack of the printf
which is %d and depending on the format string it calculated to offset to the actual
data variable in the memory which is to be printed. Now when only %d will be
present in the printf then compiler will calculate the correct offset (which will be the
offset to access the integer variable) but as the actual data object is to be printed is
not present at that memory location so it will print what ever will be the contents of
that memory location.
3. Some compilers check the format string and will generate an error without the
proper number and type of arguments for things like printf(...) and scanf(...).

malloc() Function- What is the difference between "calloc(...)" and


"malloc(...)"?
1. calloc(...) allocates a block of memory for an array of elements of a certain size.
By default the block is initialized to 0. The total number of memory allocated will be
(number_of_elements * size).
malloc(...) takes in only a single argument which is the memory required in bytes.
malloc(...) allocated bytes of memory and not blocks of memory like calloc(...).
2. malloc(...) allocates memory blocks and returns a void pointer to the allocated
space, or NULL if there is insufficient memory available.
calloc(...) allocates an array in memory with elements initialized to 0 and returns a

pointer to the allocated space. calloc(...) calls malloc(...) in order to use the C++
_set_new_mode function to set the new handler mode.

printf() Function- What is the difference between "printf(...)" and "sprintf(...)"?


sprintf(...) writes data to the character array whereas printf(...) writes data to the
standard output device.

Compilation How to reduce a final size of executable?


Size of the final executable can be reduced using dynamic linking for libraries.

Linked Lists -- Can you tell me how to check whether a linked list is circular?
Create two pointers, and set both to the start of the list. Update each as follows:

while (pointer1) {
pointer1 = pointer1->next;
pointer2 = pointer2->next;
if (pointer2) pointer2=pointer2->next;
if (pointer1 == pointer2) {
print ("circular");
}
}
If a list is circular, at some point pointer2 will wrap around and be either at the
item just before pointer1, or the item before that. Either way, its either 1 or 2 jumps
until they meet.

"union" Data Type What is the output of the following program? Why?
#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);
}

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.
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);
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy