Jun 19, 2012

C Aptitude Questions and answers with explanation

C Aptitude 21
C program is one of most popular programming language which is used for core level of coding across the board. C program is used for operating systems, embedded systems, system engineering, word processors,hard ware drivers, etc.

In this site, we have discussed various type of C programs till date and from now on, we will move further by looking at the C aptitude questions.

In the coming days, we will post C aptitude questions, answers and explanation for interview preparations.

The C aptitude questions and answers for those questions along with explanation for the interview related queries.

We hope that this questions and answers series on C program will help students and freshers who are looking for a job, and also programmers who are looking to update their aptitude on C program.
Some of the illustrated examples will be from the various companies, and IT industry experts.
Read more about C Programming Language . and read the C Programming Language (2nd Edition). by K and R.
Predict the output or error(s) for the following:


C aptitude 21.1
 char *Fun1()
            {
            char temp[ ] = “example";
            return temp;
            }
            char *Fun2()
            {
            char temp[ ] = {‘e’, ‘x’,’a’,’m’,’p’,’l’,'e'};
            return temp;
            }
            int main()
            {
            puts(Fun1());
            puts(Fun2());
            }


Answer: Garbage values.

Explanation: Both the functions suffer from the problem of dangling pointers. In Fun1() temp is a character array and so the space for it is allocated in heap and is initialized with character string “string”. This is created dynamically as the function is called, so is also deleted dynamically on exiting the function so the string data is not available in the calling function main() leading to print some garbage values. The function Fun2() also suffers from the same problem but the problem can be easily identified in this case.

C aptitude 21.2
   char *strexp()
            {
            char *temp = "example string";
            return temp;
            }
            int main()
            {
            puts(strexp);
            }
Answer: example string

Explanation: The character constants are stored in code/data area and not allocated in stack, so this doesn’t lead to dangling pointers.

C aptitude 21.3
     main()
{
            int i=0;
            while(+(+i--)!=0)
                        i-=i++;
            printf("%d",i);
}
Answer: -1

Explanation: Unary + is the only dummy operator in C. So it has no effect on the expression and now the while loop is, while(i--!=0) which is false and so breaks out of while loop. The value –1 is printed due to the post-decrement operator.

Read more Similar C Programs 
 
Learn C Programming
C Aptitude
C Interview questions
 
You can easily select the code by double clicking on the code area above.

To get regular updates on new C programs, you can

You can discuss these programs on our Facebook Page. Start a discussion right now,

our page!

Share this program with your Facebook friends now! by liking it


(you can send this program to your friend using this button)

Like to get updates right inside your feed reader? Grab our feed!




To browse more C Programs visit this link