- Details
- Last Updated: Tuesday, 10 January 2017 Hits: 55806
What is a pointer? A pointer is a special variable, which stores the memory address. 3) Explain what is the use of void main in C language? To run the C application it involves two steps, the first step is a compilation where conversion of C code to object code take place. While second step includes linking, where combining of object code from the programmer and from libraries takes place. Here is a list of Top 50 R Interview Questions and Answers you must prepare. This blog covers all the important questions which can be asked in your interview on R. These R interview questions will give you an edge in the burgeoning analytics market where global and local enterprises, big or small, are looking for professionals with certified expertise in R.
1) What will be the output of printf('%d')?
The first argument which contains strings to be printed or format specifiers is mandatory. Other than that, the arguments are optional.So, in case of only %d used without any variable in printf, the compiler may generate warning but will not cause any error. In this case, the correct offset based on %d is calculated by compiler but as the actual data variable is not present in that calculated location of memory, the printf will fetch integer size value and print whatever is there (which is garbage value to us).
2) What is the return values of printf and scanf?The printf function upon successful return, returns the number of characters printed in output device. So, printf('A') will return 1. The scanf function returns the number of input items successfully matched and assigned, which can be fewer than the format specifiers provided. It can also return zero in case of early matching failure.
3) How to free a block of memory previously allocated without using free?
If the pointer holding that memory address is passed to realloc with size argument as zero (like realloc(ptr, 0)) the the memory will be released.
4) How can you print a string containing '%' in printf?
There are no escape sequence provided for '%' in C. To print '%' one should use '%%', like -
5) What is use of %n in printf()?
Ans: According to man page 'the number of characters written so far is stored into the integer. indicated by the int * (or variant) pointer argument.'. Meaning if we use it in printf, it will get the number of characters already written until %n is encountered and this number will stored in the variable provided. The variable must be an integer pointer.
Above program will print 'Hello world 5 ' as Hello is 5 letter.
The first argument which contains strings to be printed or format specifiers is mandatory. Other than that, the arguments are optional.So, in case of only %d used without any variable in printf, the compiler may generate warning but will not cause any error. In this case, the correct offset based on %d is calculated by compiler but as the actual data variable is not present in that calculated location of memory, the printf will fetch integer size value and print whatever is there (which is garbage value to us).
2) What is the return values of printf and scanf?The printf function upon successful return, returns the number of characters printed in output device. So, printf('A') will return 1. The scanf function returns the number of input items successfully matched and assigned, which can be fewer than the format specifiers provided. It can also return zero in case of early matching failure.
3) How to free a block of memory previously allocated without using free?
If the pointer holding that memory address is passed to realloc with size argument as zero (like realloc(ptr, 0)) the the memory will be released.
4) How can you print a string containing '%' in printf?
There are no escape sequence provided for '%' in C. To print '%' one should use '%%', like -
5) What is use of %n in printf()?
Ans: According to man page 'the number of characters written so far is stored into the integer. indicated by the int * (or variant) pointer argument.'. Meaning if we use it in printf, it will get the number of characters already written until %n is encountered and this number will stored in the variable provided. The variable must be an integer pointer.
Above program will print 'Hello world 5 ' as Hello is 5 letter.
6) Swap two variables without using any control statement ?
We can swap variable using 2 methods. First method is as given below
Second method to swap variables is given below
7) Consider the two structures Struct A and Struct B given below. What will be size of these structures?
struct A
{
unsigned char c1 : 3;
unsigned char c2 : 4;
unsigned char c3 : 1;
}a;
struct A
{
unsigned char c1 : 3;
unsigned char : 0;
unsigned char c2 : 4;
unsigned char c3 : 1;
}a;
The size of the structures will be 1 and 2. In case of first structure, the members will be assigned a byte as follows -
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
c3 | c2 | c2 | c2 | c2 | c1 | c1 | c1 |
But in case of second structure -
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
c3 | c2 | c2 | c2 | c2 | c1 | c1 | c1 |
The :0 field (0 width bit field) forces the next bit width member assignment to start from the next nibble. By doing so, the c3 variable will be assigned a bit in the next byte, resulting the size of the structure to 2.
8) How to call a function before main()?
To call a function pragma startup directive should be used. Pragma startup can be used like this -
The output of the above program will be -
But this pragma directive is compiler dependent. Gcc does not support this. So, it will ignore the startup directive and will produce no error. But the output in that case will be -
9) What is rvalue and lvalue?
You can think lvalue as a left side operant in an assignment and rvalue is the right. Also, you can remember lavlue as location. So, the lvalue means a location where you can store any value. Say, for statement i = 20, the value 20 is to be stored in the location or address of the variable i. 20 here is rvalue. Then the 20 = I, statement is not valid. It will result in compilation error 'lvalue required' as 20 does not represent any location.
10)How to pack a structure?
We can pack any structure using __attribute__((__packed__)) in gcc. Example -
We can also use, pragma pack like this -
In both cases the size of the structure will be 5. But remember, the pragma pack and the other method mentioned, both are compiler dependent.
C Language Interview Questions And Answers For Freshers Pdf Format
11) How to convert a string to integer value?
We can convert a string to integer in two ways. Method 1:
Method 2:
12) Print the output of the following switch case program?
Output of this program will be 3. The position of the default is before case 1. So, even if there is no break after case 3, the execution will just exit switch case and it will not go to default case.
13) How to prevent same header file getting included multiple times?
We can use ifndef and define preprocessors. Say the header file is hdrfile.h, then we can write the header file like -
The ifndef will check whether macro HDRFILE_H_ is defined or not. If it is not defined, it will define the macro. From next time onward the statements inside ifndef will not be included.
14) Which is better #define or enum?
- Enum values can be automatically generated by compiler if we let it. But all the define values are to be mentioned specifically.
- Macro is preprocessor, so unlike enum which is a compile time entity, source code has no idea about these macros. So, the enum is better if we use a debugger to debug the code.
- If we use enum values in a switch and the default case is missing, some compiler will give a warning.
- Enum always makes identifiers of type int. But the macro let us choose between different integral types.
- Macro does not specifically maintain scope restriction unlike enum. For example -
Above program will print -
C Language Interview Questions And Answers For Freshers Pdf Free Download
15) Print the output of this pointer program?
C Language Interview Questions And Answers For Freshers Pdf Sample
The program will crash. The pointer p points to string 'Pointers'. But the string in constant and C will not allow to change its values. Forcibly doing so, like we did it, will cause crash of the program.
C Language Interview Questions And Answers For Freshers Pdf Answers
- Prev
- 1