Tricky C Questions For GATE

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 114

h

Search

Custom Search

Search

!"

(1) What will be output if you will compile


and execute the following c code?
void main(){
int i=320;
char *ptr=(char *)&i;
printf("%d",*ptr);
}
(a)320
(b)1
(c)64
(d)Compiler error
(e)None of above
Output: (c)
Explanation:
As we know size of int data type is two
byte while char pointer can pointer one
byte at time.
Memory representation of int i=320

So char pointer ptr is pointing to only


first byte as shown above figure.
*ptr i.e. content of first byte is 01000000
and its decimal value is 64.
How to represent char, int and float data
in memory?
Data type tutorial.
(2) What will be output if you will compile
and execute the following c code?
#define x 5+2
void main(){
int i;
i=x*x*x;
printf("%d",i);
}
(a)343
(b)27
(c)133
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
As we know #define is token pasting
preprocessor it only paste the value of
micro constant in the program before the
actual compilation start. If you will see
intermediate file you will find:
test.c 1:
test.c 2: void main(){
test.c 3: int i;
test.c 4: i=5+2*5+2*5+2;
test.c 5: printf("%d",i);
test.c 6: }
test.c 7:
You can absorb #define only pastes the 5+2
in place of x in program. So,
i=5+2*5+2*5+2
=5+10+10+2
=27
What is intermediate file and how to see
intermediate file?
Preprocessor tutorial.
(3) What will be output if you will compile
and execute the following c code?
void main(){
char c=125;
c=c+10;
printf("%d",c);
}
(a)135
(b)+INF
(c)-121
(d)-8
(e)Compiler error
Output: (c)
Explanation:
As we know char data type shows cyclic
properties i.e. if you will increase or
decrease the char variables beyond its
maximum or minimum value respectively it
will repeat same value according to
following cyclic order:
So,
125+1= 126
125+2= 127
125+3=-128
125+4=-127
125+5=-126
125+6=-125
125+7=-124
125+8=-123
125+9=-122
125+10=-121
What is cyclic nature of data type?
Data type tutorial.
(4) What will be output if you will compile
and execute the following c code?
void main(){
float a=5.2;
if(a==5.2)
printf("Equal");
else if(a<5.2)
printf("Less than");
else
printf("Greater than");
}
(a)Equal
(b)Less than
(c)Greater than
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
5.2 is double constant in c. In c size of
double data is 8 byte while a is float
variable. Size of float variable is 4 byte.
So double constant 5.2 is stored in memory
as:
101.00 11001100 11001100 11001100 11001100
11001100 11001101
Content of variable a will store in the
memory as:
101.00110 01100110 01100110
It is clear variable a is less than double
constant 5.2
Since 5.2 is recurring float number so it
different for float and double. Number
likes 4.5, 3.25, 5.0 will store same values
in float and double data type.
Note: In memory float and double data is
stored in completely different way. If you
want to see actual memory representation
goes to question number (60) and (61).
Data type tutorial.
(5) What will be output if you will compile
and execute the following c code?
void main(){
int i=4,x;
x=++i + ++i + ++i;
printf("%d",x);
}
(a)21
(b)18
(c)12
(d)Compiler error
(e)None of above
Output: (a)
Explanation:
In ++a, ++ is pre increment operator. In
any mathematical expression pre increment
operator first increment the variable up to
break point then starts assigning the final
value to all variable.
Step 1: Increment the variable I up to
break point.
Step 2: Start assigning final value 7 to
all variable i in the expression.

So, i=7+7+7=21
What is break point?
Operator tutorial.
(6) What will be output if you will compile
and execute the following c code?
void main(){
int a=2;
if(a==2){
a=~a+2<<1;
printf("%d",a);
}
else
{ break;
}
}
(a)It will print nothing.
(b)-3
(c)-2
(d)1
(e)Compiler error
Output: (e)
Explanation:
Keyword break is not part of if-else
statement. Hence it will show compiler
error: Misplaced break
Where we can use break keyword?
Control statement tutorial
(7) What will be output if you will compile
and execute the following c code?
void main(){
int a=10;
printf("%d %d %d",a,a++,++a);
}
(a)12 11 11
(b)12 10 10
(c)11 11 12
(d)10 10 12
(e)Compiler error
Output: (a)
Explanation:
In c printf function follows cdecl
parameter passing scheme. In this scheme
parameter is passed from right to left
direction.

So first ++a will pass and value of


variable will be a=10 then a++ will pass
now value variable will be a=10 and at the
end a will pass and value of a will be
a=12.
What is cedecl and pascal parameter passing
convention?
Function tutorial.
(8) What will be output if you will compile
and execute the following c code?
void main(){
char *str="Hello world";
printf("%d",printf("%s",str));
}
(a) 11Hello world
(b) 10Hello world
(c) Hello world10
(d) Hello world11
(e) Compiler error
Output: (d)
Explanation:
Return type of printf function is integer
and value of this integer is exactly equal
to number of character including white
space printf function prints. So,
printf(“Hello world”) will return 13.
What is prototype of printf function?
Formatted I/O tutorial.
(9) What will be output if you will compile
and execute the following c code?
#include "stdio.h"
#include "string.h"
void main(){
char *str=NULL;
strcpy(str,"cquestionbank");
printf("%s",str);
}
(a)cquestionbank
(b)cquestionbank\0
(c)(null)
(d)It will print nothing
(e)Compiler error
Output: (c)
Explanation:
We cannot copy any thing using strcpy
function to the character pointer pointing
to NULL.
String tutorial.
More questions of string.
(10) What will be output if you will
compile and execute the following c code?
#include "stdio.h"
#include "string.h"
void main(){
int i=0;
for(;i<=2;)
printf(" %d",++i);
}
(a)0 1 2
(b)0 1 2 3
(c)1 2 3
(d)Compiler error
(e)Infinite loop
Output: (c)
Explanation:
In for loop each part is optional.
Complete tutorial of looping in C.
(11) What will be output if you will
compile and execute the following c code?
void main(){
int x;
for(x=1;x<=5;x++);
printf("%d",x);
}
(a)4
(b)5
(c)6
(d)Compiler error
(e)None of above
Output: (c)
Explanation:
Body of for loop is optional. In this
question for loop will execute until value
of variable x became six and condition
became false.
Looping tutorial.
(12) What will be output if you will
compile and execute the following c code?
void main(){
printf("%d",sizeof(5.2));
}
(a)2
(b)4
(c)8
(d)10
(e)Compiler error
Output: (c)
Explanation:
Default type of floating point constant is
double. So 5.2 is double constant and its
size is 8 byte.
Detail explanation of all types of constant
in C.
(13) What will be output if you will
compile and execute the following c code?
#include "stdio.h"
#include "string.h"
void main(){
char c='\08';
printf("%d",c);
}
(a)8
(b)’8’
(c)9
(d)null
(e)Compiler error
Output: (e)
Explanation:
In c any character is starting with
character ‘\’ represents octal number in
character. As we know octal digits are: 0,
1, 2, 3, 4, 5, 6, and 7. So 8 is not an
octal digit. Hence ‘\08’ is invalid octal
character constant.
Octal character constantan.
Hexadecimal character constant.
(14) What will be output if you will
compile and execute the following c code?
#define call(x,y) x##y
void main(){
int x=5,y=10,xy=20;
printf("%d",xy+call(x,y));
}
(a)35
(b)510
(c)15
(d)40
(e)None of above
Output: (d)
Explanation:
## is concatenation c preprocessor
operator. It only concatenates the operands
i.e.
a##b=ab
If you will see intermediate file then you
will find code has converted into following
intermediate code before the start of
actual compilation.
Intermediate file:
test.c 1:
test.c 2: void main(){
test.c 3: int x=5,y=10,xy=20;
test.c 4: printf("%d",xy+xy);
test.c 5: }
test.c 6:
It is clear call(x, y) has replaced by xy.
What is macro call?
Preprocessor tutorial.
(15) What will be output if you will
compile and execute the following c code?
int * call();
void main(){
int *ptr;
ptr=call();
clrscr();
printf("%d",*ptr);
}
int * call(){
int a=25;
a++;
return &a;
}
(a)25
(b)26
(c)Any address
(d)Garbage value
(e)Compiler error
Output: (d)
Explanation:
In this question variable a is a local
variable and its scope and visibility is
within the function call. After returning
the address of a by function call variable
a became dead while pointer ptr is still
pointing to address of variable a. This
problem is known as dangling pointer
problem.
Complete pointer tutorial.
(16) What is error in following
declaration?
struct outer{
int a;
struct inner{
char c;
};
};
(a)Nesting of structure is not allowed in
c.
(b)It is necessary to initialize the member
variable.
(c)Inner structure must have name.
(d)Outer structure must have name.
(e)There is not any error.
Output: (c)
Explanation:
It is necessary to assign name of inner
structure at the time of declaration other
wise we cannot access the member of inner
structure. So correct declaration is:
struct outer{
int a;
struct inner{
char c;
}name;
};
Structure tutorial.
Union tutorial.
(17) What will be output if you will
compile and execute the following c code?
void main(){
int array[]={10,20,30,40};
printf("%d",-2[array]);
}
(a)-60
(b)-30
(c)60
(d)Garbage value
(e)Compiler error
Output: (b)
Explanation:
In c,
array[2]=*(array+2)=*(2+array)=2[array]=30
Array tutorial.
Array of pointer.
How to read complex pointers.
(18) What will be output if you will
compile and execute the following c code?
void main(){
int i=10;
static int x=i;
if(x==i)
printf("Equal");
else if(x>i)
printf("Greater than");
else
printf("Less than");
}
(a)Equal
(b)Greater than
(c)Less than
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
static variables are load time entity while
auto variables are run time entity. We can
not initialize any load time variable by
the run time variable.
In this example i is run time variable
while x is load time variable.
What is storage class?
(18) What will be output if you will
compile and execute the following c code?
void main(){
int i=5,j=2;
if(++i>j++||i++>j++)
printf("%d",i+j);
}
(a)7
(b)11
(c)8
(d)9
(e)Compiler error
Output: (d)
Explanation:
|| is logical OR operator. In C logical OR
operator doesn’t check second operand if
first operand is true.
++i>j++ || i++>j++
First operand: ++i>j++
Second operand: i++>j++
First operand
++i > j++
=> 6 > 2
Since first operand is true so it will not
check second operand.
Hence i= 6 and j=3
Properties of && operator.
Operator tutorial with examples.
(19) What will be output if you will
compile and execute the following c code?
#define max 5;
void main(){
int i=0;
i=max++;
printf("%d",i++);
}
(a)5
(b)6
(c)7
(d)0
(e)Compiler error
Output: (e)
Explanation:
#define is token pasting preprocessor. If
you will see intermediate file: test.i
test.c 1:
test.c 2: void main(){
test.c 3: int i=0;
test.c 4: i=5++;
test.c 5: printf("%d",i++);
test.c 6: }
test.c 7:
It is clear macro constant max has replaced
by 5. It is illegal to increment the
constant number. Hence compiler will show
Lvalue required.
What is Lvalue and Rvalue?
How to see intermediate file?
Preprocessor questions and answer.
(20) What will be output if you will
compile and execute the following c code?
void main(){
double far* p,q;
printf("%d",sizeof(p)+sizeof q);
}
(a)12
(b)8
(c)4
(d)1
(e)Compiler error
Output: (a)
Explanation:
It is clear p is far pointer and size of
far pointer is 4 byte while q is double
variable and size of double variable is 8
byte.
What is near pointer?
What is far pointer?
What is huge pointer?
Complete pointer tutorial.
(21) What will be output if you will
compile and execute the following c code?
void main(){
int a=5;
float b;
printf("%d",sizeof(++a+b));
printf(" %d",a);
}
(a)2 6
(b)4 6
(c)2 5
(d)4 5
(e)Compiler error
Output: (d)
Explanation:
++a +b
=6 + Garbage floating point number
=Garbage floating point number
//From the rule of automatic type
conversion
Hence sizeof operator will return 4 because
size of float data type in c is 4 byte.
Value of any variable doesn’t modify inside
sizeof operator. Hence value of variable a
will remain 5.
Properties of sizeof operator.
Operators tutorial
(22) What will be output if you will
compile and execute the following c code?
void main(){
char huge *p=(char *)0XC0563331;
char huge *q=(char *)0XC2551341;
if(p==q)
printf("Equal");
else if(p>q)
printf("Greater than");
else
printf("Less than");
}
(a)Equal
(b)Greater than
(c)Less than
(d)Compiler error
(e)None of above
Output: (a)
Explanation:
As we know huge pointers compare its
physical address.
Physical address of huge pointer p
Huge address: 0XC0563331
Offset address: 0x3331
Segment address: 0XC056
Physical address= Segment address * 0X10 +
Offset address
=0XC056 * 0X10 +0X3331
=0XC0560 + 0X3331
=0XC3891
Physical address of huge pointer q
Huge address: 0XC2551341
Offset address: 0x1341
Segment address: 0XC255
Physical address= Segment address * 0X10 +
Offset address
=0XC255 * 0X10 +0X1341
=0XC2550 + 0X1341
=0XC3891
Since both huge pointers p and q are pointing
same physical address so if condition will
true.
What is huge pointer?
What is normalization?
Pointer tutorial.
(23) What will be output if you will
compile and execute the following c code?
void main(){
char *str;
scanf("%[^\n]",str);
printf("%s",str);
}
(a)It will accept a word as a string from
user.
(b)It will accept a sentence as a string
from user.
(c)It will accept a paragraph as a string
from user.
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
Task of % [^\t] is to take the stream of
characters until it doesn’t receive new
line character ‘\t’ i.e. enter button of
your keyboard.
General meaning of %[^ p]
String tutorial.
(24) What will be output if you will
compile and execute the following c code?
void main(){
int a=5,b=10,c=15;
int *arr[]={&a,&b,&c};
printf("%d",*arr[1]);
}
(a)5
(b)10
(c)15
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
Array element cannot be address of auto
variable. It can be address of static or
extern variables.
What is auto variable?
What is extern variable?
What is static variable?
Array tutorial.
(25) What will be output if you will
compile and execute the following c code?
void main(){
int array[3]={5};
int i;
for(i=0;i<=2;i++)
printf("%d ",array[i]);
}
(a)5 garbage garbage
(b)5 0 0
(c)5 null null
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
Storage class of an array which initializes
the element of the array at the time of
declaration is static. Default initial
value of static integer is zero.
Properties of static storage class.
How to read complex array.
(26) What will be output if you will
compile and execute the following c code?
void main(){
int
array[2][2][3]={0,1,2,3,4,5,6,7,8,9,10,11};
printf("%d",array[1][0][2]);
}
(a)4
(b)5
(c)6
(d)7
(e)8
Output: 8
Explanation:
array[1][0][2] means 1*(2*3)+0*(3)+3=9th
element of array starting from zero i.e. 8.
Questions on two dimension array.
Complete tutorial of array.
(27) What will be output if you will
compile and execute the following c code?
void main(){
int a[2][4]={3,6,9,12,15,18,21,24};
printf("%d %d
%d",*(a[1]+2),*(*(a+1)+2),2[1[a]]);
}
(a)15 18 21
(b)21 21 21
(c)24 24 24
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
In c,
a [1][2]
=*(a [1] +2)
=*(*(a+1) +2)
=2[a [1]]
=2[1[a]]
Now, a [1] [2] means 1*(4) +2=6th element of
an array staring from zero i.e. 21.
Concept of complex array.
Concept of complex pointer.
Concept of complex function.
(28) What will be output if you will
compile and execute the following c code?
void call(int,int,int);
void main(){
int a=10;
call(a,a++,++a);
}
void call(int x,int y,int z){
printf("%d %d %d",x,y,z);
}
(a)10 10 12
(b)12 11 11
(c)12 12 12
(d)10 11 12
(e)Compiler error
Output: (e)
Explanation:
Default parameter passing scheme of c is
cdecl i.e. argument of function will pass
from right to left direction.
First ++a will pass and a=11
Then a++ will pass and a=11
Then a will pass and a=12
What is pascal and cedecl parameter passing
scheme?
Concept of variable numbers of argument.
(29) What will be output if you will
compile and execute the following c code?
void main(){
int x=5,y=10,z=15;
printf("%d %d %d");
}
(a)Garbage Garbage Garbage
(b)5 10 15
(c)15 10 5
(d)Compiler error
(e)Run time error
Output: (c)
Explanation:
Auto variables are stored in stack as shown
in following figure.

Stack follow LIFO data structure i.e. last


come and first out. First %d will print
then content of two continuous bytes from
the top of the stack and so on.
Memory map tutorial.
More questions based on memory map.
(30) What will be output if you will
compile and execute the following c code?
void main(){
register int i,x;
scanf("%d",&i);
x=++i + ++i + ++i;
printf("%d",x);
}
(a)17
(b)18
(c)21
(d)22
(e)Compiler error
Output: (e)
Explanation:
In c register variable stores in CPU it
doesn’t store in RAM. So register variable
have not any memory address. So it is
illegal to write &a.
Complete tutorial of storage class with
examples.
Properties of register storage class.
(31) What will be output if you will
compile and execute the following c code?
void main(){
int a=5;
int b=10;
{
int a=2;
a++;
b++;
}
printf("%d %d",a,b);
}
(a)5 10
(b)6 11
(c)5 11
(d)6 10
(e)Compiler error
Output: (c)
Explanation:
Default storage class of local variable is
auto. Scope and visibility of auto variable
is within the block in which it has
declared. In c, if there are two variables
of the same name then we can access only
local variable. Hence inside the inner
block variable a is local variable which
has declared and defined inside that block.
When control comes out of the inner block
local variable a became dead.
Complete tutorial of storage class with
examples.
What is auto storage class?
(32) What will be output if you will
compile and execute the following c code?
void main(){
float f=3.4e39;
printf("%f",f);
}
(a)3.4e39
(b)3.40000…
(c)+INF
(d)Compiler error
(e)Run time error
Output: (c)
Explanation:
If you will assign value beyond the range
of float data type to the float variable it
will not show any compiler error. It will
store infinity.
Data type tutorial with examples.
Concept of float data type.
(33) What will be output if you will
compile and execute the following c code?
void main(){
enum color{
RED,GREEN=-20,BLUE,YELLOW
};
enum color x;
x=YELLOW;
printf("%d",x);
}
(a)-22
(b)-18
(c)1
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
Default value of enum constant = value of
previous enum constant +1
Default value of first enum constant=0
Hence:
BLUE=GREEN+1=-20+1=-19
YELLOW=BLUE+1=-19+1=-18
Complete tutorial of enum data type with
examples.
(34) What will be output if you will
compile and execute the following c code?
void main(){
asm{
mov bx,8;
mov cx,10
add bx,cx;
}
printf("%d",_BX);
}
(a)18
(b)8
(c)0
(d)Compiler error
(e)None of above
Output: (a)
Explanation:
asm keyword is used to write assembly
language program in c. mov command stores
the constants in the register bx, cx etc.
add command stores the content of register
and stores in first register i.e. in bx.
How to write assembly language program by
c?
Advance c tutorial.
(35) What will be output if you will
compile and execute the following c code?
void main(){
enum xxx{
a,b,c=32767,d,e
};
printf("%d",b);
}
(a)0
(b)1
(c)32766
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
Size of enum constant is size of sign int.
Since value of c=32767. Hence value of d
will be 32767+1=32768 which is beyond the
range of enum constant.
Tutorial of data type with examples.
(36) What will be output if you will
compile and execute the following c code?
void main(){
signed int a=-1;
unsigned int b=-1;
if(a==b)
printf("%d %d",a,b);
else
printf("Not equal");
}
(a)-1 -1
(b)-1 32767
(c)-1 -32768
(d)Not equal
(e)Compiler error
Output: (a)
Explanation:
What is automatic type conversion?
(37) What will be output if you will
compile and execute the following c code?
void main(){
float f=5.5f;
float x;
x=f%2;
printf("%f",x);
}
(a)1.500000
(b)1.000000
(c)5.500000
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
Modular division is not allowed with
floating number.
Properties of modular division.
Operators tutorial with examples.
(38) What will be output if you will
compile and execute the following c code?
void main(){
int a=-20;
int b=-3;
printf("%d",a%b);
}
(a)2
(b)-2
(c)18
(d)-18
(e)Compiler error
Output: (b)
Explanation:
Sign of resultant of modular division
depends upon only the sign of first
operand.
Properties of modular division.
Operator’s tutorial with examples.
(39) What will be output if you will
compile and execute the following c code?
void main(){
char c='0';
printf("%d %d",sizeof(c),sizeof('0'));
}
(a)1 1
(b)2 2
(c)1 2
(d)2 1
(e)None of above
Output: (c)
Explanation:
Size of char data type is one byte while
size of character constant is two byte.
Why character constant is of two byte in c?
(40) What will be output if you will
compile and execute the following c code?
void main(){
char *url="c:\tc\bin\rw.c";
printf("%s",url);
}
(a)c:\tc\bin\rw.c
(b)c:/tc/bin/rw.c
(c)c: c inw.c
(d)c:cinw.c
(e)w.c in
Output: (e)
Explanation:
1. \t is tab character which moves the
cursor 8 space right.
2. \b is back space character which moves
the cursor one space back.
3. \r is carriage return character which
moves the cursor beginning of the line.

Complete string tutorial with examples.


Properties of escape characters.
(41) What will be output if you will
compile and execute the following c code?
void main(){
clrscr();
goto abc;
printf("main");
getch();
}
void dispaly(){
abc:
printf("display");
}
(a)main
(b)display
(c)maindisplay
(d)displaymain
(e)Compiler error
Output: (e)
Explanation:
Label of goto cannot be in other function
because control cannot move from one
function to another function directly
otherwise it will show compiler error:
unreachable label
What is goto keyword.
Complete function tutorial with examples.
(42) What will be output if you will
compile and execute the following c code?
void main(){
int i=3;
if(3==i)
printf("%d",i<<2<<1);
else
printf("Not equal");
}
(a)1
(b)48
(c)24
(d)Not equal
(e)Compiler error
Output: (c)
Explanation:
Associative of bitwise left shifting
operator is left to right. In the following
expression:
i<<2<<1
There are two bitwise operators. From rule
of associative leftmost operator will
execute first.
i <<><<>
After execution of leftmost bitwise left
shifting operator:
so i=i*pow(2,2)
=3*
What is associative?
What is precedence?
Tutorial of bitwise operators.
(43) What will be output if you will
compile and execute the following c code?
void main(){
int x=2,y=3;
if(x+y<=5)
printf("True");
else
printf("False");
}
(a)True
(b)False
(c)Compiler error: Lvalued required
(d)Compiler error: Invalid expression
(e)None of above
Output: (a)
Explanation:
Expression x+y<=5
=> 2+3 <=5
=> 5<=5 is true because 5 is either greater
than 5 or equal to 5.
Operator tutorial with examples.
(44) What will be output if you will
compile and execute the following c code?
void main(){
const int i=5;
i++;
printf("%d",i);
}
(a)5
(b)6
(c)0
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
We cannot modify the const variable by
using increment operator.
Properties of const keyword.
Properties of volatile keyword.
Data type tutorial with examples.
(45) What will be output if you will
compile and execute the following c code?
void main(){
const int x=25;
int * const p=&x;
*p=2*x;
printf("%d",x);
}
(a)25
(b)50
(c)0
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
const keyword in c doesn’t make any
variable as constant but it only makes the
variable as read only. With the help of
pointer we can modify the const variable.
In this example pointer p is pointing to
address of variable x. In the following
line:
int * const p=&x;
p is constant pointer while content of p
i.e. *p is not constant.
*p=2*x put the value 50 at the memory
location of variable x.
Properties of const keyword.
What is constant pointer?
Data type tutorial with examples.
(46) What will be output if you will
compile and execute the following c code?
void main(){
int i=11;
int const * p=&i;
p++;
printf("%d",*p);
}
(a)11
(b) 12
(c)Garbage value
(d)Compiler error
(e)None of above
Output: (c)
Explanation:
In the following line:
int const * p=&i;
*p i.e. content of p is constant pointer p
is not constant pointer. So we can modify
the pointer p. After incrementing the
pointer it will point next memory location
and its content will any garbage value.

Note: We have assumed arbitrary memory


address.
To make pointer p as constant pointer
write:
int const * const p=&i;
Properties of const keyword.
Properties of volatile keyword.
(47) What will be output if you will
compile and execute the following c code?
void main(){
int a=15,b=10,c=5;
if(a>b>c )
printf("Trre");
else
printf("False");
}
(a)True
(b)False
(c)Run time error
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
Relation operator in c always returns 1
when condition is true and 0 when condition
is false. So in the following expression
a > b > c
Associative of relational operators are
left to right order of execution will be
following manner:
Hence in this expression first solve bolded
condition: a > b > c
Since condition a>b is true so result will
be 1. Now expression became:
1 > c
Since this condition is false so result
will be 0. Thus else part will execute.
What is associative?
What is precedence?
(48) What will be output if you will
compile and execute the following c code?
void main(){
float f;
f=3/2;
printf("%f",f);
}
(a)1.5
(b)1.500000
(c)1.000000
(d)Compiler error
(e)None of above
Output: (b)
Explanation:
In the following expression:
f=3/2 both 3 and 2 are integer constant
hence its result will also be an integer
constant i.e. 1.
Properties of floating type numbers.
(49) What will be output if you will
compile and execute the following c code?
void main(){
int a=sizeof(a);
a=modify(a);
printf("%d",a);
}
int modify(int x){
int y=3;
_AX=x+y;
return;
}
(a)2
(b)3
(c)5
(d)Garbage value
(e)None of above
Output: (c)
Explanation:
_AX is register pseudo variable. It stores
return type of function.
What is register pseudo variable?
What is global identifier?
(50) What will be output if you will
compile and execute the following c code?
#define PRINT printf("c");printf("c++");
void main(){
float a=5.5;
if(a==5.5)
PRINT
else
printf("Not equal");
}
(a)c c++
(b)Not equal
(c)c
c++
(d)Compiler error
(e)None of above
Output: (d)
Explanation:
First see intermediate file:
try.c 1:
try.c 2: void main(){
try.c 3: float a=5.5;
try.c 4: if(a==5.5)
try.c 5: printf("c");printf("c++");
try.c 6: else
try.c 7: printf("Not equal");
try.c 8: }
try.c 9:
try.c 10:
If there are more than one statement in if
block then it is necessary to write inside
the { } otherwise it will show compiler
error: misplaced else
More questions on preprocessors.
Preprocessor tutorial with examples.

(51) What will be output if you will


compile and execute the following c code?
struct marks{
int p:3;
int c:3;
int m:2;
};
void main(){
struct marks s={2,-6,5};
printf("%d %d %d",s.p,s.c,s.m);
}
(a) 2 -6 5
(b) 2 -6 1
(c) 2 2 1
(d) Compiler error
(e) None of these
Answer: (c)
Explanation:
Binary value of 2: 00000010 (Select three
two bit)
Binary value of 6: 00000110
Binary value of -6: 11111001+1=11111010
(Select last three bit)
Binary value of 5: 00000101 (Select last
two bit)
Complete memory representation:

Structure tutorial
More questions
(52) What will be output if you will
compile and execute the following c code?
void main(){
static char *s[3]={"math","phy","che"};
typedef char *( *ppp)[3];
static ppp p1=&s,p2=&s,p3=&s;
char * (*(*array[3]))[3]={&p1,&p2,&p3};
char * (*(*(*ptr)[3]))[3]=&array;
p2+=1;
p3+=2;
printf("%s",(***ptr[0])[2]);
}
(a) math
(b) phy
(c) che
(d) Compiler error
(e) None of these
Answer: (c)
Explanation:
Here
ptr: is pointer to array of pointer to
string.
P1, p2, p3: are pointers to array of
string.
array[3]: is array which contain pointer to
array of string.
Pictorial representation:

Note: In the above figure upper part of box


represent content and lower part represent
memory address. We have assumed arbitrary
address.
As we know p[i]=*(p+i)
(***ptr[0])[2]=(*(***ptr+0))[2]=(***ptr)[2]
=(***(&array))[2] //ptr=&array
=(**array)[2] //From rule *&p=p
=(**(&p1))[2] //array=&p1
=(*p1)[2]
=(*&s)[2] //p1=&s
=s[2]=”che”
How to read complex pointer?
Pointer tutorial.
(53) What will be output if you will
compile and execute the following c code?
#include"conio.h"
int display();
int(*array[3])();
int(*(*ptr)[3])();
void main(){
array[0]=display;
array[1]=getch;
ptr=&array;
printf("%d",(**ptr)());
(*(*ptr+1))();
}
int display(){
int x=5;
return x++;
}
(a)5
(b)6
(c)0
(d)Compiler error
(e)None of these
Answer: (a)
Explanation:
In this example:
array []: It is array of pointer to such
function which parameter is void and return
type is int data type.
ptr: It is pointer to array which contents
are pointer to such function which
parameter is void and return type is int
type data.
(**ptr)() = (** (&array)) () //ptr=&array
= (*array) () // from rule *&p=p
=array [0] () //from rule *(p+i)=p[i]
=display () //array[0]=display
(*(*ptr+1))() =(*(*&array+1))()
//ptr=&array
=*(array+1) () // from rule *&p=p
=array [1] () //from rule *(p+i)=p[i]
=getch () //array[1]=getch
How to read complex array?
Array tutorial.
(54) What will be output if you will
compile and execute the following c code?
void main(){
int i;
char far *ptr=(char *)0XB8000000;
*ptr='A';
*(ptr+1)=1;
*(ptr+2)='B';
*(ptr+3)=2;
*(ptr+4)='C';
*(ptr+5)=4;
}
Answer:
It output will be A, B and C in blue, green
and red color respectively. As shown in
following figure:

What is far pointer?


Advance c tutorial?
Working with text video memory.
(55) What will be output if you will
compile and execute the following c code?
#include "dos.h"
void main(){
int j;
union REGS i,o;
char far *ptr=(char *)0XA0000000;
i.h.ah=0;
i.h.al=0x13;
int86(0x10,&i,&o);
for(j=1;j<=100;j++){
*(ptr+j)=4;
}
}
Answer:
One red color line in the graphics console
as shown in the following figure

What is union REGS?


Advance c tutorial.
Working with graphics video memory.
(56) What will be output if you will
compile and execute the following c code?
void main(){
int huge*p=(int huge*)0XC0563331;
int huge*q=(int huge*)0xC2551341;
*p=200;
printf("%d",*q);
}
(a)0
(b)Garbage value
(c)null
(d) 200
(e)Compiler error
Answer: (d)
Explanation:
Physical address of huge pointer p
Huge address: 0XC0563331
Offset address: 0x3331
Segment address: 0XC056
Physical address= Segment address * 0X10 +
Offset address
=0XC056 * 0X10 +0X3331
=0XC0560 + 0X3331
=0XC3891
Physical address of huge pointer q
Huge address: 0XC2551341
Offset address: 0x1341
Segment address: 0XC255
Physical address= Segment address * 0X10 +
Offset address
=0XC255 * 0X10 +0X1341
=0XC2550 + 0X1341
=0XC3891
Since both huge pointers p and q are pointing
same physical address so content of q will
also same as content of q.
What is huge pointer?
Pointer tutorial.
(57) Write c program which display mouse
pointer and position of pointer.(In x
coordinate, y coordinate)?
Answer:
#include”dos.h”
#include”stdio.h”
void main()
{
union REGS i,o;
int x,y,k;
//show mouse pointer
i.x.ax=1;
int86(0x33,&i,&o);
while(!kbhit()) //its value will false
when we hit key in the key board
{
i.x.ax=3; //get mouse position
x=o.x.cx;
y=o.x.dx;
clrscr();
printf("(%d , %d)",x,y);
delay(250);
int86(0x33,&i,&o);
}
getch();
}
What is int86?
Advance c tutorial.
(58) Write a c program to create dos
command: dir.
Answer:
Step 1: Write following code.
#include “stdio.h”
#include “dos.h”
void main(int count,char *argv[])
{
struct find_t q ;
int a;
if(count==1)
argv[1]="*.*";
a = _dos_findfirst(argv[1],1,&q);
if(a==0)
{
while (!a)
{
printf(" %s\n", q.name);
a = _dos_findnext(&q);
}
}
else
{
printf("File not found");
}
}
Step 2: Save the as list.c (You can give
any name)
Step 3: Compile and execute the file.
Step 4: Write click on My computer of
Window XP operating system and select
properties.
Step 5: Select Advanced -> Environment
Variables
Step 6: You will find following window:
Click on new button (Button inside the red
box)
Step 7: Write following:
Variable name: path
Variable value: c:\tc\bin\list.c (Path
where you have saved)
Step 8: Open command prompt and write list
and press enter.
Command line argument tutorial.
(59) What will be output if you will
compile and execute the following c code?
void main(){
int i=10;
static int x=i;
if(x==i)
printf("Equal");
else if(x>i)
printf("Greater than");
else
printf("Less than");
}
(a) Equal
(b) Greater than
(c) Less than
(d) Compiler error
(e) None of above
Answer: (d)
Explanation:
static variables are load time entity while
auto variables are run time entity. We can
not initialize any load time variable by
the run time variable.
In this example i is run time variable
while x is load time variable.
Properties of static variables.
Properties of auto variables.
(60) What will be output if you will
compile and execute the following c code?
void main(){
int i;
float a=5.2;
char *ptr;
ptr=(char *)&a;
for(i=0;i<=3;i++)
printf("%d ",*ptr++);
}
(a)0 0 0 0
(b)Garbage Garbage Garbage Garbage
(c)102 56 -80 32
(d)102 102 -90 64
(e)Compiler error
Answer: (d)
Explanation:
In c float data type is four byte data type
while char pointer ptr can point one byte
of memory at a time.
Memory representation of float a=5.2

ptr pointer will point first fourth byte


then third byte then second byte then first
byte.
Content of fourth byte:
Binary value=01100110
Decimal value= 64+32+4+2=102
Content of third byte:
Binary value=01100110
Decimal value=64+32+4+2=102
Content of second byte:
Binary value=10100110
Decimal value=-128+32+4+2=-90
Content of first byte:
Binary value=01000000
Decimal value=64
Note: Character pointer treats MSB bit of
each byte i.e. left most bit of above
figure as sign bit.
How to represent float data type in memory?
(61) What will be output if you will
compile and execute the following c code?
void main(){
int i;
double a=5.2;
char *ptr;
ptr=(char *)&a;
for(i=0;i<=7;i++)
printf("%d ",*ptr++);
}
(a) -51 -52 -52 -52 -52 -52 20 64
(b) 51 52 52 52 52 52 20 64
(c) Eight garbage values.
(d) Compiler error
(e) None of these
Answer: (a)
Explanation:
In c double data type is eight byte data
type while char pointer ptr can point one
byte of memory at a time.
Memory representation of double a=5.2

ptr pointer will point first eighth byte


then seventh byte then sixth byte then
fifth byte then fourth byte then third byte
then second byte then first byte as shown
in above figure.
Content of eighth byte:
Binary value=11001101
Decimal value= -128+64+8+4+1=-51
Content of seventh byte:
Binary value=11001100
Decimal value= -128+64+8+4=-52
Content of sixth byte:
Binary value=11001100
Decimal value= -128+64+8+4=-52
Content of fifth byte:
Binary value=11001100
Decimal value= -128+64+8+4=-52
Content of fourth byte:
Binary value=11001100
Decimal value= -128+64+8+4=-52
Content of third byte:
Binary value=11001100
Decimal value= -128+64+8+4=-52
Content of second byte:
Binary value=000010100
Decimal value=16+4=20
Content of first byte:
Binary value=01000000
Decimal value=64
Note: Character pointer treats MSB bit of
each byte i.e. left most bit of above
figure as sign bit.
How to represent double data type in
memory?
(62) What will be output if you will
compile and execute the following c code?
void main(){
printf("%s","c" "question" "bank");
}
(a) c question bank
(b) c
(c) bank
(d) cquestionbank
(e) Compiler error
Answer: (d)
Explanation:
In c string constant “xy” is same as “x”
“y”
String tutorial.
(63) What will be output if you will
compile and execute the following c code?
void main(){
printf("%s",__DATE__);
}
(a) Current system date
(b) Current system date with time
(c) null
(d) Compiler error
(e) None of these
Answer: (a)
Explanation:
__DATE__ is global identifier which returns
current system date.
What is global identifier?
(64) What will be output if you will
compile and execute the following c code?
void main(){
char *str="c-pointer";
printf("%*.*s",10,7,str);
}
(a) c-pointer
(b) c-pointer
(c) c-point
(d) cpointer null null
(e) c-point
Answer: (e)
Explanation:
Meaning of %*.*s in the printf function:
First * indicates the width i.e. how many
spaces will take to print the string and
second * indicates how many characters will
print of any string.
Following figure illustrates output of
above code:

Properties of printf function.


(65) What will be output if you will
compile and execute the following c code?
void start();
void end();
#pragma startup start
#pragma exit end
int static i;
void main(){
printf("\nmain function: %d",++i);
}
void start(){
clrscr();
printf("\nstart function: %d",++i);
}
void end(){
printf("\nend function: %d",++i);
getch();
}
(a)
main function: 2
start function: 1
end function:3
(b)
start function: 1
main function: 2
end function:3
(c)
main function: 2
end function:3
start function: 1
(d) Compiler error
(e) None of these
Answer: (b)
Explanation:
Every c program start with main function
and terminate with null statement. But
#pragma startup can call function just
before main function and #pragma exit
What is pragma directive?
Preprocessor tutorial.
(66) What will be output if you will
compile and execute the following c code?
void main(){
int a=-12;
a=a>>3;
printf("%d",a);
}
(a) -4
(b) -3
(c) -2
(d) -96
(e) Compiler error
Answer :( c)
Explanation:
Binary value of 12 is: 00000000 00001100
Binary value of -12 wills 2’s complement of
12 i.e.

So binary value of -12 is: 11111111


11110100

Right shifting rule:


Rule 1: If number is positive the fill
vacant spaces in the left side by 0.
Rule 2: If number is negative the fill
vacant spaces in the left side by 1.
In this case number is negative. So right
shift all the binary digits by three space
and fill vacant space by 1 as shown
following figure:

Since it is negative number so output will


also a negative number but its 2’s
complement.

Hence final out put will be:

And its decimal value is: 2


Hence output will be:-2
More questions on shifting operator.
Operator tutorial.
(67) What will be output if you will
compile and execute the following c code?
#include "string.h"
void main(){
clrscr();
printf("%d
%d",sizeof("string"),strlen("string"));
getch();
}
(a) 6 6
(b) 7 7
(c) 6 7
(d) 7 6
(e) None of these
Answer: (d)
Explanation:
Sizeof operator returns the size of string
including null character while strlen
function returns length of a string
excluding null character.
String tutorial.
Library functions of string.
(68) What will be output if you will
compile and execute the following c code?
void main(){
static main;
int x;
x=call(main);
clrscr();
printf("%d ",x);
getch();
}
int call(int address){
address++;
return address;
}
(a) 0
(b) 1
(c) Garbage value
(d) Compiler error
(e) None of these
Answer: (b)
Explanation:
As we know main is not keyword of c but is
special type of function. Word main can be
name variable in the main and other
functions.
What is main function in c?
(69) What will be output if you will
compile and execute the following c code?
void main(){
int a,b;
a=1,3,15;
b=(2,4,6);
clrscr();
printf("%d ",a+b);
getch();
}
(a) 3
(b) 21
(c) 17
(d) 7
(e) Compiler error
Answer: (d)
Explanation:
In c comma behaves as separator as well as
operator.
a=1, 3, 15;
b= (2, 4, 6);
In the above two statements comma is
working as operator. Comma enjoys least
precedence and associative is left to
right.
Assigning the priority of each operator in
the first statement:

Hence 1 will assign to a.


Assigning the priority of each operator in
the second statement:

Operator tutorial.
(70) What will be output if you will
compile and execute the following c code?
int dynamic(int,...);
void main(){
int x,y;
x=dynamic(2,4,6,8,10,12,14);
y=dynamic(3,6,9,12);
clrscr();
printf("%d %d ",x,y);
getch();
}
int dynamic(int s,...){
void *ptr;
ptr=...;
(int *)ptr+=2;
s=*(int *)ptr;
return s;
}
(a) 8 12
(b) 14 12
(c) 2 3
(d) Compiler error
(e) None of these
Answer: (a)
Explanation:
In c three continuous dots is known as
ellipsis which is variable number of
arguments of function. In this example ptr
is generic pointer which is pointing to
first element of variable number of
argument. After incrementing it will point
third element.
What is variable number of argument?
(71) What will be output if you will
compile and execute the following c code?
int extern x;
void main()
printf("%d",x);
x=2;
getch();
}
int x=23;
(a) 0
(b) 2
(c) 23
(d) Compiler error
(e) None of these
Answer: (c)
Explanation:
extern variables can search the declaration
of variable any where in the program.
Properties of extern storage class.
(72) What will be output if you will
compile and execute the following c code?
void main(){
int i=0;
if(i==0){
i=((5,(i=3)),i=1);
printf("%d",i);
}
else
printf("equal");
}
(a) 5
(b) 3
(c) 1
(d) equal
(e) None of above
Answer: (c)
Explanation:
Comma operator.
Operator tutorial.
(73) What will be output if you will
compile and execute the following c code?
void main(){
int a=25;
clrscr();
printf("%o %x",a,a);
getch();
}
(a) 25 25
(b) 025 0x25
(c) 12 42
(d) 31 19
(e) None of these
Answer: (d)
Explanation:
%o is used to print the number in octal
number format.
%x is used to print the number in
hexadecimal number format.
Note: In c octal number starts with 0 and
hexadecimal number starts with 0x.
What is octal number?
What is hexadecimal number?
(74) What will be output if you will
compile and execute the following c code?
#define message "union is\
power of c"
void main(){
clrscr();
printf("%s",message);
getch();
}
(a) union is power of c
(b) union ispower of c
(c) union is
Power of c
(d) Compiler error
(e) None of these
Answer: (b)
Explanation:
If you want to write macro constant in new
line the end with the character \.
Preprocessor tutorial.
(75) What will be output if you will
compile and execute the following c code?
#define call(x) #x
void main(){
printf("%s",call(c/c++));
}
(a)c
(b)c++
(c)#c/c++
(d)c/c++
(e)Compiler error
Answer: (d)
Explanation:
# is string operator. It converts the macro
function call argument in the string. First
see the intermediate file:
test.c 1:
test.c 2: void main(){
test.c 3: printf("%s","c/c++");
test.c 4: }
test.c 5:
It is clear macro call is replaced by its
argument in the string format.
What is # and ##?
Preprocessor tutorial?
(75) What will be output if you will
compile and execute the following c code?
void main(){
if(printf("cquestionbank"))
printf("I know c");
else
printf("I know c++");
}
(a) I know c
(b) I know c++
(c) cquestionbankI know c
(d) cquestionbankI know c++
(e) Compiler error
Answer: (c)
Explanation:
Return type of printf function is integer
which returns number of character it prints
including blank spaces. So printf function
inside if condition will return 13. In if
condition any non- zero number means true
so else part will not execute.
Prototype of printf function.
(1)
#include"stdio.h"
void main(){
long double a=55555;
clrscr();
printf("%.2LE,%.2Le",a);
getch();
}
What will be output if you will execute above code?
(a) 5.56e+04, 5.56E+04
(b) 5.6e+04, 5.6E+04
(c) 5.56E+04, 5.56e+04
(d)Compiler error.
(e)None of the above.
(2)
#include"stdio.h"
void main(){
signed a=5;
unsigned b=5;
clrscr();
if(a==b)
printf("EQUAL");
else
printf("UNEQUAL");
getch();
}
What will be output if you will execute above code?
(a) EQUAL
(b) UNEQUAL
(c) Print nothing
(d) Compiler error.
(e) None of the above
(3)
#include"stdio.h"
void main(){
fputs("STANDARD PRINTER DEVICE",stdprn);
getch();
}
What will be output if you will execute above code?
(a) STANDARD PRINTER DEVICE (on the paper)
(b) STANDARD PRINTER DEVICE (on the standard output
device)
(c) Print nothing
(d)Compiler error.
(e)None of the above.
(4)
#include"stdio.h"
void main(){
char a='\';
clrscr();
printf("%c",a);
getch();
}
What will be output if you will execute above code?
(a)\
(b)\\
(c)Print nothing
(d)Compiler error.
(e)None of the above.
(5)
#include"stdio.h"
void main(){
char a='\7',b='\8';
clrscr();
printf("%d %d",a,b);
getch();
}
What will be output if you will execute above code?
(a) 7 8
(b) 7 56
(c) 55 56
(d) Compiler error.
(e) None of the above.
(6)
#include"stdio.h"
void main(){
char a='\10';
char *str1="cquestion",*str2="bank";
clrscr();
printf("%s%c%s",str1,a,str2);
getch();
}
What will be output if you will execute above code?
(a) cquestionbank
(b) cquestioba
(c) cquestiobank
(d) Compiler error.
(e) None of the above.
(7)
#include"stdio.h"
void main(){
char a='\11';
char *str1="cquestion",*str2="bank";
clrscr();
printf("%d",printf("%s%c%s",str1,a,str2));
getch();
}
What will be output if you will execute above code?
(a) cquestionbank
(b) cquestionbank14
(c) cquestion bank14
(d)Compiler error.
(e)None of the above.
(8)
#include"stdio.h"
void main(){
char a='\12';
char *str1="cquestion",*str2="bank";
clrscr();
printf("%s%c%s",str1,a,str2);
getch();
}
What will be output if you will execute above code?
(a) cquestionbank
(b) cquestion
bank
(c) bankcquestion
(d) Compiler error.
(e) None of the above.
(9)
#include"stdio.h"
void main(){
char a='\377';
clrscr();
printf(2+"%d%o",a);
getch();
}
What will be output if you will execute above code?
(a) 379
(b) 377
(c) 177777
(d) Compiler error.
(e) None of the above.
(10)
#include"stdio.h"
void main(){
char a='\378';
clrscr();
printf("%o",a);
getch();
}
What will be output if you will execute above code?
(a) 177777
(b) 378
(c) 377
(d) Compiler error.
(e) None of the above.
(11)
void main(){
int goto=5;
printf("%d",goto);
getch()
}
What will be output if you will execute above code?
(a)5
(b)10
(c)15
(d)Compiler error.
(e)None of the above.
(12)
void main(){
long int 1a=5l;
printf("%ld",1a);
getch();
}
What will be output if you will execute above code?
(a)5
(b)51
(c)235
(d)Compiler error.
(e)None of the above.
(13)
void main(){
Char * emp name=”raja”;
printf("%s",emp name);
getch();
}
What will be output if you will execute above code?
(a)raja
(b)null
(c)Address of variable emp name
(d)Compiler error.
(e)None of the above.
(14)
void main(){
long int new=5l;
printf("%ld",new);
getch();
}
What will be output if you will execute above code?
(a)5
(b)10
(c)15
(d)Compiler error.
(e)None of the above.
(15)
void main(){
long int _=5l;
printf("%ld",_);
getch();
}
What will be output if you will execute above code?
(a)5
(b)10
(c)15
(d)Compiler error.
(e)None of the above.
(16)
void main(){
char * __WORLD__="world";
clrscr();
printf("%s ",__WORLD__);
getch();
}
What will be output if you will execute above code?
(a)world
(b)worl
(c)null
(d)Compiler error.
(e)None of the above.
(17)
void main(){
char * __TIME__="world";
clrscr();
printf("%s ",__TIME__);
getch();
}
What will be output if you will execute above code?
(a)world
(b)Current time
(c)null
(d)Compiler error.
(e)None of the above.
(18)
void main(){
long int a;
(float)a=6.5;
printf("%f",a);
getch();
}
What will be output if you will execute above code?
(a)6
(b)7
(c)6.5
(d)Compiler error.
(e)None of the above.
(19)
void main(){
long int a,b=10;
++a=b++;
printf("%d %d",a,b);
getch();
}
What will be output if you will execute above code?
(a)10 10
(b)11 11
(c)0 11
(d)Compiler error.
(e)None of the above.
(20)
void main(){
long int a,b=5;;
~a=++b + ++b + ++b;
printf("%d %d",++a,++b);
getch();
}
What will be output if you will execute above code?
(a) -10 9
(b) -11 8
(c) -11 9
(d) Compiler error.
(e) None of the above.
(21)
void main(){
int x;
int y;
x+y=10;
x=3;
printf("%d",y);
getch();
}
What will be output if you will execute above code?
(a)0
(b)7
(c)10
(d)Compiler error.
(e)None of the above.
(22)
void main(){
int x=5;
int y=10;
&x=y;
printf("%d %d",x,y);
getch();
}
What will be output if you will execute above code?
(a)5 10
(b)10 5
(c)10 10
(d)Compiler error.
(e)None of the above.
(23)
void main(){
const a=10;
a=~a;
printf("%d",a);
getch();
}
What will be output if you will execute above code?
(a) 10
(b)-11
(c)-10
(d)Compiler error.
(e)None of the above.
(24)
void main(){
const _=10;
int *p=&_;
printf("%d",*p);
getch();
}
What will be output if you will execute above code?
(a)Address of variable _
(b)20
(c)10
(d)Compiler error.
(e)None of the above.
(25)
void main(){
const int *a=12;
a++;
clrscr();
printf("%d",a);
getch();
}
What will be output if you will execute above code?
(a)12
(b)garbage value
(c)13
(d)Compiler error.
(e)None of the above.
output: garbage value
(26) What will be output of the following program ?
void main(){
const int *a=(const int * )12;
*a=(const int *)25;
clrscr();
printf("%d",a);
getch();
}
What will be output if you will execute above code?
(a)12
(b)25
(c)Address of variable a
(d)Compiler error.
(e)None of the above.
(27)
#include"stdio.h"
void main(){
char a='\15';
char *str1="cquestion",*str2="bank";
clrscr();
printf("%s%c%s",str1,a,str2);
getch();
}
What will be output if you will execute above code?
(a) bankstion
(b)cquestionbank
(c)bankcquestion
(d)Compiler error.
(e)None of the above.
Answer:
1. (c)
2. (a)
3. (a)
4. (d)
5. (b)
6. (c)
7. (c)
8. (b)
9. (c)
10. (d)
11. (d)
12. (d)
13. (d)
14. (a)
15. (a)
16. (a)
17. (d)
18. (d)
19. (d)
20. (d)
21. (d)
22. (d)
23. (d)
24. (c)
25. (b)
26. (d)
27. (a)
Explanation:
1. (c) %e or %E represent print the number in
exponential format.
%e means output has small letter e.
%E means output has capital letter e.
2. (a) before any arithmetic operation small data type
convert into higher data type i.e.signedto unsigned.
3. (a) PRINT IN CONNECTED PRINTER DEVICE, OTHERWISE
TURBO C WILL BE HANGED FOR SEARCHING OF PRINTER IN THE
SYSTEM.
4. (d) Character is \ has special meaning in c
programming.
e.g.
‘\0’ represents octal character.
‘\n’ represents new line character. So we cannot use
‘\’ directly.
5. (b) 8 is not octal digit. octal digits
are(0,1,2,3,4,5,6,7).
So ‘\7’ is octal 7
‘\8’ some special character constant.
6. (c) ‘\10’ represent octal 10 i.e. decimal 8 which is
ASCII code of backspaces (only one character)
7. (c) ‘\11’ represent octal 11 i.e. decimal 9 which is
ASCII code of blank space.
8. (b) ‘\12’ represent octal 12 i.e. decimal 10 which
is ASCII code of new line character i.e. send the
cursor to next line
9. (c) ‘\377’ is octal character constant.
%o is used to print octal number system.
10. (d) Highest possible character constant is ‘\377’
which is
Equivalent to decimal 255.
11. (d) invalid variable name. goto is keyword in c.
12. (d) invalid variable name. Variable name must star
from either alphabet or
under score.
13. (d) invalid variable name. Except underscore there
should not be any special character in name of variable
event blank space.
14. (a) We can use c++ keyword in variable name in c
programming.(But should not use ,why ?)
15. (a) Under score is valid keyword in c.
16. (a) __WORLD__ is valid identifier in c programming
language.
But we should not write variable name in the forma like
__xyx__,
__TIME__. Why ?
17. (d) __TIME__ is valid identifier in c programming
language but it is
Predefine global identifier .So a variable not should
not be global
Identifier like __TIME__,__DATE___,__FILE__ etc.
18. (d) After applying any operator in variable name it
always give a value.
(type): urinary type casting operator is not exception
for this.
It is similar to write
3456=5
It is invalid c statement. Because left side of
assignment operator must
Be a variable not any constant.
19. (d) After applying any operator in variable name it
always give a value.
(type): urinary type casting operator is not exception
for this.
It is similar to write
3456=5
It is invalid c statement. Because left side of
assignment operator must
Be a variable not any constant.
20. (d) After applying any operator in variable name it
always give a value.
(type): urinary type casting operator is not exception
for this.
It is similar to write
3456=5
It is invalid c statement. Because left side of
assignment operator must be a variable not any
constant.
21. (d) After applying any operator in variable name it
always give a value.
(type): urinary type casting operator is not exception
for this.
It is similar to write
3456=5
It is invalid c statement. Because left side of
assignment operator must be a variable not any
constant.
22. (d) After applying any operator in variable name it
always give a value.
(type): urinary type casting operator is not exception
for this.
It is similar to write
3456=5
It is invalid c statement. Because left side of
assignment operator must be a variable not any
constant.
23. (d) we Cannot modify a const object.
24. (c) We can assign address of const object to its
pointer.
Underscore is valid variable name.
25. (b) Explanation: Here address of variable a is
constant not variable a. So we can modify variable a.
Initial value of auto type data is garbage.
26. (d) we Cannot modify a const object.
Here address of variable a is constant not variable a.
27. (a) ‘\11’ represent octal 11 i.e. decimal 9 which
is ASCII code of carriage return (return to first
position of that line)

! "

• #
• $!% & &

!" #

$ % " " !
# ' ( ))( ( ' &
& (
*
'

&'

%%

+ & & *

%%

&

!" ( ( "

, ' '

) ( " % "

- . % /

* ( ( (

- 0 + 1 2

%%

+ ( ,,,

-03 4 5 & &+ 0 4 &6 1 7 "

! "#

$%"&' (!& )! )!&*"+


• 6 %4 0# 2
• 6 1. 60#8 %4 0# 2 +#0- 9 !2!0# 2
• 8 :7 ; 5 6 %4 0# 2 +#0- 9 !2!0# 2
• %4 0# 2 $ :!0 :
• 6 : ;:!3 #2 #249 ;66 6 3 # :
• %4 0# 2 $ #20 :
• %4 0# 2 $ : : 6 :
• 6 33!25 #2 !:;43 20 %4 0# 2
• 0:4604: %4 0# 2 +#0- 9 !2!0# 2
• %4 0# 2 $ 0:#2; #2 6
• %4 0# 2 $ $4260# 2
• $!% ! < 5 %4 0# 2
• 1 0 %4 0# 2 $ 6 +#0- 9 !2!0# 2
• 36% %4 0# 2 $ 6 : ;:!33#2;
• 6 : ;:!33#2; %4#= +#0- 40# 2
• 1#; #25 9 $ 6 %4 0# 2

! "#
,
• 3 +
• 5


• !
• $
• 4 ! 6

• ! ' 6 '

'%'(+ )-&
• !58!26 .!8! 040 :#!
• -4; .!8! %4 0# 2 +#0- 9 !2!0# 2
• : ! 2#2; !25 ! 0#045
• % 040 :#!
• 5 + !5 $0+!: +#0- 6:!6<
• 5 +2 !5 1 <

-(."+ (//%! '0

1%2" (--" ' (!& (3 $%"&' (!&


• > ?"
o @AB ?"
• C D?"
o ?A@> D"
o EA @ B"
o EA E B "
o A D "
o @A @ @"
o @AB ?"
• ? >D"
o A > @>"
o A@ F"
o A@C B"
o @A B D"
o BAB "
o FA D "
o >A ? "
o CA > "
o CA B @"
o ?A "
o ?AB "
o EA C "
o EA D "
o AB C"
• E CC"
o A DC"
o A ? D"
o A@F ?"
o BA "
o BA@@ "
o DA F ?"
o FAB >"
o >A C "
o >A D F"
o >A@ "
o >A@? "
o CA @ "
o ?A > @"
o ?AB @"
o EA > >E"
6

#2 :0# 2 :0 ! ; :#0-3
1411 :0 ! ; :#0- !25 6 : ;:!3
60# 2 :0 ! ; :#0- !25 6 : ;:!3
6 26!0 2!0 3!27 $# !25 0 : 0- 3 #2 ! $# #2***
6 420 2 $ 664:: 26 $ ! 6-!:!60 : #2 ! 0:#2;***
5!0! 07 040 :#! #2 6
!3#6!1 !#: : ;:!3 #2 6
5:!+ 0- $ +#2; 7:!3#5 #2 6
3 3 :7 3! 040 :#! #2 6
$# -!25 #2; 040 :#! #2 6
6 : ;:!3 0 6! 64 !0 !: ! $ ! 6#:6
:#20 :#3 2431 : 1 0+ 2 HB 4 #2; 1: !< !25 ***
6 420 0- 2431 : $ 664:: 26 $ !27 0+ 8 + ***
! 31 7 !2;4!; : ;:!33#2; 17 6
:#20 ;#8 2 0:#2; $: 3 $#: 0 664:: 26 $ ;#8 2 ***
! F 5#;#0 2431 : # #2 40 0-: 4;- 0- < 7 1 !:5*0-***
;: !0 0 !3 2; B 2431 : 4 #2; 1#2!:7 3#24 #2 6
8!:#!1 #2 6
8!:#!1 #2 6
#2 :0 !2 3 20 #2 !2 !::!7 !0 5 #: 5 #0# 2 #***
:!0 : !25 9 : # 2 %4 0# 2 #2 6
5 0 3 20 $: 3 !2 !::!7 !0 5 #: 5 #0# 2 4***
6 20: 0!0 3 20 #2 6
0:#2; 040 :#! #2 6
: : 6 : 040 :#! #2 6
0:4604: 040 :#! #2 6 !2;4!;
0:4604: 040 :#! #2 6 !2;4!;
6 !2;4!; 6 3 # :
5 * *
5 0 : 0 &
-7 #6! !55: $ : ;:!3
- 9!5 6#3! 2431 : : : 20!0# 2
5 6:#1 04:1 6 6 3 # :
+-!0 # $# /
+:#0 ! 6 : ;:!3 0 $#25 #= $ ! $#
+ & ) ***
+ & ***
6 #20
0 :8# + %4 0# 2
6 %4 0# 2
6 : ;:!33#2; 040 :#!
0:#2; %4 0# 2 !25 !2 + : #2 6
&

6 &' & ***


-
+ &
6 &
+!
+! #2; $ 0:#2; 4 #2; 6 : ;:!3
+! #2; $ 0+ !::!7 4 #2; 6 : ;:!3
!55#0# 2 I 410:!60#
410:!60# 2 $ 0+ 6 3 9 2431 : 4 #2***
6 28 : # 2 $ 5 6#3! 0 1#2!:7 4 #2; 6 : ;:!3
6 28 : # 2 $ $!: -2#0 0 6 20#;:!5 4 #2; 6 : ;***
$#25 40 0:! $ ! 3!0:#9 #2 6 : ;:!3
+ & ***
1411 :0 4 #2; 6 : ;:!3
& & &
$#25 40 ; 2 :#6 : 0 $ ! 2431 : 4 #2; 6 : ;:!3
+ 6 & ***
6 & &
6
, '

& '
!

! ! 6

You might also like