0% found this document useful (0 votes)
205 views12 pages

C Interview Questions and Answers For Experienced

C Interview Questions and Answers for Experienced

Uploaded by

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

C Interview Questions and Answers For Experienced

C Interview Questions and Answers for Experienced

Uploaded by

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

9/2/2016 C Interview Questions and Answers for Experienced

Ads by Google    1. C Programming PDF    2. C++ PDF    3. Questions Answers    4. Float Switch

Advanced C Interview Questions and Answers for Experienced
    1 Votes

Top 60 complex and advanced C Interview Questions and Answers for Experienced
programmers covering all aspects of C programming with detailed explanations.

1) What will be the output of printf(“%d”)?

The ideal form of printf is printf("%d",x); where x is an integer variable. Executing this
statement will print the value of x. But here, there is no variable is provided after %d so
compiler will show garbage value. The reason is a bit tricky.

When access specifiers are used in printf function, the compiler internally uses those
specifiers to access the arguments in the argument stack. In ideal scenario compiler
determines the variable offset based on the format specifiers provided. If we write
printf("%d", x) then compiler first accesses the first specifier which is %d and depending
on the that the offset of variable x in the memory is calculated. But the printf function
takes variable arguments.

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

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 1/12
9/2/2016 C Interview Questions and Answers for Experienced

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 ­

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 2/12
9/2/2016 C Interview Questions and Answers for Experienced

printf(“He got 90%% marks in math”);

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.

#include<stdio.h>
main()
{
 int c;
printf("Hello%n world ",&c);
 printf("%d", c);
}

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

#include <stdio.h>
main()
{
 int a = 6;
 int b = 10;
 a = a + b;
 b = a ­ b;

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 3/12
9/2/2016 C Interview Questions and Answers for Experienced

 a = a ­ b;
 printf("a: %d, b: %d\n", a, b);
}

Second method to swap variables is given below

#include <stdio.h>
main()
{
 int a = 6;
 int b = 10;
 a ^= b;
 b ^= a;
 a ^= b;
 printf("a: %d, b: %d\n", a, b);
}

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;
http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 4/12
9/2/2016 C Interview Questions and Answers for Experienced

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 ­

#pragma startup fun
void fun()
{
 printf(“In fun\n”);
}
main()
{

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 5/12
9/2/2016 C Interview Questions and Answers for Experienced

 printf(“In main\n”);
}

The output of the above program will be ­

In fun
In main

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 ­

In main

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 ­

typdef struct A __attribute __((__packed__))
{
char c;
int i;
}B;

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 6/12
9/2/2016 C Interview Questions and Answers for Experienced

We can also use, pragma pack like this ­

#pragma pack(1)
typedef struct A

char c;
int I;
}B;

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.

11) How to convert a string to integer value?

We can convert a string to integer in two ways. Method 1:

int i = atoi(str);

Method 2:

sscanf(str, “%d”, &i);

12) Print the output of the following switch case program?

#include <stdio.h>
main()
{
int i = 3;

switch(i)

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 7/12
9/2/2016 C Interview Questions and Answers for Experienced

{
default:
printf("%d", i);

case 1:
printf("1\n");

case 2:
printf("2\n");

case 3:
printf("3\n");
}
}

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 ­

#ifndef _HDRFILE_H_
#define _HDRFILE_H_
#endif

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.
http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 8/12
9/2/2016 C Interview Questions and Answers for Experienced

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 ­

#include <stdio.h>
main()
{
{
#define A 10
printf("first A: %d\n", A);
}
{
printf("second A: %d\n", A);
}
}

Above program will print ­

first A: 10
second A: 10

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 9/12
9/2/2016 C Interview Questions and Answers for Experienced

15) Print the output of this pointer program?

#include<stdio.h>
main()
{
char *p = "Pointers";
p[2] = 'z';
printf("%c", *p);
}

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.

Page 1 of 4

Prev  1   2   3   4   Next >>

You are here:  Home  >  Interview Questions  >  C and C++ Interview Questions and Answers  >  Advanced C Interview

Questions and Answers for Experienced

Popular Posts

HR Interview Questions and Answers

SQL Interview Questions and Answers

Java Interview Questions and Answers

SQL Query Interview Questions and Answers

Careers Choices and Job Opportunities for Electronics and Communication Engineers

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 10/12
9/2/2016 C Interview Questions and Answers for Experienced

Related Articles

C++ Interview Questions and Answers for Freshers, Experienced

Embedded C Interview Questions and Answers

C Interview Questions and Answers for Freshers

Top 100 C# Interview Questions and Answers

.Net Framework Interview Questions and Answers

ADO.Net Interview Questions and Answers for Freshers, Experienced

ASP.Net Interview Questions and Answers

ASP.Net MVC Interview questions and Answers

WCF Interview Questions and Answers

ASP.Net Web API Interview Questions

Top 80 + SQL Query Interview Questions and Answers with Examples

Database/SQL Interview Questions and Answers for Freshers, Experienced

Oracle Interview Questions and Answers on SQL Queries and Database Theory

Advanced SQL Interview Questions and Answers

Popular Categories

Database Interview Questions and Answers

.Net Interview Questions and Answers

Core Java & Swing Interview Questions

C Interview Questions and Answers

HR Interview Questions and Answers

Aptitude Test ­ Tips, Tricks and Shortcuts

Seminar Topics for CSE, MCA, I.T

Seminar Topics for ECE

MBA after Engineering ­ Courses & Top Colleges

Search our Site

Enter Search Term

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 11/12
9/2/2016 C Interview Questions and Answers for Experienced

Email Newsletter

Enter your Email Address and get interesting updates

Your email Address...

Subscribe

Quick Links

Home B.E Projects

Careers Jobs Tutorials

Interview Questions Blog

Placement Test Forum

Seminar Topics Contribute Projects & Seminars

Quick Contacts

E: [email protected]
W: www.a4academics.com

Follow us on

Copyright © 2014 A4Academics. All rights reserved. Privacy & Terms    About Us   Contact Us   Advertise
 
      

http://a4academics.com/interview­questions/57­c­plus­plus/720­c­interview­questions­experienced 12/12

You might also like