The 'C' programming language was originally developed for and implemented on the UNIX operating system, on a DEC PDP-11 by Dennis Ritchie. One of the best features of C is that it is not tied to any particular hardware or system. This makes it easy for a user to write programs that will run without any changes on practically all machines. C is often called a middle-level computer language as it combines the elements of high-level languages with the functionalism of assembly language.
C allows the manipulation of bits, bytes and addresses- the basic elements with which the computer functions. Another good point about C is its portability which makes it possible to adapt software written for one type of computer to another. C was created, influenced, and field tested by working programmers. The end result is that C gives the programmer what the programmer wants. C offers the speed of assembly language and the extensibility of FORTH, but few of the restrictions of Pascal and Modula-2.
C Language Interviews are getting tough these days as the technology grows faster. To get through the C Language interview one needs to update him/herself in a regular manner. Having said that, just before the interview, it is very important to have a quick glance of the reputed C Language questions and answers to make yourself comfortable during the interview process. This is where DoAnswers.com helps you in renewing yourself on C Language and various other technologies interview preparation.
11. Prograon to convert an integer to binary
char *uitob(char *s, unsigned int i) { char *cp = s; unsigned int bit_mask = (UINT_MAX - (UINT_MAX >> 1)); do { *cp++ = (i & bit_mask) ? ?1' : ?0'; } while (bit_mask >>= 1); *cp = ??; return s; }
12. What are Templates
C++ Templates allow u to generate families of functions or classes that can operate on a variety of different data types, freeing you from the need to create a separate function or class for each type. Using templates, u have the convenience of writing a single generic function or class definition, which the compiler automatically translates into a specific version of the function or class, for each of the different data types that your program actually uses. Many data structures and algorithms can be defined independently of the type of data they work with. You can increase the amount of shared code by separating data-dependent portions from data-independent portions, and templates were introduced to help you do that.
13. What is Difference Between C/C++
C does not have a class/object concept. C++ provides data abstraction, data encapsulation, Inheritance and Polymorphism. C++ supports all C syntax. In C passing value to a function is "Call by Value" whereas in C++ its "Call by Reference" File extension is .c in C while .cpp in C++.(C++ compiler compiles the files with .c extension but C compiler can not!) In C structures can not have contain functions declarations. In C++ structures are like classes, so declaring functions is legal and allowed. C++ can have inline/virtual functions for the classes. c++ is C with Classes hence C++ while in c the closest u can get to an User defined data type is struct and union
14. What is Operator overloading
When an operator is overloaded, it takes on an additional meaning relative to a certain class. But it can still retain all of its old meanings. Examples: 1) The operators >> and << may be used for I/O operations because in the header, they are overloaded. 2) In a stack class it is possible to overload the + operator so that it appends the contents of one stack to the contents of another. But the + operator still retains its original meaning relative to other types of data.
15. What is Polymorphism
'Polymorphism' is an object oriented term. Polymorphism may be defined as the ability of related objects to respond to the same message with different, but appropriate actions. In other words, polymorphism means taking more than one form. Polymorphism leads to two important aspects in Object Oriented terminology - Function Overloading and Function Overriding. Overloading is the practice of supplying more than one definition for a given function name in the same scope. The compiler is left to pick the appropriate version of the function or operator based on the arguments with which it is called. Overriding refers to the modifications made in the sub class to the inherited methods from the base class to change their behavior.
16. What is the difference between run time binding and compile time binding?
Dynamic Binding : The address of the functions are determined at runtime rather than @ compile time. This is also known as "Late Binding". Static Binding : The address of the functions are determined at compile time rather than @ run time. This is also known as "Early Binding"
17. What's wrong with the call fopen('c:\newdir\file.dat', 'r')?
as c:\\newdir\file.dat contains escape charatcer i.e. ?\? which internally means to escape character following ?\? hence we need to provide double back slash ?\\?.
18. Why doesn't C have nested functions?
C Compilers do not allow class types so they do not support internal function reference table like a C++ compiler does. Instead, you can use a structure having members function pointers. Older C++ compilers use to transform the C++ sources to C using this isomorphic transformation.
19. Why doesn't the following code give the desired result?
int x = 3000, y = 2000 ; long int z = x * y ; Here the multiplication is carried out between two ints x and y, and the result that would overflow would be truncated before being assigned to the variable z of type long int. However, to get the correct output, we should use an explicit cast to force long arithmetic as shown below: long int z = ( long int ) x * y ; Note that ( long int )( x * y ) would not give the desired effect.
20. Why doesn't the following statement work?
char str[ ] = "Hello" ; strcat ( str, '!' ) ; The string function strcat( ) concatenates strings and not a character. The basic difference between a string and a character is that a string is a collection of characters, represented by an array of characters whereas a character is a single character. To make the above statement work writes the statement as shown below: strcat ( str, "!" ) ;