Dear readers, these C Programming Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of C Programming. As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer −
It’s a pointer variable which can hold the address of another pointer variable. It de-refers twice to point to the data held by the designated pointer variable.
Eg: int x = 5, *p=&x, **q=&p;
Therefore ‘x’ can be accessed by **q.
Both allocates memory from heap area/dynamic memory. By default calloc fills the allocated memory with 0’s.
By default every local variable of the function is automatic (auto). In the below function both the variables ‘i’ and ‘j’ are automatic variables.
void f() { int i; auto int j; }
NOTE − A global variable can’t be an automatic variable.
Break can appear only with in the looping control and switch statement. The purpose of the break is to bring the control out from the said blocks.
for(expression-1;expression-2;expression-3) { //set of statements }
When control reaches for expression-1 is executed first. Then following expression-2, and if expression-2 evaluates to non-zero ‘set of statements’ and expression-3 is executed, follows expression-2.
If a header file is included with in < > then the compiler searches for the particular header file only with in the built in include path. If a header file is included with in “ “, then the compiler searches for the particular header file first in the current working directory, if not found then in the built in include path.
Get the two’s compliment of the same positive integer. Eg: 1101 (-5)
Step-1 − One’s compliment of 5 : 1010
Step-2 − Add 1 to above, giving 1101, which is -5
A static local variables retains its value between the function call and the default value is 0. The following function will print 1 2 3 if called thrice.
void f() { static int i; ++i; printf(“%d “,i); }
If a global variable is static then its visibility is limited to the same source code.
A pointer pointing to nothing is called so. Eg: char *p=NULL;
Used to resolve the scope of global symbol.
Eg: main() { extern int i; Printf(“%d”,i); } int i = 20;
Prints the formatted output onto the character array.
The starting address of the array is called as the base address of the array.
If a variable is used most frequently then it should be declared using register storage specifier, then possibly the compiler gives CPU register for its storage to speed up the look up of the variable.
S++, as it is single machine instruction (INC) internally.
A pointer initially holding valid address, but later the held address is released or freed. Then such a pointer is called as dangling pointer.
It is used to alias the existing type. Also used to simplify the complex declaration of the type.
The expression appearing on right side of the assignment operator is called as rvalue. Rvalue is assigned to lvalue, which appears on left side of the assignment operator. The lvalue should designate to a variable not a constant.
The parameters sent to the function at calling end are called as actual parameters while at the receiving of the function definition called as formal parameters.
Yes, it can be but cannot be executed, as the execution requires main() function definition.
When we do not know what type of the memory address the pointer variable is going to hold, then we declare a void pointer for such.
Every local variable by default being an auto variable is stored in stack memory.
A structure containing an element of another structure as its member is referred so.
Declaration associates type to the variable whereas definition gives the value to the variable.
No, the header file only declares function. The definition is in library which is linked by the linker.
Dividing the program in to sub programs (modules/function) to achieve the given task is modular approach. More generic functions definition gives the ability to re-use the functions, such as built-in library functions.
A C program consists of various tokens and a token is either a keyword, an identifier, a constant, a string literal, or a symbol.
Preprocessor is a directive to the compiler to perform certain things before the actual compilation process begins.
Can be used to input integer in all the supported format.
Escape it using \ (backslash).
Yes, if it is not appearing as the last case and if we do not want the control to flow to the following case after default if any.
If the structure/union variable is a pointer variable, to access structure/union elements the arrow operator is used.
We can create integer structure members of differing size apart from non-standard size using bit fields. Such structure size is automatically adjusted with the multiple of integer size of the machine.
The arguments which we pass to the main() function while executing the program are called as command line arguments. The parameters are always strings held in the second argument (below in args) of the function which is array of character pointers. First argument represents the count of arguments (below in count) and updated automatically by operating system.
main( int count, char *args[]) { }
- Call by value − We send only values to the function as parameters. We choose this if we do not want the actual parameters to be modified with formal parameters but just used.
- Call by reference − We send address of the actual parameters instead of values. We choose this if we do want the actual parameters to be modified with formal parameters.
It compares two strings by ignoring the case.
Opens a file both for reading and writing. If a file is not existing it creates one, else if the file is existing it will be over written.
It cannot be used on constants.
It cannot be used on variable which are declared using register storage class.
No, it is a structure defined in stdio.h.
Error, It is invalid that either of the operands for the modulus operator (%) is a real number.
There is only one operator and is conditional operator (? : ).
goto
A pointer holding the reference of the function is called pointer to a function. In general it is declared as follows.
T (*fun_ptr) (T1,T2…); Where T is any date type.
Once fun_ptr refers a function the same can be invoked using the pointer as follows.
fun_ptr(); [Or] (*fun_ptr)();
Comma operator can be used to separate two or more expressions.
Eg: printf(“hi”) , printf(“Hello”);
A null statement is no executable statements such as ; (semicolon).
Eg: int count = 0; while( ++count<=10 ) ;
Above does nothing 10 times.
A function’s definition prefixed with static keyword is called as a static function. You would make a function static if it should be called only within the same source code.
Opiton –lm to be used as > gcc –lm <file.c>
Backward slash (\) is used.
E.g. #define MESSAGE "Hi, \ Welcome to C"
Ellipses (…) is used for the same. A general function definition looks as follows
void f(int k,…) { }
char *s1 = "hello",*s2 = "welcome"; strcat(s1,s2);
s1 points to a string constant and cannot be altered.
realloc().
Array is collection of similar data items under a common name.
Enumerations are list of integer constants with name. Enumerators are defined with the keyword enum.
A variable is the name storage.
Dennis M Ritchie.
B
American National Standards Institute.
sizeof
Yes, with loss of fractional part.
No, it contains invalid octal digits.
Return a value 1 if the relation between the expressions is true, else 0.
If both the corresponding bits are same it gives 0 else 1.
A loop executing repeatedly as the loop-expression always evaluates to true such as
while(0 == 0) { }
Variables belonging to different scope can have same name as in the following code snippet.
int var; void f() { int var; } main() { int var; }
Local variables get garbage value and global variables get a value 0 by default.
Pointer by holding array’s base address can access the array.
The only two permitted operations on pointers are
- Comparision ii) Addition/Substraction (excluding void pointers)
It is the count of character excluding the ‘\0’ character.
strcat() form the header string.h
Arrow (->) operator.
stdin in a pointer variable which is by default opened for standard input device.
fclose().
It be used to undefine an existing macro definition.
A structure can be defined of collection of heterogeneous data items.
__STDC__
Typecasting is a way to convert a variable/constant from one type to another type.
Function calling itself is called as recursion.
free().
Program name.
On failure fopen() returns NULL, otherwise opened successfully.
Linker generates the executable file.
Ideally it is 32 characters and also implementation dependent.
By default the functions are called by value.
Function declaration is optional if the same is invoked after its definition.
At the time of preprocessing.
No, only one value can be returned to the caller.
A pointer which is not allowed to be altered to hold another address after it is holding one.
Void
Yes, w.r.t the order of structure elements only.
There is no such. We need to compare element by element of the structure variables.
Strstr()
In first place they are non-standard keywords. A near pointer can access only 2^15 memory space and far pointer can access 2^32 memory space. Both the keywords are implementation specific and are non-standard.
No, we cannot.
for – Loop.
A value which cannot be modified is called so. Such variables are qualified with the keyword const.
No, we need to use both the keyword ‘struct’ and the tag name.
Yes, possibly the program doing nothing.
Yes, any user defined function can call any function.
Brain Kernighan
What is Next ?
Further you can go through your past assignments you have done with the subject and make sure you are able to speak confidently on them. If you are fresher then interviewer does not expect you will answer very complex questions, rather you have to make your basics concepts very strong.
Second it really doesn't matter much if you could not answer few questions but it matters that whatever you answered, you must have answered with confidence. So just feel confident during your interview. We at CrackMNC wish you best luck to have a good interviewer and all the very best for your future endeavor. Cheers :-)