Anda di halaman 1dari 516

First Job…. Dream Job…. Freshersworld.

com

Aptitude Questions
1.One of the following is my secret word:AIM DUE MOD OAT TIE.With the list
in front of you, if I were to tell you any one of my secret word, then you would be
able to tell me the number of vowels in my secret word.Which is my secret word?

Ans.TIE

2.In the following figure:A B C


D
E F G
H
I
Each of the digits 1, 2, 3, 4, 5, 6, 7, 8, and 9 is:
a)Represented by a different letter in the figure above.
b)Positioned in the figure above so that each of A + B + C,C + D +E,E + F + G,
and G + H + I is equal to 13.
Which digit does E represent?

Ans.E is 4

3.One of Mr. Horton,his wife,their son,and Mr. Horton's mother is a doctor and
another is a lawyer.
a)If the doctor is younger than the lawyer, then the doctor and the lawyer are
not blood relatives.
b)If the doctor is a woman, then the doctor and the lawyer are blood relatives.
c)If the lawyer is a man, then the doctor is a man.
Whose occupation you know?

Ans.Mr. Horton:he is the doctor.

4.Here is a picture of two cubes:

a)The two cubes are exactly alike.


b)The hidden faces indicated by the dots have the same alphabet on them.
Which alphabet-q, r, w, or k is on the faces indicated by the dots?

Ans.q

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

5.In the following figure:


A D
B G E
C F

Each of the seven digits from 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 is:


a)Represented by a different letter in the figure above.
b)Positioned in the figure above so that A*B*C,B*G*E, and D*E*F are equal.
Which digit does G represent?

Ans.G represents the digit 2.

6.Mr. and Mrs. Aye and Mr. and Mrs. Bee competed in a chess tournament.Of the
three games played:
a)In only the first game werethe two players married to each other.
b)The men won two games and the women won one game.
c)The Ayes won more games than the Bees.
d)Anyone who lost game did not play the subsequent game.
Who did not lose a game?

Ans.Mrs.Bee did not lose a game.

7.Three piles of chips--pile I consists one chip, pile II consists of chips, and pile
III consists of three chips--are to be used in game played by Anita and
Brinda.The game requires:
a)That each player in turn take only one chip or all chips from just one pile.
b)That the player who has to take the last chip loses.
c)That Anita now have her turn.
From which pile should Anita draw in order to win?

Ans.Pile II

8.Of Abdul, Binoy, and Chandini:


a)Each member belongs to the Tee family whose members always tell the truth
or to the El family whose members always lie.
b)Abdul says ''Either I belong or Binoy belongs to a different family from the
other two."
Whose family do you name of?

Ans.Binoy's family--El.

9.In a class composed of x girls and y boys what part of the class is composed of
girls

A.y/(x + y)
B.x/xy
C.x/(x + y)
D.y/xy

Ans.C

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

10.What is the maximum number of half-pint bottles of cream that can be filled
with a 4-gallon can of cream(2 pt.=1 qt. and 4 qt.=1 gal)

A.16
B.24
C.30
D.64

Ans.D

11.If the operation,^ is defined by the equation x ^ y = 2x + y,what is the value


of a in 2 ^ a = a ^ 3

A.0
B.1
C.-1
D.4

Ans.B

12.A coffee shop blends 2 kinds of coffee,putting in 2 parts of a 33p. a gm. grade
to 1 part of a 24p. a gm.If the mixture is changed to 1 part of the 33p. a gm. to
2 parts of the less expensive grade,how much will the shop save in blending 100
gms.

A.Rs.90
B.Rs.1.00
C.Rs.3.00
D.Rs.8.00

Ans.C

13.There are 200 questions on a 3 hr examination.Among these questions are 50


mathematics problems.It is suggested that twice as much time be spent on each
maths problem as for each other question.How many minutes should be spent on
mathematics problems

A.36
B.72
C.60
D.100

Ans.B

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

14.In a group of 15,7 have studied Latin, 8 have studied Greek, and 3 have not
studied either.How many of these studied both Latin and Greek

A.0
B.3
C.4
D.5

Ans.B

15.If 13 = 13w/(1-w) ,then (2w)2 =

A.1/4
B.1/2
C.1
D.2

Ans.C

16. If a and b are positive integers and (a-b)/3.5 = 4/7, then

(A) b < a
(B) b > a
(C) b = a
(D) b >= a

Ans. A

17. In june a baseball team that played 60 games had won 30% of its game
played. After a phenomenal winning streak this team raised its average to 50%
.How many games must the team have won in a row to attain this average?

A. 12
B. 20
C. 24
D. 30

Ans. C

18. M men agree to purchase a gift for Rs. D. If three men drop out how much
more will each have to contribute towards the purchase of the gift/

A. D/(M-3)
B. MD/3

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

C. M/(D-3)
D. 3D/(M2-3M)

Ans. D

19. A company contracts to paint 3 houses. Mr.Brown can paint a house in 6 days
while Mr.Black would take 8 days and Mr.Blue 12 days. After 8 days Mr.Brown
goes on vacation and Mr. Black begins to work for a period of 6 days. How many
days will it take Mr.Blue to complete the contract?

A. 7
B. 8
C. 11
D. 12

Ans.C

20. 2 hours after a freight train leaves Delhi a passenger train leaves the same
station travelling in the same direction at an average speed of 16 km/hr. After
travelling 4 hrs the passenger train overtakes the freight train. The average
speed of the freight train was?

A. 30
B. 40
C.58
D. 60

Ans. B

21. If 9x-3y=12 and 3x-5y=7 then 6x-2y = ?

A.-5
B. 4
C. 2
D. 8

Ans. D

22. There are 5 red shoes, 4 green shoes. If one draw randomly a shoe what is
the probability of getting a red shoe

Ans 5c1/ 9c1

23. What is the selling price of a car? If the cost of the car is Rs.60 and a profit
of 10% over selling price is earned

Ans: Rs 66/-

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

24. 1/3 of girls , 1/2 of boys go to canteen .What factor and total number of
classmates go to canteen.

Ans: Cannot be determined.

25. The price of a product is reduced by 30% . By what percentage should it be


increased to make it 100%

Ans: 42.857%

26. There is a square of side 6cm . A circle is inscribed inside the square. Find the
ratio of the area of circle to square.

Ans. 11/14

27. There are two candles of equal lengths and of different thickness. The thicker
one lasts of six hours. The thinner 2 hours less than the thicker one. Ramesh
lights the two candles at the same time. When he went to bed he saw the thicker
one is twice the length of the thinner one. How long ago did Ramesh light the two
candles .

Ans: 3 hours.

28. If M/N = 6/5,then 3M+2N = ?

29. If p/q = 5/4 , then 2p+q= ?

30. If PQRST is a parallelogram what it the ratio of triangle PQS & parallelogram
PQRST .

Ans: 1:2

31. The cost of an item is Rs 12.60. If the profit is 10% over selling price what is
the selling price ?

Ans: Rs 13.86/-

32. There are 6 red shoes & 4 green shoes . If two of red shoes are drawn what
is the probability of getting red shoes

Ans: 6c2/10c2

33. To 15 lts of water containing 20% alcohol, we add 5 lts of pure water. What is
% alcohol.

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

Ans : 15%

34. A worker is paid Rs.20/- for a full days work. He works 1,1/3,2/3,1/8.3/4
days in a week. What is the total amount paid for that worker ?

Ans : 57.50

35. If the value of x lies between 0 & 1 which of the following is the largest?

(a) x
(b) x2
(c) -x
(d) 1/x

Ans : (d)

36. If the total distance of a journey is 120 km .If one goes by 60 kmph and
comes back at 40kmph what is the average speed during the journey?

Ans: 48kmph

37. A school has 30% students from Maharashtra .Out of these 20% are Bombey
students. Find the total percentage of Bombay?

Ans: 6%

38. An equilateral triangle of sides 3 inch each is given. How many equilateral
triangles of side 1 inch can be formed from it?

Ans: 9

39. If A/B = 3/5,then 15A = ?

Ans : 9B

40. Each side of a rectangle is increased by 100% .By what percentage does the
area increase?

Ans : 300%

41. Perimeter of the back wheel = 9 feet, front wheel = 7 feet on a certain
distance, the front wheel gets 10 revolutions more than the back wheel .What is
the distance?

Ans : 315 feet.

42. Perimeter of front wheel =30, back wheel = 20. If front wheel revolves 240
times. How many revolutions will the back wheel take?

Ans: 360 times

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

43. 20% of a 6 litre solution and 60% of 4 litre solution are mixed. What
percentage of the mixture of solution

Ans: 36%

44City A's population is 68000, decreasing at a rate of 80 people per year. City B
having population 42000 is increasing at a rate of 120 people per year. In how
many years both the cities will have same population?

Ans: 130 years

45Two cars are 15 kms apart. One is turning at a speed of 50kmph and the other
at 40kmph . How much time will it take for the two cars to meet?

Ans: 3/2 hours

46A person wants to buy 3 paise and 5 paise stamps costing exactly one rupee. If
he buys which of the following number of stamps he won't able to buy 3 paise
stamps.

Ans: 9

47There are 12 boys and 15 girls, How many different dancing groups can be
formed with 2 boys and 3 girls.

48Which of the following fractions is less than 1/3

(a) 22/62
(b) 15/46
(c) 2/3
(d) 1

Ans: (b)

49There are two circles, one circle is inscribed and another circle is circumscribed
over a square. What is the ratio of area of inner to outer circle?

Ans: 1 : 2

50Three types of tea the a,b,c costs Rs. 95/kg,100/kg and70/kg respectively.
How many kgs of each should be blended to produce 100 kg of mixture worth
Rs.90/kg,
given that the quntities of band c are equal

a)70,15,15
b)50,25,25
c)60,20,20
d)40,30,30

Ans. (b)

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

51. in a class, except 18 all are above 50 years.


15 are below 50 years of age. How many people are there

(a) 30
(b) 33
(c) 36
(d) none of these.

Ans. (d)

52. If a boat is moving in upstream with velocity of 14 km/hr and goes


downstream with a velocity of 40 km/hr, then what is the speed of the stream ?

(a) 13 km/hr
(b) 26 km/hr
(c) 34 km/hr
(d) none of these

Ans. A

53. Find the value of ( 0.75 * 0.75 * 0.75 - 0.001 ) / ( 0.75 * 0.75 - 0.075 +
0.01)

(a) 0.845
(b) 1.908
(c) 2.312
(d) 0.001

Ans. A

54. A can have a piece of work done in 8 days, B can work three times faster
than the A, C can work five times faster than A. How many days will they take to
do the work together ?

(a) 3 days
(b) 8/9 days
(c) 4 days
(d) can't say

Ans. B

55. A car travels a certain distance taking 7 hrs in forward journey, during the
return journey increased speed 12km/hr takes the times 5 hrs.What is the
distance travelled

(a) 210 kms


(b) 30 kms
(c) 20 kms
(c) none of these

Ans. B

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

56. Instead of multiplying a number by 7, the number is divided by 7. What is the


percentage of error obtained ?

57. Find (7x + 4y ) / (x-2y) if x/2y = 3/2 ?

(a) 6
(b) 8
(c) 7
(d) data insufficient

Ans. C

58. A man buys 12 lts of liquid which contains 20% of the liquid and the rest is
water. He then mixes it with 10 lts of another mixture with 30% of liquid.What is
the % of water in the new mixture?

59. If a man buys 1 lt of milk for Rs.12 and mixes it with 20% water and sells it
for Rs.15, then what is the percentage of gain?

60. Pipe A can fill a tank in 30 mins and Pipe B can fill it in 28 mins.If 3/4th of the
tank is filled by Pipe B alone and both are opened, how much time is required by
both the pipes to fill the tank completely ?

61. If on an item a company gives 25% discount, they earn 25% profit. If they
now give 10% discount then what is the profit percentage.

(a) 40%
(b) 55%
(c) 35%
(d) 30%

Ans. D

62. A certain number of men can finish a piece of work in 10 days. If however
there were 10 men less it will take 10 days more for the work to be finished. How
many men were there originally?

(a) 110 men


(b) 130 men
(c) 100 men
(d) none of these

Ans. A

63. In simple interest what sum amounts of Rs.1120/- in 4 years and Rs.1200/-
in 5 years ?

(a) Rs. 500


(b) Rs. 600
(c) Rs. 800
(d) Rs. 900

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

Ans. C

64. If a sum of money compound annually amounts of thrice itself in 3 years. In


how many years
will it become 9 times itself.

(a) 6
(b) 8
(c) 10
(d) 12

Ans A

65. Two trains move in the same direction at 50 kmph and 32 kmph respectively.
A man in the slower train
observes the 15 seconds elapse before the faster train completely passes by him.
What is the length of faster train ?

(a) 100m
(b) 75m
(c) 120m
(d) 50m

Ans B

66. How many mashes are there in 1 squrare meter of wire gauge if each mesh
is 8mm long and 5mm wide ?

(a) 2500
(b) 25000
(c) 250
(d) 250000

Ans B

67. x% of y is y% of ?
(a) x/y
(b) 2y
(c) x
(d) can't be determined

Ans. C

68. The price of sugar increases by 20%, by what % should a housewife reduce
the consumption of sugar so that expenditure on sugar can be same as before ?
(a) 15%
(b) 16.66%
(c) 12%
(d) 9%

Ans B

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

69. A man spends half of his salary on household expenses, 1/4th for rent, 1/5th
for travel expenses, the man deposits the rest in a bank. If his monthly deposits
in the bank amount 50, what is his monthly salary ?
(a) Rs.500
(b) Rs.1500
(c) Rs.1000
(d) Rs. 900

Ans C

70. The population of a city increases @ 4% p.a. There is an additional annual


increase of 4% of the population due to the influx of job seekers, find the %
increase in population after 2 years ?

71. The ratio of the number of boys and girls in a school is 3:2 Out of these 10%
the boys and 25% of girls are scholarship holders. % of students who are not
scholarship holders.?

72. 15 men take 21 days of 8 hrs. each to do a piece of work. How many days of
6 hrs. each would it take for 21 women if 3 women do as much work as 2 men?
(a) 30
(b) 20
(c) 19
(d) 29

Ans. A

73. A cylinder is 6 cms in diameter and 6 cms in height. If spheres of the same
size are made from the material obtained, what is the diameter of each sphere?
(a) 5 cms
(b) 2 cms
(c) 3 cms
(d) 4 cms

Ans C

74. A rectangular plank (2)1/2 meters wide can be placed so that it is on either
side of the diagonal of a square shown below.(Figure is not available)What is the
area of the plank?

Ans :7*(2)1/2

75. The difference b/w the compound interest payble half yearly and the simple
interest on a
certain sum lent out at 10% p.a for 1 year is Rs 25. What is the sum?
(a) Rs. 15000
(b) Rs. 12000
(c) Rs. 10000
(d) none of these

Ans C

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

76. What is the smallest number by which 2880 must be divided in order to make
it into a
perfect square ?

(a) 3
(b) 4
(c) 5
(d) 6

Ans. C

77. A father is 30 years older than his son however he will be only thrice as old
as the son after 5 years
what is father's present age ?

(a) 40 yrs
(b) 30 yrs
(c) 50 yrs
(d) none of these

Ans. A

78. An article sold at a profit of 20% if both the cost price and selling price would
be Rs.20/- the profit would be 10% more. What is the cost price of that article?

29. If an item costs Rs.3 in '99 and Rs.203 in '00.What is the % increase in price?

(a) 200/3 %
(b) 200/6 %
(c) 100%
(d) none of these

Ans. A

80. 5 men or 8 women do equal amount of work in a day. a job requires 3 men
and 5 women to finish the job in 10 days how many woman are required to finish
the job in 14 days.

a) 10
b) 7
c) 6
d) 12

Ans 7

81. A simple interest amount of rs 5000 for six month is rs 200. what is the anual
rate of interest?

a) 10%
b) 6%

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

c) 8%
d) 9%

Ans 8%

82. In objective test a correct ans score 4 marks and on a wrong ans 2 marks are
---. a student score 480 marks from 150 question. how many ans were
correct?

a) 120
b) 130
c) 110
d) 150

Ans130.

83. An artical sold at amount of 50% the net sale price is rs 425 .what is the list
price of the artical?

a) 500
b) 488
c) 480
d) 510

Ans 500

84. A man leaves office daily at 7pm A driver with car comes from his home to
pick him from office and bring back home
One day he gets free at 5:30 and instead of waiting for driver he starts
walking towards home.
In the way he meets the car and returns home on car He reaches home 20
minutes earlier than usual.
In how much time does the man reach home usually??

Ans. 1hr 20min

85. A works thrice as much as B. If A takes 60 days less than B to do a work then
find the number of days it would take to complete the work if both work
together?

Ans. 22½days

86. How many 1's are there in the binary form of 8*1024 + 3*64 + 3

Ans. 4

87. In a digital circuit which was to implement (A B) + (A)XOR(B), the designer


implements (A B) (A)XOR(B)
What is the probability of error in it ?

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

88. A boy has Rs 2. He wins or loses Re 1 at a time If he wins he gets Re 1 and


if he loses the game he loses Re 1.
He can loose only 5 times. He is out of the game if he earns Rs 5.
Find the number of ways in which this is possible?

Ans. 16

89. If there are 1024*1280 pixels on a screen and each pixel can have around 16
million colors
Find the memory required for this?

Ans. 4MB

90. On a particular day A and B decide that they would either speak the truth or
will lie.
C asks A whether he is speaking truth or lying?
He answers and B listens to what he said. C then asks B what A has said B
says "A says that he is a liar"
What is B speaking ?

(a) Truth
(b) Lie
(c) Truth when A lies
(d) Cannot be determined

Ans. (b)

91. What is the angle between the two hands of a clock when time is 8:30

Ans. 75(approx)

92. A student is ranked 13th from right and 8th from left. How many students are
there in totality ?

93. A man walks east and turns right and then from there to his left and then
45degrees to
his right.In which direction did he go

Ans. North west

94. A student gets 70% in one subject, 80% in the other. To get an overall of
75% how much should get in third subject.

95. A man shows his friend a woman sitting in a park and says that she the
daughter of my grandmother's only son.
What is the relation between the two

Ans. Daughter

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

96. How many squares with sides 1/2 inch long are needed to cover a rectangle
that is 4 ft long and 6 ft wide

(a) 24
(b) 96
(c) 3456
(d) 13824
(e) 14266

97. If a=2/3b , b=2/3c, and c=2/3d what part of d is b/

(a) 8/27
(b) 4/9
(c) 2/3
(d) 75%
(e) 4/3

Ans. (b)

2598Successive discounts of 20% and 15% are equal to a single discount of

(a) 30%
(b) 32%
(c) 34%
(d) 35%
(e) 36

Ans. (b)

99. The petrol tank of an automobile can hold g liters.If a liters was removed
when the tank was full, what part of the full tank was removed?

(a)g-a
(b)g/a
(c) a/g
(d) (g-a)/a
(e) (g-a)/g

Ans. (c)

100. If x/y=4 and y is not '0' what % of x is 2x-y

(a)150%
(b)175%
(c)200%
(d)250%

Ans. (b)

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

Aptitude Questions
1.If 2x-y=4 then 6x-3y=?

(a)15
(b)12
(c)18
(d)10

Ans. (b)

2.If x=y=2z and xyz=256 then what is the value of x?

(a)12
(b)8
(c)16
(d)6

Ans. (b)

3. (1/10)18 - (1/10)20 = ?

(a) 99/1020
(b) 99/10
(c) 0.9
(d) none of these

Ans. (a)

4.Pipe A can fill in 20 minutes and Pipe B in 30 mins and Pipe C can empty the
same in 40 mins.If all of them work together, find the time taken to fill the tank

(a) 17 1/7 mins


(b) 20 mins
(c) 8 mins
(d) none of these

Ans. (a)

5. Thirty men take 20 days to complete a job working 9 hours a day.How many
hour a day should 40 men work to complete the job?

(a) 8 hrs
(b) 7 1/2 hrs
(c) 7 hrs
(d) 9 hrs

Ans. (b)

6. Find the smallest number in a GP whose sum is 38 and product 1728

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

(a) 12
(b) 20
(c) 8
(d) none of these

Ans. (c)

7. A boat travels 20 kms upstream in 6 hrs and 18 kms downstream in 4 hrs.Find


the speed of the boat in still water and the speed of the water current?

(a) 1/2 kmph


(b) 7/12 kmph
(c) 5 kmph
(d) none of these

Ans. (b)

8. A goat is tied to one corner of a square plot of side 12m by a rope 7m


long.Find the area it can graze?

(a) 38.5 sq.m


(b) 155 sq.m
(c) 144 sq.m
(d) 19.25 sq.m

Ans. (a)

9. Mr. Shah decided to walk down the escalator of a tube station. He found that
if he walks down 26 steps, he requires 30 seconds to reach the bottom. However,
if he steps down 34 stairs he would only require 18 seconds to get to the bottom.
If the time is measured from the moment the top step begins to descend to the
time he steps off the last step at the bottom, find out the height of the stair way
in steps?

Ans.46 steps.

10. The average age of 10 members of a committee is the same as it was 4 years
ago, because an old member has been replaced by a young member. Find how
much younger is the new member ?

Ans.40 years.

11. Three containers A, B and C have volumes a, b, and c respectively; and


container A is full of water while the other two are empty. If from container A
water is poured into container B which becomes 1/3 full, and into container C
which becomes 1/2 full, how much water is left in container A?

12. ABCE is an isosceles trapezoid and ACDE is a rectangle. AB = 10 and EC =


20. What is the length of AE?

Ans. AE = 10.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

13. In the given figure, PA and PB are tangents to the circle at A and B
respectively and the chord BC is parallel to tangent PA. If AC = 6 cm, and
length of the tangent AP is 9 cm, then what is the length of the chord BC?

Ans. BC = 4 cm.

15 Three cards are drawn at random from an ordinary pack of cards. Find the
probability that they will consist of a king, a queen and an ace.

Ans. 64/2210.

16. A number of cats got together and decided to kill between them 999919
mice. Every cat killed an equal number of mice. Each cat killed more mice than
there were cats. How many cats do you think there were ?

Ans. 991.

17. If Log2 x - 5 Log x + 6 = 0, then what would the value / values of x be?

Ans. x = e2 or e3.

18. The square of a two digit number is divided by half the number. After 36 is
added to the quotient, this sum is then divided by 2. The digits of the resulting
number are the same as those in the original number, but they are in reverse
order. The ten's place of the original number is equal to twice the difference
between its digits. What is the number?

Ans. 46

19.Can you tender a one rupee note in such a manner that there shall be total
50 coins but none of them would be 2 paise coins.?

Ans. 45 one paisa coins, 2 five paise coins, 2 ten paise coins, and 1 twenty-five
paise coins.

20.A monkey starts climbing up a tree 20ft. tall. Each hour, it hops 3ft. and slips
back 2ft. How much time would it take the monkey to reach the top?

Ans.18 hours.

21. What is the missing number in this series? 8 2 14 6 11 ? 14 6 18 12

Ans. 9

22. A certain type of mixture is prepared by mixing brand A at Rs.9 a kg. with
brand B at Rs.4 a kg. If the mixture is worth Rs.7 a kg., how many kgs. of
brand A are needed to make 40kgs. of the mixture?

Ans. Brand A needed is 24kgs.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

23. A wizard named Nepo says "I am only three times my son's age. My father
is 40 years more than twice my age. Together the three of us are a mere 1240
years old." How old is Nepo?

Ans. 360 years old.

24. One dog tells the other that there are two dogs in front of me. The other one
also shouts that he too had two behind him. How many are they?

Ans. Three.

25. A man ate 100 bananas in five days, each day eating 6 more than the
previous day. How many bananas did he eat on the first day?

Ans. Eight.

26. If it takes five minutes to boil one egg, how long will it take to boil four eggs?

Ans. Five minutes.

27. The minute hand of a clock overtakes the hour hand at intervals of 64
minutes of correct time. How much a day does the clock gain or lose?

Ans. 32 8/11 minutes.

28. Solve for x and y: 1/x - 1/y = 1/3, 1/x2 + 1/y2 = 5/9.

Ans. x = 3/2 or -3 and y = 3 or -3/2.

29. Daal is now being sold at Rs. 20 a kg. During last month its rate was Rs. 16
per kg. By how much percent should a family reduce its consumption so as to
keep the expenditure fixed?

Ans. 20 %.

30. Find the least value of 3x + 4y if x2y3 = 6.

Ans. 10.

31. Can you find out what day of the week was January 12, 1979?

Ans. Friday.

32. A garrison of 3300 men has provisions for 32 days, when given at a rate of
850 grams per head. At the end of 7 days a reinforcement arrives and it was
found that now the provisions will last 8 days less, when given at the rate of 825
grams per head. How, many more men can it feed?

Ans. 1700 men.

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

33. From 5 different green balls, four different blue balls and three different red
balls, how many combinations of balls can be chosen taking at least one green
and one blue ball?

Ans. 3720.

34. Three pipes, A, B, & C are attached to a tank. A & B can fill it in 20 & 30
minutes respectively while C can empty it in 15 minutes. If A, B & C are kept
open successively for 1 minute each, how soon will the tank be filled?

Ans. 167 minutes.

35. A person walking 5/6 of his usual rate is 40 minutes late. What is his usual
time? Ans. 3 hours 20 minutes.

36.For a motorist there are three ways going from City A to City C. By way of
bridge the distance is 20 miles and toll is $0.75. A tunnel between the two cities
is a distance of 10 miles and toll is $1.00 for the vehicle and driver and $0.10 for
each passenger. A two-lane highway without toll goes east for 30 miles to city B
and then 20 miles in a northwest direction to City C.

1. Which is the shortest route from B to C

(a) Directly on toll free highway to City C


(b) The bridge
(c) The Tunnel
(d) The bridge or the tunnel
(e) The bridge only if traffic is heavy on the toll free highway

Ans. (a)

2. The most economical way of going from City A to City B, in terms of toll and
distance is to use the

(a) tunnel
(b) bridge
(c) bridge or tunnel
(d) toll free highway
(e) bridge and highway

Ans. (a)

3. Jim usually drives alone from City C to City A every working day. His firm
deducts a percentage of employee pay for lateness. Which factor would most
influence his choice of the bridge or the tunnel ?

(a) Whether his wife goes with him


(b) scenic beauty on the route

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

(c) Traffic conditions on the road, bridge and tunnel


(d) saving $0.25 in tolls
(e) price of gasoline consumed in covering additional 10 miles on the bridge

Ans. (a)

4. In choosing between the use of the bridge and the tunnel the chief factor(s)
would be:
I. Traffic and road conditions
II. Number of passengers in the car
III. Location of one's homes in the center or outskirts of one of the cities
IV. Desire to save $0.25

(a) I only
(b) II only
(c) II and III only
(d) III and IV only
(e) I and II only

Ans. (a)

37.The letters A, B, C, D, E, F and G, not necessarily in that order, stand for


seven consecutive integers from 1 to 10
D is 3 less than A
B is the middle term
F is as much less than B as C is greater than D
G is greater than F

1. The fifth integer is


(a) A
(b) C
(c) D
(d) E
(e) F

Ans. (a)

2. A is as much greater than F as which integer is less than G


(a) A
(b) B
(c) C
(d) D
(e) E

Ans. (a)

3. If A = 7, the sum of E and G is


(a) 8
(b) 10

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

(c) 12
(d) 14
(e) 16

Ans. (a)

4. A - F = ?
(a) 1
(b) 2
(c) 3
(d) 4
(e) Cannot be determined

Ans. (a)

5. An integer T is as much greater than C as C is greater than E. T can be written


as A + E. What is D?
(a) 2
(b) 3
(c) 4
(d) 5
(e) Cannot be determined

Ans. (a)

6. The greatest possible value of C is how much greater than the smallest
possible value of D?
(a) 2
(b) 3
(c) 4
(d) 5
(e) 6

Ans. (a)

38.
1. All G's are H's
2. All G's are J's or K's
3. All J's and K's are G's
4. All L's are K's
5. All N's are M's
6. No M's are G's

1. If no P's are K's, which of the following must be true?

(a) All P's are J's


(b) No P is a G
(c) No P is an H

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

(d) If any P is an H it is a G
(e) If any P is a G it is a J

Ans. (a)

2. Which of the following can be logically deduced from the conditions stated?

(a) No M's are H's


(b) No M's that are not N's are H's
(c) No H's are M's
(d) Some M's are H's
(e) All M's are H's

Ans. (a)

3. Which of the following is inconsistent with one or more of the conditions?

(a) All H's are G's


(b) All H's that are not G's are M's
(c) Some H's are both M's and G's
(d) No M's are H's
(e) All M's are H's

Ans. (a)

4. The statement "No L's are J's" is


I. Logically deducible from the conditions stated
II. Consistent with but not deducible from the conditions stated
III. Deducible from the stated conditions together with the additional statement
"No J's are K's"

(a) I only
(b) II only
(c) III only
(d) II and III only
(e) Neither I, II nor III

Ans. (a)

39.In country X, democratic, conservative and justice parties have fought three
civil wars in twenty years. TO restore stability an agreement is reached to rotate
the top offices President, Prime Minister and Army Chief among the parties so
that each party controls one and only one office at all times. The three top office
holders must each have two deputies, one from each of the other parties. Each
deputy must choose a staff composed of equally members of his or her chiefs
party and member of the third party.

1. When Justice party holds one of the top offices, which of the following cannot

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

be true

(a) Some of the staff members within that office are justice party members
(b) Some of the staff members within that office are democratic party members
(c) Two of the deputies within the other offices are justice party members
(d) Two of the deputies within the other offices are conservative party members
(e) Some of the staff members within the other offices are justice party
members.

Ans. (a)

2. When the democratic party holds presidency, the staff of the prime minister's
deputies are composed
I. One-fourth of democratic party members
II. One-half of justice party members and one-fourth of conservative party
members
III. One-half of conservative party members and one-fourth of justice party
members.

(a) I only
(b) I and II only
(c) II or III but not both
(d) I and II or I and III
(e) None of these

Ans. (a)

3. Which of the following is allowable under the rules as stated:

(a) More than half of the staff within a given office belonging to a single party
(b) Half of the staff within a given office belonging to a single party
(c) Any person having a member of the same party as his or her immediate
superior
(d) Half the total number of staff members in all three offices belonging to a
single party
(e) Half the staff members in a given office belonging to parties different from the
party of the top office holder in that office.

Ans. (a)

4. The office of the Army Chief passes from Conservative to Justice party. Which
of the following must be fired.

(a) The democratic deputy and all staff members belonging to Justice party
(b) Justice party deputy and all his or hers staff members
(c) Justice party deputy and half of his Conservative staff members in the chief of
staff office
(d) The Conservative deputy and all of his or her staff members belonging to
Conservative party
(e) No deputies and all staff members belonging to conservative parties.

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

Ans. (a)

40.In recommendations to the board of trustees a tuition increase of $500 per


year, the president of the university said "There were no student demonstrations
over the previous increases of $300 last year and $200 the year before". If the
president's statement is accurate then which of the following can be validly
inferred from the information given:
I. Most students in previous years felt that the increases were justified because of
increased operating costs.
II. Student apathy was responsible for the failure of students to protest the
previous tuition increases.
III. Students are not likely to demonstrate over new tuition increases.

(a) I only
(b) II only
(c) I or II but not both
(d) I, II and III
(e) None

Ans. (a)

41. The office staff of XYZ corporation presently consists of three bookeepers--A,
B, C and 5 secretaries D, E, F, G, H. The management is planning to open a new
office in another city using 2 bookeepers and 3 secretaries of the present staff .
To do so they plan to seperate certain individuals who don't function well
together. The following guidelines were established to set up the new office

I. Bookeepers A and C are constantly finding fault with one another and should
not be sent together to the new office as a team
II. C and E function well alone but not as a team , they should be seperated
III. D and G have not been on speaking terms and shouldn't go together
IV Since D and F have been competing for promotion they shouldn't be a team

1.If A is to be moved as one of the bookeepers,which of the following cannot be a


possible working unit.

A.ABDEH
B.ABDGH
C.ABEFH
D.ABEGH

Ans.B

2.If C and F are moved to the new office,how many combinations are possible

A.1
B.2

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

C.3
D.4

Ans.A

3.If C is sent to the new office,which member of the staff cannot go with C

A.B
B.D
C.F
D.G

Ans.B

4.Under the guidelines developed,which of the following must go to the new office

A.B
B.D
C.E
D.G

Ans.A

5.If D goes to the new office,which of the following is/are true

I.C cannot go
II.A cannot go
III.H must also go

A.I only
B.II only
C.I and II only
D.I and III only

Ans.D

42.After months of talent searching for an administrative assistant to the


president of the college the field of applicants has been narrowed down to 5--A,
B, C, D, E .It was announced that the finalist would be chosen after a series of
all-day group personal interviews were held.The examining committee agreed
upon the following procedure

I.The interviews will be held once a week


II.3 candidates will appear at any all-day interview session
III.Each candidate will appear at least once
IV.If it becomes necessary to call applicants for additonal interviews, no more 1
such applicant should be asked to appear the next week
V.Because of a detail in the written applications,it was agreed that whenever
candidate B appears, A should also be present.

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

VI.Because of travel difficulties it was agreed that C will appear for only 1
interview.

1.At the first interview the following candidates appear A,B,D.Which of the
follwing combinations can be called for the interview to be held next week.

A.BCD
B.CDE
C.ABE
D.ABC

Ans.B

2.Which of the following is a possible sequence of combinations for interviews in


2 successive weeks

A.ABC;BDE
B.ABD;ABE
C.ADE;ABC
D.BDE;ACD

Ans.C

3.If A ,B and D appear for the interview and D is called for additional interview
the following week,which 2 candidates may be asked to appear with D?

I. A
II B
III.C
IV.E

A.I and II
B.I and III only
C.II and III only
D.III and IV only

Ans.D

4.Which of the following correctly state(s) the procedure followed by the search
committee

I.After the second interview all applicants have appeared at least once
II.The committee sees each applicant a second time
III.If a third session,it is possible for all applicants to appear at least twice

A.I only
B.II only
C.III only
D.Both I and II

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Ans.A

43. A certain city is served by subway lines A,B and C and numbers 1 2 and 3
When it snows , morning service on B is delayed
When it rains or snows , service on A, 2 and 3 are delayed both in the morning
and afternoon
When temp. falls below 30 degrees farenheit afternoon service is cancelled in
either the A line or the 3 line,
but not both.
When the temperature rises over 90 degrees farenheit, the afternoon service is
cancelled in either the line C or the
3 line but not both.
When the service on the A line is delayed or cancelled, service on the C line which
connects the A line, is delayed.
When service on the 3 line is cancelled, service on the B line which connects the
3 line is delayed.

Q1. On Jan 10th, with the temperature at 15 degree farenheit, it snows all day.
On how many lines will service be
affected, including both morning and afternoon.

(A) 2
(B) 3
(C) 4
(D) 5

Ans. D

Q2. On Aug 15th with the temperature at 97 degrees farenheit it begins to rain at
1 PM. What is the minimum number
of lines on which service will be affected?

(A) 2
(B) 3
(C) 4
(D) 5

Ans. C

Q3. On which of the following occasions would service be on the greatest number
of lines disrupted.

(A) A snowy afternoon with the temperature at 45 degree farenheit


(B) A snowy morning with the temperature at 45 degree farenheit
(C) A rainy afternoon with the temperature at 45 degree farenheit
(D) A rainy afternoon with the temperature at 95 degree farenheit

Ans. B

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

44. In a certain society, there are two marriage groups, red and brown. No
marriage is permitted within a group. On marriage, males become part of their
wives groups; women remain in their own group. Children belong to the same
group as their parents. Widowers and divorced males revert to the group of their
birth. Marriage to more than one person at the same time and marriage to a
direct descendant are forbidden

Q1. A brown female could have had

I. A grandfather born Red


II. A grandmother born Red
III Two grandfathers born Brown

(A) I only
(B) III only
(C) I, II and III
(D) I and II only

Ans. D

Q2. A male born into the brown group may have

(A) An uncle in either group


(B) A brown daughter
(C) A brown son
(D) A son-in-law born into red group

Ans. A

Q3. Which of the following is not permitted under the rules as stated.

(A) A brown male marrying his father's sister


(B) A red female marrying her mother's brother
(C) A widower marrying his wife's sister
(D) A widow marrying her divorced daughter's ex-husband

Ans. B

Q4. If widowers and divorced males retained their group they had upon marrying
which of the following would be permissible ( Assume that no previous marriage
occurred)

(A) A woman marrying her dead sister's husband


(B) A woman marrying her divorced daughter's ex-husband
(C) A widower marrying his brother's daughter
(D) A woman marrying her mother's brother who is a widower.

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

Ans. D

Q5. I. All G's are H's


II. All G's are J's or K's
III All J's and K's are G's
IV All L's are K's
V All N's are M's
VI No M's are G's

45. There are six steps that lead from the first to the second floor. No two people
can be on the same step
Mr. A is two steps below Mr. C
Mr. B is a step next to Mr. D
Only one step is vacant ( No one standing on that step )
Denote the first step by step 1 and second step by step 2 etc.

1. If Mr. A is on the first step, Which of the following is true?


(a) Mr. B is on the second step
(b) Mr. C is on the fourth step.
(c) A person Mr. E, could be on the third step
(d) Mr. D is on higher step than Mr. C.

Ans: (d)

2. If Mr. E was on the third step & Mr. B was on a higher step than Mr. E which
step must be vacant
(a) step 1
(b) step 2
(c) step 4
(d) step 5
(e) step 6

Ans: (a)

3. If Mr. B was on step 1, which step could A be on?


(a) 2&e only
(b) 3&5 only
(c) 3&4 only
(d) 4&5 only
(e) 2&4 only

Ans: (c)

4. If there were two steps between the step that A was standing and the step
that B was standing on, and A was on a higher step than D , A must be on step

(a) 2
(b) 3
(c) 4

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

(d) 5
(e) 6

Ans: (c)

5. Which of the following is false

i. B&D can be both on odd-numbered steps in one configuration


ii. In a particular configuration A and C must either both an odd numbered steps
or both an even-numbered steps
iii. A person E can be on a step next to the vacant step.

(a) i only
(b) ii only
(c) iii only
(d) both i and iii

Ans: (c)

46. Six swimmers A, B, C, D, E, F compete in a race. The outcome is as follows.


i. B does not win.
ii. Only two swimmers separate E & D
iii. A is behind D & E
iv. B is ahead of E , with one swimmer intervening
v. F is a head of D

1. Who stood fifth in the race ?


(a) A
(b) B
(c) C
(d) D
(e) E

Ans: (e)

2. How many swimmers seperate A and F ?


(a) 1
(b) 2
(c) 3
(d) 4
(e) cannot be determined

Ans: (d)

3. The swimmer between C & E is


(a) none
(b) F
(c) D

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

(d) B
(e) A

Ans: (a)

4. If the end of the race, swimmer D is disqualified by the Judges then swimmer
B finishes in which place
(a) 1
(b) 2
(c) 3
(d) 4
(e) 5

Ans: (b)

47. Five houses lettered A,B,C,D, & E are built in a row next to each other. The
houses are lined up in the order A,B,C,D, & E. Each of the five houses has a
colored chimney. The roof and chimney of each housemust be painted as follows.
i. The roof must be painted either green,red ,or yellow.
ii. The chimney must be painted either white, black, or red.
iii. No house may have the same color chimney as the color of roof.
iv. No house may use any of the same colors that the every next house uses.
v. House E has a green roof.
vi. House B has a red roof and a black chimney

1. Which of the following is true ?


(a) At least two houses have black chimney.
(b) At least two houses have red roofs.
(c) At least two houses have white chimneys
(d) At least two houses have green roofs
(e) At least two houses have yellow roofs

Ans: (c)

2. Which must be false ?


(a) House A has a yellow roof
(b) House A & C have different color chimney
(c) House D has a black chimney
(d) House E has a white chimney
(e) House B&D have the same color roof.

Ans: (b)

3. If house C has a yellow roof. Which must be true.


(a) House E has a white chimney
(b) House E has a black chimney
(c) House E has a red chimney
(d) House D has a red chimney
(e) House C has a black chimney

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

Ans: (a)

4. Which possible combinations of roof & chimney can house


I. A red roof 7 a black chimney
II. A yellow roof & a red chimney
III. A yellow roof & a black chimney

(a) I only
(b) II only
(c) III only
(d) I & II only
(e) I&II&III

Ans: (e)

48. Find x+2y


(i). x+y=10
(ii). 2x+4y=20

Ans: (b)

49. Is angle BAC is a right angle


(i) AB=2BC
(2) BC=1.5AC

Ans: (e)

50. Is x greater than y


(i) x=2k
(ii) k=2y

Ans: (e)

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

Verbal
1. Depreciation: deflation, depression, devaluation, fall, slump

2. Deprecate : feel and express disapproval,

3. Incentive : thing one encourages one to do (stimulus)

4. Echelon : level of authority or responsibility

5. Innovation : make changes or introduce new things

6. Intermittent : externally stopping and then starting

7. Detrimental: harmful

8. Conciliation : make less angry or more friendly

9. Orthodox: conventional or traditional, superstitious

10. Fallible : liable to error

11. Volatile : ever changing

12. Manifest: clear and obvious

13. Connotation : suggest or implied meaning of expression

14. Reciprocal: reverse or opposite

15. Agrarian : related to agriculture

16. Vacillate : undecided or dilemma

17. Expedient : fitting proper, desirable

18. Simulate : produce artificially resembling an existing one.

19. Access : to approach

20. Compensation: salary

21. Truncate : shorten by cutting

22. Adherence : stick

23. Heterogeneous: non similar things

24. Surplus : excessive

25. Assess : determine the amount or value

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

26. Cognizance : knowledge

27. Retrospective : review

28. Naive : innocent, rustic

29. Equivocate : tallying on both sides, lie, mislead

30. Postulate : frame a theory

31. Latent : dormant, secret

32. Fluctuation : wavering,

33. Eliminate : to reduce

34. Affinity : strong liking

35. Expedite : hasten

36. Console : to show sympathy

37. Adversary : opposition

38. Affable : lovable or approachable

39. Decomposition : rotten

40. Agregious : apart from the crowd, especially bad

41. Conglomeration: group, collection

42. Aberration: deviation

43. Augury : prediction

44. Creditability : ability to common belief, quality of being credible

45. Coincident: incidentally

46. Constituent : accompanying

47. Differential : having or showing or making use of

48. Litigation : engaging in a law suit

49. Moratorium: legally or officially determined period of delay before


fulfillment of the agreement of paying of debts.

50. Negotiate : discuss or bargain

51. Preparation : act of preparing

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

52. Preponderant : superiority of power or quality

53. Relevance : quality of being relevant

54. Apparatus : appliances

55. Ignorance : blindness, in experience

56. Obsession: complex enthusiasm

57. precipitate : speed, active

58. corroborative: refutable

59. obnoxious : harmless

60. sanction: hinder

61. empirical: experimental

62. aborigine: emigrant

63. corpulent : emaciated

64. officious: pragmate

65. Agitator : Firebrand :: Renegade : Turncoat

66. Burst : Sound :: Tinder : Fire

67. Star : cluster :: Tree : clump

68. Piston : Cylinder :: elevator : shaft

69. Mitigate : punishment :: commute : sentence

70. Erudite : scholar :: illiterate : ignorant

71. Fire : Ashes :: explosion : debris

72. mason : wall :: Author : Book

73. Fire : Ashes :: Event : memories

74. (a) cheerleaders : pompoms


(b) audience:seats
(c) team:goalposts
(d) conductor:podium
(e) referee:decision

Ans. (a)

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

75. archipelago:islands::

(a) arbor:bower
(b) garden:flower
(c) mountain:valley
(d) sand:dune
(e) constellation:star

Ans. (a)

76. crow:boastful ::

(a) smirk:witty
(b) conceal:s;y
(c) pout:sulky
(d) blush:coarse
(e) bluster:unhappy

Ans. (a)

77. bracket:shelf ::

(a) hammer:anvil
(b) girder:rivet
(c) strut:rafter
(d) valve:pipe
(e) bucket:well

Ans. (a)

78. taxonomy:classification ::

(a) etymology:derivation
(b) autonomy:authorization
(c) economy:rationalization
(d) tautology:justification
(e) ecology:urbanisation

Ans. (a)

79. moderator:debate ::

(a) legislator:election
(b) chef:banquet
(c) auditor:lecture
(d) conspirator:plot
(e) umpire:game

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

Ans. (a)

80. glossary:words ::

(a) catalogue:dates
(b) atlas:maps
(c) almanac:synonyms
(d) thesaurus:rhymes
(e) lexicon:numbers

Ans. (a)

81. lumber: bear ::

(a) roost:hen
(b) bray:donkey
(c) waddle:goose
(d) swoop:hawk
(e) chirp:sparrow

Ans. (a)

82. celerity:snail ::

(a) indolence:sloth
(b) cunning:weasel
(c) curiosity:cat
(d) humility:peacock
(e) obstinacy:mule

Ans. (a)

83. wood:sand ::

(a) coal:burn
(b) brick:lay
(c) oil:polish
(d) metal:burnish
(e) stone:quarry

Ans. (a)

84. carpenter:saw ::

(a) stenographer:typist
(b) painter:brush
(c) lawyer:brief
(d) runner:sneakers

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

(e) seamstress:scissors

Ans. (a)

85. horns:bull ::

(a) mane:lion
(b) wattles:turkey
(c) antlers:stag
(d) hooves:horse
(e) wings:eagle

Ans. (a)

86. gullible:duped ::

(a) credible:cheated
(b) careful:cautioned
(c) malleable:moulded
(d) myopic:mislead
(e) articulate:silenced

Ans. (a)

87. marathon:stamina ::

(a) relay:independence
(b) hurdle:perseverance
(c) sprint:celerity
(d) job:weariness
(e) ramble:directness

Ans. (a)

88. Skin:man ::

(a) hide:animal
(b) jump:start
(c) peel:potato
(d) eat:food
(e) wool:cloth

Ans. (a)

89. Bamboo:Shoot ::

(a) Bean:Sprout
(b) Peas:Pod

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

(c) Potato:Eye
(d) Carrot:Root
(e) Leaf:Stem

Ans. (a)

90. Deflect:Missile ::

(a) Siege:Castle
(b) Distract:Attraction
(c) Protect:Honour
(d) Drop:Catch
(e) Score:Goal

Ans. (a)

91. Editor:magazine ::

(a) captain:ship
(b) actor:movie
(c) director:film
(d) player:team
(e) jockey:horse

Ans. (a)

92. Volcano : Lava ::

(a) Fault:earthquate
(b) crack:wall
(c) tunnel:dig
(d) water:swim
(e) floor:polish

Ans. (a)

93. Disregarded
(a) heed
(b) hopeful
(c) evade
(d) dense

Ans. (a)

94. Obviate
(a) becloud
(b) necessitate

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

(c) rationalize
(d) execute

Ans. (b)

95. Superficial
(a) profound
(b) exaggerated
(c) subjective
(d) spirited

Ans. (a)

96. chief : tribe :: governer : state

97. epaulette : shoulder :: tiara : head

98. guttural : throat :: gastric : stomach

99. inept : clever :: languid : active

100. Erudite : scholar :: illiterate : ignorant

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

A
Aptitude Questions
Solve the following and check with the answers given at the end.

1. It was calculated that 75 men could complete a piece of work in 20 days.

When work was scheduled to commence, it was found necessary to send 25

men to another project. How much longer will it take to complete the work?

2. A student divided a number by 2/3 when he required to multiply by 3/2.


Calculate the percentage of error in his result.

3. A dishonest shopkeeper professes to sell pulses at the cost price, but he uses a
false weight of 950gm. for a kg. His gain is …%.

4. A software engineer has the capability of thinking 100 lines of code in five
minutes and can type 100 lines of code in 10 minutes. He takes a break for
five minutes after every ten minutes. How many lines of codes will he
complete typing after an hour?

5. A man was engaged on a job for 30 days on the condition that he would get a
wage of Rs. 10 for the day he works, but he have to pay a fine of Rs. 2 for
each day of his absence. If he gets Rs. 216 at the end, he was absent for work
for ... days.

6. A contractor agreeing to finish a work in 150 days, employed 75 men each


working 8 hours daily. After 90 days, only 2/7 of the work was completed.
Increasing the number of men by ________ each working now for 10 hours
daily, the work can be completed in time.

7. what is a percent of b divided by b percent of a?


(a) a (b) b (c) 1 (d) 10 (d) 100

8. A man bought a horse and a cart. If he sold the horse at 10 % loss and the cart
at 20 % gain, he would not lose anything; but if he sold the horse at 5% loss
and the cart at 5% gain, he would lose Rs. 10 in the bargain. The amount paid
by him was Rs._______ for the horse and Rs.________ for the cart.

9. A tennis marker is trying to put together a team of four players for a tennis
tournament out of seven available. males - a, b and c; females – m, n, o and p.
All players are of equal ability and there must be at least two males in the

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

team. For a team of four, all players must be able to play with each other
under the following restrictions:
b should not play with m,
c should not play with p, and
a should not play with o.
Which of the following statements must be false?
1. b and p cannot be selected together
2. c and o cannot be selected together
3. c and n cannot be selected together.

10-12. The following figure depicts three views of a cube. Based on this,
answer questions 10-12.

6 5 4

1 22 3 6
2 2 3

10. The number on the face opposite to the face carrying 1 is _______ .

11. The number on the faces adjacent to the face marked 5 are _______ .

12. Which of the following pairs does not correctly give the numbers on the
opposite faces.
(1) 6,5 (2) 4,1 (3) 1,3 (4) 4,2

13. Five farmers have 7, 9, 11, 13 & 14 apple trees, respectively in their orchards.
Last year, each of them discovered that every tree in their own orchard bore
exactly the same number of apples. Further, if the third farmer gives one apple
to the first, and the fifth gives three to each of the second and the fourth, they
would all have exactly the same number of apples. What were the yields per
tree in the orchards of the third and fourth farmers?

14. Five boys were climbing a hill. J was following H. R was just ahead of G. K
was between G & H. They were climbing up in a column. Who was the
second?

15-18 John is undecided which of the four novels to buy. He is considering a spy
thriller, a Murder mystery, a Gothic romance and a science fiction novel. The
books are written by Rothko, Gorky, Burchfield and Hopper, not necessary in
that order, and published by Heron, Piegon, Blueja and sparrow, not necessary
in that order.
(1) The book by Rothko is published by Sparrow.
(2) The Spy thriller is published by Heron.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

(3) The science fiction novel is by Burchfield and is not published by Blueja.
(4)The Gothic romance is by Hopper.

15. Pigeon publishes ____________.

16. The novel by Gorky ________________.

17. John purchases books by the authors whose names come first and third in
alphabetical order. He does not buy the books ______.

18. On the basis of the first paragraph and statement (2), (3) and (4) only, it is
possible to deduce that
1. Rothko wrote the murder mystery or the spy thriller
2. Sparrow published the murder mystery or the spy thriller
3. The book by Burchfield is published by Sparrow.

19. If a light flashes every 6 seconds, how many times will it flash in ¾ of an
hour?

20. If point P is on line segment AB, then which of the following is always true?
(1) AP = PB (2) AP > PB (3) PB > AP (4) AB > AP (5) AB > AP + PB

21. All men are vertebrates. Some mammals are vertebrates. Which of the
following conclusions drawn from the above statement is correct.
All men are mammals
All mammals are men
Some vertebrates are mammals.
None

22. Which of the following statements drawn from the given statements are
correct?
Given:
All watches sold in that shop are of high standard. Some of the HMT watches
are sold in that shop.
a) All watches of high standard were manufactured by HMT.
b) Some of the HMT watches are of high standard.
c) None of the HMT watches is of high standard.
d) Some of the HMT watches of high standard are sold in that shop.

23-27.
1. Ashland is north of East Liverpool and west of Coshocton.
2. Bowling green is north of Ashland and west of Fredericktown.
3. Dover is south and east of Ashland.
4. East Liverpool is north of Fredericktown and east of Dover.
5. Fredericktown is north of Dover and west of Ashland.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

6. Coshocton is south of Fredericktown and west of Dover.

23. Which of the towns mentioned is furthest of the north – west


(a) Ashland (b) Bowling green (c) Coshocton
(d) East Liverpool (e) Fredericktown

24. Which of the following must be both north and east of Fredericktown?
(a) Ashland (b) Coshocton (c) East Liverpool
I a only II b only III c only IV a & b Va&c

25. Which of the following towns must be situated both south and west of at least
one other town?
A. Ashland only
B. Ashland and Fredericktown
C. Dover and Fredericktown
D. Dover, Coshocton and Fredericktown
E. Coshocton, Dover and East Liverpool.

26. Which of the following statements, if true, would make the information in the
numbered statements more specific?
(a) Coshocton is north of Dover.
(b) East Liverpool is north of Dover
(c) Ashland is east of Bowling green.
(d) Coshocton is east of Fredericktown
(e) Bowling green is north of Fredericktown

27. Which of the numbered statements gives information that can be deduced
from one or more of the other statements?
(A) 1 (B) 2 (C) 3 (D) 4 (E) 6

28. Eight friends Harsha, Fakis, Balaji, Eswar, Dhinesh, Chandra, Geetha, and
Ahmed are sitting in a circle facing the center. Balaji is sitting between Geetha
and Dhinesh. Harsha is third to the left of Balaji and second to the right of
Ahmed. Chandra is sitting between Ahmed and Geetha and Balaji and Eshwar
are not sitting opposite to each other. Who is third to the left of Dhinesh?

29. If every alternative letter starting from B of the English alphabet is written in
small letter, rest all are written in capital letters, how the month “ September”
be written.
(1) SeptEMbEr (2) SEpTeMBEr (3) SeptembeR
(4) SepteMber (5) None of the above.

30. The length of the side of a square is represented by x+2. The length of the side
of an equilateral triangle is 2x. If the square and the equilateral triangle have
equal perimeter, then the value of x is _______.

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

31. It takes Mr. Karthik y hours to complete typing a manuscript. After 2 hours,
he was called away. What fractional part of the assignment was left
incomplete?

32. Which of the following is larger than 3/5?


(1) ½ (2) 39/50 (3) 7/25 (4) 3/10 (5) 59/100

33. The number that does not have a reciprocal is ____________.


34. There are 3 persons Sudhir, Arvind, and Gauri. Sudhir lent cars to Arvind and Gauri as many as they had already.
After some time Arvind gave as many cars to Sudhir and Gauri as many as they have. After sometime Gauri did the same
thing. At the end of this transaction each one of them had 24. Find the cars each originally had.

35. A man bought a horse and a cart. If he sold the horse at 10 % loss and the cart
at 20 % gain, he would not lose anything; but if he sold the horse at 5% loss
and the cart at 5% gain, he would lose Rs. 10 in the bargain. The amount paid
by him was Rs._______ for the horse and Rs.________ for the cart.

Answers:

1. Answer:
30 days.
Explanation:
Before:
One day work = 1 / 20
One man’s one day work = 1 / ( 20 * 75)
Now:
No. Of workers = 50
One day work = 50 * 1 / ( 20 * 75)

The total no. of days required to complete the work = (75 * 20) / 50 =
30

2. Answer:
0%
Explanation:
Since 3x / 2 = x / (2 / 3)

3. Answer:
5.3 %
Explanation:
He sells 950 grams of pulses and gains 50 grams.
If he sells 100 grams of pulses then he will gain (50 / 950) *100 =
5.26

4. Answer:
250 lines of codes

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

5. Answer:
7 days
Explanation:
The equation portraying the given problem is:
10 * x – 2 * (30 – x) = 216 where x is the number of working days.
Solving this we get x = 23
Number of days he was absent was 7 (30-23) days.

6. Answer:
150 men.
Explanation:
One day’s work = 2 / (7 * 90)
One hour’s work = 2 / (7 * 90 * 8)
One man’s work = 2 / (7 * 90 * 8 * 75)

The remaining work (5/7) has to be completed within 60 days, because


the total number of days allotted for the project is 150 days.

So we get the equation

(2 * 10 * x * 60) / (7 * 90 * 8 * 75) = 5/7 where x is the number of


men working after the 90th day.

We get x = 225
Since we have 75 men already, it is enough to add only 150 men.

7. Answer:
(c) 1
Explanation:
a percent of b : (a/100) * b
b percent of a : (b/100) * a
a percent of b divided by b percent of a : ((a / 100 )*b) / (b/100) * a ))
=1

8. Answer:
Cost price of horse = Rs. 400 & the cost price of cart = 200.
Explanation:-
Let x be the cost price of the horse and y be the cost price of the cart.
In the first sale there is no loss or profit. (i.e.) The loss obtained is equal to the
gain.

Therefore (10/100) * x = (20/100) * y

X = 2*y -----------------(1)

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

In the second sale, he lost Rs. 10. (i.e.) The loss is greater than the profit by
Rs. 10.

Therefore (5 / 100) * x = (5 / 100) * y + 10 -------(2)


Substituting (1) in (2) we get
(10 / 100) * y = (5 / 100) * y + 10
(5 / 100) * y = 10
y = 200
From (1) 2 * 200 = x = 400

9. Answer:
3.
Explanation:
Since inclusion of any male player will reject a female from the team.
Since there should be four member in the team and only three males are
available, the girl, n should included in the team always irrespective of others
selection.

10. Answer:
5

11. Answer:
1,2,3 & 4

12. Answer:
B

13. Answer:
11 & 9 apples per tree.
Explanation:
Let a, b, c, d & e be the total number of apples bored per year in A, B,
C, D & E ‘s orchard. Given that a+1=b+3=c–1=d+3=e–6
But the question is to find the number of apples bored per tree in C and D ‘s
orchard. If is enough to consider c – 1 = d + 3.
Since the number of trees in C’s orchard is 11 and that of D’s orchard
is 13. Let x and y be the number of apples bored per tree in C & d ‘s orchard
respectively.
Therefore 11 x – 1 = 13 y + 3
By trial and error method, we get the value for x and y as 11 and 9

14. Answer:
G.
Explanation:
The order in which they are climbing is R – G – K – H – J

15 – 18

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

Answer:
Novel Name Author Publisher
Spy thriller Rathko Heron
Murder mystery Gorky Piegon
Gothic romance Burchfield Blueja
Science fiction Hopper Sparrow

Explanation:
Given
Novel Name Author Publisher
Spy thriller Rathko Heron
Murder mystery Gorky Piegon
Gothic romance Burchfield Blueja
Science fiction Hopper Sparrow

Since Blueja doesn’t publish the novel by Burchfield and Heron


publishes the novel spy thriller, Piegon publishes the novel by Burchfield.
Since Hopper writes Gothic romance and Heron publishes the novel
spy thriller, Blueja publishes the novel by Hopper.
Since Heron publishes the novel spy thriller and Heron publishes the
novel by Gorky, Gorky writes Spy thriller and Rathko writes Murder mystery.

19. Answer:
451 times.
Explanation:
There are 60 minutes in an hour.
In ¾ of an hour there are (60 * ¾) minutes = 45 minutes.
In ¾ of an hour there are (60 * 45) seconds = 2700 seconds.
Light flashed for every 6 seconds.
In 2700 seconds 2700/6 = 450 times.
The count start after the first flash, the light will flashes 451 times in ¾
of an hour.

20. Answer:
(4)
Explanation:
P
A B
Since p is a point on the line segment AB, AB > AP

21. Answer: (c)

22. Answer: (b) & (d).

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

Ahmed
23 - 27.Answer:
Fakis Chandra
28. Answer: Fakis
Explanation: Harsha Geetha

Eswar Balaji

Dhinesh

29. Answer:
(5).
Explanation:
Since every alternative letter starting from B of the English alphabet is
written in small letter, the letters written in small letter are b, d, f...
In the first two answers the letter E is written in both small & capital
letters, so they are not the correct answers. But in third and fourth answers the
letter is written in small letter instead capital letter, so they are not the
answers.

30. Answer:
x=4
Explanation:
Since the side of the square is x + 2, its perimeter = 4 (x + 2) = 4x + 8
Since the side of the equilateral triangle is 2x, its perimeter = 3 * 2x = 6x
Also, the perimeters of both are equal.
(i.e.) 4x + 8 = 6x
(i.e.) 2x = 8 Î x = 4.

31. Answer:
(y – 2) / y.
Explanation:
To type a manuscript karthik took y hours.
Therefore his speed in typing = 1/y.
He was called away after 2 hours of typing.
Therefore the work completed = 1/y * 2.
Therefore the remaining work to be completed = 1 – 2/y.
(i.e.) work to be completed = (y-2)/y

32. Answer:
(2)

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

33. Answer:
1
Explanation:
One is the only number exists without reciprocal because the
reciprocal of one is one itself.

34. Answer:
Sudhir had 39 cars, Arvind had 21 cars and Gauri had 12 cars.
Explanation:
Sudhir Arvind Gauri

Finally 24 24 24
Before Gauri’s transaction 12 12 48
Before Arvind’s transaction 6 42 24
Before Sudhir’ s transaction 39 21 12

35. Answer:
Cost price of horse: Rs. 400 &
Cost price of cart: Rs. 200
Explanation:
Let x be the cost of horse & y be the cost of the cart.
10 % of loss in selling horse = 20 % of gain in selling the cart
Therefore (10 / 100) * x = (20 * 100) * y
Î x = 2y -----------(1)
5 % of loss in selling the horse is 10 more than the 5 % gain in selling
the cart.
Therefore (5 / 100) * x - 10 = (5 / 100) * y
Î 5x - 1000 = 5y
Substituting (1)
10y - 1000 = 5y
5y = 1000
y = 200
x = 400 from (1)

Exercise 2.1
For the following, find the next term in the series

1. 6, 24, 60,120, 210

a) 336 b) 366 c) 330 d) 660

Answer : a) 336
Explanation : The series is 1.2.3, 2.3.4, 3.4.5, 4.5.6, 5.6.7, ..... ( '.' means
product)

2. 1, 5, 13, 25

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

Answer : 41
Explanation : The series is of the form 0^2+1^2, 1^2+2^2,...

3. 0, 5, 8, 17

Answer : 24
Explanation : 1^2-1, 2^2+1, 3^2-1, 4^2+1, 5^2-1

4. 1, 8, 9, 64, 25 (Hint : Every successive terms are related)

Answer : 216
Explanation : 1^2, 2^3, 3^2, 4^3, 5^2, 6^3

5. 8,24,12,36,18,54

Answer : 27

6. 71,76,69,74,67,72
Answer : 67

7. 5,9,16,29,54
Answer : 103
Explanation : 5*2-1=9; 9*2-2=16; 16*2-3=29; 29*2-4=54; 54*2-5=103

8. 1,2,4,10,16,40,64 (Successive terms are related)


Answer : 200
Explanation : The series is powers of 2 (2^0,2^1,..).
All digits are less than 8. Every second number is in octal number system.
128 should follow 64. 128 base 10 = 200 base 8.

Exercise 2.2

Find the odd man out.

1. 3,5,7,12,13,17,19
Answer : 12
Explanation : All but 12 are odd numbers

2. 2,5,10,17,26,37,50,64
Answer : 64
Explanation : 2+3=5; 5+5=10; 10+7=17; 17+9=26; 26+11=37; 37+13=50;
50+15=65;

3. 105,85,60,30,0,-45,-90
Answer : 0

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

Explanation : 105-20=85; 85-25=60; 60-30=30; 30-35=-5; -5-40=-45; -45-45=-90;

Exercise 3
Solve the following.

1. What is the number of zeros at the end of the product of the numbers from 1 to
100?
Answer : 127
2. A fast typist can type some matter in 2 hours and a slow typist can type the same in
3 hours. If both type combinely, in how much time will they finish?
Answer : 1 hr 12 min
Explanation : The fast typist's work done in 1 hr = 1/2
The slow typist's work done in 1 hr = 1/3
If they work combinely, work done in 1 hr = 1/2+1/3 = 5/6
So, the work will be completed in 6/5 hours. i.e., 1+1/5 hours = 1hr 12 min

3. Gavaskar's average in his first 50 innings was 50. After the 51st innings, his
average was 51. How many runs did he score in his 51st innings. (supposing that he
lost his wicket in his 51st innings)
Answer : 101
Explanation : Total score after 50 innings = 50*50 = 2500
Total score after 51 innings = 51*51 = 2601
So, runs made in the 51st innings = 2601-2500 = 101
If he had not lost his wicket in his 51st innings, he would have scored
an unbeaten 50 in his 51st innings.

4. Out of 80 coins, one is counterfeit. What is the minimum number of weighings


needed to find out the counterfeit coin?
Answer : 4

5. What can you conclude from the statement : All green are blue, all blue are red. ?
(i) some blue are green
(ii) some red are green
(iii) some green are not red
(iv) all red are blue
(a) i or ii but not both
(b) i & ii only
(c) iii or iv but not both
(d) iii & iv

Answer : (b)

6. A rectangular plate with length 8 inches, breadth 11 inches and thickness 2 inches
is available. What is the length of the circular rod with diameter 8 inches and equal to
the volume of the rectangular plate?

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Answer : 3.5 inches


Explanation : Volume of the circular rod (cylinder) = Volume of the
rectangular plate
(22/7)*4*4*h = 8*11*2
h = 7/2 = 3.5

7. What is the sum of all numbers between 100 and 1000 which are divisible by 14 ?
Answer : 35392
Explanation : The number closest to 100 which is greater than 100 and
divisible by 14 is 112, which is the first term of the series which has to be summed.
The number closest to 1000 which is less than 1000 and divisible by 14
is 994, which is the last term of the series.
112 + 126 + .... + 994 = 14(8+9+ ... + 71) = 35392

8. If s(a) denotes square root of a, find the value of s(12+s(12+s(12+ ...... upto
infinity.
Answer : 4
Explanation : Let x = s(12+s(12+s(12+.....
We can write x = s(12+x). i.e., x^2 = 12 + x. Solving this quadratic equation,
we get x = -3 or x=4. Sum cannot be -ve and hence sum = 4.

9. A cylindrical container has a radius of eight inches with a height of three inches.
Compute how many inches should be added to either the radius or height to give the
same increase in volume?
Answer : 16/3 inches
Explanation : Let x be the amount of increase. The volume will increase by
the same amount if the radius increased or the height is increased.
So, the effect on increasing height is equal to the effect on increasing the
radius.
i.e., (22/7)*8*8*(3+x) = (22/7)*(8+x)*(8+x)*3
Solving the quadratic equation we get the x = 0 or 16/3. The possible increase
would be by 16/3 inches.

10. With just six weights and a balance scale, you can weigh any unit number of kgs
from 1 to 364. What could be the six weights?
Answer : 1, 3, 9, 27, 81, 243 (All powers of 3)

11. Diophantus passed one sixth of his life in childhood, one twelfth in youth, and one
seventh more as a bachelor; five years after his marriage a son was born who died
four years before his father at half his final age. How old is Diophantus?
Answer : 84 years
Explanation : x/6 + x/12 + x/7 + 5 + x/2 + 4 = x

12 . If time at this moment is 9 P.M., what will be the time 23999999992 hours later?
Answer : 1 P.M.

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

Explanation : 24 billion hours later, it would be 9 P.M. and 8 hours before


that it would be 1 P.M.

13. How big will an angle of one and a half degree look through a glass that
magnifies things three times?
Answer : 1 1/2 degrees
Explanation : The magnifying glass cannot increase the magnitude of an
angle.

14. Divide 45 into four parts such that when 2 is added to the first part, 2 is subtracted
from the second part, 2 is multiplied by the third part and the fourth part is divided by
two, all result in the same number.
Answer: 8, 12, 5, 20
Explanation: a + b + c + d =45; a+2 = b-2 = 2c = d/2; a=b-4; c = (b-2)/2;
d = 2(b-2); b-4 + b + (b-2)/2 + 2(b-2) = 45;

15. I drove 60 km at 30 kmph and then an additional 60 km at 50 kmph. Compute my


average speed over my 120 km.
Answer : 37 1/2
Explanation : Time reqd for the first 60 km = 120 min.; Time reqd for the
second 60 km = 72 min.; Total time reqd = 192 min
Avg speed = (60*120)/192 = 37 1/2

Questions 16 and 17 are based on the following :


Five executives of European Corporation hold a Conference in Rome
Mr. A converses in Spanish & Italian
Mr. B, a spaniard, knows English also
Mr. C knows English and belongs to Italy
Mr. D converses in French and Spanish
Mr. E , a native of Italy knows French

16. Which of the following can act as interpreter if Mr. C & Mr. D wish to converse
a) only Mr. A b) Only Mr. B c) Mr. A & Mr. B d) Any of the other three

Answer : d) Any of the other three.


Explanation : From the data given, we can infer the following.
A knows Spanish, Italian
B knows Spanish, English
C knows Italian, English
D knows Spanish, French
E knows Italian, French
To act as an interpreter between C and D, a person has to know one of the
combinations Italian&Spanish, Italian&French, English&Spanish, English&French
A, B, and E know atleast one of the combinations.

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

17. If a 6th executive is brought in, to be understood by maximum number of original


five he should be fluent in
a) English & French b) Italian & Spanish c) English & French d) French
& Italian
Answer : b) Italian & Spanish
Explanation : No of executives who know
i) English is 2
ii) Spanish is 3
iii) Italian is 3
iv) French is 2
Italian & Spanish are spoken by the maximum no of executives. So, if the 6th
executive is fluent in Italian & Spanish, he can communicate with all the original five
because everybody knows either Spanish or Italian.

18. What is the sum of the first 25 natural odd numbers?


Answer : 625
Explanation : The sum of the first n natural odd nos is square(n).
1+3 = 4 = square(2) 1+3+5 = 9 = square(3)

19. The sum of any seven consecutive numbers is divisible by


a) 2 b) 7 c) 3 d) 11

Exercise 3
Try the following.

1. There are seventy clerks working in a company, of which 30 are females.


Also, 30 clerks are married; 24 clerks are above 25 years of age; 19 married
clerks are above 25 years, of which 7 are males; 12 males are above 25 years
of age; and 15 males are married. How many bachelor girls are there and how
many of these are above 25?

2. A man sailed off from the North Pole. After covering 2,000 miles in one
direction he turned West, sailed 2,000 miles, turned North and sailed ahead
another 2,000 miles till he met his friend. How far was he from the North Pole
and in what direction?

3. Here is a series of comments on the ages of three persons J, R, S by


themselves.
S : The difference between R's age and mine is three years.
J : R is the youngest.
R : Either I am 24 years old or J 25 or S 26.
J : All are above 24 years of age.
S : I am the eldest if and only if R is not the youngest.
R : S is elder to me.
J : I am the eldest.

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

R : S is not 27 years old.


S : The sum of my age and J's is two more than twice R's age.
One of the three had been telling a lie throughout whereas others had spoken
the truth. Determine the ages of S,J,R.

4. In a group of five people, what is the probability of finding two persons with
the same month of birth?

5. A father and his son go out for a 'walk-and-run' every morning around a track
formed by an equilateral triangle. The father's walking speed is 2 mph and his
running speed is 5 mph. The son's walking and running speeds are twice that
of his father. Both start together from one apex of the triangle, the son going
clockwise and the father anti-clockwise. Initially the father runs and the son
walks for a certain period of time. Thereafter, as soon as the father starts
walking, the son starts running. Both complete the course in 45 minutes. For
how long does the father run? Where do the two cross each other?

6. The Director of Medical Services was on his annual visit to the ENT Hospital.
While going through the out patients' records he came across the following
data for a particular day : " Ear consultations 45; Nose 50; Throat 70; Ear and
Nose 30; Nose and Throat 20; Ear and Throat 30; Ear, Nose and Throat 10;
Total patients 100." Then he came to the conclusion that the records were
bogus. Was he right?

7. Amongst Ram, Sham and Gobind are a doctor, a lawyer and a police officer.
They are married to Radha, Gita and Sita (not in order). Each of the wives
have a profession. Gobind's wife is an artist. Ram is not married to Gita. The
lawyer's wife is a teacher. Radha is married to the police officer. Sita is an
expert cook. Who's who?

8. What should come next?


1, 2, 4, 10, 16, 40, 64,

Questions 9-12 are based on the following :


Three adults – Roberto, Sarah and Vicky – will be traveling in a van with five
children – Freddy, Hillary, Jonathan, Lupe, and Marta. The van has a driver’s
seat and one passenger seat in the front, and two benches behind the front
seats, one beach behind the other. Each bench has room for exactly three
people. Everyone must sit in a seat or on a bench, and seating is subject to the
following restrictions: An adult must sit on each bench.
Either Roberto or Sarah must sit in the driver’s seat.
Jonathan must sit immediately beside Marta.

9. Of the following, who can sit in the front passenger seat ?


(a) Jonathan (b) Lupe (c) Roberto (d) Sarah (e) Vicky

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

10. Which of the following groups of three can sit together on a bench?
(a) Freddy, Jonathan and Marta (b) Freddy, Jonathan and Vicky
(c) Freddy, Sarah and Vicky (d) Hillary, Lupe and Sarah
(e) Lupe, Marta and Roberto

11. If Freddy sits immediately beside Vicky, which of the following cannot be
true ?
a. Jonathan sits immediately beside Sarah
b. Lupe sits immediately beside Vicky
c. Hillary sits in the front passenger seat
d. Freddy sits on the same bench as Hillary
e. Hillary sits on the same bench as Roberto

12. If Sarah sits on a bench that is behind where Jonathan is sitting, which of the
following must be true ?
a. Hillary sits in a seat or on a bench that is in front of where Marta is
sitting
b. Lupe sits in a seat or on a bench that is in front of where Freddy is
sitting
c. Freddy sits on the same bench as Hillary
d. Lupe sits on the same bench as Sarah
e. Marta sits on the same bench as Vicky

13. Make six squares of the same size using twelve match-sticks. (Hint : You will
need an adhesive to arrange the required figure)

14. A farmer has two rectangular fields. The larger field has twice the length and
4 times the width of the smaller field. If the smaller field has area K, then the
are of the larger field is greater than the area of the smaller field by what
amount?
(a) 6K (b) 8K (c) 12K (d) 7K

15. Nine equal circles are enclosed in a square whose area is 36sq units. Find the
area of each circle.

16. There are 9 cards. Arrange them in a 3*3 matrix. Cards are of 4 colors. They
are red, yellow, blue, green. Conditions for arrangement: one red card must be
in first row or second row. 2 green cards should be in 3rd column. Yellow
cards must be in the 3 corners only. Two blue cards must be in the 2nd row.
At least one green card in each row.

17. Is z less than w? z and w are real numbers.


(I) z2 = 25
(II) w = 9
To answer the question,
a) Either I or II is sufficient

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

b) Both I and II are sufficient but neither of them is alone sufficient


c) I & II are sufficient
d) Both are not sufficient

18. A speaks truth 70% of the time; B speaks truth 80% of the time. What is the
probability that both are contradicting each other?

19. In a family 7 children don't eat spinach, 6 don't eat carrot, 5 don't eat beans, 4
don't eat spinach & carrots, 3 don't eat carrot & beans, 2 don't eat beans &
spinach. One doesn't eat all 3. Find the no. of children.

20. Anna, Bena, Catherina and Diana are at their monthly business meeting. Their
occupations are author, biologist, chemist and doctor, but not necessarily in
that order. Diana just told the neighbour, who is a biologist that Catherina was
on her way with doughnuts. Anna is sitting across from the doctor and next to
the chemist. The doctor was thinking that Bena was a good name for parent's
to choose, but didn't say anything. What is each person's occupation?

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

Freshersworld.com Resource Center


19
First Job…. Dream Job…. Freshersworld.com

C Questions
Note : All the programs are tested under Turbo C/C++ compilers.
It is assumed that,
¾ Programs run under DOS environment,
¾ The underlying machine is an x86 system,
¾ Program is compiled using Turbo C/C++ compiler.
The program output may depend on the information based on this assumptions
(for example sizeof(int) == 2 may be assumed).

Predict the output or error(s) for the following:

1. void main()
{
int const * p=5;
printf("%d",++(*p));
}
Answer:
Compiler error: Cannot modify a constant value.
Explanation:
p is a pointer to a "constant integer". But we tried to change the value
of the "constant integer".

2. main()
{
char s[ ]="man";
int i;
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}
Answer:
mmmm
aaaa
nnnn
Explanation:
s[i], *(i+s), *(s+i), i[s] are all different ways of expressing the same
idea. Generally array name is the base address for that array. Here s is the base
address. i is the index number/displacement from the base address. So, indirecting it
with * is same as s[i]. i[s] may be surprising. But in the case of C it is same as s[i].

3. main()
{
float me = 1.1;
double you = 1.1;
if(me==you)
printf("I love U");

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

else
printf("I hate U");
}
Answer:
I hate U
Explanation:
For floating point numbers (float, double, long double) the values
cannot be predicted exactly. Depending on the number of bytes, the precession with
of the value represented varies. Float takes 4 bytes and long double takes 10 bytes.
So float stores 0.9 with less precision than long double.
Rule of Thumb:
Never compare or at-least be cautious when using floating point
numbers with relational operators (== , >, <, <=, >=,!= ) .

4. main()
{
static int var = 5;
printf("%d ",var--);
if(var)
main();
}
Answer:
54321
Explanation:
When static storage class is given, it is initialized once. The change in
the value of a static variable is retained even between the function calls. Main is also
treated like any other ordinary function, which can be called recursively.

5. main()
{
int c[ ]={2.8,3.4,4,6.7,5};
int j,*p=c,*q=c;
for(j=0;j<5;j++) {
printf(" %d ",*c);
++q; }
for(j=0;j<5;j++){
printf(" %d ",*p);
++p; }
}

Answer:
2222223465
Explanation:
Initially pointer c is assigned to both p and q. In the first loop, since
only q is incremented and not c , the value 2 will be printed 5 times. In second loop p
itself is incremented. So the values 2 3 4 6 5 will be printed.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

6. main()
{
extern int i;
i=20;
printf("%d",i);
}

Answer:
Linker Error : Undefined symbol '_i'
Explanation:
extern storage class in the following declaration,
extern int i;
specifies to the compiler that the memory for i is allocated in some other program and
that address will be given to the current program at the time of linking. But linker
finds that no other variable of name i is available in any other program with memory
space allocated for it. Hence a linker error has occurred .

7. main()
{
int i=-1,j=-1,k=0,l=2,m;
m=i++&&j++&&k++||l++;
printf("%d %d %d %d %d",i,j,k,l,m);
}
Answer:
00131
Explanation :
Logical operations always give a result of 1 or 0 . And also the logical
AND (&&) operator has higher priority over the logical OR (||) operator. So the
expression ‘i++ && j++ && k++’ is executed first. The result of this expression is 0
(-1 && -1 && 0 = 0). Now the expression is 0 || 2 which evaluates to 1 (because OR
operator always gives 1 except for ‘0 || 0’ combination- for which it gives 0). So the
value of m is 1. The values of other variables are also incremented by 1.

8. main()
{
char *p;
printf("%d %d ",sizeof(*p),sizeof(p));
}

Answer:
12
Explanation:
The sizeof() operator gives the number of bytes taken by its operand. P
is a character pointer, which needs one byte for storing its value (a character). Hence
sizeof(*p) gives a value of 1. Since it needs two bytes to store the address of the
character pointer sizeof(p) gives 2.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

9. main()
{
int i=3;
switch(i)
{
default:printf("zero");
case 1: printf("one");
break;
case 2:printf("two");
break;
case 3: printf("three");
break;
}
}
Answer :
three
Explanation :
The default case can be placed anywhere inside the loop. It is executed
only when all other cases doesn't match.

10. main()
{
printf("%x",-1<<4);
}
Answer:
fff0
Explanation :
-1 is internally represented as all 1's. When left shifted four times the
least significant 4 bits are filled with 0's.The %x format specifier specifies that the
integer value be printed as a hexadecimal value.

11. main()
{
char string[]="Hello World";
display(string);
}
void display(char *string)
{
printf("%s",string);
}
Answer:
Compiler Error : Type mismatch in redeclaration of function display
Explanation :
In third line, when the function display is encountered, the compiler
doesn't know anything about the function display. It assumes the arguments and

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

return types to be integers, (which is the default type). When it sees the actual
function display, the arguments and type contradicts with what it has assumed
previously. Hence a compile time error occurs.

12. main()
{
int c=- -2;
printf("c=%d",c);
}
Answer:
c=2;
Explanation:
Here unary minus (or negation) operator is used twice. Same maths
rules applies, ie. minus * minus= plus.
Note:
However you cannot give like --2. Because -- operator can only be
applied to variables as a decrement operator (eg., i--). 2 is a constant and not a
variable.

13. #define int char


main()
{
int i=65;
printf("sizeof(i)=%d",sizeof(i));
}
Answer:
sizeof(i)=1
Explanation:
Since the #define replaces the string int by the macro char

14. main()
{
int i=10;
i=!i>14;
Printf ("i=%d",i);
}
Answer:
i=0

Explanation:
In the expression !i>14 , NOT (!) operator has more precedence than ‘
>’ symbol. ! is a unary logical operator. !i (!10) is 0 (not of true is false). 0>14 is
false (zero).

15. #include<stdio.h>

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

main()
{
char s[]={'a','b','c','\n','c','\0'};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf("%d",++*p + ++*str1-32);
}
Answer:
77
Explanation:
p is pointing to character '\n'. str1 is pointing to character 'a' ++*p. "p is
pointing to '\n' and that is incremented by one." the ASCII value of '\n' is 10, which is
then incremented to 11. The value of ++*p is 11. ++*str1, str1 is pointing to 'a' that is
incremented by 1 and it becomes 'b'. ASCII value of 'b' is 98.
Now performing (11 + 98 – 32), we get 77("M");
So we get the output 77 :: "M" (Ascii is 77).

16. #include<stdio.h>
main()
{
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d----%d",*p,*q);
}
Answer:
SomeGarbageValue---1
Explanation:
p=&a[2][2][2] you declare only two 2D arrays, but you are trying to
access the third 2D(which you are not declared) it will print garbage values. *q=***a
starting address of a is assigned integer pointer. Now q is pointing to starting address
of a. If you print *q, it will print first element of 3D array.

17. #include<stdio.h>
main()
{
struct xx
{
int x=3;
char name[]="hello";
};
struct xx *s;
printf("%d",s->x);

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

printf("%s",s->name);
}
Answer:
Compiler Error
Explanation:
You should not initialize variables in declaration

18. #include<stdio.h>
main()
{
struct xx
{
int x;
struct yy
{
char s;
struct xx *p;
};
struct yy *q;
};
}
Answer:
Compiler Error
Explanation:
The structure yy is nested within structure xx. Hence, the elements are
of yy are to be accessed through the instance of structure xx, which needs an instance
of yy to be known. If the instance is created after defining the structure the compiler
will not know about the instance relative to xx. Hence for nested structure yy you
have to declare member.

19. main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
}
Answer:
hai
Explanation:
\n - newline
\b - backspace
\r - linefeed

20. main()
{
int i=5;

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

printf("%d%d%d%d%d%d",i++,i--,++i,--i,i);
}
Answer:
45545
Explanation:
The arguments in a function call are pushed into the stack from left to
right. The evaluation is by popping out from the stack. and the evaluation is from
right to left, hence the result.

21. #define square(x) x*x


main()
{
int i;
i = 64/square(4);
printf("%d",i);
}
Answer:
64
Explanation:
the macro call square(4) will substituted by 4*4 so the expression
becomes i = 64/4*4 . Since / and * has equal priority the expression will be evaluated
as (64/4)*4 i.e. 16*4 = 64

22. main()
{
char *p="hai friends",*p1;
p1=p;
while(*p!='\0') ++*p++;
printf("%s %s",p,p1);
}
Answer:
ibj!gsjfoet
Explanation:
++*p++ will be parse in the given order
¾ *p that is value at the location currently pointed by p will be taken
¾ ++*p the retrieved value will be incremented
¾ when ; is encountered the location will be incremented that is p++ will be
executed
Hence, in the while loop initial value pointed by p is ‘h’, which is changed to ‘i’ by
executing ++*p and pointer moves to point, ‘a’ which is similarly changed to ‘b’ and
so on. Similarly blank space is converted to ‘!’. Thus, we obtain value in p becomes
“ibj!gsjfoet” and since p reaches ‘\0’ and p1 points to p thus p1doesnot print anything.

23. #include <stdio.h>


#define a 10
main()

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

{
#define a 50
printf("%d",a);
}
Answer:
50
Explanation:
The preprocessor directives can be redefined anywhere in the program.
So the most recently assigned value will be taken.

24. #define clrscr() 100


main()
{
clrscr();
printf("%d\n",clrscr());
}
Answer:
100
Explanation:
Preprocessor executes as a seperate pass before the execution of the
compiler. So textual replacement of clrscr() to 100 occurs.The input program to
compiler looks like this :
main()
{
100;
printf("%d\n",100);
}
Note:
100; is an executable statement but with no action. So it doesn't give
any problem

25. main()
{
printf("%p",main);
}
Answer:
Some address will be printed.
Explanation:
Function names are just addresses (just like array names are
addresses).
main() is also a function. So the address of function main will be printed. %p in printf
specifies that the argument is an address. They are printed as hexadecimal numbers.

27) main()
{
clrscr();

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

}
clrscr();

Answer:
No output/error
Explanation:
The first clrscr() occurs inside a function. So it becomes a function
call. In the second clrscr(); is a function declaration (because it is not
inside any function).

28) enum colors {BLACK,BLUE,GREEN}


main()
{

printf("%d..%d..%d",BLACK,BLUE,GREEN);

return(1);
}
Answer:
0..1..2
Explanation:
enum assigns numbers starting from 0, if not explicitly defined.

29) void main()


{
char far *farther,*farthest;

printf("%d..%d",sizeof(farther),sizeof(farthest));

}
Answer:
4..2
Explanation:
the second pointer is of char type and not a far pointer

30) main()
{
int i=400,j=300;
printf("%d..%d");
}
Answer:
400..300
Explanation:
printf takes the values of the first two assignments of the program. Any
number of printf's may be given. All of them take only the first two

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

values. If more number of assignments given in the program,then


printf will take garbage values.

31) main()
{
char *p;
p="Hello";
printf("%c\n",*&*p);
}
Answer:
H
Explanation:
* is a dereference operator & is a reference operator. They can be
applied any number of times provided it is meaningful. Here p points
to the first character in the string "Hello". *p dereferences it and so its
value is H. Again & references it to an address and * dereferences it to
the value H.

32) main()
{
int i=1;
while (i<=5)
{
printf("%d",i);
if (i>2)
goto here;
i++;
}
}
fun()
{
here:
printf("PP");
}
Answer:
Compiler error: Undefined label 'here' in function main
Explanation:
Labels have functions scope, in other words The scope of the labels is
limited to functions . The label 'here' is available in function fun()
Hence it is not visible in function main.

33) main()
{
static char names[5][20]={"pascal","ada","cobol","fortran","perl"};
int i;
char *t;

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

t=names[3];
names[3]=names[4];
names[4]=t;
for (i=0;i<=4;i++)
printf("%s",names[i]);
}
Answer:
Compiler error: Lvalue required in function main
Explanation:
Array names are pointer constants. So it cannot be modified.

34) void main()


{
int i=5;
printf("%d",i++ + ++i);
}
Answer:
Output Cannot be predicted exactly.
Explanation:
Side effects are involved in the evaluation of i

35) void main()


{
int i=5;
printf("%d",i+++++i);
}
Answer:
Compiler Error
Explanation:
The expression i+++++i is parsed as i ++ ++ + i which is an illegal
combination of operators.

36) #include<stdio.h>
main()
{
int i=1,j=2;
switch(i)
{
case 1: printf("GOOD");
break;
case j: printf("BAD");
break;
}
}
Answer:
Compiler Error: Constant expression required in function main.

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Explanation:
The case statement can have only constant expressions (this implies
that we cannot use variable names directly so an error).
Note:
Enumerated types can be used in case statements.

37) main()
{
int i;
printf("%d",scanf("%d",&i)); // value 10 is given as input here
}
Answer:
1
Explanation:
Scanf returns number of items successfully read and not 1/0. Here 10
is given as input which should have been scanned successfully. So
number of items read is 1.

38) #define f(g,g2) g##g2


main()
{
int var12=100;
printf("%d",f(var,12));
}
Answer:
100

39) main()
{
int i=0;

for(;i++;printf("%d",i)) ;
printf("%d",i);
}
Answer:
1
Explanation:
before entering into the for loop the checking condition is "evaluated".
Here it evaluates to 0 (false) and comes out of the loop, and i is
incremented (note the semicolon after the for loop).

40) #include<stdio.h>
main()
{
char s[]={'a','b','c','\n','c','\0'};
char *p,*str,*str1;

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

p=&s[3];
str=p;
str1=s;
printf("%d",++*p + ++*str1-32);
}
Answer:
M
Explanation:
p is pointing to character '\n'.str1 is pointing to character 'a' ++*p
meAnswer:"p is pointing to '\n' and that is incremented by one." the
ASCII value of '\n' is 10. then it is incremented to 11. the value of
++*p is 11. ++*str1 meAnswer:"str1 is pointing to 'a' that is
incremented by 1 and it becomes 'b'. ASCII value of 'b' is 98. both 11
and 98 is added and result is subtracted from 32.
i.e. (11+98-32)=77("M");

41) #include<stdio.h>
main()
{
struct xx
{
int x=3;
char name[]="hello";
};
struct xx *s=malloc(sizeof(struct xx));
printf("%d",s->x);
printf("%s",s->name);
}
Answer:
Compiler Error
Explanation:
Initialization should not be done for structure members inside the
structure declaration

42) #include<stdio.h>
main()
{
struct xx
{
int x;
struct yy
{
char s;
struct xx *p;
};
struct yy *q;

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

};
}
Answer:
Compiler Error
Explanation:
in the end of nested structure yy a member have to be declared.

43) main()
{
extern int i;
i=20;
printf("%d",sizeof(i));
}
Answer:
Linker error: undefined symbol '_i'.
Explanation:
extern declaration specifies that the variable i is defined somewhere
else. The compiler passes the external variable to be resolved by the
linker. So compiler doesn't find an error. During linking the linker
searches for the definition of i. Since it is not found the linker flags an
error.

44) main()
{
printf("%d", out);
}
int out=100;
Answer:
Compiler error: undefined symbol out in function main.
Explanation:
The rule is that a variable is available for use from the point of
declaration. Even though a is a global variable, it is not available for
main. Hence an error.

45) main()
{
extern out;
printf("%d", out);
}
int out=100;
Answer:
100
Explanation:
This is the correct way of writing the previous program.

46) main()

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

{
show();
}
void show()
{
printf("I'm the greatest");
}
Answer:
Compier error: Type mismatch in redeclaration of show.
Explanation:
When the compiler sees the function show it doesn't know anything
about it. So the default return type (ie, int) is assumed. But when
compiler sees the actual definition of show mismatch occurs since it is
declared as void. Hence the error.
The solutions are as follows:
1. declare void show() in main() .
2. define show() before main().
3. declare extern void show() before the use of show().

47) main( )
{
int a[2][3][2] = {{{2,4},{7,8},{3,4}},{{2,2},{2,3},{3,4}}};
printf(“%u %u %u %d \n”,a,*a,**a,***a);
printf(“%u %u %u %d \n”,a+1,*a+1,**a+1,***a+1);
}
Answer:
100, 100, 100, 2
114, 104, 102, 3
Explanation:
The given array is a 3-D one. It can also be viewed as a 1-D array.

2 4 7 8 3 4 2 2 2 3 3 4
100 102 104 106 108 110 112 114 116 118 120 122

thus, for the first printf statement a, *a, **a give address of first
element . since the indirection ***a gives the value. Hence, the first
line of the output.
for the second printf a+1 increases in the third dimension thus points to
value at 114, *a+1 increments in second dimension thus points to 104,
**a +1 increments the first dimension thus points to 102 and ***a+1
first gets the value at first location and then increments it by 1. Hence,
the output.

48) main( )
{

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

int a[ ] = {10,20,30,40,50},j,*p;
for(j=0; j<5; j++)
{
printf(“%d” ,*a);
a++;
}
p = a;
for(j=0; j<5; j++)
{
printf(“%d ” ,*p);
p++;
}
}
Answer:
Compiler error: lvalue required.

Explanation:
Error is in line with statement a++. The operand must be an lvalue and
may be of any of scalar type for the any operator, array name only
when subscripted is an lvalue. Simply array name is a non-modifiable
lvalue.

49) main( )
{
static int a[ ] = {0,1,2,3,4};
int *p[ ] = {a,a+1,a+2,a+3,a+4};
int **ptr = p;
ptr++;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
*ptr++;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
*++ptr;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
++*ptr;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
}
Answer:
111
222
333
344
Explanation:
Let us consider the array and the two pointers with some address
a
0 1 2 3 4
100 102 104 106 108

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

p
100 102 104 106 108
1000 1002 1004 1006 1008
ptr
1000
2000
After execution of the instruction ptr++ value in ptr becomes 1002, if
scaling factor for integer is 2 bytes. Now ptr – p is value in ptr –
starting location of array p, (1002 – 1000) / (scaling factor) = 1, *ptr –
a = value at address pointed by ptr – starting value of array a, 1002 has
a value 102 so the value is (102 – 100)/(scaling factor) = 1, **ptr is
the value stored in the location pointed by the pointer of ptr = value
pointed by value pointed by 1002 = value pointed by 102 = 1. Hence
the output of the firs printf is 1, 1, 1.
After execution of *ptr++ increments value of the value in ptr by
scaling factor, so it becomes1004. Hence, the outputs for the second
printf are ptr – p = 2, *ptr – a = 2, **ptr = 2.
After execution of *++ptr increments value of the value in ptr by
scaling factor, so it becomes1004. Hence, the outputs for the third
printf are ptr – p = 3, *ptr – a = 3, **ptr = 3.
After execution of ++*ptr value in ptr remains the same, the value
pointed by the value is incremented by the scaling factor. So the value
in array p at location 1006 changes from 106 10 108,. Hence, the
outputs for the fourth printf are ptr – p = 1006 – 1000 = 3, *ptr – a =
108 – 100 = 4, **ptr = 4.

50) main( )
{
char *q;
int j;
for (j=0; j<3; j++) scanf(“%s” ,(q+j));
for (j=0; j<3; j++) printf(“%c” ,*(q+j));
for (j=0; j<3; j++) printf(“%s” ,(q+j));
}
Explanation:
Here we have only one pointer to type char and since we take input in
the same pointer thus we keep writing over in the same location, each
time shifting the pointer value by 1. Suppose the inputs are MOUSE,
TRACK and VIRTUAL. Then for the first input suppose the pointer
starts at location 100 then the input one is stored as
M O U S E \0
When the second input is given the pointer is incremented as j value
becomes 1, so the input is filled in memory starting from 101.
M T R A C K \0
The third input starts filling from the location 102

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

M T V I R T U A L \0
This is the final value stored .
The first printf prints the values at the position q, q+1 and q+2 = M T
V
The second printf prints three strings starting from locations q, q+1,
q+2
i.e MTVIRTUAL, TVIRTUAL and VIRTUAL.

51) main( )
{
void *vp;
char ch = ‘g’, *cp = “goofy”;
int j = 20;
vp = &ch;
printf(“%c”, *(char *)vp);
vp = &j;
printf(“%d”,*(int *)vp);
vp = cp;
printf(“%s”,(char *)vp + 3);
}
Answer:
g20fy
Explanation:
Since a void pointer is used it can be type casted to any other type
pointer. vp = &ch stores address of char ch and the next statement
prints the value stored in vp after type casting it to the proper data type
pointer. the output is ‘g’. Similarly the output from second printf is
‘20’. The third printf statement type casts it to print the string from the
4th value hence the output is ‘fy’.

52) main ( )
{
static char *s[ ] = {“black”, “white”, “yellow”, “violet”};
char **ptr[ ] = {s+3, s+2, s+1, s}, ***p;
p = ptr;
**++p;
printf(“%s”,*--*++p + 3);
}
Answer:
ck
Explanation:
In this problem we have an array of char pointers pointing to start of 4
strings. Then we have ptr which is a pointer to a pointer of type char
and a variable p which is a pointer to a pointer to a pointer of type
char. p hold the initial value of ptr, i.e. p = s+3. The next statement
increment value in p by 1 , thus now value of p = s+2. In the printf

Freshersworld.com Resource Center


19
First Job…. Dream Job…. Freshersworld.com

statement the expression is evaluated *++p causes gets value s+1 then
the pre decrement is executed and we get s+1 – 1 = s . the indirection
operator now gets the value from the array of s and adds 3 to the
starting address. The string is printed starting from this position. Thus,
the output is ‘ck’.

53) main()
{
int i, n;
char *x = “girl”;
n = strlen(x);
*x = x[n];
for(i=0; i<n; ++i)
{
printf(“%s\n”,x);
x++;
}
}
Answer:
(blank space)
irl
rl
l

Explanation:
Here a string (a pointer to char) is initialized with a value “girl”. The
strlen function returns the length of the string, thus n has a value 4.
The next statement assigns value at the nth location (‘\0’) to the first
location. Now the string becomes “\0irl” . Now the printf statement
prints the string after each iteration it increments it starting position.
Loop starts from 0 to 4. The first time x[0] = ‘\0’ hence it prints
nothing and pointer value is incremented. The second time it prints
from x[1] i.e “irl” and the third time it prints “rl” and the last time it
prints “l” and the loop terminates.
54) int i,j;
for(i=0;i<=10;i++)
{
j+=5;
assert(i<5);
}
Answer:
Runtime error: Abnormal program termination.
assert failed (i<5), <file name>,<line number>
Explanation:

Freshersworld.com Resource Center


20
First Job…. Dream Job…. Freshersworld.com

asserts are used during debugging to make sure that certain conditions
are satisfied. If assertion fails, the program will terminate reporting the
same. After debugging use,
#undef NDEBUG
and this will disable all the assertions from the source code. Assertion
is a good debugging tool to make use of.

55) main()
{
int i=-1;
+i;
printf("i = %d, +i = %d \n",i,+i);
}
Answer:
i = -1, +i = -1
Explanation:
Unary + is the only dummy operator in C. Where-ever it comes you
can just ignore it just because it has no effect in the expressions (hence
the name dummy operator).

56) What are the files which are automatically opened when a C file is executed?
Answer:
stdin, stdout, stderr (standard input,standard output,standard error).

57) what will be the position of the file marker?


a: fseek(ptr,0,SEEK_SET);
b: fseek(ptr,0,SEEK_CUR);

Answer :
a: The SEEK_SET sets the file position marker to the starting of the
file.
b: The SEEK_CUR sets the file position marker to the current position
of the file.

58) main()
{
char name[10],s[12];
scanf(" \"%[^\"]\"",s);
}
How scanf will execute?
Answer:
First it checks for the leading white space and discards it.Then it
matches with a quotation mark and then it reads all character upto
another quotation mark.

59) What is the problem with the following code segment?

Freshersworld.com Resource Center


21
First Job…. Dream Job…. Freshersworld.com

while ((fgets(receiving array,50,file_ptr)) != EOF)


;
Answer & Explanation:
fgets returns a pointer. So the correct end of file check is checking for
!= NULL.

60) main()
{
main();
}
Answer:
Runtime error : Stack overflow.
Explanation:
main function calls itself again and again. Each time the function is
called its return address is stored in the call stack. Since there is no
condition to terminate the function call, the call stack overflows at
runtime. So it terminates the program and results in an error.

61) main()
{
char *cptr,c;
void *vptr,v;
c=10; v=0;
cptr=&c; vptr=&v;
printf("%c%v",c,v);
}
Answer:
Compiler error (at line number 4): size of v is Unknown.
Explanation:
You can create a variable of type void * but not of type void, since
void is an empty type. In the second line you are creating variable vptr
of type void * and v of type void hence an error.

62) main()
{
char *str1="abcd";
char str2[]="abcd";
printf("%d %d %d",sizeof(str1),sizeof(str2),sizeof("abcd"));
}
Answer:
255
Explanation:
In first sizeof, str1 is a character pointer so it gives you the size of the
pointer variable. In second sizeof the name str2 indicates the name of
the array whose size is 5 (including the '\0' termination character). The
third sizeof is similar to the second one.

Freshersworld.com Resource Center


22
First Job…. Dream Job…. Freshersworld.com

63) main()
{
char not;
not=!2;
printf("%d",not);
}
Answer:
0
Explanation:
! is a logical operator. In C the value 0 is considered to be the boolean
value FALSE, and any non-zero value is considered to be the boolean
value TRUE. Here 2 is a non-zero value so TRUE. !TRUE is FALSE
(0) so it prints 0.

64) #define FALSE -1


#define TRUE 1
#define NULL 0
main() {
if(NULL)
puts("NULL");
else if(FALSE)
puts("TRUE");
else
puts("FALSE");
}
Answer:
TRUE
Explanation:
The input program to the compiler after processing by the preprocessor
is,
main(){
if(0)
puts("NULL");
else if(-1)
puts("TRUE");
else
puts("FALSE");
}
Preprocessor doesn't replace the values given inside the double quotes.
The check by if condition is boolean value false so it goes to else. In
second if -1 is boolean value true hence "TRUE" is printed.

65) main()
{
int k=1;

Freshersworld.com Resource Center


23
First Job…. Dream Job…. Freshersworld.com

printf("%d==1 is ""%s",k,k==1?"TRUE":"FALSE");
}
Answer:
1==1 is TRUE
Explanation:
When two strings are placed together (or separated by white-space)
they are concatenated (this is called as "stringization" operation). So
the string is as if it is given as "%d==1 is %s". The conditional
operator( ?: ) evaluates to "TRUE".

66) main()
{
int y;
scanf("%d",&y); // input given is 2000
if( (y%4==0 && y%100 != 0) || y%100 == 0 )
printf("%d is a leap year");
else
printf("%d is not a leap year");
}
Answer:
2000 is a leap year
Explanation:
An ordinary program to check if leap year or not.

67) #define max 5


#define int arr1[max]
main()
{
typedef char arr2[max];
arr1 list={0,1,2,3,4};
arr2 name="name";
printf("%d %s",list[0],name);
}
Answer:
Compiler error (in the line arr1 list = {0,1,2,3,4})
Explanation:
arr2 is declared of type array of size 5 of characters. So it can be used
to declare the variable name of the type arr2. But it is not the case of
arr1. Hence an error.
Rule of Thumb:
#defines are used for textual replacement whereas typedefs are used
for declaring new types.

68) int i=10;


main()
{

Freshersworld.com Resource Center


24
First Job…. Dream Job…. Freshersworld.com

extern int i;
{
int i=20;
{
const volatile unsigned i=30;
printf("%d",i);
}
printf("%d",i);
}
printf("%d",i);
}
Answer:
30,20,10
Explanation:
'{' introduces new block and thus new scope. In the innermost block i
is declared as,
const volatile unsigned
which is a valid declaration. i is assumed of type int. So printf prints
30. In the next block, i has value 20 and so printf prints 20. In the
outermost block, i is declared as extern, so no storage space is
allocated for it. After compilation is over the linker resolves it to
global variable i (since it is the only variable visible there). So it prints
i's value as 10.

69) main()
{
int *j;
{
int i=10;
j=&i;
}
printf("%d",*j);
}
Answer:
10
Explanation:
The variable i is a block level variable and the visibility is inside that
block only. But the lifetime of i is lifetime of the function so it lives
upto the exit of main function. Since the i is still allocated space, *j
prints the value stored in i since j points i.

70) main()
{
int i=-1;
-i;
printf("i = %d, -i = %d \n",i,-i);

Freshersworld.com Resource Center


25
First Job…. Dream Job…. Freshersworld.com

}
Answer:
i = -1, -i = 1
Explanation:
-i is executed and this execution doesn't affect the value of i. In printf
first you just print the value of i. After that the value of the expression
-i = -(-1) is printed.

71) #include<stdio.h>
main()
{
const int i=4;
float j;
j = ++i;
printf("%d %f", i,++j);
}
Answer:
Compiler error
Explanation:
i is a constant. you cannot change the value of constant

72) #include<stdio.h>
main()
{
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d..%d",*p,*q);
}
Answer:
garbagevalue..1
Explanation:
p=&a[2][2][2] you declare only two 2D arrays. but you are trying to
access the third 2D(which you are not declared) it will print garbage
values. *q=***a starting address of a is assigned integer pointer. now q
is pointing to starting address of a.if you print *q meAnswer:it will
print first element of 3D array.

73) #include<stdio.h>
main()
{
register i=5;
char j[]= "hello";
printf("%s %d",j,i);
}

Freshersworld.com Resource Center


26
First Job…. Dream Job…. Freshersworld.com

Answer:
hello 5
Explanation:
if you declare i as register compiler will treat it as ordinary integer and
it will take integer value. i value may be stored either in register or in
memory.

74) main()
{
int i=5,j=6,z;
printf("%d",i+++j);
}
Answer:
11
Explanation:
the expression i+++j is treated as (i++ + j)

76) struct aaa{


struct aaa *prev;
int i;
struct aaa *next;
};
main()
{
struct aaa abc,def,ghi,jkl;
int x=100;
abc.i=0;abc.prev=&jkl;
abc.next=&def;
def.i=1;def.prev=&abc;def.next=&ghi;
ghi.i=2;ghi.prev=&def;
ghi.next=&jkl;
jkl.i=3;jkl.prev=&ghi;jkl.next=&abc;
x=abc.next->next->prev->next->i;
printf("%d",x);
}
Answer:
2
Explanation:
above all statements form a double circular linked list;
abc.next->next->prev->next->i
this one points to "ghi" node the value of at particular node is 2.

77) struct point


{
int x;
int y;

Freshersworld.com Resource Center


27
First Job…. Dream Job…. Freshersworld.com

};
struct point origin,*pp;
main()
{
pp=&origin;
printf("origin is(%d%d)\n",(*pp).x,(*pp).y);
printf("origin is (%d%d)\n",pp->x,pp->y);
}

Answer:
origin is(0,0)
origin is(0,0)
Explanation:
pp is a pointer to structure. we can access the elements of the structure
either with arrow mark or with indirection operator.
Note:
Since structure point is globally declared x & y are initialized as
zeroes

78) main()
{
int i=_l_abc(10);
printf("%d\n",--i);
}
int _l_abc(int i)
{
return(i++);
}
Answer:
9
Explanation:
return(i++) it will first return i and then increments. i.e. 10 will be
returned.

79) main()
{
char *p;
int *q;
long *r;
p=q=r=0;
p++;
q++;
r++;
printf("%p...%p...%p",p,q,r);
}
Answer:

Freshersworld.com Resource Center


28
First Job…. Dream Job…. Freshersworld.com

0001...0002...0004
Explanation:
++ operator when applied to pointers increments address according to
their corresponding data-types.

80) main()
{
char c=' ',x,convert(z);
getc(c);
if((c>='a') && (c<='z'))
x=convert(c);
printf("%c",x);
}
convert(z)
{
return z-32;
}
Answer:
Compiler error
Explanation:
declaration of convert and format of getc() are wrong.

81) main(int argc, char **argv)


{
printf("enter the character");
getchar();
sum(argv[1],argv[2]);
}
sum(num1,num2)
int num1,num2;
{
return num1+num2;
}
Answer:
Compiler error.
Explanation:
argv[1] & argv[2] are strings. They are passed to the function sum
without converting it to integer values.

82) # include <stdio.h>


int one_d[]={1,2,3};
main()
{
int *ptr;
ptr=one_d;
ptr+=3;

Freshersworld.com Resource Center


29
First Job…. Dream Job…. Freshersworld.com

printf("%d",*ptr);
}
Answer:
garbage value
Explanation:
ptr pointer is pointing to out of the array range of one_d.

83) # include<stdio.h>
aaa() {
printf("hi");
}
bbb(){
printf("hello");
}
ccc(){
printf("bye");
}
main()
{
int (*ptr[3])();
ptr[0]=aaa;
ptr[1]=bbb;
ptr[2]=ccc;
ptr[2]();
}
Answer:
bye
Explanation:
ptr is array of pointers to functions of return type int.ptr[0] is assigned
to address of the function aaa. Similarly ptr[1] and ptr[2] for bbb and
ccc respectively. ptr[2]() is in effect of writing ccc(), since ptr[2]
points to ccc.

85) #include<stdio.h>
main()
{
FILE *ptr;
char i;
ptr=fopen("zzz.c","r");
while((i=fgetch(ptr))!=EOF)
printf("%c",i);
}
Answer:
contents of zzz.c followed by an infinite loop
Explanation:

Freshersworld.com Resource Center


30
First Job…. Dream Job…. Freshersworld.com

The condition is checked against EOF, it should be checked against


NULL.

86) main()
{
int i =0;j=0;
if(i && j++)
printf("%d..%d",i++,j);
printf("%d..%d,i,j);
}
Answer:
0..0
Explanation:
The value of i is 0. Since this information is enough to determine the
truth value of the boolean expression. So the statement following the if
statement is not executed. The values of i and j remain unchanged and
get printed.

87) main()
{
int i;
i = abc();
printf("%d",i);
}
abc()
{
_AX = 1000;
}
Answer:
1000
Explanation:
Normally the return value from the function is through the information
from the accumulator. Here _AH is the pseudo global variable
denoting the accumulator. Hence, the value of the accumulator is set
1000 so the function returns value 1000.

88) int i;
main(){
int t;
for ( t=4;scanf("%d",&i)-t;printf("%d\n",i))
printf("%d--",t--);
}
// If the inputs are 0,1,2,3 find the o/p
Answer:
4--0
3--1

Freshersworld.com Resource Center


31
First Job…. Dream Job…. Freshersworld.com

2--2
Explanation:
Let us assume some x= scanf("%d",&i)-t the values during execution
will be,
t i x
4 0 -4
3 1 -2
2 2 0

89) main(){
int a= 0;int b = 20;char x =1;char y =10;
if(a,b,x,y)
printf("hello");
}
Answer:
hello
Explanation:
The comma operator has associativity from left to right. Only the
rightmost value is returned and the other values are evaluated and
ignored. Thus the value of last variable y is returned to check in if.
Since it is a non zero value if becomes true so, "hello" will be printed.

90) main(){
unsigned int i;
for(i=1;i>-2;i--)
printf("c aptitude");
}
Explanation:
i is an unsigned integer. It is compared with a signed value. Since the
both types doesn't match, signed is promoted to unsigned value. The
unsigned equivalent of -2 is a huge value so condition becomes false
and control comes out of the loop.

91) In the following pgm add a stmt in the function fun such that the address of
'a' gets stored in 'j'.
main(){
int * j;
void fun(int **);
fun(&j);
}
void fun(int **k) {
int a =0;
/* add a stmt here*/
}
Answer:
*k = &a

Freshersworld.com Resource Center


32
First Job…. Dream Job…. Freshersworld.com

Explanation:
The argument of the function is a pointer to a pointer.

92) What are the following notations of defining functions known as?
i. int abc(int a,float b)
{
/* some code */
}
ii. int abc(a,b)
int a; float b;
{
/* some code*/
}
Answer:
i. ANSI C notation
ii. Kernighan & Ritche notation

93) main()
{
char *p;
p="%d\n";
p++;
p++;
printf(p-2,300);
}
Answer:
300
Explanation:
The pointer points to % since it is incremented twice and again
decremented by 2, it points to '%d\n' and 300 is printed.

94) main(){
char a[100];
a[0]='a';a[1]]='b';a[2]='c';a[4]='d';
abc(a);
}
abc(char a[]){
a++;
printf("%c",*a);
a++;
printf("%c",*a);
}
Explanation:
The base address is modified only in function and as a result a points
to 'b' then after incrementing to 'c' so bc will be printed.

Freshersworld.com Resource Center


33
First Job…. Dream Job…. Freshersworld.com

95) func(a,b)
int a,b;
{
return( a= (a==b) );
}
main()
{
int process(),func();
printf("The value of process is %d !\n ",process(func,3,6));
}
process(pf,val1,val2)
int (*pf) ();
int val1,val2;
{
return((*pf) (val1,val2));
}
Answer:
The value if process is 0 !
Explanation:
The function 'process' has 3 parameters - 1, a pointer to another
function 2 and 3, integers. When this function is invoked from main,
the following substitutions for formal parameters take place: func for
pf, 3 for val1 and 6 for val2. This function returns the result of the
operation performed by the function 'func'. The function func has two
integer parameters. The formal parameters are substituted as 3 for a
and 6 for b. since 3 is not equal to 6, a==b returns 0. therefore the
function returns 0 which in turn is returned by the function 'process'.

96) void main()


{
static int i=5;
if(--i){
main();
printf("%d ",i);
}
}
Answer:
0000
Explanation:
The variable "I" is declared as static, hence memory for I will be
allocated for only once, as it encounters the statement. The function main()
will be called recursively unless I becomes equal to 0, and since main() is
recursively called, so the value of static I ie., 0 will be printed every time the
control is returned.

97) void main()

Freshersworld.com Resource Center


34
First Job…. Dream Job…. Freshersworld.com

{
int k=ret(sizeof(float));
printf("\n here value is %d",++k);
}
int ret(int ret)
{
ret += 2.5;
return(ret);
}
Answer:
Here value is 7
Explanation:
The int ret(int ret), ie., the function name and the argument name can
be the same.
Firstly, the function ret() is called in which the sizeof(float) ie., 4 is
passed, after the first expression the value in ret will be 6, as ret is integer
hence the value stored in ret will have implicit type conversion from float to
int. The ret is returned in main() it is printed after and preincrement.

98) void main()


{
char a[]="12345\0";
int i=strlen(a);
printf("here in 3 %d\n",++i);
}
Answer:
here in 3 6
Explanation:
The char array 'a' will hold the initialized string, whose length will be
counted from 0 till the null character. Hence the 'I' will hold the value equal to
5, after the pre-increment in the printf statement, the 6 will be printed.

99) void main()


{
unsigned giveit=-1;
int gotit;
printf("%u ",++giveit);
printf("%u \n",gotit=--giveit);
}
Answer:
0 65535
Explanation:

100) void main()


{
int i;

Freshersworld.com Resource Center


35
First Job…. Dream Job…. Freshersworld.com

char a[]="\0";
if(printf("%s\n",a))
printf("Ok here \n");
else
printf("Forget it\n");
}
Answer:
Ok here
Explanation:
Printf will return how many characters does it print. Hence
printing a null character returns 1 which makes the if statement
true, thus "Ok here" is printed.

101) void main()


{
void *v;
int integer=2;
int *i=&integer;
v=i;
printf("%d",(int*)*v);
}
Answer:
Compiler Error. We cannot apply indirection on type void*.
Explanation:
Void pointer is a generic pointer type. No pointer arithmetic can be
done on it. Void pointers are normally used for,
1. Passing generic pointers to functions and returning such
pointers.
2. As a intermediate pointer type.
3. Used when the exact pointer type will be known at a later point
of time.

102) void main()


{
int i=i++,j=j++,k=k++;
printf(“%d%d%d”,i,j,k);
}
Answer:
Garbage values.
Explanation:
An identifier is available to use in program code from the point of its
declaration.
So expressions such as i = i++ are valid statements. The i, j and k are
automatic variables and so they contain some garbage value. Garbage
in is garbage out (GIGO).

Freshersworld.com Resource Center


36
First Job…. Dream Job…. Freshersworld.com

103) void main()


{
static int i=i++, j=j++, k=k++;
printf(“i = %d j = %d k = %d”, i, j, k);
}
Answer:
i=1j=1k=1
Explanation:
Since static variables are initialized to zero by default.

104) void main()


{
while(1){
if(printf("%d",printf("%d")))
break;
else
continue;
}
}
Answer:
Garbage values
Explanation:
The inner printf executes first to print some garbage value. The printf
returns no of characters printed and this value also cannot be predicted.
Still the outer printf prints something and so returns a non-zero value.
So it encounters the break statement and comes out of the while
statement.

104) main()
{
unsigned int i=10;
while(i-->=0)
printf("%u ",i);

}
Answer:
10 9 8 7 6 5 4 3 2 1 0 65535 65534…..
Explanation:
Since i is an unsigned integer it can never become negative. So the
expression i-- >=0 will always be true, leading to an infinite loop.

105) #include<conio.h>
main()
{
int x,y=2,z,a;

Freshersworld.com Resource Center


37
First Job…. Dream Job…. Freshersworld.com

if(x=y%2) z=2;
a=2;
printf("%d %d ",z,x);
}
Answer:
Garbage-value 0
Explanation:
The value of y%2 is 0. This value is assigned to x. The condition
reduces to if (x) or in other words if(0) and so z goes uninitialized.
Thumb Rule: Check all control paths to write bug free code.

106) main()
{
int a[10];
printf("%d",*a+1-*a+3);
}
Answer:
4
Explanation:
*a and -*a cancels out. The result is as simple as 1 + 3 = 4 !

107) #define prod(a,b) a*b


main()
{
int x=3,y=4;
printf("%d",prod(x+2,y-1));
}
Answer:
10
Explanation:
The macro expands and evaluates to as:
x+2*y-1 => x+(2*y)-1 => 10

108) main()
{
unsigned int i=65000;
while(i++!=0);
printf("%d",i);
}
Answer:
1
Explanation:
Note the semicolon after the while statement. When the value of i
becomes 0 it comes out of while loop. Due to post-increment on i the
value of i while printing is 1.

Freshersworld.com Resource Center


38
First Job…. Dream Job…. Freshersworld.com

109) 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.

113) main()
{
float f=5,g=10;
enum{i=10,j=20,k=50};
printf("%d\n",++k);
printf("%f\n",f<<2);
printf("%lf\n",f%g);
printf("%lf\n",fmod(f,g));
}
Answer:
Line no 5: Error: Lvalue required
Line no 6: Cannot apply leftshift to float
Line no 7: Cannot apply mod to float
Explanation:
Enumeration constants cannot be modified, so you cannot apply ++.
Bit-wise operators and % operators cannot be applied on float values.
fmod() is to find the modulus values for floats as % operator is for ints.

110) main()
{
int i=10;
void pascal f(int,int,int);
f(i++,i++,i++);
printf(" %d",i);
}
void pascal f(integer :i,integer:j,integer :k)
{
write(i,j,k);
}
Answer:
Compiler error: unknown type integer

Freshersworld.com Resource Center


39
First Job…. Dream Job…. Freshersworld.com

Compiler error: undeclared function write


Explanation:
Pascal keyword doesn’t mean that pascal code can be used. It means
that the function follows Pascal argument passing mechanism in calling the
functions.

111) void pascal f(int i,int j,int k)


{
printf(“%d %d %d”,i, j, k);
}
void cdecl f(int i,int j,int k)
{
printf(“%d %d %d”,i, j, k);
}
main()
{
int i=10;
f(i++,i++,i++);
printf(" %d\n",i);
i=10;
f(i++,i++,i++);
printf(" %d",i);
}
Answer:
10 11 12 13
12 11 10 13
Explanation:
Pascal argument passing mechanism forces the arguments to be called
from left to right. cdecl is the normal C argument passing mechanism where
the arguments are passed from right to left.

112). What is the output of the program given below

main()
{
signed char i=0;
for(;i>=0;i++) ;
printf("%d\n",i);
}
Answer
-128
Explanation
Notice the semicolon at the end of the for loop. THe initial
value of the i is set to 0. The inner loop executes to increment
the value from 0 to 127 (the positive range of char) and then it
rotates to the negative value of -128. The condition in the for

Freshersworld.com Resource Center


40
First Job…. Dream Job…. Freshersworld.com

loop fails and so comes out of the for loop. It prints the current
value of i that is -128.

113) main()
{
unsigned char i=0;
for(;i>=0;i++) ;
printf("%d\n",i);
}
Answer
infinite loop
Explanation
The difference between the previous question and this one is that the
char is declared to be unsigned. So the i++ can never yield negative value and
i>=0 never becomes false so that it can come out of the for loop.

114) main()
{
char i=0;
for(;i>=0;i++) ;
printf("%d\n",i);

}
Answer:
Behavior is implementation dependent.
Explanation:
The detail if the char is signed/unsigned by default is
implementation dependent. If the implementation treats the char to be
signed by default the program will print –128 and terminate. On the
other hand if it considers char to be unsigned by default, it goes to
infinite loop.
Rule:
You can write programs that have implementation dependent
behavior. But dont write programs that depend on such behavior.

115) Is the following statement a declaration/definition. Find what does it


mean?
int (*x)[10];
Answer
Definition.
x is a pointer to array of(size 10) integers.

Apply clock-wise rule to find the meaning of this definition.

116). What is the output for the program given below

Freshersworld.com Resource Center


41
First Job…. Dream Job…. Freshersworld.com

typedef enum errorType{warning, error, exception,}error;


main()
{
error g1;
g1=1;
printf("%d",g1);
}
Answer
Compiler error: Multiple declaration for error
Explanation
The name error is used in the two meanings. One means that it
is a enumerator constant with value 1. The another use is that it is a
type name (due to typedef) for enum errorType. Given a situation the
compiler cannot distinguish the meaning of error to know in what
sense the error is used:
error g1;
g1=error;
// which error it refers in each case?
When the compiler can distinguish between usages then it will
not issue error (in pure technical terms, names can only be overloaded
in different namespaces).
Note: the extra comma in the declaration,
enum errorType{warning, error, exception,}
is not an error. An extra comma is valid and is provided just for
programmer’s convenience.

117) typedef struct error{int warning, error, exception;}error;


main()
{
error g1;
g1.error =1;
printf("%d",g1.error);
}

Answer
1
Explanation
The three usages of name errors can be distinguishable by the compiler
at any instance, so valid (they are in different namespaces).
Typedef struct error{int warning, error, exception;}error;
This error can be used only by preceding the error by struct kayword as in:
struct error someError;
typedef struct error{int warning, error, exception;}error;

Freshersworld.com Resource Center


42
First Job…. Dream Job…. Freshersworld.com

This can be used only after . (dot) or -> (arrow) operator preceded by the
variable name as in :
g1.error =1;
printf("%d",g1.error);
typedef struct error{int warning, error, exception;}error;
This can be used to define variables without using the preceding struct
keyword as in:
error g1;
Since the compiler can perfectly distinguish between these three usages, it is
perfectly legal and valid.

Note
This code is given here to just explain the concept behind. In real
programming don’t use such overloading of names. It reduces the readability
of the code. Possible doesn’t mean that we should use it!

118) #ifdef something


int some=0;
#endif

main()
{
int thing = 0;
printf("%d %d\n", some ,thing);
}

Answer:
Compiler error : undefined symbol some
Explanation:
This is a very simple example for conditional compilation. The
name something is not already known to the compiler making
the declaration
int some = 0;
effectively removed from the source code.

119) #if something == 0


int some=0;
#endif

main()
{
int thing = 0;
printf("%d %d\n", some ,thing);
}

Answer

Freshersworld.com Resource Center


43
First Job…. Dream Job…. Freshersworld.com

00
Explanation
This code is to show that preprocessor expressions are not the
same as the ordinary expressions. If a name is not known the
preprocessor treats it to be equal to zero.

120). What is the output for the following program

main()
{
int arr2D[3][3];
printf("%d\n", ((arr2D==* arr2D)&&(* arr2D == arr2D[0])) );
}
Answer
1
Explanation
This is due to the close relation between the arrays and
pointers. N dimensional arrays are made up of (N-1)
dimensional arrays.
arr2D is made up of a 3 single arrays that contains 3 integers
each .
arr2D
arr2D[1]
arr2D[2]
arr2D[3]

The name arr2D refers to the beginning of all the 3 arrays.


*arr2D refers to the start of the first 1D array (of 3 integers)
that is the same address as arr2D. So the expression (arr2D ==
*arr2D) is true (1).
Similarly, *arr2D is nothing but *(arr2D + 0), adding a zero
doesn’t change the value/meaning. Again arr2D[0] is the
another way of telling *(arr2D + 0). So the expression (*(arr2D
+ 0) == arr2D[0]) is true (1).
Since both parts of the expression evaluates to true the result is
true(1) and the same is printed.

121) void main()


{
if(~0 == (unsigned int)-1)
printf(“You can answer this if you know how values are represented in
memory”);
}

Freshersworld.com Resource Center


44
First Job…. Dream Job…. Freshersworld.com

Answer
You can answer this if you know how values are represented in
memory
Explanation
~ (tilde operator or bit-wise negation operator) operates on 0 to
produce all ones to fill the space for an integer. –1 is
represented in unsigned value as all 1’s and so both are equal.

122) int swap(int *a,int *b)


{
*a=*a+*b;*b=*a-*b;*a=*a-*b;
}
main()
{
int x=10,y=20;
swap(&x,&y);
printf("x= %d y = %d\n",x,y);
}
Answer
x = 20 y = 10
Explanation
This is one way of swapping two values. Simple checking will help
understand this.

123) main()
{
char *p = “ayqm”;
printf(“%c”,++*(p++));
}
Answer:
b

124) main()
{
int i=5;
printf("%d",++i++);
}
Answer:
Compiler error: Lvalue required in function main
Explanation:
++i yields an rvalue. For postfix ++ to operate an lvalue is
required.

125) main()
{
char *p = “ayqm”;

Freshersworld.com Resource Center


45
First Job…. Dream Job…. Freshersworld.com

char c;
c = ++*p++;
printf(“%c”,c);
}
Answer:
b
Explanation:
There is no difference between the expression ++*(p++) and
++*p++. Parenthesis just works as a visual clue for the reader
to see which expression is first evaluated.

126)
int aaa() {printf(“Hi”);}
int bbb(){printf(“hello”);}
iny ccc(){printf(“bye”);}

main()
{
int ( * ptr[3]) ();
ptr[0] = aaa;
ptr[1] = bbb;
ptr[2] =ccc;
ptr[2]();
}
Answer:
bye
Explanation:
int (* ptr[3])() says that ptr is an array of pointers to functions that
takes no arguments and returns the type int. By the assignment ptr[0] =
aaa; it means that the first function pointer in the array is initialized
with the address of the function aaa. Similarly, the other two array
elements also get initialized with the addresses of the functions bbb
and ccc. Since ptr[2] contains the address of the function ccc, the call
to the function ptr[2]() is same as calling ccc(). So it results in printing
"bye".

127)
main()
{
int i=5;
printf(“%d”,i=++i ==6);
}

Answer:
1
Explanation:

Freshersworld.com Resource Center


46
First Job…. Dream Job…. Freshersworld.com

The expression can be treated as i = (++i==6), because == is of higher


precedence than = operator. In the inner expression, ++i is equal to 6
yielding true(1). Hence the result.

128) main()
{
char p[ ]="%d\n";
p[1] = 'c';
printf(p,65);
}
Answer:
A
Explanation:
Due to the assignment p[1] = ‘c’ the string becomes, “%c\n”. Since
this string becomes the format string for printf and ASCII value of 65
is ‘A’, the same gets printed.

129) void ( * abc( int, void ( *def) () ) ) ();

Answer::
abc is a ptr to a function which takes 2 parameters .(a). an integer
variable.(b). a ptrto a funtion which returns void. the return type of
the function is void.
Explanation:
Apply the clock-wise rule to find the result.

130) main()
{
while (strcmp(“some”,”some\0”))
printf(“Strings are not equal\n”);
}
Answer:
No output
Explanation:
Ending the string constant with \0 explicitly makes no difference. So
“some” and “some\0” are equivalent. So, strcmp returns 0 (false)
hence breaking out of the while loop.

131) main()
{
char str1[] = {‘s’,’o’,’m’,’e’};
char str2[] = {‘s’,’o’,’m’,’e’,’\0’};
while (strcmp(str1,str2))
printf(“Strings are not equal\n”);
}

Freshersworld.com Resource Center


47
First Job…. Dream Job…. Freshersworld.com

Answer:
“Strings are not equal”
“Strings are not equal”
….
Explanation:
If a string constant is initialized explicitly with characters, ‘\0’ is not
appended automatically to the string. Since str1 doesn’t have null
termination, it treats whatever the values that are in the following
positions as part of the string until it randomly reaches a ‘\0’. So str1
and str2 are not the same, hence the result.

132) main()
{
int i = 3;
for (;i++=0;) printf(“%d”,i);
}

Answer:
Compiler Error: Lvalue required.
Explanation:
As we know that increment operators return rvalues and hence
it cannot appear on the left hand side of an assignment
operation.

133) void main()


{
int *mptr, *cptr;
mptr = (int*)malloc(sizeof(int));
printf(“%d”,*mptr);
int *cptr = (int*)calloc(sizeof(int),1);
printf(“%d”,*cptr);
}
Answer:
garbage-value 0
Explanation:
The memory space allocated by malloc is uninitialized, whereas calloc
returns the allocated memory space initialized to zeros.

134) void main()


{
static int i;
while(i<=10)
(i>2)?i++:i--;
printf(“%d”, i);
}
Answer:

Freshersworld.com Resource Center


48
First Job…. Dream Job…. Freshersworld.com

32767
Explanation:
Since i is static it is initialized to 0. Inside the while loop the
conditional operator evaluates to false, executing i--. This continues till
the integer value rotates to positive value (32767). The while condition
becomes false and hence, comes out of the while loop, printing the i
value.

135) main()
{
int i=10,j=20;
j = i, j?(i,j)?i:j:j;
printf("%d %d",i,j);
}

Answer:
10 10
Explanation:
The Ternary operator ( ? : ) is equivalent for if-then-else statement. So
the question can be written as:
if(i,j)
{
if(i,j)
j = i;
else
j = j;
}
else
j = j;

136) 1. const char *a;


2. char* const a;
3. char const *a;
-Differentiate the above declarations.

Answer:
1. 'const' applies to char * rather than 'a' ( pointer to a constant char )
*a='F' : illegal
a="Hi" : legal

2. 'const' applies to 'a' rather than to the value of a (constant pointer to


char )
*a='F' : legal
a="Hi" : illegal

Freshersworld.com Resource Center


49
First Job…. Dream Job…. Freshersworld.com

3. Same as 1.

137) main()
{
int i=5,j=10;
i=i&=j&&10;
printf("%d %d",i,j);
}

Answer:
1 10
Explanation:
The expression can be written as i=(i&=(j&&10)); The inner
expression (j&&10) evaluates to 1 because j==10. i is 5. i = 5&1 is 1.
Hence the result.

138) main()
{
int i=4,j=7;
j = j || i++ && printf("YOU CAN");
printf("%d %d", i, j);
}

Answer:
41
Explanation:
The boolean expression needs to be evaluated only till the truth value
of the expression is not known. j is not equal to zero itself means that
the expression’s truth value is 1. Because it is followed by || and true ||
(anything) => true where (anything) will not be evaluated. So the
remaining expression is not evaluated and so the value of i remains the
same.
Similarly when && operator is involved in an expression, when any of
the operands become false, the whole expression’s truth value
becomes false and hence the remaining expression will not be
evaluated.
false && (anything) => false where (anything) will not be evaluated.

139) main()
{
register int a=2;
printf("Address of a = %d",&a);
printf("Value of a = %d",a);
}
Answer:
Compier Error: '&' on register variable

Freshersworld.com Resource Center


50
First Job…. Dream Job…. Freshersworld.com

Rule to Remember:
& (address of ) operator cannot be applied on register variables.

140) main()
{
float i=1.5;
switch(i)
{
case 1: printf("1");
case 2: printf("2");
default : printf("0");
}
}
Answer:
Compiler Error: switch expression not integral
Explanation:
Switch statements can be applied only to integral types.

141) main()
{
extern i;
printf("%d\n",i);
{
int i=20;
printf("%d\n",i);
}
}
Answer:
Linker Error : Unresolved external symbol i
Explanation:
The identifier i is available in the inner block and so using extern has
no use in resolving it.

142) main()
{
int a=2,*f1,*f2;
f1=f2=&a;
*f2+=*f2+=a+=2.5;
printf("\n%d %d %d",a,*f1,*f2);
}
Answer:
16 16 16
Explanation:
f1 and f2 both refer to the same memory location a. So changes
through f1 and f2 ultimately affects only the value of a.

Freshersworld.com Resource Center


51
First Job…. Dream Job…. Freshersworld.com

143) main()
{
char *p="GOOD";
char a[ ]="GOOD";
printf("\n sizeof(p) = %d, sizeof(*p) = %d, strlen(p) = %d", sizeof(p),
sizeof(*p), strlen(p));
printf("\n sizeof(a) = %d, strlen(a) = %d", sizeof(a), strlen(a));
}
Answer:
sizeof(p) = 2, sizeof(*p) = 1, strlen(p) = 4
sizeof(a) = 5, strlen(a) = 4
Explanation:
sizeof(p) => sizeof(char*) => 2
sizeof(*p) => sizeof(char) => 1
Similarly,
sizeof(a) => size of the character array => 5
When sizeof operator is applied to an array it returns the sizeof the
array and it is not the same as the sizeof the pointer variable. Here the
sizeof(a) where a is the character array and the size of the array is 5
because the space necessary for the terminating NULL character
should also be taken into account.

144) #define DIM( array, type) sizeof(array)/sizeof(type)


main()
{
int arr[10];
printf(“The dimension of the array is %d”, DIM(arr, int));
}
Answer:
10
Explanation:
The size of integer array of 10 elements is 10 * sizeof(int). The macro
expands to sizeof(arr)/sizeof(int) => 10 * sizeof(int) / sizeof(int) =>
10.

145) int DIM(int array[])


{
return sizeof(array)/sizeof(int );
}
main()
{
int arr[10];
printf(“The dimension of the array is %d”, DIM(arr));
}
Answer:
1

Freshersworld.com Resource Center


52
First Job…. Dream Job…. Freshersworld.com

Explanation:
Arrays cannot be passed to functions as arguments and only the
pointers can be passed. So the argument is equivalent to int * array
(this is one of the very few places where [] and * usage are equivalent).
The return statement becomes, sizeof(int *)/ sizeof(int) that happens to
be equal in this case.

146) main()
{
static int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
static *p[]={a,a+1,a+2};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d\t%d\t%d\t%d\n",*(*(p+i)+j),
*(*(j+p)+i),*(*(i+p)+j),*(*(p+j)+i));
}
}
Answer:
1 1 1 1
2 4 2 4
3 7 3 7
4 2 4 2
5 5 5 5
6 8 6 8
7 3 7 3
8 6 8 6
9 9 9 9
Explanation:
*(*(p+i)+j) is equivalent to p[i][j].

147) main()
{
void swap();
int x=10,y=8;
swap(&x,&y);
printf("x=%d y=%d",x,y);
}
void swap(int *a, int *b)
{
*a ^= *b, *b ^= *a, *a ^= *b;
}
Answer:
x=10 y=8
Explanation:

Freshersworld.com Resource Center


53
First Job…. Dream Job…. Freshersworld.com

Using ^ like this is a way to swap two variables without using a


temporary variable and that too in a single statement.
Inside main(), void swap(); means that swap is a function that may
take any number of arguments (not no arguments) and returns nothing.
So this doesn’t issue a compiler error by the call swap(&x,&y); that
has two arguments.
This convention is historically due to pre-ANSI style (referred to as
Kernighan and Ritchie style) style of function declaration. In that style,
the swap function will be defined as follows,
void swap()
int *a, int *b
{
*a ^= *b, *b ^= *a, *a ^= *b;
}
where the arguments follow the (). So naturally the declaration for
swap will look like, void swap() which means the swap can take any
number of arguments.

148) main()
{
int i = 257;
int *iPtr = &i;
printf("%d %d", *((char*)iPtr), *((char*)iPtr+1) );
}
Answer:
11
Explanation:
The integer value 257 is stored in the memory as, 00000001 00000001,
so the individual bytes are taken by casting it to char * and get printed.

149) main()
{
int i = 258;
int *iPtr = &i;
printf("%d %d", *((char*)iPtr), *((char*)iPtr+1) );
}
Answer:
21
Explanation:
The integer value 257 can be represented in binary as, 00000001
00000001. Remember that the INTEL machines are ‘small-endian’
machines. Small-endian means that the lower order bytes are stored in
the higher memory addresses and the higher order bytes are stored in
lower addresses. The integer value 258 is stored in memory as:
00000001 00000010.

Freshersworld.com Resource Center


54
First Job…. Dream Job…. Freshersworld.com

150) main()
{
int i=300;
char *ptr = &i;
*++ptr=2;
printf("%d",i);
}
Answer:
556
Explanation:
The integer value 300 in binary notation is: 00000001 00101100. It is
stored in memory (small-endian) as: 00101100 00000001. Result of
the expression *++ptr = 2 makes the memory representation as:
00101100 00000010. So the integer corresponding to it is 00000010
00101100 => 556.

151) #include <stdio.h>


main()
{
char * str = "hello";
char * ptr = str;
char least = 127;
while (*ptr++)
least = (*ptr<least ) ?*ptr :least;
printf("%d",least);
}
Answer:
0
Explanation:
After ‘ptr’ reaches the end of the string the value pointed by ‘str’ is
‘\0’. So the value of ‘str’ is less than that of ‘least’. So the value of
‘least’ finally is 0.

152) Declare an array of N pointers to functions returning pointers to functions


returning pointers to characters?
Answer:
(char*(*)( )) (*ptr[N])( );

153) main()
{
struct student
{
char name[30];
struct date dob;
}stud;
struct date

Freshersworld.com Resource Center


55
First Job…. Dream Job…. Freshersworld.com

{
int day,month,year;
};
scanf("%s%d%d%d", stud.rollno, &student.dob.day,
&student.dob.month, &student.dob.year);
}
Answer:
Compiler Error: Undefined structure date
Explanation:
Inside the struct definition of ‘student’ the member of type struct date
is given. The compiler doesn’t have the definition of date structure
(forward reference is not allowed in C in this case) so it issues an
error.

154) main()
{
struct date;
struct student
{
char name[30];
struct date dob;
}stud;
struct date
{
int day,month,year;
};
scanf("%s%d%d%d", stud.rollno, &student.dob.day,
&student.dob.month, &student.dob.year);
}
Answer:
Compiler Error: Undefined structure date
Explanation:
Only declaration of struct date is available inside the structure
definition of ‘student’ but to have a variable of type struct date the
definition of the structure is required.

155) There were 10 records stored in “somefile.dat” but the following program
printed 11 names. What went wrong?
void main()
{
struct student
{
char name[30], rollno[6];
}stud;
FILE *fp = fopen(“somefile.dat”,”r”);
while(!feof(fp))

Freshersworld.com Resource Center


56
First Job…. Dream Job…. Freshersworld.com

{
fread(&stud, sizeof(stud), 1 , fp);
puts(stud.name);
}
}
Explanation:
fread reads 10 records and prints the names successfully. It will
return EOF only when fread tries to read another record and
fails reading EOF (and returning EOF). So it prints the last
record again. After this only the condition feof(fp) becomes
false, hence comes out of the while loop.

156) Is there any difference between the two declarations,


1. int foo(int *arr[]) and
2. int foo(int *arr[2])
Answer:
No
Explanation:
Functions can only pass pointers and not arrays. The numbers that are
allowed inside the [] is just for more readability. So there is no
difference between the two declarations.

157) What is the subtle error in the following code segment?


void fun(int n, int arr[])
{
int *p=0;
int i=0;
while(i++<n)
p = &arr[i];
*p = 0;
}
Answer & Explanation:
If the body of the loop never executes p is assigned no address.
So p remains NULL where *p =0 may result in problem (may
rise to runtime error “NULL pointer assignment” and terminate
the program).

158) What is wrong with the following code?


int *foo()
{
int *s = malloc(sizeof(int)100);
assert(s != NULL);
return s;
}
Answer & Explanation:

Freshersworld.com Resource Center


57
First Job…. Dream Job…. Freshersworld.com

assert macro should be used for debugging and finding out bugs. The
check s != NULL is for error/exception handling and for that assert
shouldn’t be used. A plain if and the corresponding remedy statement
has to be given.

159) What is the hidden bug with the following statement?


assert(val++ != 0);
Answer & Explanation:
Assert macro is used for debugging and removed in release version. In
assert, the experssion involves side-effects. So the behavior of the code
becomes different in case of debug version and the release version thus
leading to a subtle bug.
Rule to Remember:
Don’t use expressions that have side-effects in assert statements.

160) void main()


{
int *i = 0x400; // i points to the address 400
*i = 0; // set the value of memory location pointed by i;
}
Answer:
Undefined behavior
Explanation:
The second statement results in undefined behavior because it points to
some location whose value may not be available for modification.
This type of pointer in which the non-availability of the
implementation of the referenced location is known as 'incomplete
type'.

161) #define assert(cond) if(!(cond)) \


(fprintf(stderr, "assertion failed: %s, file %s, line %d \n",#cond,\
__FILE__,__LINE__), abort())

void main()
{
int i = 10;
if(i==0)
assert(i < 100);
else
printf("This statement becomes else for if in assert macro");
}
Answer:
No output
Explanation:
The else part in which the printf is there becomes the else for if in the assert
macro. Hence nothing is printed.

Freshersworld.com Resource Center


58
First Job…. Dream Job…. Freshersworld.com

The solution is to use conditional operator instead of if statement,


#define assert(cond) ((cond)?(0): (fprintf (stderr, "assertion failed: \ %s, file
%s, line %d \n",#cond, __FILE__,__LINE__), abort()))

Note:
However this problem of “matching with nearest else” cannot be
solved by the usual method of placing the if statement inside a block
like this,
#define assert(cond) { \
if(!(cond)) \
(fprintf(stderr, "assertion failed: %s, file %s, line %d \n",#cond,\
__FILE__,__LINE__), abort()) \
}

162) Is the following code legal?


struct a
{
int x;
struct a b;
}
Answer:
No
Explanation:
Is it not legal for a structure to contain a member that is of the same
type as in this case. Because this will cause the structure declaration to
be recursive without end.

163) Is the following code legal?


struct a
{
int x;
struct a *b;
}
Answer:
Yes.
Explanation:
*b is a pointer to type struct a and so is legal. The compiler knows, the
size of the pointer to a structure even before the size of the structure
is determined(as you know the pointer to any type is of same size).
This type of structures is known as ‘self-referencing’ structure.

164) Is the following code legal?


typedef struct a
{
int x;
aType *b;

Freshersworld.com Resource Center


59
First Job…. Dream Job…. Freshersworld.com

}aType
Answer:
No
Explanation:
The typename aType is not known at the point of declaring the
structure (forward references are not made for typedefs).

165) Is the following code legal?


typedef struct a aType;
struct a
{
int x;
aType *b;
};
Answer:
Yes
Explanation:
The typename aType is known at the point of declaring the structure,
because it is already typedefined.

166) Is the following code legal?


void main()
{
typedef struct a aType;
aType someVariable;
struct a
{
int x;
aType *b;
};
}
Answer:
No
Explanation:
When the declaration,
typedef struct a aType;
is encountered body of struct a is not known. This is known as
‘incomplete types’.

167) void main()


{
printf(“sizeof (void *) = %d \n“, sizeof( void *));
printf(“sizeof (int *) = %d \n”, sizeof(int *));
printf(“sizeof (double *) = %d \n”, sizeof(double *));
printf(“sizeof(struct unknown *) = %d \n”, sizeof(struct unknown *));
}

Freshersworld.com Resource Center


60
First Job…. Dream Job…. Freshersworld.com

Answer :
sizeof (void *) = 2
sizeof (int *) = 2
sizeof (double *) = 2
sizeof(struct unknown *) = 2
Explanation:
The pointer to any type is of same size.

168) char inputString[100] = {0};


To get string input from the keyboard which one of the following is better?
1) gets(inputString)
2) fgets(inputString, sizeof(inputString), fp)
Answer & Explanation:
The second one is better because gets(inputString) doesn't know the
size of the string passed and so, if a very big input (here, more than
100 chars) the charactes will be written past the input string. When
fgets is used with stdin performs the same operation as gets but is safe.

169) Which version do you prefer of the following two,


1) printf(“%s”,str); // or the more curt one
2) printf(str);
Answer & Explanation:
Prefer the first one. If the str contains any format characters like %d
then it will result in a subtle bug.

170) void main()


{
int i=10, j=2;
int *ip= &i, *jp = &j;
int k = *ip/*jp;
printf(“%d”,k);
}
Answer:
Compiler Error: “Unexpected end of file in comment started in line 5”.
Explanation:
The programmer intended to divide two integers, but by the
“maximum munch” rule, the compiler treats the operator
sequence / and * as /* which happens to be the starting of
comment. To force what is intended by the programmer,
int k = *ip/ *jp;
// give space explicity separating / and *
//or
int k = *ip/(*jp);
// put braces to force the intention
will solve the problem.

Freshersworld.com Resource Center


61
First Job…. Dream Job…. Freshersworld.com

171) void main()


{
char ch;
for(ch=0;ch<=127;ch++)
printf(“%c %d \n“, ch, ch);
}
Answer:
Implementaion dependent
Explanation:
The char type may be signed or unsigned by default. If it is signed then
ch++ is executed after ch reaches 127 and rotates back to -128. Thus
ch is always smaller than 127.

172) Is this code legal?


int *ptr;
ptr = (int *) 0x400;
Answer:
Yes
Explanation:
The pointer ptr will point at the integer in the memory location 0x400.

173) main()
{
char a[4]="HELLO";
printf("%s",a);
}
Answer:
Compiler error: Too many initializers
Explanation:
The array a is of size 4 but the string constant requires 6 bytes to get
stored.

174) main()
{
char a[4]="HELL";
printf("%s",a);
}
Answer:
HELL%@!~@!@???@~~!
Explanation:
The character array has the memory just enough to hold the string
“HELL” and doesnt have enough space to store the terminating null
character. So it prints the HELL correctly and continues to print
garbage values till it accidentally comes across a NULL character.

175) main()

Freshersworld.com Resource Center


62
First Job…. Dream Job…. Freshersworld.com

{
int a=10,*j;
void *k;
j=k=&a;
j++;
k++;
printf("\n %u %u ",j,k);
}
Answer:
Compiler error: Cannot increment a void pointer
Explanation:
Void pointers are generic pointers and they can be used only when the
type is not known and as an intermediate address storage type. No
pointer arithmetic can be done on it and you cannot apply indirection
operator (*) on void pointers.

176) main()
{
extern int i;
{ int i=20;
{
const volatile unsigned i=30; printf("%d",i);
}
printf("%d",i);
}
printf("%d",i);
}
int i;

177) Printf can be implemented by using __________ list.


Answer:
Variable length argument lists
178) char *someFun()
{
char *temp = “string constant";
return temp;
}
int main()
{
puts(someFun());
}
Answer:
string constant
Explanation:

Freshersworld.com Resource Center


63
First Job…. Dream Job…. Freshersworld.com

The program suffers no problem and gives the output correctly because the
character constants are stored in code/data area and not allocated in stack, so this
doesn’t lead to dangling pointers.

179) char *someFun1()


{
char temp[ ] = “string";
return temp;
}
char *someFun2()
{
char temp[ ] = {‘s’, ‘t’,’r’,’i’,’n’,’g’};
return temp;
}
int main()
{
puts(someFun1());
puts(someFun2());
}
Answer:
Garbage values.
Explanation:
Both the functions suffer from the problem of dangling pointers. In
someFun1() 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 someFun2() also suffers from the same problem but the problem can be
easily identified in this case.

Freshersworld.com Resource Center


64
First Job…. Dream Job…. Freshersworld.com

C,C++ Questions
1. Base class has some virtual method and derived class has a method with the
same name. If we initialize the base class pointer with derived
object,. calling of that virtual method will result in which method being called?

a. Base method
b. Derived method..

Ans. b

2. For the following C program

#define AREA(x)(3.14*x*x)
main()
{float r1=6.25,r2=2.5,a;
a=AREA(r1);
printf("\n Area of the circle is %f", a);
a=AREA(r2);
printf("\n Area of the circle is %f", a);
}

What is the output?

Ans. Area of the circle is 122.656250


Area of the circle is 19.625000

3. What do the following statements indicate. Explain.

• int(*p)[10]
• int*f()
• int(*pf)()
• int*p[10]

Refer to:
-- Kernighan & Ritchie page no. 122
-- Schaum series page no. 323

4.
void main()
{
int d=5;
printf("%f",d);
}

Ans: Undefined

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

5.
void main()
{
int i;
for(i=1;i<4,i++)
switch(i)
case 1: printf("%d",i);break;
{
case 2:printf("%d",i);break;
case 3:printf("%d",i);break;
}
switch(i) case 4:printf("%d",i);
}

Ans: 1,2,3,4

6.
void main()
{
char *s="\12345s\n";
printf("%d",sizeof(s));
}

Ans: 6

7.
void main()
{
unsigned i=1; /* unsigned char k= -1 => k=255; */
signed j=-1; /* char k= -1 => k=65535 */
/* unsigned or signed int k= -1 =>k=65535 */
if(i<j)
printf("less");
else
if(i>j)
printf("greater");
else
if(i==j)
printf("equal");
}

Ans: less

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

8.
void main()
{
float j;
j=1000*1000;
printf("%f",j);
}

1. 1000000
2. Overflow
3. Error
4. None

Ans: 4

9. How do you declare an array of N pointers to functions returning


pointers to functions returning pointers to characters?

Ans: The first part of this question can be answered in at least


three ways:

1. char *(*(*a[N])())();

2. Build the declaration up incrementally, using typedefs:

typedef char *pc; /* pointer to char */


typedef pc fpc(); /* function returning pointer to char */
typedef fpc *pfpc; /* pointer to above */
typedef pfpc fpfpc(); /* function returning... */
typedef fpfpc *pfpfpc; /* pointer to... */
pfpfpc a[N]; /* array of... */

3. Use the cdecl program, which turns English into C and vice
versa:

cdecl> declare a as array of pointer to function returning


pointer to function returning pointer to char
char *(*(*a[])())()

cdecl can also explain complicated declarations, help with


casts, and indicate which set of parentheses the arguments
go in (for complicated function definitions, like the one
above).
Any good book on C should explain how to read these complicated
C declarations "inside out" to understand them ("declaration
mimics use").
The pointer-to-function declarations in the examples above have
not included parameter type information. When the parameters

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

have complicated types, declarations can *really* get messy.


(Modern versions of cdecl can help here, too.)

10. A structure pointer is defined of the type time . With 3 fields min,sec hours
having pointers to intergers.
Write the way to initialize the 2nd element to 10.

11. In the above question an array of pointers is declared.


Write the statement to initialize the 3rd element of the 2 element to 10;

12.
int f()
void main()
{
f(1);
f(1,2);
f(1,2,3);
}
f(int i,int j,int k)
{
printf("%d %d %d",i,j,k);
}

What are the number of syntax errors in the above?

Ans: None.

13.
void main()
{
int i=7;
printf("%d",i++*i++);
}

Ans: 56

14.
#define one 0
#ifdef one
printf("one is defined ");
#ifndef one
printf("one is not defined ");

Ans: "one is defined"

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

15.
void main()
{
int count=10,*temp,sum=0;
temp=&count;
*temp=20;
temp=&sum;
*temp=count;
printf("%d %d %d ",count,*temp,sum);
}

Ans: 20 20 20

16. There was question in c working only on unix machine with pattern matching.

14. what is alloca()

Ans : It allocates and frees memory after use/after getting out of scope

17.
main()
{
static i=3;
printf("%d",i--);
return i>0 ? main():0;
}

Ans: 321

18.
char *foo()
{
char result[100]);
strcpy(result,"anything is good");
return(result);
}
void main()
{
char *j;
j=foo()
printf("%s",j);
}

Ans: anything is good.

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

19.
void main()
{
char *s[]={ "dharma","hewlett-packard","siemens","ibm"};
char **p;
p=s;
printf("%s",++*p);
printf("%s",*p++);
printf("%s",++*p);
}

Ans: "harma" (p->add(dharma) && (*p)->harma)


"harma" (after printing, p->add(hewlett-packard) &&(*p)->harma)
"ewlett-packard"

20. Output of the following program is

main()
{int i=0;
for(i=0;i<20;i++)
{switch(i)
case 0:i+=5;
case 1:i+=2;
case 5:i+=5;
default i+=4;
break;}
printf("%d,",i);
}
}

a) 0,5,9,13,17
b) 5,9,13,17
c) 12,17,22
d) 16,21
e) Syntax error

Ans. (d)

21. What is the ouptut in the following program

main()
{char c=-64;
int i=-32
unsigned int u =-16;
if(c>i)
{printf("pass1,");
if(c<u)
printf("pass2");
else
printf("Fail2");
}
else

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

printf("Fail1);
if(i<u)
printf("pass2");
else
printf("Fail2")
}

a) Pass1,Pass2
b) Pass1,Fail2
c) Fail1,Pass2
d) Fail1,Fail2
e) None of these

Ans. (c)

22. What will the following program do?

void main()
{
int i;
char a[]="String";
char *p="New Sring";
char *Temp;
Temp=a;
a=malloc(strlen(p) + 1);
strcpy(a,p); //Line number:9//
p = malloc(strlen(Temp) + 1);
strcpy(p,Temp);
printf("(%s, %s)",a,p);
free(p);
free(a);
} //Line number 15//

a) Swap contents of p & a and print:(New string, string)


b) Generate compilation error in line number 8
c) Generate compilation error in line number 5
d) Generate compilation error in line number 7
e) Generate compilation error in line number 1

Ans. (b)

23. In the following code segment what will be the result of the function,

value of x , value of y
{unsigned int x=-1;
int y;
y = ~0;
if(x == y)
printf("same");
else
printf("not same");
}

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

a) same, MAXINT, -1
b) not same, MAXINT, -MAXINT
c) same , MAXUNIT, -1
d) same, MAXUNIT, MAXUNIT
e) not same, MAXINT, MAXUNIT

Ans. (a)

24. What will be the result of the following program ?

char *gxxx()
{static char xxx[1024];
return xxx;
}

main()
{char *g="string";
strcpy(gxxx(),g);
g = gxxx();
strcpy(g,"oldstring");
printf("The string is : %s",gxxx());
}

a) The string is : string


b) The string is :Oldstring
c) Run time error/Core dump
d) Syntax error during compilation
e) None of these

Ans. (b)

25. Find the output for the following C program

main()
{
char *p1="Name";
char *p2;
p2=(char *)malloc(20);
while(*p2++=*p1++);
printf("%s\n",p2);
}

Ans. An empty string

26. Find the output for the following C program

main()
{
int x=20,y=35;
x = y++ + x++;
y = ++y + ++x;

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

printf("%d %d\n",x,y);
}

Ans. 57 94

27. Find the output for the following C program

main()
{
int x=5;
printf("%d %d %d\n",x,x<<2,x>>2);
}

Ans. 5 20 1

28 Find the output for the following C program

#define swap1(a,b) a=a+b;b=a-b;a=a-b;


main()
{
int x=5,y=10;
swap1(x,y);
printf("%d %d\n",x,y);
swap2(x,y);
printf("%d %d\n",x,y);
}
int swap2(int a,int b)
{
int temp;
temp=a;
b=a;
a=temp;
return;
}

Ans. 10 5

29 Find the output for the following C program

main()
{
char *ptr = "Ramco Systems";
(*ptr)++;
printf("%s\n",ptr);
ptr++;
printf("%s\n",ptr);
}

Ans. Samco Systems

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

30 Find the output for the following C program

#include<stdio.h>
main()
{
char s1[]="Ramco";
char s2[]="Systems";
s1=s2;
printf("%s",s1);
}

Ans. Compilation error giving it cannot be an modifiable 'lvalue'

31 Find the output for the following C program

#include<stdio.h>
main()
{
char *p1;
char *p2;
p1=(char *) malloc(25);
p2=(char *) malloc(25);
strcpy(p1,"Ramco");
strcpy(p2,"Systems");
strcat(p1,p2);
printf("%s",p1);
}

Ans. RamcoSystems

32. Find the output for the following C program given that
[1]. The following variable is available in file1.c
static int average_float;

Ans. All the functions in the file1.c can access the variable

33. Find the output for the following C program

# define TRUE 0
some code
while(TRUE)
{
some code
}

Ans. This won't go into the loop as TRUE is defined as 0

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

34. struct list{


int x;
struct list *next;
}*head;

the struct head.x =100

Is the above assignment to pointer is correct or wrong ?

Ans. Wrong

35.What is the output of the following ?

int i;
i=1;
i=i+2*i++;
printf(%d,i);

Ans. 4

36. FILE *fp1,*fp2;

fp1=fopen("one","w")
fp2=fopen("one","w")
fputc('A',fp1)
fputc('B',fp2)
fclose(fp1)
fclose(fp2)
}

Find the Error, If Any?

Ans. no error. But It will over writes on same file.

37. What are the output(s) for the following ?

38. #include<malloc.h>
char *f()
{char *s=malloc(8);
strcpy(s,"goodbye");
}

main()
{
char *f();
printf("%c",*f()='A'); }

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

39. #define MAN(x,y) (x)>(y)?(x):(y)


{int i=10;
j=5;
k=0;
k=MAX(i++,++j);
printf(%d %d %d %d,i,j,k);
}

Ans. 10 5 0

40.
void main()
{
int i=7;
printf("%d",i++*i++);
}

Ans: 56

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

C++ Questions
Note : All the programs are tested under Turbo C++ 3.0, 4.5 and Microsoft VC++ 6.0
compilers.
It is assumed that,
¾ Programs run under Windows environment,
¾ The underlying machine is an x86 based system,
¾ Program is compiled using Turbo C/C++ compiler.
The program output may depend on the information based on this assumptions
(for example sizeof(int) == 2 may be assumed).

1) class Sample
{
public:
int *ptr;
Sample(int i)
{
ptr = new int(i);
}
~Sample()
{
delete ptr;
}
void PrintVal()
{
cout << "The value is " << *ptr;
}
};
void SomeFunc(Sample x)
{
cout << "Say i am in someFunc " << endl;
}
int main()
{
Sample s1= 10;
SomeFunc(s1);
s1.PrintVal();
}
Answer:
Say i am in someFunc
Null pointer assignment(Run-time error)
Explanation:
As the object is passed by value to SomeFunc the destructor of the object is
called when the control returns from the function. So when PrintVal is called it meets

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

up with ptr that has been freed.The solution is to pass the Sample object by
reference to SomeFunc:

void SomeFunc(Sample &x)


{
cout << "Say i am in someFunc " << endl;
}
because when we pass objects by refernece that object is not destroyed. while

returning from the function.

2) Which is the parameter that is added to every non-static member function when it
is called?
Answer:
‘this’ pointer

3) class base
{
public:
int bval;
base(){ bval=0;}
};

class deri:public base


{
public:
int dval;
deri(){ dval=1;}
};
void SomeFunc(base *arr,int size)
{
for(int i=0; i<size; i++,arr++)
cout<<arr->bval;
cout<<endl;
}

int main()
{
base BaseArr[5];
SomeFunc(BaseArr,5);
deri DeriArr[5];
SomeFunc(DeriArr,5);
}

Answer:

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

00000
01010
Explanation:
The function SomeFunc expects two arguments.The first one is a pointer to an
array of base class objects and the second one is the sizeof the array.The first call of
someFunc calls it with an array of bae objects, so it works correctly and prints the
bval of all the objects. When Somefunc is called the second time the argument passed
is the pointeer to an array of derived class objects and not the array of base class
objects. But that is what the function expects to be sent. So the derived class pointer is
promoted to base class pointer and the address is sent to the function. SomeFunc()
knows nothing about this and just treats the pointer as an array of base class objects.
So when arr++ is met, the size of base class object is taken into consideration and is
incremented by sizeof(int) bytes for bval (the deri class objects have bval and dval as
members and so is of size >= sizeof(int)+sizeof(int) ).

4) class base
{
public:
void baseFun(){ cout<<"from base"<<endl;}
};
class deri:public base
{
public:
void baseFun(){ cout<< "from derived"<<endl;}
};
void SomeFunc(base *baseObj)
{
baseObj->baseFun();
}
int main()
{
base baseObject;
SomeFunc(&baseObject);
deri deriObject;
SomeFunc(&deriObject);
}
Answer:
from base
from base
Explanation:
As we have seen in the previous case, SomeFunc expects a pointer to a base
class. Since a pointer to a derived class object is passed, it treats the argument only as
a base class pointer and the corresponding base function is called.

5) class base
{

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

public:
virtual void baseFun(){ cout<<"from base"<<endl;}
};
class deri:public base
{
public:
void baseFun(){ cout<< "from derived"<<endl;}
};
void SomeFunc(base *baseObj)
{
baseObj->baseFun();
}
int main()
{
base baseObject;
SomeFunc(&baseObject);
deri deriObject;
SomeFunc(&deriObject);
}
Answer:
from base
from derived
Explanation:
Remember that baseFunc is a virtual function. That means that it supports run-
time polymorphism. So the function corresponding to the derived class object is
called.

void main()
{
int a, *pa, &ra;
pa = &a;
ra = a;
cout <<"a="<<a <<"*pa="<<*pa <<"ra"<<ra ;
}
/*
Answer :
Compiler Error: 'ra',reference must be initialized
Explanation :
Pointers are different from references. One of the main
differences is that the pointers can be both initialized and assigned,
whereas references can only be initialized. So this code issues an error.
*/

const int size = 5;


void print(int *ptr)

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

{
cout<<ptr[0];
}

void print(int ptr[size])


{
cout<<ptr[0];
}

void main()
{
int a[size] = {1,2,3,4,5};
int *b = new int(size);
print(a);
print(b);
}
/*
Answer:
Compiler Error : function 'void print(int *)' already has a body

Explanation:
Arrays cannot be passed to functions, only pointers (for arrays, base
addresses)
can be passed. So the arguments int *ptr and int prt[size] have no difference
as function arguments. In other words, both the functoins have the same signature and
so cannot be overloaded.
*/

class some{
public:
~some()
{
cout<<"some's destructor"<<endl;
}
};

void main()
{
some s;
s.~some();
}
/*
Answer:
some's destructor
some's destructor
Explanation:

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

Destructors can be called explicitly. Here 's.~some()' explicitly calls the


destructor of 's'. When main() returns, destructor of s is called again,
hence the result.
*/

#include <iostream.h>

class fig2d
{
int dim1;
int dim2;

public:
fig2d() { dim1=5; dim2=6;}

virtual void operator<<(ostream & rhs);


};

void fig2d::operator<<(ostream &rhs)


{
rhs <<this->dim1<<" "<<this->dim2<<" ";
}

/*class fig3d : public fig2d


{
int dim3;
public:
fig3d() { dim3=7;}
virtual void operator<<(ostream &rhs);
};
void fig3d::operator<<(ostream &rhs)
{
fig2d::operator <<(rhs);
rhs<<this->dim3;
}
*/

void main()
{
fig2d obj1;
// fig3d obj2;

obj1 << cout;


// obj2 << cout;
}
/*

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

Answer :
56
Explanation:
In this program, the << operator is overloaded with ostream as argument.
This enables the 'cout' to be present at the right-hand-side. Normally, 'cout'
is implemented as global function, but it doesn't mean that 'cout' is not possible
to be overloaded as member function.
Overloading << as virtual member function becomes handy when the class in
which
it is overloaded is inherited, and this becomes available to be overrided. This is as
opposed
to global friend functions, where friend's are not inherited.
*/

class opOverload{
public:
bool operator==(opOverload temp);
};

bool opOverload::operator==(opOverload temp){


if(*this == temp ){
cout<<"The both are same objects\n";
return true;
}
else{
cout<<"The both are different\n";
return false;
}
}

void main(){
opOverload a1, a2;
a1= =a2;
}

Answer :
Runtime Error: Stack Overflow
Explanation :
Just like normal functions, operator functions can be called recursively. This
program just illustrates that point, by calling the operator == function recursively,
leading to an infinite loop.

class complex{
double re;
double im;

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

public:
complex() : re(1),im(0.5) {}
bool operator==(complex &rhs);
operator int(){}
};

bool complex::operator == (complex &rhs){


if((this->re == rhs.re) && (this->im == rhs.im))
return true;
else
return false;
}

int main(){
complex c1;
cout<< c1;
}

Answer : Garbage value

Explanation:
The programmer wishes to print the complex object using output
re-direction operator,which he has not defined for his lass.But the compiler instead of
giving an error sees the conversion function
and converts the user defined object to standard object and prints
some garbage value.

class complex{
double re;
double im;
public:
complex() : re(0),im(0) {}
complex(double n) { re=n,im=n;};
complex(int m,int n) { re=m,im=n;}
void print() { cout<<re; cout<<im;}
};

void main(){
complex c3;
double i=5;
c3 = i;
c3.print();
}

Answer:

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

5,5
Explanation:
Though no operator= function taking complex, double is defined, the double
on the rhs is converted into a temporary object using the single argument constructor
taking double and assigned to the lvalue.

void main()
{
int a, *pa, &ra;
pa = &a;
ra = a;
cout <<"a="<<a <<"*pa="<<*pa <<"ra"<<ra ;
}

Answer :
Compiler Error: 'ra',reference must be initialized
Explanation :
Pointers are different from references. One of the main
differences is that the pointers can be both initialized and assigned,
whereas references can only be initialized. So this code issues an error.

Try it Yourself

1) Determine the output of the 'C++' Codelet.


class base
{
public :
out()
{
cout<<"base ";
}
};
class deri{
public : out()
{
cout<<"deri ";
}
};
void main()
{ deri dp[3];
base *bp = (base*)dp;
for (int i=0; i<3;i++)
(bp++)->out();
}

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

2) Justify the use of virtual constructors and destructors in C++.

3) Each C++ object possesses the 4 member fns,(which can be declared by the
programmer explicitly or by the implementation if they are not available). What
are those 4 functions?

4) What is wrong with this class declaration?


class something
{
char *str;
public:
something(){
st = new char[10]; }
~something()
{
delete str;
}
};

5) Inheritance is also known as -------- relationship. Containership as ________


relationship.

6) When is it necessary to use member-wise initialization list (also known as header


initialization list) in C++?

7) Which is the only operator in C++ which can be overloaded but NOT inherited.

8) Is there anything wrong with this C++ class declaration?


class temp
{
int value1;
mutable int value2;
public :
void fun(int val)
const{
((temp*) this)->value1 = 10;
value2 = 10;
}
};

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

1. What is a modifier?
Answer:
A modifier, also called a modifying function is a member function that changes
the value of at least one data member. In other words, an operation that modifies the
state of an object. Modifiers are also known as ‘mutators’.

2. What is an accessor?
Answer:
An accessor is a class operation that does not modify the state of an object. The
accessor functions need to be declared as const operations

3. Differentiate between a template class and class template.


Answer:
Template class:
A generic definition or a parameterized class not instantiated until the client
provides the needed information. It’s jargon for plain templates.
Class template:
A class template specifies how individual classes can be constructed much
like the way a class specifies how individual objects can be constructed. It’s jargon
for plain classes.

4. When does a name clash occur?


Answer:
A name clash occurs when a name is defined in more than one place. For
example., two different class libraries could give two different classes the same name.
If you try to use many class libraries at the same time, there is a fair chance that you
will be unable to compile or link the program because of name clashes.

5. Define namespace.
Answer:
It is a feature in c++ to minimize name collisions in the global name space.
This namespace keyword assigns a distinct name to a library that allows other
libraries to use the same identifier names without creating any name collisions.
Furthermore, the compiler uses the namespace signature for differentiating the
definitions.

6. What is the use of ‘using’ declaration.


Answer:
A using declaration makes it possible to use a name from a namespace without
the scope operator.

7. What is an Iterator class?


Answer:
A class that is used to traverse through the objects maintained by a container
class. There are five categories of iterators:
¾ input iterators,
¾ output iterators,

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

¾ forward iterators,
¾ bidirectional iterators,
¾ random access.
An iterator is an entity that gives access to the contents of a container object
without violating encapsulation constraints. Access to the contents is granted on a
one-at-a-time basis in order. The order can be storage order (as in lists and queues) or
some arbitrary order (as in array indices) or according to some ordering relation (as in
an ordered binary tree). The iterator is a construct, which provides an interface that,
when called, yields either the next element in the container, or some value denoting
the fact that there are no more elements to examine. Iterators hide the details of access
to and update of the elements of a container class.
The simplest and safest iterators are those that permit read-only access to the
contents of a container class. The following code fragment shows how an iterator
might appear in code:
cont_iter:=new cont_iterator();
x:=cont_iter.next();
while x/=none do
...
s(x);
...
x:=cont_iter.next();
end;
In this example, cont_iter is the name of the iterator. It is created on the first line
by instantiation of cont_iterator class, an iterator class defined to iterate over some
container class, cont. Succesive elements from the container are carried to x. The loop
terminates when x is bound to some empty value. (Here, none)In the middle of the
loop, there is s(x) an operation on x, the current element from the container. The next
element of the container is obtained at the bottom of the loop.

9. List out some of the OODBMS available.


Answer:
¾ GEMSTONE/OPAL of Gemstone systems.
¾ ONTOS of Ontos.
¾ Objectivity of Objectivity inc.
¾ Versant of Versant object technology.
¾ Object store of Object Design.
¾ ARDENT of ARDENT software.
¾ POET of POET software.

10. List out some of the object-oriented methodologies.


Answer:
¾ Object Oriented Development (OOD) (Booch 1991,1994).
¾ Object Oriented Analysis and Design (OOA/D) (Coad and Yourdon 1991).
¾ Object Modelling Techniques (OMT) (Rumbaugh 1991).
¾ Object Oriented Software Engineering (Objectory) (Jacobson 1992).
¾ Object Oriented Analysis (OOA) (Shlaer and Mellor 1992).

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

¾ The Fusion Method (Coleman 1991).

11. What is an incomplete type?


Answer:
Incomplete types refers to pointers in which there is non availability of the
implementation of the referenced location or it points to some location whose value is
not available for modification.
Example:
int *i=0x400 // i points to address 400
*i=0; //set the value of memory location pointed by i.
Incomplete types are otherwise called uninitialized pointers.

12. What is a dangling pointer?


Answer:
A dangling pointer arises when you use the address of an object after its
lifetime is over.
This may occur in situations like returning addresses of the automatic variables from
a function or using the address of the memory block after it is freed.

13. Differentiate between the message and method.


Answer:
Message Method
Objects communicate by sending messages Provides response to a message.
to each other.
A message is sent to invoke a method. It is an implementation of an operation.

14. What is an adaptor class or Wrapper class?


Answer:
A class that has no functionality of its own. Its member functions hide the use
of a third party software component or an object with the non-compatible interface or
a non- object- oriented implementation.

15. What is a Null object?


Answer:
It is an object of some class whose purpose is to indicate that a real object of
that class does not exist. One common use for a null object is a return value from a
member function that is supposed to return an object with some specified properties
but cannot find such an object.

16. What is class invariant?


Answer:
A class invariant is a condition that defines all valid states for an object. It is a
logical condition to ensure the correct working of a class. Class invariants must hold
when an object is created, and they must be preserved under all operations of the
class. In particular all class invariants are both preconditions and post-conditions for
all operations or member functions of the class.

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

17. What do you mean by Stack unwinding?


Answer:
It is a process during exception handling when the destructor is called for all
local objects between the place where the exception was thrown and where it is
caught.

18. Define precondition and post-condition to a member function.


Answer:
Precondition:
A precondition is a condition that must be true on entry to a member function.
A class is used correctly if preconditions are never false. An operation is not
responsible for doing anything sensible if its precondition fails to hold.
For example, the interface invariants of stack class say nothing about pushing
yet another element on a stack that is already full. We say that isful() is a precondition
of the push operation.

Post-condition:
A post-condition is a condition that must be true on exit from a member
function if the precondition was valid on entry to that function. A class is
implemented correctly if post-conditions are never false.
For example, after pushing an element on the stack, we know that isempty()
must necessarily hold. This is a post-condition of the push operation.

19. What are the conditions that have to be met for a condition to be an invariant of

the class?

Answer:
¾ The condition should hold at the end of every constructor.
¾ The condition should hold at the end of every mutator(non-const) operation.

20. What are proxy objects?

Answer:
Objects that stand for other objects are called proxy objects or surrogates.
Example:
template<class T>
class Array2D
{
public:
class Array1D
{
public:
T& operator[] (int index);
const T& operator[] (int index) const;

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

...
};
Array1D operator[] (int index);
const Array1D operator[] (int index) const;
...
};

The following then becomes legal:


Array2D<float>data(10,20);
........
cout<<data[3][6]; // fine

Here data[3] yields an Array1D object and the operator [] invocation on that
object yields the float in position(3,6) of the original two dimensional array. Clients
of the Array2D class need not be aware of the presence of the Array1D class. Objects
of this latter class stand for one-dimensional array objects that, conceptually, do not
exist for clients of Array2D. Such clients program as if they were using real, live,
two-dimensional arrays. Each Array1D object stands for a one-dimensional array that
is absent from a conceptual model used by the clients of Array2D. In the above
example, Array1D is a proxy class. Its instances stand for one-dimensional arrays
that, conceptually, do not exist.

21. Name some pure object oriented languages.

Answer:
¾ Smalltalk,
¾ Java,
¾ Eiffel,
¾ Sather.

22. Name the operators that cannot be overloaded.

Answer:
sizeof . .* .-> :: ?:

23. What is a node class?


Answer:
A node class is a class that,
¾ relies on the base class for services and implementation,
¾ provides a wider interface to te users than its base class,
¾ relies primarily on virtual functions in its public interface
¾ depends on all its direct and indirect base class
¾ can be understood only in the context of the base class
¾ can be used as base for further derivation
¾ can be used to create objects.

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

A node class is a class that has added new services or functionality beyond the
services inherited from its base class.

24. What is an orthogonal base class?


Answer:
If two base classes have no overlapping methods or data they are said to be

independent of, or orthogonal to each other. Orthogonal in the sense means that two

classes operate in different dimensions and do not interfere with each other in any

way. The same derived class may inherit such classes with no difficulty.

25. What is a container class? What are the types of container classes?
Answer:
A container class is a class that is used to hold objects in memory or external
storage. A container class acts as a generic holder. A container class has a predefined
behavior and a well-known interface. A container class is a supporting class whose
purpose is to hide the topology used for maintaining the list of objects in memory.
When a container class contains a group of mixed objects, the container is called a
heterogeneous container; when the container is holding a group of objects that are all
the same, the container is called a homogeneous container.

26. What is a protocol class?


Answer:
An abstract class is a protocol class if:
¾ it neither contains nor inherits from classes that contain member data, non-
virtual functions, or private (or protected) members of any kind.
¾ it has a non-inline virtual destructor defined with an empty implementation,
¾ all member functions other than the destructor including inherited functions,
are declared pure virtual functions and left undefined.

27. What is a mixin class?


Answer:
A class that provides some but not all of the implementation for a virtual base
class is often called mixin. Derivation done just for the purpose of redefining the
virtual functions in the base classes is often called mixin inheritance. Mixin classes
typically don't share common bases.

28. What is a concrete class?


Answer:
A concrete class is used to define a useful object that can be instantiated as an
automatic variable on the program stack. The implementation of a concrete class is
defined. The concrete class is not intended to be a base class and no attempt to
minimize dependency on other classes in the implementation or behavior of the class.

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

29.What is the handle class?


Answer:
A handle is a class that maintains a pointer to an object that is
programmatically accessible through the public interface of the handle class.
Explanation:
In case of abstract classes, unless one manipulates the objects of these classes
through pointers and references, the benefits of the virtual functions are lost. User
code may become dependent on details of implementation classes because an abstract
type cannot be allocated statistically or on the stack without its size being known.
Using pointers or references implies that the burden of memory management falls on
the user. Another limitation of abstract class object is of fixed size. Classes however
are used to represent concepts that require varying amounts of storage to implement
them.
A popular technique for dealing with these issues is to separate what is used as a
single object in two parts: a handle providing the user interface and a representation
holding all or most of the object's state. The connection between the handle and the
representation is typically a pointer in the handle. Often, handles have a bit more data
than the simple representation pointer, but not much more. Hence the layout of the
handle is typically stable, even when the representation changes and also that handles
are small enough to move around relatively freely so that the user needn’t use the
pointers and the references.

30. What is an action class?


Answer:
The simplest and most obvious way to specify an action in C++ is to write a
function. However, if the action has to be delayed, has to be transmitted 'elsewhere'
before being performed, requires its own data, has to be combined with other actions,
etc then it often becomes attractive to provide the action in the form of a class that can
execute the desired action and provide other services as well. Manipulators used with
iostreams is an obvious example.
Explanation:
A common form of action class is a simple class containing just one virtual

function.

class Action
{
public:
virtual int do_it( int )=0;
virtual ~Action( );
}
Given this, we can write code say a member that can store actions for later

execution without using pointers to functions, without knowing anything about the

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

objects involved, and without even knowing the name of the operation it invokes. For

example:

class write_file : public Action


{
File& f;
public:
int do_it(int)
{
return fwrite( ).suceed( );
}
};
class error_message: public Action
{
response_box db(message.cstr( ),"Continue","Cancel","Retry");
switch (db.getresponse( ))
{
case 0: return 0;
case 1: abort();
case 2: current_operation.redo( );return 1;
}
};

A user of the Action class will be completely isolated from any knowledge of

derived classes such as write_file and error_message.

31. When can you tell that a memory leak will occur?
Answer:
A memory leak occurs when a program loses the ability to free a block of
dynamically allocated memory.

32.What is a parameterized type?


Answer:
A template is a parameterized construct or type containing generic code that
can use or manipulate any type. It is called parameterized because an actual type is a
parameter of the code body. Polymorphism may be achieved through parameterized
types. This type of polymorphism is called parameteric polymorphism. Parameteric
polymorphism is the mechanism by which the same code is used on different types
passed as parameters.

33. Differentiate between a deep copy and a shallow copy?


Answer:

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

Deep copy involves using the contents of one object to create another instance
of the same class. In a deep copy, the two objects may contain ht same information
but the target object will have its own buffers and resources. the destruction of either
object will not affect the remaining object. The overloaded assignment operator
would create a deep copy of objects.
Shallow copy involves copying the contents of one object into another
instance of the same class thus creating a mirror image. Owing to straight copying of
references and pointers, the two objects will share the same externally contained
contents of the other object to be unpredictable.
Explanation:
Using a copy constructor we simply copy the data values member by member.
This method of copying is called shallow copy. If the object is a simple class,
comprised of built in types and no pointers this would be acceptable. This function
would use the values and the objects and its behavior would not be altered with a
shallow copy, only the addresses of pointers that are members are copied and not the
value the address is pointing to. The data values of the object would then be
inadvertently altered by the function. When the function goes out of scope, the copy
of the object with all its data is popped off the stack.
If the object has any pointers a deep copy needs to be executed. With the deep
copy of an object, memory is allocated for the object in free store and the elements
pointed to are copied. A deep copy is used for objects that are returned from a
function.

34. What is an opaque pointer?


Answer:
A pointer is said to be opaque if the definition of the type to which it points to
is not included in the current translation unit. A translation unit is the result of
merging an implementation file with all its headers and header files.

35. What is a smart pointer?


Answer:
A smart pointer is an object that acts, looks and feels like a normal pointer but
offers more functionality. In C++, smart pointers are implemented as template classes
that encapsulate a pointer and override standard pointer operators. They have a
number of advantages over regular pointers. They are guaranteed to be initialized as
either null pointers or pointers to a heap object. Indirection through a null pointer is
checked. No delete is ever necessary. Objects are automatically freed when the last
pointer to them has gone away. One significant problem with these smart pointers is
that unlike regular pointers, they don't respect inheritance. Smart pointers are
unattractive for polymorphic code. Given below is an example for the implementation
of smart pointers.
Example:
template <class X>
class smart_pointer
{
public:
smart_pointer(); // makes a null pointer
Freshersworld.com Resource Center
19
First Job…. Dream Job…. Freshersworld.com

smart_pointer(const X& x) // makes pointer to copy of x

X& operator *( );
const X& operator*( ) const;
X* operator->() const;

smart_pointer(const smart_pointer <X> &);


const smart_pointer <X> & operator =(const smart_pointer<X>&);
~smart_pointer();
private:
//...
};
This class implement a smart pointer to an object of type X. The object itself
is located on the heap. Here is how to use it:
smart_pointer <employee> p= employee("Harris",1333);
Like other overloaded operators, p will behave like a regular pointer,
cout<<*p;
p->raise_salary(0.5);

36. What is reflexive association?


Answer:
The 'is-a' is called a reflexive association because the reflexive association
permits classes to bear the is-a association not only with their super-classes but also
with themselves. It differs from a 'specializes-from' as 'specializes-from' is usually
used to describe the association between a super-class and a sub-class. For example:
Printer is-a printer.

37. What is slicing?


Answer:
Slicing means that the data added by a subclass are discarded when an object
of the subclass is passed or returned by value or from a function expecting a base
class object.
Explanation:
Consider the following class declaration:
class base
{
...
base& operator =(const base&);
base (const base&);
}
void fun( )
{
base e=m;
e=m;
}

Freshersworld.com Resource Center


20
First Job…. Dream Job…. Freshersworld.com

As base copy functions don't know anything about the derived only the base
part of the derived is copied. This is commonly referred to as slicing. One reason to
pass objects of classes in a hierarchy is to avoid slicing. Other reasons are to preserve
polymorphic behavior and to gain efficiency.

38. What is name mangling?


Answer:
Name mangling is the process through which your c++ compilers give each

function in your program a unique name. In C++, all programs have at-least a few

functions with the same name. Name mangling is a concession to the fact that

linker always insists on all function names being unique.

Example:
In general, member names are made unique by concatenating the name of the
member with that of the class e.g. given the declaration:
class Bar
{
public:
int ival;
...
};
ival becomes something like:
// a possible member name mangling
ival__3Bar
Consider this derivation:
class Foo : public Bar
{
public:
int ival;
...
}
The internal representation of a Foo object is the concatenation of its base and

derived class members.

// Pseudo C++ code


// Internal representation of Foo
class Foo
{
public:
int ival__3Bar;
int ival__3Foo;
...

Freshersworld.com Resource Center


21
First Job…. Dream Job…. Freshersworld.com

};
Unambiguous access of either ival members is achieved through name mangling.

Member functions, because they can be overloaded, require an extensive

mangling to provide each with a unique name. Here the compiler generates the

same name for the two overloaded instances(Their argument lists make their

instances unique).

39. What are proxy objects?


Answer:
Objects that points to other objects are called proxy objects or surrogates. Its
an object that provides the same interface as its server object but does not have any
functionality. During a method invocation, it routes data to the true server object and
sends back the return value to the object.
40. Differentiate between declaration and definition in C++.
Answer:
A declaration introduces a name into the program; a definition provides a unique

description of an entity (e.g. type, instance, and function). Declarations can be

repeated in a given scope, it introduces a name in a given scope. There must be

exactly one definition of every object, function or class used in a C++ program.

A declaration is a definition unless:


¾ it declares a function without specifying its body,
¾ it contains an extern specifier and no initializer or function body,
¾ it is the declaration of a static class data member without a class
definition,
¾ it is a class name definition,
¾ it is a typedef declaration.
A definition is a declaration unless:

¾ it defines a static class data member,


¾ it defines a non-inline member function.

41. What is cloning?


Answer:
An object can carry out copying in two ways i.e. it can set itself to be a copy

of another object, or it can return a copy of itself. The latter process is called cloning.

Freshersworld.com Resource Center


22
First Job…. Dream Job…. Freshersworld.com

42. Describe the main characteristics of static functions.


Answer:
The main characteristics of static functions include,
¾ It is without the a this pointer,
¾ It can't directly access the non-static members of its class
¾ It can't be declared const, volatile or virtual.
¾ It doesn't need to be invoked through an object of its class, although for
convenience, it may.

43. Will the inline function be compiled as the inline function always? Justify.
Answer:
An inline function is a request and not a command. Hence it won't be
compiled as an inline function always.
Explanation:
Inline-expansion could fail if the inline function contains loops, the address of
an inline function is used, or an inline function is called in a complex expression. The
rules for inlining are compiler dependent.

44. Define a way other than using the keyword inline to make a function inline.
Answer:
The function must be defined inside the class.

45. How can a '::' operator be used as unary operator?


Answer:
The scope operator can be used to refer to members of the global namespace.
Because the global namespace doesn’t have a name, the notation :: member-name
refers to a member of the global namespace. This can be useful for referring to
members of global namespace whose names have been hidden by names declared in
nested local scope. Unless we specify to the compiler in which namespace to search
for a declaration, the compiler simple searches the current scope, and any scopes in
which the current scope is nested, to find the declaration for the name.

46. What is placement new?


Answer:
When you want to call a constructor directly, you use the placement new.

Sometimes you have some raw memory that's already been allocated, and you need to

construct an object in the memory you have. Operator new's special version

placement new allows you to do it.

class Widget
{
public :

Freshersworld.com Resource Center


23
First Job…. Dream Job…. Freshersworld.com

Widget(int widgetsize);
...
Widget* Construct_widget_int_buffer(void *buffer,int widgetsize)
{
return new(buffer) Widget(widgetsize);
}
};
This function returns a pointer to a Widget object that's constructed within the

buffer passed to the function. Such a function might be useful for applications using

shared memory or memory-mapped I/O, because objects in such applications must be

placed at specific addresses or in memory allocated by special routines.

OOAD

1. What do you mean by analysis and design?


Analysis:
Basically, it is the process of determining what needs to be done before
how it should be done. In order to accomplish this, the developer refers the existing
systems and documents. So, simply it is an art of discovery.
Design:
It is the process of adopting/choosing the one among the many, which
best accomplishes the users needs. So, simply, it is compromising mechanism.

2. What are the steps involved in designing?


Before getting into the design the designer should go through the SRS
prepared by the System Analyst.
The main tasks of design are Architectural Design and Detailed Design.
In Architectural Design we find what are the main modules in the problem
domain.
In Detailed Design we find what should be done within each module.

3. What are the main underlying concepts of object orientation?


Objects, messages, class, inheritance and polymorphism are the main concepts
of object orientation.

4. What do u meant by "SBI" of an object?


SBI stands for State, Behavior and Identity. Since every object has the above
three.
¾ State:
It is just a value to the attribute of an object at a particular time.
¾ Behaviour:

Freshersworld.com Resource Center


24
First Job…. Dream Job…. Freshersworld.com

It describes the actions and their reactions of that object.


¾ Identity:
An object has an identity that characterizes its own existence. The
identity makes it possible to distinguish any object in an unambiguous way, and
independently from its state.

5. Differentiate persistent & non-persistent objects?


Persistent refers to an object's ability to transcend time or space. A persistent
object stores/saves its state in a permanent storage system with out losing the
information represented by the object.
A non-persistent object is said to be transient or ephemeral. By default objects
are considered as non-persistent.

6. What do you meant by active and passive objects?


Active objects are one which instigate an interaction which owns a thread and
they are responsible for handling control to other objects. In simple words it can be
referred as client.
Passive objects are one, which passively waits for the message to be
processed. It waits for another object that requires its services. In simple words it can
be referred as server.

Diagram:
client server
(Active) (Passive)

7. What is meant by software development method?


Software development method describes how to model and build software
systems in a reliable and reproducible way. To put it simple, methods that are used to
represent ones' thinking using graphical notations.

8. What are models and meta models?


Model:
It is a complete description of something (i.e. system).
Meta model:
It describes the model elements, syntax and semantics of the notation
that allows their manipulation.

9. What do you meant by static and dynamic modeling?


Static modeling is used to specify structure of the objects that exist in the
problem domain. These are expressed using class, object and USECASE diagrams.
But Dynamic modeling refers representing the object interactions during
runtime. It is represented by sequence, activity, collaboration and statechart
diagrams.

10. How to represent the interaction between the modeling elements?


Model element is just a notation to represent (Graphically) the entities that

Freshersworld.com Resource Center


25
First Job…. Dream Job…. Freshersworld.com

exist in the problem domain. e.g. for modeling element is class notation, object
notation etc.
Relationships are used to represent the interaction between the modeling
elements.
The following are the Relationships.

¾ Association: Its' just a semantic connection two classes.


e.g.:
uses
class A class B

¾ Aggregation: Its' the relationship between two classes which are related in the
fashion that master and slave. The master takes full rights than the slave. Since
the slave works under the master. It is represented as line with diamond in the
master area.
ex:
car contains wheels, etc.

car
car wheels

¾ Containment: This relationship is applied when the part contained with in the
whole part, dies when the whole part dies.
It is represented as darked diamond at the whole part.
example:
class A{
//some code
};

class B
{
A aa; // an object of class A;
// some code for class B;
};
In the above example we see that an object of class A is instantiated with in
the class B. so the object class A dies when the object class B dies.we can represnt it
in diagram like this.

class A class B

¾ Generalization: This relationship used when we want represents a class, which


captures the common states of objects of different classes. It is represented as
arrow line pointed at the class, which has captured the common states.
class A

Freshersworld.com Resource Center


class B 26 class C
First Job…. Dream Job…. Freshersworld.com

¾ Dependency: It is the relationship between dependent and independent classes.


Any change in the independent class will affect the states of the dependent class.
DIAGRAM:
class A class B

11. Why generalization is very strong?


Even though Generalization satisfies Structural, Interface, Behaviour
properties. It is mathematically very strong, as it is Antisymmetric and Transitive.
Antisymmetric: employee is a person, but not all persons are employees.
Mathematically all As’ are B, but all Bs’ not A.
Transitive: A=>B, B=>c then A=>c.
A. Salesman.
B. Employee.
C. Person.
Note: All the other relationships satisfy all the properties like Structural
properties, Interface properties, Behaviour properties.

12. Differentiate Aggregation and containment?


Aggregation is the relationship between the whole and a part. We can
add/subtract some properties in the part (slave) side. It won't affect the whole part.
Best example is Car, which contains the wheels and some extra parts. Even
though the parts are not there we can call it as car.
But, in the case of containment the whole part is affected when the part within
that got affected. The human body is an apt example for this relationship. When the
whole body dies the parts (heart etc) are died.

13. Can link and Association applied interchangeably?


No, You cannot apply the link and Association interchangeably. Since link is
used represent the relationship between the two objects.
But Association is used represent the relationship between the two classes.
link :: student:Abhilash course:MCA
Association:: student course

14. what is meant by "method-wars"?


Before 1994 there were different methodologies like Rumbaugh, Booch,
Jacobson, Meyer etc who followed their own notations to model the systems. The
developers were in a dilemma to choose the method which best accomplishes their
needs. This particular span was called as "method-wars"

15. Whether unified method and unified modeling language are same or different?

Freshersworld.com Resource Center


27
First Job…. Dream Job…. Freshersworld.com

Unified method is convergence of the Rumbaugh and Booch.


Unified modeling lang. is the fusion of Rumbaugh, Booch and Jacobson as
well as Betrand Meyer (whose contribution is "sequence diagram"). Its' the superset
of all the methodologies.

16. Who were the three famous amigos and what was their contribution to the object
community?
The Three amigos namely,
¾ James Rumbaugh (OMT): A veteran in analysis who came up with an idea about
the objects and their Relationships (in particular Associations).
¾ Grady Booch: A veteran in design who came up with an idea about partitioning of
systems into subsystems.

¾ Ivar Jacobson (Objectory): The father of USECASES, who described about the
user and system interaction.

17. Differentiate the class representation of Booch, Rumbaugh and UML?


If you look at the class representaiton of Rumbaugh and UML, It is some what
similar and both are very easy to draw.
Representation: OMT UML.
Diagram:

Booch: In this method classes are represented as "Clouds" which are not very
easy to draw as for as the developer's view is concern.
Diagram:

18. What is an USECASE? Why it is needed?


A Use Case is a description of a set of sequence of actions that a system
performs that yields an observable result of value to a particular action.
In SSAD process <=> In OOAD USECASE. It is represented elliptically.
Representation:

19. Who is an Actor?

Freshersworld.com Resource Center


28
First Job…. Dream Job…. Freshersworld.com

An Actor is someone or something that must interact with the system.In


addition to that an Actor initiates the process(that is USECASE).
It is represented as a stickman like this.
Diagram:

20. What is guard condition?


Guard condition is one, which acts as a firewall. The access from a particular
object can be made only when the particular condition is met.
For Example,
customer check customer number ATM.
Here the object on the customer accesses the ATM facility only when the guard
condition is met.

21. Differentiate the following notations?


I: :obj1 :obj2

II: :obj1 :obj2

In the above representation I, obj1 sends message to obj2. But in the case of II
the data is transferred from obj1 to obj2.

22. USECASE is an implementation independent notation. How will the designer give
the implementation details of a particular USECASE to the programmer?
This can be accomplished by specifying the relationship called "refinement”
which talks about the two different abstraction of the same thing.
Or example,

calculate pay calculate

class1 class2 class3

23. Suppose a class acts an Actor in the problem domain, how to represent it in the
static model?
In this scenario you can use “stereotype”. Since stereotype is just a string that
gives extra semantic to the particular entity/model element. It is given with in the <<
>>.

class A
<< Actor>>
attributes

Freshersworld.com Resource Center


29
First Job…. Dream Job…. Freshersworld.com

methods.

24. Why does the function arguments are called as "signatures"?


The arguments distinguish functions with the same name (functional
polymorphism). The name alone does not necessarily identify a unique function.
However, the name and its arguments (signatures) will uniquely identify a function.
In real life we see suppose, in class there are two guys with same name, but
they can be easily identified by their signatures. The same concept is applied here.
ex:
class person
{
public:
char getsex();
void setsex(char);
void setsex(int);
};
In the above example we see that there is a function setsex() with same name
but with different signature.

Freshersworld.com Resource Center


30
First Job…. Dream Job…. Freshersworld.com

Freshersworld.com Resource Center


31
First Job…. Dream Job…. Freshersworld.com

1.The Java interpreter is used for the execution of the source code.
True
False
Ans: a.
2) On successful compilation a file with the class extension is created.
a) True
b) False
Ans: a.
3) The Java source code can be created in a Notepad editor.
a) True
b) False
Ans: a.
4) The Java Program is enclosed in a class definition.
a) True
b) False
Ans: a.
5) What declarations are required for every Java application?
Ans: A class and the main( ) method declarations.
6) What are the two parts in executing a Java program and their purposes?
Ans: Two parts in executing a Java program are:
Java Compiler and Java Interpreter.
The Java Compiler is used for compilation and the Java Interpreter is used for execution of the
application.
7) What are the three OOPs principles and define them?
Ans : Encapsulation, Inheritance and Polymorphism are the three OOPs
Principles.
Encapsulation:
Is the Mechanism that binds together code and the data it manipulates, and keeps both safe from
outside interference and misuse.
Inheritance:
Is the process by which one object acquires the properties of another object.
Polymorphism:
Is a feature that allows one interface to be used for a general class of actions.

8) What is a compilation unit?


Ans : Java source code file.
9) What output is displayed as the result of executing the following statement?
System.out.println("// Looks like a comment.");
// Looks like a comment
The statement results in a compilation error
Looks like a comment
No output is displayed
Ans : a.
10) In order for a source code file, containing the public class Test, to successfully compile, which of
the following must be true?
It must have a package statement
It must be named Test.java
It must import java.lang
It must declare a public class named Test
Ans : b
11) What are identifiers and what is naming convention?
Ans : Identifiers are used for class names, method names and variable names. An identifier may be any
descriptive sequence of upper case & lower case letters,numbers or underscore or dollar sign and must
not begin with numbers.
12) What is the return type of program’s main( ) method?

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

Ans : void
13) What is the argument type of program’s main( ) method?
Ans : string array.
14) Which characters are as first characters of an identifier?
Ans : A – Z, a – z, _ ,$
15) What are different comments?
Ans : 1) // -- single line comment
2) /* --
*/ multiple line comment
3) /** --
*/ documentation
16) What is the difference between constructor method and method?
Ans : Constructor will be automatically invoked when an object is created. Whereas method has to be
call explicitly.
17) What is the use of bin and lib in JDK?
Ans : Bin contains all tools such as javac, applet viewer, awt tool etc., whereas Lib
contains all packages and variables.

Data types,variables and Arrays


1) What is meant by variable?
Ans: Variables are locations in memory that can hold values. Before assigning any value to a variable,
it must be declared.
2) What are the kinds of variables in Java? What are their uses?
Ans: Java has three kinds of variables namely, the instance variable, the local variable and the class
variable.
Local variables are used inside blocks as counters or in methods as temporary variables and are used to
store information needed by a single method.
Instance variables are used to define attributes or the state of a particular object and are used to store
information needed by multiple methods in the objects.
Class variables are global to a class and to all the instances of the class and are useful for
communicating between different objects of all the same class or keeping track of global states.
3) How are the variables declared?
Ans: Variables can be declared anywhere in the method definition and can be initialized during their
declaration.They are commonly declared before usage at the beginning of the definition.
Variables with the same data type can be declared together. Local variables must be given a value
before usage.
4) What are variable types?
Ans: Variable types can be any data type that java supports, which includes the eight primitive data
types, the name of a class or interface and an array.
5) How do you assign values to variables?
Ans: Values are assigned to variables using the assignment operator =.
6) What is a literal? How many types of literals are there?
Ans: A literal represents a value of a certain type where the type describes how that value behaves.
There are different types of literals namely number literals, character literals,
boolean literals, string literals,etc.
7) What is an array?
Ans: An array is an object that stores a list of items.
8) How do you declare an array?
Ans: Array variable indicates the type of object that the array holds.
Ex: int arr[];
9) Java supports multidimensional arrays.
a)True
b)False
Ans: a.
10) An array of arrays can be created.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

a)True
b)False
Ans: a.
11) What is a string?
Ans: A combination of characters is called as string.
12) Strings are instances of the class String.
a)True
b)False
Ans: a.
13) When a string literal is used in the program, Java automatically creates instances of the string class.
a)True
b)False
Ans: a.
14) Which operator is to create and concatenate string?
Ans: Addition operator(+).
15) Which of the following declare an array of string objects?
String[ ] s;
String [ ]s:
String[ s]:
String s[ ]:
Ans : a, b and d
16) What is the value of a[3] as the result of the following array declaration?
1
2
3
4
Ans : d
17) Which of the following are primitive types?
byte
String
integer
Float
Ans : a.
18) What is the range of the char type?
0 to 216
0 to 215
0 to 216-1
0 to 215-1
Ans. d
19) What are primitive data types?
Ans : byte, short, int, long
float, double
boolean
char
20) What are default values of different primitive types?
Ans : int - 0
short - 0
byte - 0
long - 0 l
float - 0.0 f
double - 0.0 d
boolean - false
char - null
21) Converting of primitive types to objects can be explicitly.
a)True
b)False

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

Ans: b.
22) How do we change the values of the elements of the array?
Ans : The array subscript expression can be used to change the values of the elements of the array.
23) What is final varaible?
Ans : If a variable is declared as final variable, then you can not change its value. It becomes constant.
24) What is static variable?
Ans : Static variables are shared by all instances of a class.

Operators
1) What are operators and what are the various types of operators available in Java?
Ans: Operators are special symbols used in expressions.
The following are the types of operators:
Arithmetic operators,
Assignment operators,
Increment & Decrement operators,
Logical operators,
Biwise operators,
Comparison/Relational operators and
Conditional operators
2) The ++ operator is used for incrementing and the -- operator is used for
decrementing.
a)True
b)False
Ans: a.
3) Comparison/Logical operators are used for testing and magnitude.
a)True
b)False
Ans: a.
4) Character literals are stored as unicode characters.
a)True
b)False
Ans: a.
5) What are the Logical operators?
Ans: OR(|), AND(&), XOR(^) AND NOT(~).
6) What is the % operator?
Ans : % operator is the modulo operator or reminder operator. It returns the reminder of dividing the
first operand by second operand.
7) What is the value of 111 % 13?
3
5
7
9
Ans : c.
8) Is &&= a valid operator?
Ans : No.
9) Can a double value be cast to a byte?
Ans : Yes
10) Can a byte object be cast to a double value ?
Ans : No. An object cannot be cast to a primitive value.
11) What are order of precedence and associativity?
Ans : Order of precedence the order in which operators are evaluated in expressions.
Associativity determines whether an expression is evaluated left-right or right-left.
12) Which Java operator is right associativity?
Ans : = operator.

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

13) What is the difference between prefix and postfix of -- and ++ operators?
Ans : The prefix form returns the increment or decrement operation and returns the value of the
increment or decrement operation.
The postfix form returns the current value of all of the expression and then
performs the increment or decrement operation on that value.
14) What is the result of expression 5.45 + "3,2"?
The double value 8.6
The string ""8.6"
The long value 8.
The String "5.453.2"
Ans : d
15) What are the values of x and y ?
x = 5; y = ++x;
Ans : x = 6; y = 6
16) What are the values of x and z?
x = 5; z = x++;
Ans : x = 6; z = 5

Control Statements
1) What are the programming constructs?
Ans: a) Sequential
b) Selection -- if and switch statements
c) Iteration -- for loop, while loop and do-while loop
2) class conditional {
public static void main(String args[]) {
int i = 20;
int j = 55;
int z = 0;
z = i < j ? i : j; // ternary operator
System.out.println("The value assigned is " + z);
}
}
What is output of the above program?
Ans: The value assigned is 20
3) The switch statement does not require a break.
a)True
b)False
Ans: b.
4) The conditional operator is otherwise known as the ternary operator.
a)True
b)False
Ans: a.
5) The while loop repeats a set of code while the condition is false.
a)True
b)False
Ans: b.
6) The do-while loop repeats a set of code atleast once before the condition is tested.
a)True
b)False
Ans: a.
7) What are difference between break and continue?

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

Ans: The break keyword halts the execution of the current loop and forces control out of the loop.
The continue is similar to break, except that instead of halting the execution of the loop, it starts the
next iteration.

8) The for loop repeats a set of statements a certain number of times until a condition is matched.
a)True
b)False
Ans: a.
9) Can a for statement loop indefintely?
Ans : Yes.
10) What is the difference between while statement and a do statement/
Ans : A while statement checks at the beginning of a loop to see whether the next loop iteration should
occur.
A do statement checks at the end of a loop to see whether the next iteration of a loop should occur. The
do statement will always execute the body of a loop at least once.

Introduction to Classes and Methods


1) Which is used to get the value of the instance variables?
Ans: Dot notation.
2) The new operator creates a single instance named class and returns a
reference to that object.
a)True
b)False
Ans: a.
3) A class is a template for multiple objects with similar features.
a)True
b)False
Ans: a.
4) What is mean by garbage collection?
Ans: When an object is no longer referred to by any variable, Java automatically
reclaims memory used by that object. This is known as garbage collection.
5) What are methods and how are they defined?
Ans: Methods are functions that operate on instances of classes in which they are defined.Objects can
communicate with each other using methods and can call methods in other classes.
Method definition has four parts. They are name of the method, type of object or primitive type the
method returns, a list of parameters and the body of the method.
A method's signature is a combination of the first three parts mentioned above.
6) What is calling method?
Ans: Calling methods are similar to calling or referring to an instance variable. These methods are
accessed using dot notation.
Ex: obj.methodname(param1,param2)
7) Which method is used to determine the class of an object?
Ans: getClass( ) method can be used to find out what class the belongs to. This class is defined in the
object class and is available to all objects.
8) All the classes in java.lang package are automatically imported when
a program is compiled.
a)True
b)False
Ans: a.
9) How can class be imported to a program?
Ans: To import a class, the import keyword should be used as shown.;
import classname;
10) How can class be imported from a package to a program?
Ans: import java . packagename . classname (or) import java.package name.*;
11) What is a constructor?

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

Ans: A constructor is a special kind of method that determines how an object is


initialized when created.
12) Which keyword is used to create an instance of a class?
Ans: new.
13) Which method is used to garbage collect an object?
Ans: finalize ().
14) Constructors can be overloaded like regular methods.
a)True
b)False
Ans: a.
15) What is casting?
Ans: Casting is bused to convert the value of one type to another.

16) Casting between primitive types allows conversion of one primitive type to another.
a)True
b)False
Ans: a.
17) Casting occurs commonly between numeric types.
a)True
b)False
Ans: a.
18) Boolean values can be cast into any other primitive type.
a)True
b)False
Ans: b.
19) Casting does not affect the original object or value.
a)True
b)False
Ans: a.
20) Which cast must be used to convert a larger value into a smaller one?
Ans: Explicit cast.
21) Which cast must be used to cast an object to another class?
Ans: Specific cast.
22) Which of the following features are common to both Java & C++?
A.The class declaration
b.The access modifiers
c.The encapsulation of data & methods with in objects
d.The use of pointers
Ans: a,b,c.
23) Which of the following statements accurately describe the use of access modifiers within a class
definition?
a.They can be applied to both data & methods
b.They must precede a class's data variables or methods
c.They can follow a class's data variables or methods
d.They can appear in any order
e.They must be applied to data variables first and then to methods
Ans: a,b,d.
24) Suppose a given instance variable has been declared private.
Can this instance variable be manipulated by methods out side its class?
a.yes
b.no
Ans: b.
25) Which of the following statements can be used to describe a public method?
a.It is accessible to all other classes in the hierarchy

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

b.It is accessablde only to subclasses of its parent class


c.It represents the public interface of its class
d.The only way to gain access to this method is by calling one of the public class
methods
Ans: a,c.
26) Which of the following types of class members can be part of the internal part of a class?
a.Public instance variables
b.Private instance variables
c.Public methods
d.Private methods
Ans: b,d.
27) You would use the ____ operator to create a single instance of a named class.
a.new
b.dot
Ans: a.
28) Which of the following statements correctly describes the relation between an object and the
instance variable it stores?
a.Each new object has its own distinctive set of instance variables
b.Each object has a copy of the instance variables of its class
c.the instance variable of each object are seperate from the variables of other objects
d.The instance variables of each object are stored together with the variables of other objects
Ans: a,b,c.
29) If no input parameters are specified in a method declaration then the declaration will include __.
a.an empty set of parantheses
b.the term void
Ans: a.
30) What are the functions of the dot(.) operator?
a.It enables you to access instance variables of any objects within a class
b.It enables you to store values in instance variables of an object
c.It is used to call object methods
d.It is to create a new object
Ans: a,b,c.
31) Which of the following can be referenced by this variable?
a.The instance variables of a class only
b.The methods of a class only
c.The instance variables and methods of a class
Ans: c.
32) The this reference is used in conjunction with ___methods.
a.static
b.non-static
Ans: b.
33) Which of the following operators are used in conjunction with the this and super references?
a.The new operator
b.The instanceof operator
c.The dot operator
Ans: c.
34) A constructor is automatically called when an object is instantiated
a. true
b. false
Ans: a.
35) When may a constructor be called without specifying arguments?
a. When the default constructor is not called
b. When the name of the constructor differs from that of the class
c. When there are no constructors for the class
Ans: c.
36) Each class in java can have a finalizer method

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

a. true
b.false
Ans: a.
37) When an object is referenced, does this mean that it has been identified by the finalizer method for
garbage collection?
a.yes
b.no
Ans: b.
38) Because finalize () belongs to the java.lang.Object class, it is present in all ___.
a.objects
b.classes
c.methods
Ans: b.
39) Identify the true statements about finalization.
a.A class may have only one finalize method
b.Finalizers are mostly used with simple classes
c.Finalizer overloading is not allowed
Ans: a,c.
40) When you write finalize() method for your class, you are overriding a finalizer
inherited from a super class.
a.true
b.false
Ans: a.
41) Java memory management mechanism garbage collects objects which are no longer referenced
a true
b.false
Ans: a.
42) are objects referenced by a variable candidates for garbage collection when the variable goes out of
scope?
a yes
b. no
Ans: a.
43) Java's garbage collector runs as a ___ priority thread waiting for __priority threads to relinquish the
processor.
a.high
b.low
Ans: a,b.
44) The garbage collector will run immediately when the system is out of memory
a.true
b.false
Ans: a.
45) You can explicitly drop a object reference by setting the value of a variable whose data type is a
reference type to ___
Ans: null
46) When might your program wish to run the garbage collecter?
a. before it enters a compute-intense section of code
b. before it enters a memory-intense section of code
c. before objects are finalized
d. when it knows there will be some idle time
Ans: a,b,d
47) For externalizable objects the class is solely responsible for the external format of its contents
a.true
b.false
Ans: a
48) When an object is stored, are all of the objects that are reachable from that object stored as well?
a.true

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

b.false
Ans: a
49) The default__ of objects protects private and trancient data, and supports the __ of the classes
a.evolution
b.encoding
Ans: b,a.
50) Which are keywords in Java?
a) NULL
b) sizeof
c) friend
d) extends
e) synchronized
Ans : d and e
51) When must the main class and the file name coincide?
Ans :When class is declared public.
52) What are different modifiers?
Ans : public, private, protected, default, static, trancient, volatile, final, abstract.
53) What are access modifiers?
Ans : public, private, protected, default.
54) What is meant by "Passing by value" and " Passing by reference"?
Ans : objects – pass by referrence
Methods - pass by value
55) Is a class a subclass of itself?
Ans : A class is a subclass itself.

56) What modifiers may be used with top-level class?


Ans : public, abstract, final.
57) What is an example of polymorphism?
Inner class
Anonymous classes
Method overloading
Method overriding
Ans : c

Packages and interface


1) What are packages ? what is use of packages ?
Ans :The package statement defines a name space in which classes are stored.If you omit the package,
the classes are put into the default package.
Signature... package pkg;
Use: * It specifies to which package the classes defined in a file belongs to. * Package is both naming
and a visibility control mechanism.
2) What is difference between importing "java.applet.Applet" and "java.applet.*;" ?
Ans :"java.applet.Applet" will import only the class Applet from the package java.applet
Where as "java.applet.*" will import all the classes from java.applet package.
3) What do you understand by package access specifier?
Ans : public: Anything declared as public can be accessed from anywhere
private: Anything declared in the private can’t be seen outside of its class.
default: It is visible to subclasses as well as to other classes in the same package.
4) What is interface? What is use of interface?
Ans : It is similar to class which may contain method’s signature only but not bodies.
Methods declared in interface are abstract methods. We can implement many interfaces on a class
which support the multiple inheritance.
5) Is it is necessary to implement all methods in an interface?
Ans : Yes. All the methods have to be implemented.
6) Which is the default access modifier for an interface method?

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

Ans : public.
7) Can we define a variable in an interface ?and what type it should be ?
Ans : Yes we can define a variable in an interface. They are implicitly final and static.
8) What is difference between interface and an abstract class?
Ans : All the methods declared inside an Interface are abstract. Where as abstract class must have at
least one abstract method and others may be concrete or abstract.
In Interface we need not use the keyword abstract for the methods.
9) By default, all program import the java.lang package.
True/False
Ans : True
10) Java compiler stores the .class files in the path specified in CLASSPATH
environmental variable.
True/False
Ans : False

11) User-defined package can also be imported just like the standard packages.
True/False
Ans : True
12) When a program does not want to handle exception, the ______class is used.
Ans : Throws
13) The main subclass of the Exception class is _______ class.
Ans : RuntimeException
14) Only subclasses of ______class may be caught or thrown.
Ans : Throwable
15) Any user-defined exception class is a subclass of the _____ class.
Ans : Exception
16) The catch clause of the user-defined exception class should ______ its
Base class catch clause.
Ans : Exception
17) A _______ is used to separate the hierarchy of the class while declaring an
Import statement.
Ans : Package

18) All standard classes of Java are included within a package called _____.
Ans : java.lang
19) All the classes in a package can be simultaneously imported using ____.
Ans : *
20) Can you define a variable inside an Interface. If no, why? If yes, how?
Ans.: YES. final and static
21) How many concrete classes can you have inside an interface?
Ans.: None
22) Can you extend an interface?
Ans.: Yes
23) Is it necessary to implement all the methods of an interface while implementing the interface?
Ans.: No
24) If you do not implement all the methods of an interface while implementing , what specifier should
you use for the class ?
Ans.: abstract
25) How do you achieve multiple inheritance in Java?
Ans: Using interfaces.
26) How to declare an interface example?
Ans : access class classname implements interface.
27) Can you achieve multiple interface through interface?
a)True
b) false
Ans : a.

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

28) Can variables be declared in an interface ? If so, what are the modifiers?
Ans : Yes. final and static are the modifiers can be declared in an interface.
29) What are the possible access modifiers when implementing interface methods?
Ans : public.
30) Can anonymous classes be implemented an interface?
Ans : Yes.
31) Interfaces can’t be extended.
a)True
b)False
Ans : b.
32) Name interfaces without a method?
Ans : Serializable, Cloneble & Remote.
33) Is it possible to use few methods of an interface in a class ? If so, how?
Ans : Yes. Declare the class as abstract.

Exception Handling
1) What is the difference between ‘throw’ and ‘throws’ ?And it’s application?
Ans : Exceptions that are thrown by java runtime systems can be handled by Try and catch blocks.
With throw exception we can handle the exceptions thrown by the program itself. If a method is
capable of causing an exception that it does not
handle, it must specify this behavior so the callers of the method can guard
against that exception.
2) What is the difference between ‘Exception’ and ‘error’ in java?
Ans : Exception and Error are the subclasses of the Throwable class. Exception class is used for
exceptional conditions that user program should catch. With exception class we can subclass to create
our own custom exception.
Error defines exceptions that are not excepted to be caught by you program. Example is Stack
Overflow.
3) What is ‘Resource leak’?
Ans : Freeing up other resources that might have been allocated at the beginning of a method.
4)What is the ‘finally’ block?
Ans : Finally block will execute whether or not an exception is thrown. If an exception is thrown, the
finally block will execute even if no catch statement match the exception. Any time a method is about
to return to the caller from inside try/catch block, via an uncaught exception or an explicit return
statement, the finally clause is also execute.
5) Can we have catch block with out try block? If so when?
Ans : No. Try/Catch or Try/finally form a unit.
6) What is the difference between the following statements?
Catch (Exception e),
Catch (Error err),
Catch (Throwable t)
Ans :

7) What will happen to the Exception object after exception handling?


Ans : It will go for Garbage Collector. And frees the memory.
8) How many Exceptions we can define in ‘throws’ clause?
Ans : We can define multiple exceptions in throws clause.
Signature is..
type method-name (parameter-list) throws exception-list

9) The finally block is executed when an exception is thrown, even if no catch matches it.
True/False

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Ans : True
10) The subclass exception should precede the base class exception when used within the catch clause.
True/False
Ans : True
11) Exceptions can be caught or rethrown to a calling method.
True/False
Ans : True
12) The statements following the throw keyword in a program are not executed.
True/False
Ans : True
13) The toString ( ) method in the user-defined exception class is overridden.
True/False
Ans : True

MULTI THREADING
1) What are the two types of multitasking?
Ans : 1.process-based
2.Thread-based
2) What are the two ways to create the thread?
Ans : 1.by implementing Runnable
2.by extending Thread
3) What is the signature of the constructor of a thread class?
Ans : Thread(Runnable threadob,String threadName)
4) What are all the methods available in the Runnable Interface?
Ans : run()
5) What is the data type for the method isAlive() and this method is
available in which class?
Ans : boolean, Thread
6) What are all the methods available in the Thread class?
Ans : 1.isAlive()
2.join()
3.resume()
4.suspend()
5.stop()
6.start()
7.sleep()
8.destroy()
7) What are all the methods used for Inter Thread communication and what is the class in which these
methods are defined?
Ans :1. wait(),notify() & notifyall()
2. Object class
8) What is the mechanisam defind by java for the Resources to be used by only one Thread at a time?
Ans : Synchronisation
9) What is the procedure to own the moniter by many threads?
Ans : not possible

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

10) What is the unit for 1000 in the below statement?


ob.sleep(1000)
Ans : long milliseconds
11) What is the data type for the parameter of the sleep() method?
Ans : long
12) What are all the values for the following level?
max-priority
min-priority
normal-priority
Ans : 10,1,5
13) What is the method available for setting the priority?
Ans : setPriority()
14) What is the default thread at the time of starting the program?
Ans : main thread
15) The word synchronized can be used with only a method.
True/ False
Ans : False
16) Which priority Thread can prompt the lower primary Thread?
Ans : Higher Priority
17) How many threads at a time can access a monitor?
Ans : one
18) What are all the four states associated in the thread?
Ans : 1. new 2. runnable 3. blocked 4. dead
19) The suspend()method is used to teriminate a thread?
True /False
Ans : False
20) The run() method should necessary exists in clases created as subclass of thread?
True /False
Ans : True
21) When two threads are waiting on each other and can't proceed the programe is said to be in a
deadlock?
True/False
Ans : True
22) Which method waits for the thread to die ?
Ans : join() method

23) Which of the following is true?


1) wait(),notify(),notifyall() are defined as final & can be called only from with in a synchronized
method
2) Among wait(),notify(),notifyall() the wait() method only throws IOException
3) wait(),notify(),notifyall() & sleep() are methods of object class
1
2
3
1&2
1,2 & 3
Ans : D
24) Garbage collector thread belongs to which priority?
Ans : low-priority
25) What is meant by timeslicing or time sharing?
Ans : Timeslicing is the method of allocating CPU time to individual threads in a priority schedule.
26) What is meant by daemon thread? In java runtime, what is it's role?
Ans : Daemon thread is a low priority thread which runs intermittently in the background doing the
garbage collection operation for the java runtime system.

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

Inheritance
1) What is the difference between superclass & subclass?
Ans : A super class is a class that is inherited whereas subclass is a class that does the inheriting.
2) Which keyword is used to inherit a class?
Ans : extends
3) Subclasses methods can access superclass members/ attributes at all times?
True/False
Ans : False

4) When can subclasses not access superclass members?


Ans : When superclass is declared as private.
5) Which class does begin Java class hierarchy?
Ans : Object class
6) Object class is a superclass of all other classes?
True/False
Ans : True
7) Java supports multiple inheritance?
True/False
Ans : False
8) What is inheritance?
Ans : Deriving an object from an existing class. In the other words, Inheritance is the process of
inheriting all the features from a class
9) What are the advantages of inheritance?
Ans : Reusability of code and accessibility of variables and methods of the superclass by subclasses.
10) Which method is used to call the constructors of the superclass from the subclass?
Ans : super(argument)
11) Which is used to execute any method of the superclass from the subclass?
Ans : super.method-name(arguments)
12) Which methods are used to destroy the objects created by the constructor methods?
Ans : finalize()
13) What are abstract classes?
Ans : Abstract classes are those for which instances can’t be created.
14) What must a class do to implement an interface?
Ans: It must provide all of the methods in the interface and identify the interface in its implements
clause.
15) Which methods in the Object class are declared as final?
Ans : getClass(), notify(), notifyAll(), and wait()
16) Final methods can be overridden.
True/False
Ans : False
17) Declaration of methods as final results in faster execution of the program?
True/False
Ans: True
18) Final variables should be declared in the beginning?
True/False
Ans : True
19) Can we declare variable inside a method as final variables? Why?
Ans : Cannot because, local variable cannot be declared as final variables.
20) Can an abstract class may be final?
Ans : An abstract class may not be declared as final.
21) Does a class inherit the constructors of it's super class?
Ans: A class does not inherit constructors from any of it's super classes.
22) What restrictions are placed on method overloading?
Ans: Two methods may not have the same name and argument list but different return types.

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

23) What restrictions are placed on method overriding?


Ans : Overridden methods must have the same name , argument list , and return type. The overriding
method may not limit the access of the method it overridees.The overriding method may not throw any
exceptions that may not be thrown by the overridden method.
24) What modifiers may be used with an inner class that is a member of an outer class?
Ans : a (non-local) inner class may be declared as public, protected, private, static, final or abstract.
25) How this() is used with constructors?
Ans: this() is used to invoke a constructor of the same class
26) How super() used with constructors?
Ans : super() is used to invoke a super class constructor
27) Which of the following statements correctly describes an interface?
a)It's a concrete class
b)It's a superclass
c)It's a type of abstract class
Ans: c
28) An interface contains __ methods
a)Non-abstract
b)Implemented
c)unimplemented
Ans:c

STRING HANDLING
Which package does define String and StringBuffer classes?
Ans : java.lang package.
Which method can be used to obtain the length of the String?
Ans : length( ) method.
How do you concatenate Strings?
Ans : By using " + " operator.
Which method can be used to compare two strings for equality?
Ans : equals( ) method.
Which method can be used to perform a comparison between strings that ignores case differences?
Ans : equalsIgnoreCase( ) method.
What is the use of valueOf( ) method?
Ans : valueOf( ) method converts data from its internal format into a human-readable form.
What are the uses of toLowerCase( ) and toUpperCase( ) methods?
Ans : The method toLowerCase( ) converts all the characters in a string from uppercase to
lowercase.
The method toUpperCase( ) converts all the characters in a string from lowercase to
uppercase.
Which method can be used to find out the total allocated capacity of a StrinBuffer?
Ans : capacity( ) method.
Which method can be used to set the length of the buffer within a StringBuffer object?
Ans : setLength( ).
What is the difference between String and StringBuffer?
Ans : String objects are constants, whereas StringBuffer objects are not.
String class supports constant strings, whereas StringBuffer class supports growable, modifiable
strings.
What are wrapper classes?

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

Ans : Wrapper classes are classes that allow primitive types to be accessed as objects.
Which of the following is not a wrapper class?
String
Integer
Boolean
Character
Ans : a.
What is the output of the following program?
public class Question {
public static void main(String args[]) {
String s1 = "abc";
String s2 = "def";
String s3 = s1.concat(s2.toUpperCase( ) );
System.out.println(s1+s2+s3);
}
}
abcdefabcdef
abcabcDEFDEF
abcdefabcDEF
None of the above
ANS : c.
Which of the following methods are methods of the String class?
delete( )
append( )
reverse( )
replace( )
Ans : d.
Which of the following methods cause the String object referenced by s to be changed?
s.concat( )
s.toUpperCase( )
s.replace( )
s.valueOf( )
Ans : a and b.
String is a wrapper class?
True
False
Ans : b.
17) If you run the code below, what gets printed out?
String s=new String("Bicycle");

int iBegin=1;

char iEnd=3;

System.out.println(s.substring(iBegin,iEnd));
Bic
ic
c) icy
d) error: no method matching substring(int,char)
Ans : b.
18) Given the following declarations
String s1=new String("Hello")

String s2=new String("there");

String s3=new String();

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

Which of the following are legal operations?


s3=s1 + s2;
s3=s1 - s2;
c) s3=s1 & s2
d) s3=s1 && s2
Ans : a.
19) Which of the following statements are true?
The String class is implemented as a char array, elements are addressed using the stringname[]
convention
b) Strings are a primitive type in Java that overloads the + operator for concatenation
c) Strings are a primitive type in Java and the StringBuffer is used as the matching wrapper type
d) The size of a string can be retrieved using the length property.
Ans : b.

EXPLORING JAVA.LANG
java.lang package is automatically imported into all programs.
True
False
Ans : a
What are the interfaces defined by java.lang?
Ans : Cloneable, Comparable and Runnable.
What are the constants defined by both Flaot and Double classes?
Ans : MAX_VALUE,
MIN_VALUE,
NaN,
POSITIVE_INFINITY,
NEGATIVE_INFINITY and
TYPE.
What are the constants defined by Byte, Short, Integer and Long?
Ans : MAX_VALUE,
MIN_VALUE and
TYPE.
What are the constants defined by both Float and Double classes?
Ans : MAX_RADIX,
MIN_RADIX,
MAX_VALUE,
MIN_VALUE and
TYPE.
What is the purpose of the Runtime class?
Ans : The purpose of the Runtime class is to provide access to the Java runtime system.
What is the purpose of the System class?
Ans : The purpose of the System class is to provide access to system resources.
Which class is extended by all other classes?
Ans : Object class is extended by all other classes.
Which class can be used to obtain design information about an object?
Ans : The Class class can be used to obtain information about an object’s design.
Which method is used to calculate the absolute value of a number?
Ans : abs( ) method.
What are E and PI?
Ans : E is the base of the natural logarithm and PI is the mathematical value pi.
Which of the following classes is used to perform basic console I/O?
System
SecurityManager
Math

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

Runtime
Ans : a.
Which of the following are true?
The Class class is the superclass of the Object class.
The Object class is final.
The Class class can be used to load other classes.
The ClassLoader class can be used to load other classes.
Ans : c and d.
Which of the following methods are methods of the Math class?
absolute( )
log( )
cosine( )
sine( )
Ans : b.
Which of the following are true about the Error and Exception classes?
Both classes extend Throwable.
The Error class is final and the Exception class is not.
The Exception class is final and the Error is not.
Both classes implement Throwable.
Ans : a.
Which of the following are true?
The Void class extends the Class class.
The Float class extends the Double class.
The System class extends the Runtime class.
The Integer class extends the Number class.
Ans : d.

17) Which of the following will output -4.0


System.out.println(Math.floor(-4.7));
System.out.println(Math.round(-4.7));
System.out.println(Math.ceil(-4.7));
d) System.out.println(Math.Min(-4.7));
Ans : c.
18) Which of the following are valid statements
a) public class MyCalc extends Math
b) Math.max(s);
c) Math.round(9.99,1);
d) Math.mod(4,10);
e) None of the above.
Ans : e.
19) What will happen if you attempt to compile and run the following code?
Integer ten=new Integer(10);

Long nine=new Long (9);

System.out.println(ten + nine);

int i=1;

System.out.println(i + ten);
19 followed by 20
19 followed by 11
Error: Can't convert java lang Integer
d) 10 followed by 1

Freshersworld.com Resource Center


19
First Job…. Dream Job…. Freshersworld.com

Ans : c.

INPUT / OUTPUT : EXPLORING JAVA.IO


What is meant by Stream and what are the types of Streams and classes of the Streams?
Ans : A Stream is an abstraction that either produces or consumes information.
There are two types of Streams. They are:
Byte Streams : Byte Streams provide a convenient means for handling input and output of bytes.
Character Streams : Character Streams provide a convenient means for handling input and output of
characters.
Byte Stream classes : Byte Streams are defined by using two abstract classes. They are:InputStream
and OutputStream.
Character Stream classes : Character Streams are defined by using two abstract classes. They are :
Reader and Writer.
Which of the following statements are true?
UTF characters are all 8-bits.
UTF characters are all 16-bits.
UTF characters are all 24-bits.
Unicode characters are all 16-bits.
Bytecode characters are all 16-bits.
Ans : d.
Which of the following statements are true?
When you construct an instance of File, if you do not use the filenaming semantics of the local
machine, the constructor will throw an IOException.
When you construct an instance of File, if the corresponding file does not exist on the local file system,
one will be created.
When an instance of File is garbage collected, the corresponding file on the local file system is deleted.
None of the above.
Ans : a,b and c.
The File class contains a method that changes the current working directory.
True
False
Ans : b.
It is possible to use the File class to list the contents of the current working directory.
True
False
Ans : a.
Readers have methods that can read and return floats and doubles.
True
False
Ans : b.
You execute the code below in an empty directory. What is the result?
File f1 = new File("dirname");
File f2 = new File(f1, "filename");
A new directory called dirname is created in the current working directory.
A new directory called dirname is created in the current working directory. A new file called filename
is created in directory dirname.
A new directory called dirname and a new file called filename are created, both in the current working
directory.
A new file called filename is created in the current working directory.
No directory is created, and no file is created.
Ans : e.
What is the difference between the Reader/Writer class hierarchy and the
InputStream/OutputStream class hierarchy?
Ans : The Reader/Writer class hierarchy is character-oriented and the InputStream/OutputStream class
hierarchy is byte-oriented.
What is an I/O filter?

Freshersworld.com Resource Center


20
First Job…. Dream Job…. Freshersworld.com

Ans : An I/O filter is an object that reads from one stream and writes to another, usually altering the
data in some way as it is passed from one stream to another.
What is the purpose of the File class?
Ans : The File class is used to create objects that provide access to the files and directories of a local
file system.
What interface must an object implement before it can be written to a stream as an object?
Ans : An object must implement the Serializable or Externalizable interface before it can be written to
a stream as an object.
What is the difference between the File and RandomAccessFile classes?
Ans : The File class encapsulates the files and directories of the local file system. The
RandomAccessFile class provides the methods needed to directly access data contained in any part of a
file.
What class allows you to read objects directly from a stream?
Ans : The ObjectInputStream class supports the reading of objects from input streams.
What value does read( ) return when it has reached the end of a file?
Ans : The read( ) method returns – 1 when it has reached the end of a file.
What value does readLine( ) return when it has reached the end of a file?
Ans : The readLine( ) method returns null when it has reached the end of a file.
How many bits are used to represent Unicode, ASCII, UTF-16 and UTF-8 characters?
Ans : Unicode requires 16-bits and ASCII requires 8-bits. Although the ASCII character set uses only
1-bits, it is usually represented as 8-bits. UTF-8 represents characters using 8, 16 and 18-bit patterns.
UTF-16 uses 16-bit and larger bit patterns.
Which of the following are true?
The InputStream and OutputStream classes are byte-oriented.
The ObjectInputStream and ObjectOutputStream do not support serialized object input and output.
The Reader and Writer classes are character-oriented.
The Reader and Writer classes are the preferred solution to serialized object output.
Ans : a and c.
Which of the following are true about I/O filters?
Filters are supported on input, but not on output.
Filters are supported by the InputStream/OutputStream class hierarchy, but not by the Reader/Writer
class hierarchy.
Filters read from one stream and write to another.
A filter may alter data that is read from one stream and written to another.
Ans : c and d.
Which of the following are true?
Any Unicode character is represented using 16-bits.
7-bits are needed to represent any ASCII character.
UTF-8 characters are represented using only 8-bits.
UTF-16 characters are represented using only 16-bits.
Ans : a and b.
Which of the following are true?
The Serializable interface is used to identify objects that may be written to an output stream.
The Externalizable interface is implemented by classes that control the way in which their objects are
serialized.
The Serializable interface extends the Externalizable interface.
The Externalizable interface extends the Serializable interface.
Ans : a, b and d.
Which of the following are true about the File class?
A File object can be used to change the current working directory.
A File object can be used to access the files in the current directory.
When a File object is created, a corresponding directory or file is created in the local file system.
File objects are used to access files and directories on the local file system.
File objects can be garbage collected.
When a File object is garbage collected, the corresponding file or directory is deleted.
Ans : b, d and e.

Freshersworld.com Resource Center


21
First Job…. Dream Job…. Freshersworld.com

How do you create a Reader object from an InputStream object?


Use the static createReader( ) method of InputStream class.
Use the static createReader( ) method of Reader class.
Create an InputStreamReader object, passing the InputStream object as an argument to the
InputStreamReader constructor.
Create an OutputStreamReader object, passing the InputStream object as an argument to the
OutputStreamReader constructor.
Ans : c.
Which of the following are true?
Writer classes can be used to write characters to output streams using different character encodings.
Writer classes can be used to write Unicode characters to output streams.
Writer classes have methods that support the writing of the values of any Java primitive type to output
streams.
Writer classes have methods that support the writing of objects to output streams.
Ans : a and b.
The isFile( ) method returns a boolean value depending on whether the file object is a file or a
directory.
True.
False.
Ans : a.
Reading or writing can be done even after closing the input/output source.
True.
False.
Ans : b.

The ________ method helps in clearing the buffer.


Ans : flush( ).
The System.err method is used to print error message.
True.
False.
Ans : a.
What is meant by StreamTokenizer?
Ans : StreamTokenizer breaks up InputStream into tokens that are delimited by sets of characters.
It has the constructor : StreamTokenizer(Reader inStream).
Here inStream must be some form of Reader.
What is Serialization and deserialization?
Ans : Serialization is the process of writing the state of an object to a byte stream.
Deserialization is the process of restoring these objects.
30) Which of the following can you perform using the File class?
a) Change the current directory
b) Return the name of the parent directory
c) Delete a file
d) Find if a file contains text or binary information
Ans : b and c.
31)How can you change the current working directory using an instance of the File class called
FileName?
FileName.chdir("DirName").
FileName.cd("DirName").
FileName.cwd("DirName").
The File class does not support directly changing the current directory.
Ans : d.

Freshersworld.com Resource Center


22
First Job…. Dream Job…. Freshersworld.com

EVENT HANDLING
The event delegation model, introduced in release 1.1 of the JDK, is fully compatible with the
event model.
True
False
Ans : b.

Freshersworld.com Resource Center


23
First Job…. Dream Job…. Freshersworld.com

A component subclass that has executed enableEvents( ) to enable processing of a certain kind of event
cannot also use an adapter as a listener for the same kind of event.
True
False
Ans : b.
What is the highest-level event class of the event-delegation model?
Ans : The java.util.eventObject class is the highest-level class in the event-delegation hierarchy.
What interface is extended by AWT event listeners?
Ans : All AWT event listeners extend the java.util.EventListener interface.
What class is the top of the AWT event hierarchy?
Ans : The java.awt.AWTEvent class is the highest-level class in the AWT event class hierarchy.
What event results from the clicking of a button?
Ans : The ActionEvent event is generated as the result of the clicking of a button.
What is the relationship between an event-listener interface and an event-adapter class?
Ans : An event-listener interface defines the methods that must be implemented by an event
handler for a particular kind of event.
An event adapter provides a default implementation of an event-listener interface.
In which package are most of the AWT events that support the event-delegation model defined?
Ans : Most of the AWT–related events of the event-delegation model are defined in the
java.awt.event package. The AWTEvent class is defined in the java.awt package.
What is the advantage of the event-delegation model over the earlier event-inheritance model?
Ans : The event-delegation has two advantages over the event-inheritance model. They are :
It enables event handling by objects other than the ones that generate the events. This
allows a clean separation between a component’s design and its use.
It performs much better in applications where many events are generated. This
performance improvement is due to the fact that the event-delegation model does not
have to repeatedly process unhandled events, as is the case of the event-inheritance
model.
What is the purpose of the enableEvents( ) method?
Ans :The enableEvents( ) method is used to enable an event for a particular object.
Which of the following are true?
The event-inheritance model has replaced the event-delegation model.
The event-inheritance model is more efficient than the event-delegation model.
The event-delegation model uses event listeners to define the methods of event-handling classes.
The event-delegation model uses the handleEvent( ) method to support event handling.
Ans : c.
Which of the following is the highest class in the event-delegation model?
java.util.EventListener
java.util.EventObject
java.awt.AWTEvent
java.awt.event.AWTEvent
Ans : b.
When two or more objects are added as listeners for the same event, which listener is first invoked to
handle the event?
The first object that was added as listener.
The last object that was added as listener.
There is no way to determine which listener will be invoked first.
It is impossible to have more than one listener for a given event.
Ans : c.
Which of the following components generate action events?
Buttons
Labels
Check boxes
Windows
Ans : a.
Which of the following are true?

Freshersworld.com Resource Center


24
First Job…. Dream Job…. Freshersworld.com

A TextField object may generate an ActionEvent.


A TextArea object may generate an ActionEvent.
A Button object may generate an ActionEvent.
A MenuItem object may generate an ActionEvent.
Ans : a,c and d.
Which of the following are true?
The MouseListener interface defines methods for handling mouse clicks.
The MouseMotionListener interface defines methods for handling mouse clicks.
The MouseClickListener interface defines methods for handling mouse clicks.
The ActionListener interface defines methods for handling the clicking of a button.
Ans : a and d.
Suppose that you want to have an object eh handle the TextEvent of a TextArea object t. How should
you add eh as the event handler for t?
t.addTextListener(eh);
eh.addTextListener(t);
addTextListener(eh.t);
addTextListener(t,eh);
Ans : a.
What is the preferred way to handle an object’s events in Java 2?
Override the object’s handleEvent( ) method.
Add one or more event listeners to handle the events.
Have the object override its processEvent( ) methods.
Have the object override its dispatchEvent( ) methods.
Ans : b.
Which of the following are true?
A component may handle its own events by adding itself as an event listener.
A component may handle its own events by overriding its event-dispatching method.
A component may not handle oits own events.
A component may handle its own events only if it implements the handleEvent( ) method.
Ans : a and b.

APPLETS
What is an Applet? Should applets have constructors?
Ans : Applet is a dynamic and interactive program that runs inside a Web page
displayed by a Java capable browser. We don’t have the concept of Constructors in Applets.
How do we read number information from my applet’s parameters, given that Applet’s getParameter()
method returns a string?
Ans : Use the parseInt() method in the Integer Class, the Float(String) constructor in the

Freshersworld.com Resource Center


25
First Job…. Dream Job…. Freshersworld.com

Class Float, or the Double(String) constructor in the class Double.


How can I arrange for different applets on a web page to communicate with each other?
Ans : Name your applets inside the Applet tag and invoke AppletContext’s getApplet()
method in your applet code to obtain references to the other applets on the page.
How do I select a URL from my Applet and send the browser to that page?
Ans : Ask the applet for its applet context and invoke showDocument() on that context object.
Eg. URL targetURL;
String URLString
AppletContext context = getAppletContext();
try{
targetUR L = new URL(URLString);
} catch (Malformed URLException e){
// Code for recover from the exception
}
context. showDocument (targetURL);
Can applets on different pages communicate with each other?
Ans : No. Not Directly. The applets will exchange the information at one meeting place
either on the local file system or at remote system.
How do Applets differ from Applications?
Ans : Appln: Stand Alone
Applet: Needs no explicit installation on local m/c.
Appln: Execution starts with main() method.
Applet: Execution starts with init() method.
Appln: May or may not be a GUI
Applet: Must run within a GUI (Using AWT)
How do I determine the width and height of my application?
Ans : Use the getSize() method, which the Applet class inherits from the Component
class in the Java.awt package. The getSize() method returns the size of the applet as
a Dimension object, from which you extract separate width, height fields.
Eg. Dimension dim = getSize ();
int appletwidth = dim.width ();
8) What is AppletStub Interface?
Ans : The applet stub interface provides the means by which an applet and the browser communicate.
Your code will not typically implement this interface.
It is essential to have both the .java file and the .html file of an applet in the same
directory.
True.
False.
Ans : b.
The <PARAM> tag contains two attributes namely _________ and _______.
Ans : Name , value.

Passing values to parameters is done in the _________ file of an applet.


Ans : .html.
12) What tags are mandatory when creating HTML to display an applet
name, height, width
code, name
codebase, height, width
d) code, height, width
Ans : d.
Applet’s getParameter( ) method can be used to get parameter values.
True.
False.
Ans : a.
What are the Applet’s Life Cycle methods? Explain them?
Ans : init( ) method - Can be called when an applet is first loaded.

Freshersworld.com Resource Center


26
First Job…. Dream Job…. Freshersworld.com

start( ) method - Can be called each time an applet is started.


paint( ) method - Can be called when the applet is minimized or refreshed.
stop( ) method - Can be called when the browser moves off the applet’s page.
destroy( ) method - Can be called when the browser is finished with the applet.
What are the Applet’s information methods?
Ans : getAppletInfo( ) method : Returns a string describing the applet, its author ,copy
right information, etc.
getParameterInfo( ) method : Returns an array of string describing the applet’s parameters.
All Applets are subclasses of Applet.
True.
False.
Ans : a.
All Applets must import java.applet and java.awt.
True.
False.
Ans : a.
What are the steps involved in Applet development?
Ans : a) Edit a Java source file,
b) Compile your program and
c) Execute the appletviewer, specifying the name of your applet’s source file.
Applets are executed by the console based Java run-time interpreter.
True.
False.
Ans : b.
Which classes and interfaces does Applet class consist?
Ans : Applet class consists of a single class, the Applet class and three interfaces: AppletContext,
AppletStub and AudioClip.
What is the sequence for calling the methods by AWT for applets?
Ans : When an applet begins, the AWT calls the following methods, in this sequence.
init( )
start( )
paint( )
When an applet is terminated, the following sequence of method cals takes place :
stop( )
destroy( )
Which method is used to output a string to an applet?
Ans : drawString ( ) method.
Every color is created from an RGB value.
True.
False
Ans : a.

AWT : WINDOWS, GRAPHICS AND FONTS


How would you set the color of a graphics context called g to cyan?
g.setColor(Color.cyan);
g.setCurrentColor(cyan);
g.setColor("Color.cyan");
g.setColor("cyan’);
g.setColor(new Color(cyan));
Ans : a.
The code below draws a line. What color is the line?
g.setColor(Color.red.green.yellow.red.cyan);
g.drawLine(0, 0, 100,100);
Red
Green

Freshersworld.com Resource Center


27
First Job…. Dream Job…. Freshersworld.com

Yellow
Cyan
Black
Ans : d.
What does the following code draw?
g.setColor(Color.black);
g.drawLine(10, 10, 10, 50);
g.setColor(Color.RED);
g.drawRect(100, 100, 150, 150);
A red vertical line that is 40 pixels long and a red square with sides of 150 pixels
A black vertical line that is 40 pixels long and a red square with sides of 150 pixels
A black vertical line that is 50 pixels long and a red square with sides of 150 pixels
A red vertical line that is 50 pixels long and a red square with sides of 150 pixels
A black vertical line that is 40 pixels long and a red square with sides of 100 pixel
Ans : b.
Which of the statements below are true?
A polyline is always filled.
b) A polyline can not be filled.
c) A polygon is always filled.
d) A polygon is always closed
e) A polygon may be filled or not filled
Ans : b, d and e.
What code would you use to construct a 24-point bold serif font?
new Font(Font.SERIF, 24,Font.BOLD);
new Font("SERIF", 24, BOLD");
new Font("BOLD ", 24,Font.SERIF);
new Font("SERIF", Font.BOLD,24);
new Font(Font.SERIF, "BOLD", 24);
Ans : d.
What does the following paint( ) method draw?
Public void paint(Graphics g) {
g.drawString("question #6",10,0);
}
The string "question #6", with its top-left corner at 10,0
A little squiggle coming down from the top of the component, a little way in from the left edge
Ans : b.

What does the following paint( ) method draw?


Public void paint(Graphics g) {
g.drawString("question #6",10,0);
}
A circle at (100, 100) with radius of 44
A circle at (100, 44) with radius of 100
A circle at (100, 44) with radius of 44
The code does not compile
Ans : d.
8)What is relationship between the Canvas class and the Graphics class?
Ans : A Canvas object provides access to a Graphics object via its paint( ) method.
What are the Component subclasses that support painting.
Ans : The Canvas, Frame, Panel and Applet classes support painting.
What is the difference between the paint( ) and repaint( ) method?
Ans : The paint( ) method supports painting via a Graphics object. The repaint( ) method is used
to cause paint( ) to be invoked by the AWT painting method.
What is the difference between the Font and FontMetrics classes?
Ans : The FontMetrics class is used to define implementation-specific properties, such as ascent

Freshersworld.com Resource Center


28
First Job…. Dream Job…. Freshersworld.com

and descent, of a Font object.


Which of the following are passed as an argument to the paint( ) method?
A Canvas object
A Graphics object
An Image object
A paint object
Ans : b.
Which of the following methods are invoked by the AWT to support paint and repaint operations?
paint( )
repaint( )
draw( )
redraw( )
Ans : a.
Which of the following classes have a paint( ) method?
Canvas
Image
Frame
Graphics
Ans : a and c.
Which of the following are methods of the Graphics class?
drawRect( )
drawImage( )
drawPoint( )
drawString( )
Ans : a, b and d.
Which Font attributes are available through the FontMetrics class?
ascent
leading
case
height
Ans : a, b and d.
Which of the following are true?
The AWT automatically causes a window to be repainted when a portion of a window has been
minimized and then maximized.
The AWT automatically causes a window to be repainted when a portion of a window has been
covered and then uncovered.
The AWT automatically causes a window to be repainted when application data is changed.
The AWT does not support repainting operations.
Ans : a and b.
Which method is used to size a graphics object to fit the current size of the window?
Ans : getSize( ) method.
What are the methods to be used to set foreground and background colors?
Ans : setForeground( ) and setBackground( ) methods.
19) You have created a simple Frame and overridden the paint method as follows
public void paint(Graphics g){

g.drawString("Dolly",50,10);

}
What will be the result when you attempt to compile and run the program?
The string "Dolly" will be displayed at the centre of the frame
b) An error at compilation complaining at the signature of the paint method
c) The lower part of the word Dolly will be seen at the top of the form, with the top hidden.
d) The string "Dolly" will be shown at the bottom of the form
Ans : c.
20) Where g is a graphics instance what will the following code draw on the screen.

Freshersworld.com Resource Center


29
First Job…. Dream Job…. Freshersworld.com

g.fillArc(45,90,50,50,90,180);
a) An arc bounded by a box of height 45, width 90 with a centre point of 50,50, starting
at an angle of 90 degrees traversing through 180 degrees counter clockwise.
b) An arc bounded by a box of height 50, width 50, with a centre point of 45,90 starting
at an angle of 90 degrees traversing through 180 degrees clockwise.
c) An arc bounded by a box of height 50, width 50, with a top left at coordinates of 45,
90, starting at 90 degrees and traversing through 180 degrees counter clockwise.
d) An arc starting at 45 degrees, traversing through 90 degrees clockwise bounded by a
box of height 50, width 50 with a centre point of 90, 180.
Ans : c.
21) Given the following code
import java.awt.*;
public class SetF extends Frame{
public static void main(String argv[]){
SetF s = new SetF();
s.setSize(300,200);
s.setVisible(true);
}
}
How could you set the frame surface color to pink
a)s.setBackground(Color.pink);
b)s.setColor(PINK);
c)s.Background(pink);
d)s.color=Color.pink
Ans : a.

AWT: CONTROLS, LAYOUT MANAGERS AND MENUS


What is meant by Controls and what are different types of controls?
Ans : Controls are componenets that allow a user to interact with your application.
The AWT supports the following types of controls:
Labels
Push buttons
Check boxes
Choice lists
Lists
Scroll bars
Text components
These controls are subclasses of Component.
You want to construct a text area that is 80 character-widths wide and 10 character-heights tall. What
code do you use?
new TextArea(80, 10)
new TextArea(10, 80)
Ans: b.
A text field has a variable-width font. It is constructed by calling new
TextField("iiiii"). What happens if you change the contents of the text field to
"wwwww"? (Bear in mind that is one of the narrowest characters, and w is one of the widest.)
The text field becomes wider.
The text field becomes narrower.
The text field stays the same width; to see the entire contents you will have to scroll by using the ß and
à keys.
The text field stays the same width; to see the entire contents you will have to scroll by using the text
field’s horizontal scroll bar.
Ans : c.

Freshersworld.com Resource Center


30
First Job…. Dream Job…. Freshersworld.com

The CheckboxGroup class is a subclass of the Component class.


True
False
Ans : b.
5) What are the immediate super classes of the following classes?
a) Container class
b) MenuComponent class
c) Dialog class
d) Applet class
e) Menu class
Ans : a) Container - Component
b) MenuComponent - Object
c) Dialog - Window
d) Applet - Panel
e) Menu - MenuItem
6) What are the SubClass of Textcomponent Class?
Ans : TextField and TextArea
7) Which method of the component class is used to set the position and the size of a component?
Ans : setBounds()
8) Which TextComponent method is used to set a TextComponent to the read-only state?
Ans : setEditable()
9) How can the Checkbox class be used to create a radio button?
Ans : By associating Checkbox objects with a CheckboxGroup.
10) What Checkbox method allows you to tell if a Checkbox is checked?
Ans : getState()
11) Which Component method is used to access a component's immediate Container?
getVisible()
getImmediate
getParent()
getContainer
Ans : c.
12) What methods are used to get and set the text label displayed by a Button object?
Ans : getLabel( ) and setLabel( )
13) What is the difference between a Choice and a List?
Ans : A Choice is displayed in a compact form that requires you to pull it down to see the list of
available choices. Only one item may be selected from a Choice.
A List may be displayed in such a way that several List items are visible. A List supports the selection
of one or more List items.
14) Which Container method is used to cause a container to be laid out and redisplayed?
Ans : validate( )
15) What is the difference between a Scollbar and a Scrollpane?
Ans : A Scrollbar is a Component, but not a Container.
A Scrollpane is a Container and handles its own events and performs its own
scrolling.
16) Which Component subclass is used for drawing and painting?
Ans : Canvas.
17) Which of the following are direct or indirect subclasses of Component?
Button
Label
CheckboxMenuItem
Toolbar
Frame
Ans : a, b and e.
18) Which of the following are direct or indirect subclasses of Container?
Frame
TextArea

Freshersworld.com Resource Center


31
First Job…. Dream Job…. Freshersworld.com

MenuBar
FileDialog
Applet
Ans : a,d and e.
19) Which method is used to set the text of a Label object?
setText( )
setLabel( )
setTextLabel( )
setLabelText( )
Ans : a.
20) Which constructor creates a TextArea with 10 rows and 20 columns?
new TextArea(10, 20)
new TextArea(20, 10)
new TextArea(new Rows(10), new columns(20))
new TextArea(200)
Ans : a.
(Usage is TextArea(rows, columns)
21) Which of the following creates a List with 5 visible items and multiple selection enabled?
new List(5, true)
new List(true, 5)
new List(5, false)
new List(false,5)
Ans : a.
[Usage is List(rows, multipleMode)]
22) Which are true about the Container class?
The validate( ) method is used to cause a Container to be laid out and redisplayed.
The add( ) method is used to add a Component to a Container.
The getBorder( ) method returns information about a Container’s insets.
The getComponent( ) method is used to access a Component that is contained in a Container.
Ans : a, b and d.
23) Suppose a Panel is added to a Frame and a Button is added to the Panel. If the Frame’s font is set to
12-point TimesRoman, the Panel’s font is set to 10-point TimesRoman, and the Button’s font is not set,
what font will be used to dispaly the Button’s label?
12-point TimesRoman
11-point TimesRoman
10-point TimesRoman
9-point TimesRoman
Ans : c.
A Frame’s background color is set to Color.Yellow, and a Button’s background color is to Color.Blue.
Suppose the Button is added to a Panel, which is added to the Frame. What background color will be
used with the Panel?
Colr.Yellow
Color.Blue
Color.Green
Color.White
Ans : a.
25) Which method will cause a Frame to be displayed?
show( )
setVisible( )
display( )
displayFrame( )
Ans : a and b.
26) All the componenet classes and container classes are derived from _________ class.
Ans : Object.
27) Which method of the container class can be used to add components to a Panel.
Ans : add ( ) method.

Freshersworld.com Resource Center


32
First Job…. Dream Job…. Freshersworld.com

28) What are the subclasses of the Container class?


Ans : The Container class has three major subclasses. They are :
Window
Panel
ScrollPane
29) The Choice component allows multiple selection.
True.
False.
Ans : b.
30) The List component does not generate any events.
True.
False.
Ans : b.
31) Which components are used to get text input from the user.
Ans : TextField and TextArea.
32) Which object is needed to group Checkboxes to make them exclusive?
Ans : CheckboxGroup.
33) Which of the following components allow multiple selections?
Non-exclusive Checkboxes.
Radio buttons.
Choice.
List.
Ans : a and d.
34) What are the types of Checkboxes and what is the difference between them?
Ans : Java supports two types of Checkboxes. They are : Exclusive and Non-exclusive.
In case of exclusive Checkboxes, only one among a group of items can be selected at a time. I f an item
from the group is selected, the checkbox currently checked is deselected and the new selection is
highlighted. The exclusive Checkboxes are also called as Radio buttons.
The non-exclusive checkboxes are not grouped together and each one can be selected independent of
the other.
35) What is a Layout Manager and what are the different Layout Managers available in java.awt and
what is the default Layout manager for the panal and the panal subclasses?
Ans: A layout Manager is an object that is used to organize components in a container.
The different layouts available in java.awt are :
FlowLayout, BorderLayout, CardLayout, GridLayout and GridBag Layout.
The default Layout Manager of Panal and Panal sub classes is FlowLayout".
36) Can I exert control over the size and placement of components in my interface?
Ans : Yes.
myPanal.setLayout(null);
myPanal.setbounds(20,20,200,200);
37) Can I add the same component to more than one container?
Ans : No. Adding a component to a container automatically removes it from any previous
parent(container).
38) How do I specify where a window is to be placed?
Ans : Use setBounds, setSize, or setLocation methods to implement this.
setBounds(int x, int y, int width, int height)
setBounds(Rectangle r)
setSize(int width, int height)
setSize(Dimension d)
setLocation(int x, int y)
setLocation(Point p)

39) How can we create a borderless window?


Ans : Create an instance of the Window class, give it a size, and show it on the screen.
eg. Frame aFrame = ......
Window aWindow = new Window(aFrame);

Freshersworld.com Resource Center


33
First Job…. Dream Job…. Freshersworld.com

aWindow.setLayout(new FlowLayout());
aWindow.add(new Button("Press Me"));
aWindow.getBounds(50,50,200,200);
aWindow.show();

40) Can I create a non-resizable windows? If so, how?


Ans: Yes. By using setResizable() method in class Frame.
41) What is the default Layout Manager for the Window and Window subclasses (Frame,Dialog)?
Ans : BorderLayout().
42) How are the elements of different layouts organized?
Ans : FlowLayout : The elements of a FlowLayout are organized in a top to bottom, left to right
fashion.
BorderLayout : The elements of a BorderLayout are organized at the
borders (North, South, East and West) and the center of a
container.
CardLayout : The elements of a CardLayout are stacked, one on top of the other, like a deck of cards.
GridLayout : The elements of a GridLayout are of equal size and are laid out using the square of a grid.
GridBagLayout : The elements of a GridBagLayout are organized according to a grid.However, the
elements are of different sizes and may occupy
more than one row or column of the grid. In addition, the rows and columns may have different sizes.
43) Which containers use a BorderLayout as their default layout?
Ans : The Window, Frame and Dialog classes use a BorderLayout as their default layout.

44) Which containers use a FlowLayout as their default layout?


Ans : The Panel and the Applet classes use the FlowLayout as their default layout.
45) What is the preferred size of a component?
Ans : The preferred size of a component size that will allow the component to display normally.
46) Which method is method to set the layout of a container?
startLayout( )
initLayout( )
layoutContainer( )
setLayout( )
Ans : d.
47) Which method returns the preferred size of a component?
getPreferredSize( )
getPreferred( )
getRequiredSize( )
getLayout( )
Ans : a.

48) Which layout should you use to organize the components of a container in a
tabular form?
CardLayout
BorederLayout
FlowLayout
GridLayout
Ans : d.
An application has a frame that uses a Border layout manager. Why is it probably not a good idea to
put a vertical scroll bar at North in the frame?
The scroll bar’s height would be its preferred height, which is not likely to be enough.
The scroll bar’s width would be the entire width of the frame, which would be much wider than
necessary.

Freshersworld.com Resource Center


34
First Job…. Dream Job…. Freshersworld.com

Both a and b.
Neither a nor b. There is no problem with the layout as described.
Ans : c.
What is the default layouts for a applet, a frame and a panel?
Ans : For an applet and a panel, Flow layout is the default layout, whereas Border layout is default
layout for a frame.
If a frame uses a Grid layout manager and does not contain any panels, then all the components within
the frame are the same width and height.
True
False.
Ans : a.
If a frame uses its default layout manager and does not contain any panels, then all the components
within the frame are the same width and height.
True
False.
Ans : b.
With a Border layout manager, the component at Center gets all the space that is left over, after the
components at North and South have been considered.
True
False
Ans : b.
An Applet has its Layout Manager set to the default of FlowLayout. What code would be the correct to
change to another Layout Manager?
setLayoutManager(new GridLayout());
setLayout(new GridLayout(2,2));
c) setGridLayout(2,2,))
d setBorderLayout();
Ans : b.
55) How do you indicate where a component will be positioned using Flowlayout?
a) North, South,East,West
b) Assign a row/column grid reference
c) Pass a X/Y percentage parameter to the add method
d) Do nothing, the FlowLayout will position the component
Ans :d.

56) How do you change the current layout manager for a container?
a) Use the setLayout method
b) Once created you cannot change the current layout manager of a component
c) Use the setLayoutManager method
d) Use the updateLayout method
Ans :a.
57)When using the GridBagLayout manager, each new component requires a new instance of the
GridBagConstraints class. Is this statement true or false?
a) true
b) false
Ans : b.
58) Which of the following statements are true?
a)The default layout manager for an Applet is FlowLayout
b) The default layout manager for an application is FlowLayout
c) A layout manager must be assigned to an Applet before the setSize method is called
d) The FlowLayout manager attempts to honor the preferred size of any components
Ans : a and d.
59) Which method does display the messages whenever there is an item selection or deselection of the
CheckboxMenuItem menu?

Freshersworld.com Resource Center


35
First Job…. Dream Job…. Freshersworld.com

Ans : itemStateChanged method.


60) Which is a dual state menu item?
Ans : CheckboxMenuItem.
61) Which method can be used to enable/diable a checkbox menu item?
Ans : setState(boolean).
Which of the following may a menu contain?
A separator
A check box
A menu
A button
A panel
Ans : a and c.
Which of the following may contain a menu bar?
A panel
A frame
An applet
A menu bar
A menu
Ans : b
64) What is the difference between a MenuItem and a CheckboxMenuItem?
Ans : The CheckboxMenuItem class extends the MenuItem class to support a menu item
that may be checked or unchecked.

65) Which of the following are true?


A Dialog can have a MenuBar.
MenuItem extends Menu.
A MenuItem can be added to a Menu.
A Menu can be added to a Menu.
Ans : c and d.

Which colour is used to indicate instance methods in the standard "javadoc" format documentation:
1) blue
2) red
3) purple
4) orange
Answer : 2
explain
In JDK 1.1 the variabels, methods and constructors are colour coded to simplifytheir identification.
endExplain
What is the correct ordering for the import, class and package declarations when found in a single file?
1) package, import, class
2) class, import, package
3) import, package, class
4) package, class, import
Answer : 1
explain
This is my explanation for question 2
endExplain
Which methods can be legally applied to a string object?
(Multiple)
1) equals(String)
2) equals(Object)
3) trim()
4) round()
5) toString()

Freshersworld.com Resource Center


36
First Job…. Dream Job…. Freshersworld.com

Answer : 1,2,3,5
What is the parameter specification for the public static void main method?
(multiple)
1) String args []
2) String [] args
3) Strings args []
4) String args
Answer : 1,2
What does the zeroth element of the string array passed to the public static void main method contain?
(multiple)
1) The name of the program
2) The number of arguments
3) The first argument if one is present
Answer : 3
Which of the following are Java keywords?
(multiple)
1) goto
2) malloc
3) extends
4) FALSE
Answer : 3
What will be the result of compiling the following code:
public class Test {
public static void main (String args []) {
int age;
age = age + 1;
System.out.println("The age is " + age);
}
}
1) Compiles and runs with no output
2) Compiles and runs printing out The age is 1
3) Compiles but generates a runtime error
4) Does not compile
5) Compiles but generates a compile time error
Answer : 4
Which of these is the correct format to use to create the literal char value a?
(multiple)
1) 'a'
2) "a"
3) new Character(a)
4) \000a
Answer : 1
What is the legal range of a byte integral type?
1) 0 - 65, 535
2) (-128) - 127
3) (-32,768) - 32,767
4) (-256) - 255
Answer : 2
Which of the following is illegal:
1) int i = 32;
2) float f = 45.0;
3) double d = 45.0;
Answer 2
What will be the result of compiling the following code:
public class Test {
static int age;

Freshersworld.com Resource Center


37
First Job…. Dream Job…. Freshersworld.com

public static void main (String args []) {


age = age + 1;
System.out.println("The age is " + age);
}
}
1) Compiles and runs with no output
2) Compiles and runs printing out The age is 1
3) Compiles but generates a runtime error
4) Does not compile
5) Compiles but generates a compile time error
Answer : 2
Which of the following are correct?
(multiple)
1) 128 >> 1 gives 64
2) 128 >>> 1 gives 64
3) 128 >> 1 gives -64
4) 128 >>> 1 gives -64
Answer : 1
Which of the following return true?
(multiple)
1) "john" == new String("john")
2) "john".equals("john")
3) "john" = "john"
4) "john".equals(new Button("john"))
Answer : 2
Which of the following do not lead to a runtime error?
(multiple)
1) "john" + " was " + " here"
2) "john" + 3
3) 3 + 5
4) 5 + 5.5
answer 1,2,3,4
Which of the following are so called "short circuit" logical operators?
(multiple)
1) &
2) ||
3) &&
4) |
Answer : 2,3
Which of the following are acceptable?
(multiple)
1) Object o = new Button("A");
2) Boolean flag = true;
3) Panel p = new Frame();
4) Frame f = new Panel();
5) Panel p = new Applet();
Answer : 1,5
What is the result of compiling and running the following code:
public class Test {
static int total = 10;
public static void main (String args []) {
new Test();
}
public Test () {
System.out.println("In test");
System.out.println(this);

Freshersworld.com Resource Center


38
First Job…. Dream Job…. Freshersworld.com

int temp = this.total;


if (temp > 5) {
System.out.println(temp);
}
}
}
(multiple)
1) The class will not compile
2) The compiler reports and error at line 2
3) The compiler reports an error at line 9
4) The value 10 is one of the elements printed to the standard output
5) The class compiles but generates a runtime error
Answer : 4
Which of the following is correct:
1) String temp [] = new String {"j" "a" "z"};
2) String temp [] = { "j " " b" "c"};
3) String temp = {"a", "b", "c"};
4) String temp [] = {"a", "b", "c"};
Answer 4
What is the correct declaration of an abstract method that is intended to be public:
1) public abstract void add();
2) public abstract void add() {}
3) public abstract add();
4) public virtual add();
Answer : 1
Under what situations do you obtain a default constructor?
1) When you define any class
2) When the class has no other constructors
3) When you define at least one constructor
Answer : 2
Which of the following can be used to define a constructor for this class, given the following code:
public class Test {
...
}
1) public void Test() {...}
2) public Test() {...}
3) public static Test() {...}
4) public static void Test() {...}
Answer : 2
Which of the following are acceptable to the Java compiler:
(multiple)
1) if (2 == 3) System.out.println("Hi");
2) if (2 = 3) System.out.println("Hi");
3) if (true) System.out.println("Hi");
4) if (2 != 3) System.out.println("Hi");
5) if (aString.equals("hello")) System.out.println("Hi");
Answer : 1,3,4,5
Assuming a method contains code which may raise an Exception (but not a RuntimeException), what
is the correct way for a method to indicate that it expects the caller to handle that exception:
1) throw Exception
2) throws Exception
3) new Exception
4) Don't need to specify anything
Answer : 2
What is the result of executing the following code, using the parameters 4 and 0:
public void divide(int a, int b) {

Freshersworld.com Resource Center


39
First Job…. Dream Job…. Freshersworld.com

try {
int c = a / b;
} catch (Exception e) {
System.out.print("Exception ");
} finally {
System.out.println("Finally");
}
1) Prints out: Exception Finally
2) Prints out: Finally
3) Prints out: Exception
4) No output
Answer : 1
Which of the following is a legal return type of a method overloading the following method:
public void add(int a) {...}
1) void
2) int
3) Can be anything
Answer : 3
Which of the following statements is correct for a method which is overriding the following method:
public void add(int a) {...}
1) the overriding method must return void
2) the overriding method must return int
3) the overriding method can return whatever it likes
Answer : 1
Given the following classes defined in separate files, what will be the effect of compiling and running
this class Test?
class Vehicle {
public void drive() {
System.out.println("Vehicle: drive");
}
}
class Car extends Vehicle {
public void drive() {
System.out.println("Car: drive");
}
}
public class Test {
public static void main (String args []) {
Vehicle v;
Car c;
v = new Vehicle();
c = new Car();
v.drive();
c.drive();
v = c;
v.drive();
}
}
1) Generates a Compiler error on the statement v= c;
2) Generates runtime error on the statement v= c;
3) Prints out:
Vehicle: drive
Car: drive
Car: drive
4) Prints out:
Vehicle: drive

Freshersworld.com Resource Center


40
First Job…. Dream Job…. Freshersworld.com

Car: drive
Vehicle: drive
Answer : 3
Where in a constructor, can you place a call to a constructor defined in the super class?
1) Anywhere
2) The first statement in the constructor
3) The last statement in the constructor
4) You can't call super in a constructor
Answer : 2
Which variables can an inner class access from the class which encapsulates it?
(multiple)
1) All static variables
2) All final variables
3) All instance variables
4) Only final instance variables
5) Only final static variables
Answer : 1,2,3
What class must an inner class extend:
1) The top level class
2) The Object class
3) Any class or interface
4) It must extend an interface
Answer 3
In the following code, which is the earliest statement, where the object originally held in e, may be
garbage collected:
1. public class Test {
2. public static void main (String args []) {
3. Employee e = new Employee("Bob", 48);
4. e.calculatePay();
5. System.out.println(e.printDetails());
6. e = null;
7. e = new Employee("Denise", 36);
8. e.calculatePay();
9. System.out.println(e.printDetails());
10. }
11. }
1) Line 10
2) Line 11
3) Line 7
4) Line 8
5) Never
Answer : 3
What is the name of the interface that can be used to define a class that can execute within its own
thread?
1) Runnable
2) Run
3) Threadable
4) Thread
5) Executable
Answer : 1
What is the name of the method used to schedule a thread for execution?
1) init();
2) start();
3) run();
4) resume();
5) sleep();

Freshersworld.com Resource Center


41
First Job…. Dream Job…. Freshersworld.com

Answer : 2
Which methods may cause a thread to stop executing?
(multiple)
1) sleep();
2) stop();
3) yield();
4) wait();
5) notify();
6) notifyAll()
7) synchronized()
Answer : 1,2,3,4
Which of the following would create a text field able to display 10 characters (assuming a fixed size
font) displaying the initial string "hello":
1) new TextField("hello", 10);
2) new TextField("hello");
3) new textField(10);
4) new TextField();
Answer : 1
Which of the following methods are defined on the Graphics class:
(multiple)
1) drawLine(int, int, int, int)
2) drawImage(Image, int, int, ImageObserver)
3) drawString(String, int, int)
4) add(Component);
5) setVisible(boolean);
6) setLayout(Object);
Answer : 1,2,3
Which of the following layout managers honours the preferred size of a component:
(multiple)
1) CardLayout
2) FlowLayout
3) BorderLayout
4) GridLayout
Answer : 2
Given the following code what is the effect of a being 5:
public class Test {
public void add(int a) {
loop: for (int i = 1; i < 3; i++){
for (int j = 1; j < 3; j++) {
if (a == 5) {
break loop;
}
System.out.println(i * j);
}
}
}
}
1) Generate a runtime error
2) Throw an ArrayIndexOutOfBoundsException
3) Print the values: 1, 2, 2, 4
4) Produces no output
Answer : 4
What is the effect of issuing a wait() method on an object
1) If a notify() method has already been sent to that object then it has no effect
2) The object issuing the call to wait() will halt until another object sends a notify() or notifyAll()
method

Freshersworld.com Resource Center


42
First Job…. Dream Job…. Freshersworld.com

3) An exception will be raised


4) The object issuing the call to wait() will be automatically synchronized with any other objects using
the receiving object.
Answer : 2
The layout of a container can be altered using which of the following methods:
(multiple)
1) setLayout(aLayoutManager);
2) addLayout(aLayoutManager);
3) layout(aLayoutManager);
4) setLayoutManager(aLayoutManager);
Answer : 1
Using a FlowLayout manager, which is the correct way to add elements to a container:
1) add(component);
2) add("Center", component);
3) add(x, y, component);
4) set(component);
Answer : 1
Given that a Button can generate an ActionEvent which listener would you expect to have to
implement, in a class which would handle this event?
1) FocusListener
2) ComponentListener
3) WindowListener
4) ActionListener
5) ItemListener
Answer : 4
Which of the following, are valid return types, for listener methods:
1) boolean
2) the type of event handled
3) void
4) Component
Answer : 3
Assuming we have a class which implements the ActionListener interface, which method should be
used to register this with a Button?
1) addListener(*);
2) addActionListener(*);
3) addButtonListener(*);
4) setListener(*);
Answer : 2
In order to cause the paint(Graphics) method to execute, which of the following is the most appropriate
method to call:
1) paint()
2) repaint()
3) paint(Graphics)
4) update(Graphics)
5) None - you should never cause paint(Graphics) to execute
Answer : 2
Which of the following illustrates the correct way to pass a parameter into an applet:
1) <applet code=Test.class age=33 width=100 height=100>
2) <param name=age value=33>
3) <applet code=Test.class name=age value=33 width=100 height=100>
4) <applet Test 33>
Answer : 2
Which of the following correctly illustrate how an InputStreamReader can be created:
(multiple)
1) new InputStreamReader(new FileInputStream("data"));
2) new InputStreamReader(new FileReader("data"));

Freshersworld.com Resource Center


43
First Job…. Dream Job…. Freshersworld.com

3) new InputStreamReader(new BufferedReader("data"));


4) new InputStreamReader("data");
5) new InputStreamReader(System.in);
Answer : 1,5
What is the permanent effect on the file system of writing data to a new FileWriter("report"), given the
file report already exists?
1) The data is appended to the file
2) The file is replaced with a new file
3) An exception is raised as the file already exists
4) The data is written to random locations within the file
Answer : 2
What is the effect of adding the sixth element to a vector created in the following manner:
new Vector(5, 10);
1) An IndexOutOfBounds exception is raised.
2) The vector grows in size to a capacity of 10 elements
3) The vector grows in size to a capacity of 15 elements
4) Nothing, the vector will have grown when the fifth element was added
Answer : 3
What is the result of executing the following code when the value of x is 2:
switch (x) {
case 1:
System.out.println(1);
case 2:
case 3:
System.out.println(3);
case 4:
System.out.println(4);
}
1) Nothing is printed out
2) The value 3 is printed out
3) The values 3 and 4 are printed out
4) The values 1, 3 and 4 are printed out
Answer : 3
What is the result of compiling and running the Second class?
Consider the following example:
class First {
public First (String s) {
System.out.println(s);
}
}
public class Second extends First {
public static void main(String args []) {
new Second();
}
}
1) Nothing happens
2) A string is printed to the standard out
3) An instance of the class First is generated
4) An instance of the class Second is created
5) An exception is raised at runtime stating that there is no null parameter constructor in class First.
6) The class second will not compile as there is no null parameter constructor in the class First
Answer : 6
What is the result of executing the following fragment of code:
boolean flag = false;
if (flag = true) {
System.out.println("true");

Freshersworld.com Resource Center


44
First Job…. Dream Job…. Freshersworld.com

} else {
System.out.println("false");
}
1) true is printed to standard out
2) false is printed to standard out
3) An exception is raised
4) Nothing happens
Answer : 1
Consider the following classes. What is the result of compiling and running this class?
public class Test {
public static void test() {
this.print();
}
public static void print() {
System.out.println("Test");
}
public static void main(String args []) {
test();
}
}
(multiple)
1) The string Test is printed to the standard out.
2) A runtime exception is raised stating that an object has not been created.
3) Nothing is printed to the standard output.
4) An exception is raised stating that the method test cannot be found.
5) An exception is raised stating that the variable this can only be used within an instance.
6) The class fails to compile stating that the variable this is undefined.
Answer : 6
Examine the following class definition:
public class Test {
public static void test() {
print();
}
public static void print() {
System.out.println("Test");
}
public void print() {
System.out.println("Another Test");
}
}
What is the result of compiling this class:
1) A successful compilation.
2) A warning stating that the class has no main method.
3) An error stating that there is a duplicated method.
4) An error stating that the method test() will call one or other of the print() methods.
Answer : 3
What is the result of compiling and executing the following Java class:
public class ThreadTest extends Thread {
public void run() {
System.out.println("In run");
suspend();
resume();
System.out.println("Leaving run");
}
public static void main(String args []) {
(new ThreadTest()).start();

Freshersworld.com Resource Center


45
First Job…. Dream Job…. Freshersworld.com

}
}
1) Compilation will fail in the method main.
2) Compilation will fail in the method run.
3) A warning will be generated for method run.
4) The string "In run" will be printed to standard out.
5) Both strings will be printed to standard out.
6) Nothing will happen.
Answer : 4
Given the following sequence of Java statements, Which of the following options are true:
1. StringBuffer sb = new StringBuffer("abc");
2. String s = new String("abc");
3. sb.append("def");
4. s.append("def");
5. sb.insert(1, "zzz");
6. s.concat(sb);
7. s.trim();
(multiple)
1) The compiler would generate an error for line 1.
2) The compiler would generate an error for line 2.
3) The compiler would generate an error for line 3.
4) The compiler would generate an error for line 4.
5) The compiler would generate an error for line 5.
6) The compiler would generate an error for line 6.
7) The compiler would generate an error for line 7.
Answer : 4,6
What is the result of executing the following Java class:
import java.awt.*;
public class FrameTest extends Frame {
public FrameTest() {
add (new Button("First"));
add (new Button("Second"));
add (new Button("Third"));
pack();
setVisible(true);
}
public static void main(String args []) {
new FrameTest();
}
}
1) Nothing happens.
2) Three buttons are displayed across a window.
3) A runtime exception is generated (no layout manager specified).
4) Only the "first" button is displayed.
5) Only the "second" button is displayed.
6) Only the "third" button is displayed.
Answer : 6
Consider the following tags and attributes of tags, which can be used with the <AAPLET> and
</APPLET> tags?
1. CODEBASE
2. ALT
3. NAME
4. CLASS
5. JAVAC
6. HORIZONTALSPACE
7. VERTICALSPACE

Freshersworld.com Resource Center


46
First Job…. Dream Job…. Freshersworld.com

8. WIDTH
9. PARAM
10. JAR
(multiple)
1) line 1, 2, 3
2) line 2, 5, 6, 7
3) line 3, 4, 5
4) line 8, 9, 10
5) line 8, 9
Answer : 1,5
Which of the following is a legal way to construct a RandomAccessFile:
1) RandomAccessFile("data", "r");
2) RandomAccessFile("r", "data");
3) RandomAccessFile("data", "read");
4) RandomAccessFile("read", "data");
Answer : 1
Carefully examine the following code, When will the string "Hi there" be printed?
public class StaticTest {
static {
System.out.println("Hi there");
}
public void print() {
System.out.println("Hello");
}
public static void main(String args []) {
StaticTest st1 = new StaticTest();
st1.print();
StaticTest st2 = new StaticTest();
st2.print();
}
}
1) Never.
2) Each time a new instance is created.
3) Once when the class is first loaded into the Java virtual machine.
4) Only when the static method is called explicitly.
Answer : 3
What is the result of the following program:
public class Test {
public static void main (String args []) {
boolean a = false;
if (a = true)
System.out.println("Hello");
else
System.out.println("Goodbye");
}
}
1) Program produces no output but terminates correctly.
2) Program does not terminate.
3) Prints out "Hello"
4) Prints out "Goodbye"
Answer : 3
Examine the following code, it includes an inner class, what is the result:
public final class Test4 {
class Inner {
void test() {
if (Test4.this.flag); {

Freshersworld.com Resource Center


47
First Job…. Dream Job…. Freshersworld.com

sample();
}
}
}
private boolean flag = true;
public void sample() {
System.out.println("Sample");
}
public Test4() {
(new Inner()).test();
}
public static void main(String args []) {
new Test4();
}
}
1) Prints out "Sample"
2) Program produces no output but terminates correctly.
3) Program does not terminate.
4) The program will not compile
Answer : 1
Carefully examine the following class:
public class Test5 {
public static void main (String args []) {
/* This is the start of a comment
if (true) {
Test5 = new test5();
System.out.println("Done the test");
}
/* This is another comment */
System.out.println ("The end");
}
}
1) Prints out "Done the test" and nothing else.
2) Program produces no output but terminates correctly.
3) Program does not terminate.
4) The program will not compile.
5) The program generates a runtime exception.
6) The program prints out "The end" and nothing else.
7) The program prints out "Done the test" and "The end"
Answer : 6
What is the result of compiling and running the following applet:
import java.applet.Applet;
import java.awt.*;
public class Sample extends Applet {
private String text = "Hello World";
public void init() {
add(new Label(text));
}
public Sample (String string) {
text = string;
}
}
It is accessed form the following HTML page:
<html>
<title>Sample Applet</title>
<body>

Freshersworld.com Resource Center


48
First Job…. Dream Job…. Freshersworld.com

<applet code="Sample.class" width=200 height=200></applet>


</body>
</html>
1) Prints "Hello World".
2) Generates a runtime error.
3) Does nothing.
4) Generates a compile time error.
Answer : 2
What is the effect of compiling and (if possible) running this class:
public class Calc {
public static void main (String args []) {
int total = 0;
for (int i = 0, j = 10; total > 30; ++i, --j) {
System.out.println(" i = " + i + " : j = " + j);
total += (i + j);
}
System.out.println("Total " + total);
}
}
1) Produce a runtime error
2) Produce a compile time error
3) Print out "Total 0"
4) Generate the following as output:
i = 0 : j = 10
i=1:j=9
i=2:j=8
Total 30
Answer : 3

Utility Package

1) What is the Vector class?


ANSWER : The Vector class provides the capability to implement a growable array of objects.
2) What is the Set interface?
ANSWER : The Set interface provides methods for accessing the elements of a finite mathematical
set.Sets do not allow duplicate elements.
3) What is Dictionary class?
ANSWER : The Dictionary class is the abstarct super class of Hashtable and Properties
class.Dictionary provides the abstarct functions used to store and retrieve objects by key-value.This
class allows any object to be used as a key or value.
4) What is the Hashtable class?
ANSWER : The Hashtable class implements a hash table data structure. A hash table indexes and
stores objects in a dictionary using hash codes as the objects' keys. Hash codes are integer values that
identify objects.
5) What is the Properties class?

Freshersworld.com Resource Center


49
First Job…. Dream Job…. Freshersworld.com

Answer : The properties class is a subclass of Hashtable that can be read from or written to a stream.It
also provides the capability to specify a set of default values to be used if a specified key is not found
in the table. We have two methods load() and save().
6) What changes are needed to make the following prg to compile?
import java.util.*;
class Ques{
public static void main (String args[]) {
String s1 = "abc";
String s2 = "def";
Vector v = new Vector();
v.add(s1);
v.add(s2);
String s3 = v.elementAt(0) + v.elementAt(1);
System.out.println(s3);
}
}
ANSWER : Declare Ques as public B) Cast v.elementAt(0) to a String
C) Cast v.elementAt(1) to an Object. D) Import java.lang
ANSWER : B) Cast v.elementAt(0) to a String

8) What is the output of the prg.


import java.util.*;
class Ques{
public static void main (String args[]) {
String s1 = "abc";
String s2 = "def";
Stack stack = new Stack();
stack.push(s1);
stack.push(s2);
try{
String s3 = (String) stack.pop() + (String) stack.pop() ;
System.out.println(s3);
}catch (EmptyStackException ex){}
}
}
ANSWER : abcdef B) defabc C) abcabc D) defdef
ANSWER : B) defabc
9) Which of the following may have duplicate elements?
ANSWER : Collection B) List C) Map D) Set
ANSWER : A and B Neither a Map nor a Set may have duplicate elements.
10) Can null value be added to a List?
ANSWER : Yes.A Null value may be added to any List.
11) What is the output of the following prg.
import java.util.*;
class Ques{
public static void main (String args[]) {
HashSet set = new HashSet();
String s1 = "abc";
String s2 = "def";
String s3 = "";
set.add(s1);
set.add(s2);

Freshersworld.com Resource Center


50
First Job…. Dream Job…. Freshersworld.com

set.add(s1);
set.add(s2);
Iterator i = set.iterator();
while(i.hasNext())
{
s3 += (String) i.next();
}
System.out.println(s3);
}
}
A) abcdefabcdef B) defabcdefabc C) fedcbafedcba D) defabc
ANSWER : D) defabc. Sets may not have duplicate elements.
12) Which of the following java.util classes support internationalization?
A) Locale B) ResourceBundle C) Country D) Language
ANSWER : A and B . Country and Language are not java.util classes.
13) What is the ResourceBundle?
The ResourceBundle class also supports internationalization.
ResourceBundle subclasses are used to store locale-specific resources that can be loaded by a program
to tailor the program's appearence to the paticular locale in which it is being run. Resource Bundles
provide the capability to isolate a program's locale-specific resources in a standard and modular
manner.
14) How are Observer Interface and Observable class, in java.util package, used?
ANSWER : Objects that subclass the Observable class maintain a list of Observers. When an
Observable object is updated it invokes the update() method of each of its observers to notify the
observers that it has changed state. The Observer interface is implemented by objects that observe
Observable objects.
15) Which java.util classes and interfaces support event handling?
ANSWER : The EventObject class and the EventListener interface support event processing.
16) Does java provide standard iterator functions for inspecting a collection of objects?
ANSWER : The Enumeration interface in the java.util package provides a framework for stepping
once through a collection of objects. We have two methods in that interface.
public interface Enumeration {
boolean hasMoreElements();
Object nextElement();
}
17) The Math.random method is too limited for my needs- How can I generate random numbers
more flexibly?
ANSWER : The random method in Math class provide quick, convienient access to random numbers,
but more power and flexibility use the Random class in the java.util package.
double doubleval = Math.random();
The Random class provide methods returning float, int, double, and long values.
nextFloat() // type float; 0.0 <= value < 1.0
nextDouble() // type double; 0.0 <= value < 1.0
nextInt() // type int; Integer.MIN_VALUE <= value <= Integer.MAX_VALUE
nextLong() // type long; Long.MIN_VALUE <= value <= Long.MAX_VALUE
nextGaussian() // type double; has Gaussian("normal") distribution with mean 0.0 and standard
deviation 1.0)
Eg. Random r = new Random();
float floatval = r.nextFloat();

18) How can we get all public methods of an object dynamically?


ANSWER : By using getMethods(). It return an array of method objects corresponding to the public
methods of this class.
getFields() returns an array of Filed objects corresponding to the public Fields(variables) of this class.

Freshersworld.com Resource Center


51
First Job…. Dream Job…. Freshersworld.com

getConstructors() returns an array of constructor objects corresponding to the public constructors of


this class.

JDBC
1) What are the steps involved in establishing a connection?
ANSWER : This involves two steps: (1) loading the driver and (2) making the connection.
2) How can you load the drivers?
ANSWER : Loading the driver or drivers you want to use is very simple and involves just one line of
code. If, for example, you want to use the JDBC-ODBC Bridge driver, the following code will load it:
Eg.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Your driver documentation will give you the class name to use. For instance, if the class name is
jdbc.DriverXYZ , you would load the driver with the following line of code:
Eg.
Class.forName("jdbc.DriverXYZ");
3) What Class.forName will do while loading drivers?
ANSWER : It is used to create an instance of a driver and register it with the DriverManager.
When you have loaded a driver, it is available for making a connection with a DBMS.
4) How can you make the connection?
ANSWER : In establishing a connection is to have the appropriate driver connect to the DBMS. The
following line of code illustrates the general idea:
Eg.
String url = "jdbc:odbc:Fred";
Connection con = DriverManager.getConnection(url, "Fernanda", "J8");
5) How can you create JDBC statements?
ANSWER : A Statement object is what sends your SQL statement to the DBMS. You simply create a
Statement object and then execute it, supplying the appropriate execute method with the SQL
statement you want to send. For a SELECT statement, the method to use is executeQuery. For
statements that create or modify tables, the method to use is executeUpdate.
Eg.
It takes an instance of an active connection to create a Statement object. In the following example, we
use our Connection object con to create the Statement object stmt :
Statement stmt = con.createStatement();
6) How can you retrieve data from the ResultSet?
ANSWER : Step 1.
JDBC returns results in a ResultSet object, so we need to declare an instance of the class ResultSet to
hold our results. The following code demonstrates declaring the ResultSet object rs.
Eg.
ResultSet rs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
Step2.
String s = rs.getString("COF_NAME");
The method getString is invoked on the ResultSet object rs , so getString will retrieve (get) the value
stored in the column COF_NAME in the current row of rs
7) What are the different types of Statements?
ANSWER : 1.Statement (use createStatement method) 2. Prepared Statement (Use prepareStatement
method) and 3. Callable Statement (Use prepareCall)
8) How can you use PreparedStatement?
ANSWER : This special type of statement is derived from the more general class, Statement.If you
want to execute a Statement object many times, it will normally reduce execution time to use a
PreparedStatement object instead.
The advantage to this is that in most cases, this SQL statement will be sent to the DBMS right away,
where it will be compiled. As a result, the PreparedStatement object contains not just an SQL
statement, but an SQL statement that has been precompiled. This means that when the
PreparedStatement is executed, the DBMS can just run the PreparedStatement 's SQL statement
without having to compile it first.

Freshersworld.com Resource Center


52
First Job…. Dream Job…. Freshersworld.com

Eg.
PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SET SALES = ?
WHERE COF_NAME LIKE ?");
9) What setAutoCommit does?
ANSWER : When a connection is created, it is in auto-commit mode. This means that each individual
SQL statement is treated as a transaction and will be automatically committed right after it is executed.
The way to allow two or more statements to be grouped into a transaction is to disable auto-commit
mode
Eg.
con.setAutoCommit(false);
Once auto-commit mode is disabled, no SQL statements will be committed until you call the method
commit explicitly.
Eg.
con.setAutoCommit(false);
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?");
updateSales.setInt(1, 50);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate();
PreparedStatement updateTotal = con.prepareStatement("UPDATE COFFEES SET TOTAL = TOTAL
+ ? WHERE COF_NAME LIKE ?");
updateTotal.setInt(1, 50);
updateTotal.setString(2, "Colombian");
updateTotal.executeUpdate();
con.commit();
con.setAutoCommit(true);
10) How to call a Strored Procedure from JDBC?
ANSWER : The first step is to create a CallableStatement object. As with Statement an and
PreparedStatement objects, this is done with an open Connection
object. A CallableStatement object contains a call to a stored procedure;
Eg.
CallableStatement cs = con.prepareCall("{call SHOW_SUPPLIERS}");
ResultSet rs = cs.executeQuery();
11) How to Retrieve Warnings?
ANSWER : SQLWarning objects are a subclass of SQLException that deal with database access
warnings. Warnings do not stop the execution of an application, as exceptions do; they simply alert the
user that something did not happen as planned.
A warning can be reported on a Connection object, a Statement object (including PreparedStatement
and CallableStatement objects), or a ResultSet object. Each of these classes has a getWarnings method,
which you must invoke in order to see the first warning reported on the calling object
Eg.
SQLWarning warning = stmt.getWarnings();
if (warning != null) {
System.out.println("\n---Warning---\n");
while (warning != null) {
System.out.println("Message: " + warning.getMessage());
System.out.println("SQLState: " + warning.getSQLState());
System.out.print("Vendor error code: ");
System.out.println(warning.getErrorCode());
System.out.println("");
warning = warning.getNextWarning();
}
}
12) How can you Move the Cursor in Scrollable Result Sets ?

Freshersworld.com Resource Center


53
First Job…. Dream Job…. Freshersworld.com

ANSWER : One of the new features in the JDBC 2.0 API is the ability to move a result set's cursor
backward as well as forward. There are also methods that let you move the cursor to a particular row
and check the position of the cursor.
Eg.
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
The first argument is one of three constants added to the ResultSet API to indicate the type of a
ResultSet object: TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE , and
TYPE_SCROLL_SENSITIVE .
The second argument is one of two ResultSet constants for specifying whether a result set is read-only
or updatable: CONCUR_READ_ONLY and CONCUR_UPDATABLE . The point to remember here
is that if you specify a type, you must also specify whether it is read-only or updatable. Also, you must
specify the type first, and because both parameters are of type int , the compiler will not complain if
you switch the order.
Specifying the constant TYPE_FORWARD_ONLY creates a nonscrollable result set, that is, one in
which the cursor moves only forward. If you do not specify any constants for the type and updatability
of a ResultSet object, you will automatically get one that is TYPE_FORWARD_ONLY and
CONCUR_READ_ONLY
13) What’s the difference between TYPE_SCROLL_INSENSITIVE , and
TYPE_SCROLL_SENSITIVE?
ANSWER : You will get a scrollable ResultSet object if you specify one of these ResultSet
constants.The difference between the two has to do with whether a result set reflects changes that are
made to it while it is open and whether certain methods can be called to detect these changes.
Generally speaking, a result set that is TYPE_SCROLL_INSENSITIVE does not reflect changes made
while it is still open and one that is TYPE_SCROLL_SENSITIVE does. All three types of result sets
will make changes visible if they are closed and then reopened
Eg.
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
srs.afterLast();
while (srs.previous()) {
String name = srs.getString("COF_NAME");
float price = srs.getFloat("PRICE");
System.out.println(name + " " + price);
}
14) How to Make Updates to Updatable Result Sets?
ANSWER : Another new feature in the JDBC 2.0 API is the ability to update rows in a result set using
methods in the Java programming language rather than having to send an SQL command. But before
you can take advantage of this capability, you need to create a ResultSet object that is updatable. In
order to do this, you supply the ResultSet constant CONCUR_UPDATABLE to the createStatement
method.
Eg.
Connection con = DriverManager.getConnection("jdbc:mySubprotocol:mySubName");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet uprs = stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");

Networking Concepts
1) The API doesn't list any constructors for InetAddress- How do I create an InetAddress
instance?
ANSWER : In case of InetAddress the three methods getLocalHost, getByName, getByAllName can
be used to create instances.
E.g.
InetAddress add1;

Freshersworld.com Resource Center


54
First Job…. Dream Job…. Freshersworld.com

InetAddress add2;
try{
add1 = InetAddress.getByName("java.sun.com");
add2 = InetAddress.getByName("199.22.22.22");
}catch(UnknownHostException e){}
2) Is it possible to get the Local host IP?
ANSWER : Yes. Use InetAddress's getLocalHost method.
3) What's the Factory Method?
ANSWER : Factory methods are merely a convention whereby static methods in a class return an
instance of that class. The InetAddress class has no visible constructors. To create an InetAddress
object, you have to use one of the available factory methods. In InetAddress the three methods
getLocalHost, getByName, getByAllName can be used to create instances of InetAddress.
4) What’s the difference between TCP and UDP?
ANSWER : These two protocols differ in the way they carry out the action of communicating. A TCP
protocol establishes a two way connection between a pair of computers, while the UDP protocol is a
one-way message sender. The common analogy is that TCP is like making a phone call and carrying on
a two-way communication, while UDP is like mailing a letter.
5) What is the Proxy Server?
ANSWER : A proxy server speaks the client side of a protocol to another server. This is often required
when clients have certain restrictions on which servers they can connect to. And when several users are
hitting a popular web site, a proxy server can get the contents of the web server's popular pages once,
saving expensive internetwork transfers while providing faster access to those pages to the clients.
Also, we can get multiple connections for a single server.
6) What are the seven layers of OSI model?
ANSWER : Application, Presentation, Session, Transport, Network, DataLink, Physical Layer.
What Transport Layer does?
ANSWER : It ensures that the mail gets to its destination. If a packet fails to get its destination, it
handles the process of notifying the sender and requesting that another packet be sent.
8) What is DHCP?
ANSWER : Dynamic Host Configuration Protocol, a piece of the TCP/IP protocol suite that handles
the automatic assignment of IP addresses to clients.
9) What is SMTP?
ANSWER : Simple Mail Transmission Protocol, the TCP/IP Standard for Internet mails. SMTP
exchanges mail between servers; contrast this with POP, which transmits mail between a server and a
client.
10) In OSI N/w architecture, the dialogue control and token management are responsibilities of...
Answer : Network b) Session c) Application d) DataLink
ANSWER : b) Session Layer.
11) In OSI N/W Architecture, the routing is performed by ______
Answer : Network b) Session c) Application d) DataLink
ANSWER : Answer : Network Layer.
Networking

What is the difference between URL instance and URLConnection instance?


ANSWER : A URL instance represents the location of a resource, and a URLConnection instance
represents a link for accessing or communicating with the resource at the location.
2) How do I make a connection to URL?
ANSWER : You obtain a URL instance and then invoke openConnection on it.
URLConnection is an abstract class, which means you can't directly create instances of it using a
constructor. We have to invoke openConnection method on a URL instance, to get the right kind of
connection for your URL.
Eg. URL url;
URLConnection connection;
try{ url = new URL("...");
conection = url.openConnection();
}catch (MalFormedURLException e) { }

Freshersworld.com Resource Center


55
First Job…. Dream Job…. Freshersworld.com

3) What Is a Socket?
A socket is one end-point of a two-way communication link between two programs running on the
network. A socket is bound to a port number so that the TCP layer can identify the application that data
is destined to be sent.Socket classes are used to represent the connection between a client program and
a server program. The java.net package provides two classes--Socket and ServerSocket--which
implement the client side of the connection and the server side of the connection, respectively.
What information is needed to create a TCP Socket?
ANSWER : The Local System’s IP Address and Port Number.
And the Remote System's IPAddress and Port Number.
5) What are the two important TCP Socket classes?
ANSWER : Socket and ServerSocket.
ServerSocket is used for normal two-way socket communication. Socket class allows us to read and
write through the sockets.
getInputStream() and getOutputStream() are the two methods available in Socket class.
When MalformedURLException and UnknownHostException throws?
ANSWER : When the specified URL is not connected then the URL throw MalformedURLException
and If InetAddress’ methods getByName and getLocalHost are unabletoresolve the host name they
throwan UnknownHostException.
Servlets

1) What is the servlet?


ANSWER : Servlets are modules that extend request/response-oriented servers, such as Java-enabled
web servers. For example, a servlet might be responsible for taking data in an HTML order-entry form
and applying the business logic used to update a company's order database.
Servlets are to servers what applets are to browsers. Unlike applets, however, servlets have no
graphical user interface.
2) Whats the advantages using servlets than using CGI?
ANSWER : Servlets provide a way to generate dynamic documents that is both easier to write and
faster to run. Servlets also address the problem of doing server-side programming with platform-
specific APIs: they are developed with the Java Servlet API, a standard Java extension.
3) What are the uses of Servlets?
ANSWER : A servlet can handle multiple requests concurrently, and can synchronize requests. This
allows servlets to support systems such as on-line conferencing.
Servlets can forward requests to other servers and servlets.Thus servlets can be used to balance load
among several servers that mirror the same content, and to partition a single logical service over
several servers, according to task type or organizational boundaries.
4) Which pakage provides interfaces and classes for writing servlets?
ANSWER : javax
5) Whats the Servlet Interfcae?
ANSWER : The central abstraction in the Servlet API is the Servlet interface. All servlets implement
this interface, either directly or, more commonly, by extending a class that implements it such as
HttpServlet.
Servlets-->Generic Servlet-->HttpServlet-->MyServlet.
The Servlet interface declares, but does not implement, methods that manage the servlet and its
communications with clients. Servlet writers provide some or all of these methods when developing a
servlet.
6) When a servlet accepts a call from a client, it receives two objects- What are they?
ANSWER : ServeltRequest: Which encapsulates the communication from the client to the server.
ServletResponse: Whcih encapsulates the communication from the servlet back to the client.
ServletRequest and ServletResponse are interfaces defined by the javax.servlet package.
7) What information that the ServletRequest interface allows the servlet access to?
ANSWER : Information such as the names of the parameters passed in by the client, the protocol
(scheme) being used by the client, and the names of the remote host that made the request and the
server that received it.

Freshersworld.com Resource Center


56
First Job…. Dream Job…. Freshersworld.com

The input stream, ServletInputStream.Servlets use the input stream to get data from clients that use
application protocols such as the HTTP POST and PUT methods.
8) What information that the ServletResponse interface gives the servlet methods for replying to
the client?
ANSWER : It Allows the servlet to set the content length and MIME type of the reply.
Provides an output stream, ServletOutputStream and a Writer through which the servlet can send the
reply data.
9) What is the servlet Lifecycle?
ANSWER : Each servlet has the same life cycle:
A server loads and initializes the servlet (init())
The servlet handles zero or more client requests (service())
The server removes the servlet (destroy())
(some servers do this step only when they shut down)
10) How HTTP Servlet handles client requests?
ANSWER : An HTTP Servlet handles client requests through its service method. The service method
supports standard HTTP client requests by dispatching each request to a method designed to handle
that request. 1

Encapsulation :
Encapsulation is the mechanism that binds together code and the data it manipulates and keeps both
safe from outside interference and misuse.
Inheritance:
Inheritance is the process by which one object acquires the properties of another object.
Polymorphism:
Polymorphism is a feature that allows one interface to be used for a general class of actions. The
specific action is determined by the exact nature of actions.
Code Blocks:
Two or more statements which is allowed to be grouped into blocks of code is otherwise called as
Code Blocks.This is done by enclosing the statements between opening and closing curly braces.
Floating-point numbers:
Floating-point numbers which is also known as real numbers, are used when evaluating expressions
that require fractional precision.
Unicode:
Unicode defines a fully international character set that can represent all of the characters found in all
human languages. It is a unification of dozens of character sets, such as Latin, Greek, Arabic and many
more.
Booleans:
Java has a simple type called boolean, for logical values. It can have only on of two possible values,
true or false.
Casting:
A cast is simply an explicit type conversion. To create a conversion between two incompatible types,
you must use a cast.
Arrays:
An array is a group of like-typed variables that are referred to by a common name. Arrays offer a
convenient means of grouping related information. Arrays of any type can be created and may have
one or more dimension.
Relational Operators:
The relational operators determine the relationship that one operand has to the other. They determine
the equality and ordering.
11.Short-Circuit Logical Operators:
The secondary versions of the Boolean AND and OR operators are known as short-
circuit logical operators. It is represented by || and &&..
12. Switch:
The switch statement is Java’s multiway branch statement. It provides an easy way to
dispatch execution to different parts of your code based on the value of an

Freshersworld.com Resource Center


57
First Job…. Dream Job…. Freshersworld.com

experession.
13. Jump Statements:
Jump statements are the statements which transfer control to another part of your
program. Java Supports three jump statements: break, continue, and return.
14. Instance Variables:
The data, or variable, defined within a class are called instance variable.

Freshersworld.com Resource Center


58
First Job…. Dream Job…. Freshersworld.com

Technical Questions
1. A 2MB PCM(pulse code modulation) has

a) 32 channels
b) 30 voice channels & 1 signalling channel.
c) 31 voice channels & 1 signalling channel.
d) 32 channels out of which 30 voice channels, 1 signalling channel, & 1
Synchronizatio channel.

Ans: (c)

2. Time taken for 1 satellite hop in voice communication is

a) 1/2 second
b) 1 seconds
c) 4 seconds
d) 2 seconds

Ans: (a)

3. Max number of satellite hops allowed in voice communication is :

a) only one
b) more han one
c) two hops
d) four hops

Ans: (c)

4. What is the max. decimal number that can be accomodated in a byte.

a) 128
b) 256
c) 255
d) 512

Ans: (c)

5. Conditional results after execution of an instruction in a micro processor is


stored in

a) register
b) accumulator
c) flag register
d) flag register part of PSW(Program Status Word)

Ans: (d)

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

6. Frequency at which VOICE is sampled is

a) 4 Khz
b) 8 Khz
c) 16 Khz
d) 64 Khz

Ans: (a)

7. Line of Sight is

a) Straight Line
b) Parabolic
c) Tx & Rx should be visible to each other
d) none

Ans: (c)

8. Purpose of PC(Program Counter) in a MicroProcessor is

a) To store address of TOS(Top Of Stack)


b) To store address of next instruction to be executed.
c) count the number of instructions.
d) to store base address of the stack.

Ans: (b)

9. What action is taken when the processor under execution is interrupted by a


non-maskable interrupt?

a) Processor serves the interrupt request after completing the execution of the
current instruction.
b) Processor serves the interupt request after completing the current task.
c) Processor serves the interupt request immediately.
d) Processor serving the interrupt request depends upon the priority of the
current task under execution.

Ans: (a)

10. The status of the Kernel is

a) task
b) process
c) not defined.
d) none of the above.

Ans: (b)

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

11. To send a data packet using datagram , connection will be established

a) before data transmission.


b) connection is not established before data transmission.
c) no connection is required.
d) none of the above.

Ans: (c)

12. Word allignment is

a) alligning the address to the next word boundary of the machine.


b) alligning to even boundary.
c) alligning to word boundary.
d) none of the above.

Ans: (a)

13 When a 'C' function call is made, the order in which parameters passed to the
function are pushed into the stack is

a) left to right
b) right to left
c) bigger variables are moved first than the smaller variales.
d) smaller variables are moved first than the bigger ones.
e) none of the above.

Ans: (b)

14 What is the type of signalling used between two exchanges?

a) inband
b) common channel signalling
c) any of the above
d) none of the above.

Ans: (a)

15 Buffering is

a) the process of temporarily storing the data to allow for small variation in
device speeds
b) a method to reduce cross talks
c) storage of data within transmitting medium until the receiver is ready to
receive.
d) a method to reduce routing overhead.

Ans: (a)

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

16. Memory allocation of variables declared in a program is

a) allocated in RAM.
b) allocated in ROM.
c) allocated on stack.
d) assigned to registers.

Ans: (c)

17. A software that allows a personal computer to pretend as a computer


terminal is

a) terminal adapter
b) bulletin board
c) modem
d) terminal emulation

Ans: (d)

18. Find the output of the following program

int *p,*q;
p=(int *)1000;
q=(int *)2000;
printf("%d",(q-p));

Ans: 500

19. Which addressing mode is used in the following statements:

(a) MVI B,55


(b) MOV B,A
(c) MOV M,A

Ans. (a) Immediate addressing mode.


(b) Register Addressing Mode
(c) Direct addressing mode

20. RS-232C standard is used in _____________.

Ans. Serial I/O

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

21. Memory. Management in Operating Systems is done by

a) Memory Management Unit


b) Memory management software of the Operating System
c) Kernel

Ans: (b)

22. What is done for a Push opertion?

Ans: SP is decremented and then the value is stored.

23. Binary equivalent of 52

Ans. 110100

24. Hexadecimal equivalent of 3452

Ans. 72A

25. Explain Just In Time Concept ?

Ans. Elimination of waste by purchasing manufacturing exactly when needed

26. A good way of unit testing s/w program is

Ans. User test

27. OOT uses

Ans. Encapsulated of detect methods

28.EDI useful in

Ans. Electronic Transmission

29. MRPII different from MRP

Ans. Modular version of man redundant initials

30. Hard disk time for R/W head to move to correct sector

Ans. Latency Time

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

31. The percentage of times a page number bound in associate register is called

Ans. Bit ratio

32. Expand MODEM

Ans. Modulator and Demodulator

33. RDBMS file system can be defined as

Ans. Interrelated

34. Super Key is

Ans. Primary key and Attribute

35. Windows 95 supports

(a) Multiuser
(b) n tasks
(c) Both
(d) None

Ans. (a)

36.In the command scanf, h is used for

Ans. Short int

37.A process is defined as

Ans. Program in execution

38.A thread is

Ans. Detachable unit of executable code)

39.What is the advantage of Win NT over Win 95

Ans. Robust and secure

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

40.How is memory management done in Win95

Ans. Through paging and segmentation

41.What is meant by polymorphism

Ans. Redfinition of a base class method in a derived class

42.What is the essential feature of inheritance

Ans. All properties of existing class are derived

43.What does the protocol FTP do

Ans. Transfer a file b/w stations with user authentification

44.In the transport layer ,TCP is what type of protocol

Ans. Connection oriented

45.Why is a gateway used

Ans. To connect incompatible networks

46.How is linked list implemented

Ans. By referential structures

47.What method is used in Win95 in multitasking

Ans. Non preemptive check

48.What is a semaphore

Ans. A method synchronization of multiple processes

49.What is the precedence order from high to low ,of the symbols ( ) ++ /

Ans.( ) , ++, /

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

50.Preorder of A*(B+C)/D-G

Ans.*+ABC/-DG

51.What is the efficiency of merge sort

Ans. O(n log n)

52.In which layer are routers used

Ans.In network layer

53.Which of the following sorting algorithem has average sorting behavior --


Bubble sort,merge sort,heap sort,exchange sort

Ans. Heap sort

54.In binary search tree which traversal is used for getting ascending order
values--Inorder ,post order,preorder

Ans.Inorder

55.What are device drivers used for

Ans.To provide software for enabling the hardware

56.What is fork command in unix

Ans. System call used to create process

57.What is make command in unix

Ans. Used forcreation of more than one file

58.In unix .profile contains

Ans. Start up program

59.In unix 'ls 'stores contents in

Ans.inode block

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

60. Which of the following involves context switch,

(a) system call


(b) priviliged instruction
(c) floating poitnt exception
(d) all the above
(e) none of the above

Ans: (a)

61. In OST, terminal emulation is done in

(a) sessions layer


(b) application layer
(c) presentation layer
(d) transport layer

Ans: (b)

62. For 1 MB memory, the number of address lines required,

(a)11
(b)16
(c)22
(d) 24

Ans. (b)

63. Semaphore is used for

(a) synchronization
(b) dead-lock avoidence
(c) box
(d) none

Ans. (a)

64. Which holds true for the following statement

class c: public A, public B

a) 2 member in class A, B should not have same name


b) 2 member in class A, C should not have same name
c) both
d) none

Ans. (a)

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

65.Preproconia.. does not do which one of the following

(a) macro
(b) conditional compliclation
(c) in type checking
(d) including load file

Ans. (c)

66. Piggy backing is a technique for

a) Flow control
b) Sequence
c) Acknowledgement
d) retransmition

Ans. (c)

67. Which is not a memory management scheme?

a) buddy system
b) swapping
c) monitors
d) paging

Ans : c

68. There was a circuit given using three nand gates with two inputs and one output.
Find the output.

a) OR
b) AND
c) XOR
d) NOT

Ans. (a)

69.Iintegrated check value(ICV) are used as:

Ans. The client computes the ICV and then compares it with the senders value.

70. When applets are downloaded from web sites , a byte verifier performs _________?

Ans. Status check.

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

71. An IP/IPX packet received by a computer using... having IP/IPX both how the packet is handled.

Ans. Read the, field in the packet header with to send IP or IPX protocol.

72. The UNIX shell ....

a) does not come with the rest of the system


b) forms the interface between the user and the kernal
c) does not give any scope for programming
d) deos not allow calling one program from with in another
e) all of the above

Ans. (b)

73. In UNIX a files i-node ......?

Ans. Is a data structure that defines all specifications of a file like the file size,
number of lines to a file, permissions etc.

74. The very first process created by the kernal that runs till the kernal process is
halts is

a) init
b) getty
c) both (a) and (b)
d) none of these

Ans. (a)

75. In the process table entry for the kernel process, the process id value is

(a) 0
(b) 1
(c) 2
(d) 255
(e) it does not have a process table entry

Ans. (a)

76. Which of the following API is used to hide a window

a) ShowWindow
b) EnableWindow
c) MoveWindow
d) SetWindowPlacement
e) None of the above

Ans. (a)

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

77. Which function is the entry point for a DLL in MS Windows 3.1

a) Main
b) Winmain
c) Dllmain
d) Libmain
e) None

Ans. (b)

78. The standard source for standard input, standard output and standard error is

a) the terminal
b) /dev/null
c) /usr/you/input, /usr/you/output/, /usr/you/error respectively
d) None

Ans. (a)

79. The redirection operators > and >>

a) do the same function


b) differ : > overwrites, while >> appends
c) differ : > is used for input while >> is used for output
d) differ : > write to any file while >> write only to standard output
e) None of these

Ans. (b)

80. The command grep first second third /usr/you/myfile

a) prints lines containing the words first, second or third from the file
/usr/you/myfile
b) searches for lines containing the pattern first in the files
second, third, and /usr/you/myfile and prints them
c) searches the files /usr/you/myfiel and third for lines containing the words first
or second and prints them
d) replaces the word first with the word second in the files third and
/usr/you/myfile
e) None of the above

Ans. (b)

81. You are creating a Index on EMPNO column in the EMPLOYEE table. Which
statement will you use?
a) CREATE INdEX emp_empno_idx ON employee, empno;
b) CREATE INdEX emp_empno_idx FOR employee, empno;
c) CREATE INdEX emp_empno_idx ON employee(empno);
d) CREATE emp_empno_idx INdEX ON employee(empno);

Ans. c

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

82. Which program construct must return a value?


a) Package
b) Function
c) Anonymous block
d) Stored Procedure
e) Application Procedure

Ans. b

83. Which Statement would you use to remove the EMPLOYEE_Id_PK PRIMARY
KEY constraint and all depending constraints fromthe EMPLOYEE table?
a) ALTER TABLE employee dROP PRIMARY KEY CASCAdE;
b) ALTER TABLE employee dELETE PRIMARY KEY CASCAdE;
c) MOdIFY TABLE employee dROP CONSTRAINT employee_id_pk CASCAdE;
d) ALTER TABLE employee dROP PRIMARY KEY employee_id_pk CASCAdE;
e) MOdIFY TABLE employee dELETE PRIMARY KEY employee_id_pk CASCAdE;

Ans. a

84. Which three commands cause a transaction to end? (Chosse three)


a) ALTER
b) GRANT
c) DELETE
d) INSERT
e) UPdATE
f) ROLLBACK

Ans. a ,b ,f

85. Under which circumstance should you create an index on a table?


a) The table is small.
b) The table is updated frequently.
c) A columns values are static and contain a narrow range of values
d) Two columns are consistently used in the WHERE clause join condition of
SELECT
statements.

Ans.d

86. What was the first name given to Java Programming Language.

a) Oak - Java
b) Small Talk
c) Oak
d) None

Ans.a

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

87.When a bicycle is in motion,the force of friction exerted by the ground on the two
wheels is such that it acts

(a) In the backward direction on the front wheel and in the forward direction on the
rear wheel.
(b) In the forward direction on the front wheel and in the backward direction on the
rear wheel.
(c) In the backward direction on both the front and rear wheels.
(d) In the backward direction on both the front and rear wheels.

Ans. (d)

88. A certain radioactive element A, has a half life = t seconds.


In (t/2) seconds the fraction of the initial quantity of the element so far decayed is
nearly

(a) 29%
(b) 15%
(c) 10%
(d) 45%

Ans. (a)

89. Which of the following plots would be a straight line ?

(a) Logarithm of decay rate against logarithm of time


(b) Logarithm of decay rate against logarithm of number of decaying nuclei
(c) Decay rate against time
(d) Number of decaying nuclei against time

Ans. (b)

90. A radioactive element x has an atomic number of 100.


It decays directly into an element y which decays directly into element z.
In both processes a charged particle is emitted.
Which of the following statements would be true?

(a) y has an atomic number of 102


(b) y has an atomic number of 101
(c) z has an atomic number of 100
(d) z has an atomic number of 101

Ans. (b)

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

91. If the sum of the roots of the equation ax2 + bx + c=0 is equal to the sum of the
squares of their reciprocals
then a/c, b/a, c/b are in

(a) AP
(b) GP
(c) HP
(d) None of these

Ans. (c)

92. A man speaks the truth 3 out of 4 times.


He throws a die and reports it to be a 6.
What is the probability of it being a 6?

(a) 3/8
(b) 5/8
(c) 3/4
(d) None of the above

Ans. (a)

93. If cos2A + cos2B + cos2C = 1 then ABC is a

(a) Right angle triangle


(b) Equilateral triangle
(c) All the angles are acute
(d) None of these

Ans. (a)

94. Image of point (3,8) in the line x + 3y = 7 is

(a) (-1,-4)
(b) (-1,4)
(c) (2,-4)
(d) (-2,-4)

Ans. (a)

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

95. The mass number of a nucleus is

(a) Always less than its atomic number


(b) Always more than its atomic number
(c) Sometimes more than and sometimes equal to its atomic number
(d) None of the above

Ans. (c)

96. The maximum KE of the photoelectron emitted from a surface is dependent on

(a) The intensity of incident radiation


(b) The potential of the collector electrode
(c) The frequency of incident radiation
(d) The angle of incidence of radiation of the surface

Ans. (c)

97. Which of the following is not an essential condition for interference

(a) The two interfering waves must be propagated in almost the same direction or
the two interfering waves must intersect at a very small angle
(b) The waves must have the same time period and wavelength
(c) Amplitude of the two waves should be the same
(d) The interfering beams of light must originate from the same source

Ans. (c)

98. When X-Ray photons collide with electrons

(a) They slow down


(b) Their mass increases
(c) Their wave length increases
(d) Their energy decreases

Ans. (c)

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

99. An electron emits energy

(a) Because its in orbit


(b) When it jumps from one energy level to another
(c) Electrons are attracted towards the nucleus
(d) The electrostatic force is insufficient to hold the electrons in orbits

Ans. (b)

100. How many bonds are present in CO2 molecule?

(a) 1
(b) 2
(c) 0
(d) 4

Ans. (d)

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

UNIX Concepts
SECTION - I
FILE MANAGEMENT IN UNIX

1. How are devices represented in UNIX?


All devices are represented by files called special files that are located
in/dev directory. Thus, device files and other files are named and accessed in the
same way. A 'regular file' is just an ordinary data file in the disk. A 'block special file'
represents a device with characteristics similar to a disk (data transfer in terms of
blocks). A 'character special file' represents a device with characteristics similar to a
keyboard (data transfer is by stream of bits in sequential order).

2. What is 'inode'?
All UNIX files have its description stored in a structure called 'inode'. The
inode contains info about the file-size, its location, time of last access, time of last
modification, permission and so on. Directories are also represented as files and have
an associated inode. In addition to descriptions about the file, the inode contains
pointers to the data blocks of the file. If the file is large, inode has indirect pointer to a
block of pointers to additional data blocks (this further aggregates for larger files). A
block is typically 8k.
Inode consists of the following fields:
¾ File owner identifier
¾ File type
¾ File access permissions
¾ File access times
¾ Number of links
¾ File size
¾ Location of the file data

3. Brief about the directory representation in UNIX


A Unix directory is a file containing a correspondence between filenames and
inodes. A directory is a special file that the kernel maintains. Only kernel modifies
directories, but processes can read directories. The contents of a directory are a list of
filename and inode number pairs. When new directories are created, kernel makes
two entries named '.' (refers to the directory itself) and '..' (refers to parent directory).
System call for creating directory is mkdir (pathname, mode).

4. What are the Unix system calls for I/O?


¾ open(pathname,flag,mode) - open file
¾ creat(pathname,mode) - create file
¾ close(filedes) - close an open file
¾ read(filedes,buffer,bytes) - read data from an open file
¾ write(filedes,buffer,bytes) - write data to an open file
¾ lseek(filedes,offset,from) - position an open file
¾ dup(filedes) - duplicate an existing file descriptor

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

¾ dup2(oldfd,newfd) - duplicate to a desired file descriptor


¾ fcntl(filedes,cmd,arg) - change properties of an open file
¾ ioctl(filedes,request,arg) - change the behaviour of an open file
The difference between fcntl anf ioctl is that the former is intended for any open file,
while the latter is for device-specific operations.

5. How do you change File Access Permissions?


Every file has following attributes:
¾ owner's user ID ( 16 bit integer )
¾ owner's group ID ( 16 bit integer )
¾ File access mode word
'r w x -r w x- r w x'
(user permission-group permission-others permission)
r-read, w-write, x-execute
To change the access mode, we use chmod(filename,mode).
Example 1:
To change mode of myfile to 'rw-rw-r--' (ie. read, write permission for user -
read,write permission for group - only read permission for others) we give the args
as:
chmod(myfile,0664) .
Each operation is represented by discrete values
'r' is 4
'w' is 2
'x' is 1
Therefore, for 'rw' the value is 6(4+2).
Example 2:
To change mode of myfile to 'rwxr--r--' we give the args as:
chmod(myfile,0744).

6. What are links and symbolic links in UNIX file system?


A link is a second name (not a file) for a file. Links can be used to assign more
than one name to a file, but cannot be used to assign a directory more than one name
or link filenames on different computers.
Symbolic link 'is' a file that only contains the name of another file.Operation
on the symbolic link is directed to the file pointed by the it.Both the limitations of
links are eliminated in symbolic links.
Commands for linking files are:
Link ln filename1 filename2
Symbolic link ln -s filename1 filename2

7. What is a FIFO?
FIFO are otherwise called as 'named pipes'. FIFO (first-in-first-out) is a
special file which is said to be data transient. Once data is read from named pipe, it
cannot be read again. Also, data can be read only in the order written. It is used in
interprocess communication where a process writes to one end of the pipe (producer)
and the other reads from the other end (consumer).

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

8. How do you create special files like named pipes and device files?
The system call mknod creates special files in the following sequence.
1. kernel assigns new inode,
2. sets the file type to indicate that the file is a pipe, directory or special file,
3. If it is a device file, it makes the other entries like major, minor device numbers.
For example:
If the device is a disk, major device number refers to the disk controller and
minor device number is the disk.

9. Discuss the mount and unmount system calls


The privileged mount system call is used to attach a file system to a directory
of another file system; the unmount system call detaches a file system. When you
mount another file system on to your directory, you are essentially splicing one
directory tree onto a branch in another directory tree. The first argument to mount call
is the mount point, that is , a directory in the current file naming system. The second
argument is the file system to mount to that point. When you insert a cdrom to your
unix system's drive, the file system in the cdrom automatically mounts to /dev/cdrom
in your system.

10. How does the inode map to data block of a file?


Inode has 13 block addresses. The first 10 are direct block addresses of the
first 10 data blocks in the file. The 11th address points to a one-level index block. The
12th address points to a two-level (double in-direction) index block. The 13th address
points to a three-level(triple in-direction)index block. This provides a very large
maximum file size with efficient access to large files, but also small files are accessed
directly in one disk read.

11. What is a shell?


A shell is an interactive user interface to an operating system services that allows an
user to enter commands as character strings or through a graphical user interface. The
shell converts them to system calls to the OS or forks off a process to execute the
command. System call results and other information from the OS are presented to the
user through an interactive interface. Commonly used shells are sh,csh,ks etc.

SECTION - II
PROCESS MODEL and IPC

1. Brief about the initial process sequence while the system boots up.
While booting, special process called the 'swapper' or 'scheduler' is created
with Process-ID 0. The swapper manages memory allocation for processes and
influences CPU allocation. The swapper inturn creates 3 children:
¾ the process dispatcher,
¾ vhand and
¾ dbflush
with IDs 1,2 and 3 respectively.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

This is done by executing the file /etc/init. Process dispatcher gives birth to
the shell. Unix keeps track of all the processes in an internal data structure called the
Process Table (listing command is ps -el).

2. What are various IDs associated with a process?


Unix identifies each process with a unique integer called ProcessID. The
process that executes the request for creation of a process is called the 'parent process'
whose PID is 'Parent Process ID'. Every process is associated with a particular user
called the 'owner' who has privileges over the process. The identification for the user
is 'UserID'. Owner is the user who executes the process. Process also has 'Effective
User ID' which determines the access privileges for accessing resources like files.
getpid() -process id
getppid() -parent process id
getuid() -user id
geteuid() -effective user id

3. Explain fork() system call.


The `fork()' used to create a new process from an existing process. The new
process is called the child process, and the existing process is called the parent. We
can tell which is which by checking the return value from `fork()'. The parent gets the
child's pid returned to him, but the child gets 0 returned to him.

4. Predict the output of the following program code


main()
{
fork();
printf("Hello World!");
}
Answer:
Hello World!Hello World!
Explanation:
The fork creates a child that is a duplicate of the parent process. The child
begins from the fork().All the statements after the call to fork() will be executed
twice.(once by the parent process and other by child). The statement before fork() is
executed only by the parent process.

5. Predict the output of the following program code


main()
{
fork(); fork(); fork();
printf("Hello World!");
}
Answer:
"Hello World" will be printed 8 times.
Explanation:
2^n times where n is the number of calls to fork()

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

6. List the system calls used for process management:


System calls Description
fork() To create a new process
exec() To execute a new program in a process
wait() To wait until a created process completes its execution
exit() To exit from a process execution
getpid() To get a process identifier of the current process
getppid() To get parent process identifier
nice() To bias the existing priority of a process
brk() To increase/decrease the data segment size of a process

7. How can you get/set an environment variable from a program?


Getting the value of an environment variable is done by using `getenv()'.
Setting the value of an environment variable is done by using `putenv()'.

8. How can a parent and child process communicate?


A parent and child can communicate through any of the normal inter-process
communication schemes (pipes, sockets, message queues, shared memory), but also
have some special ways to communicate that take advantage of their relationship as a
parent and child. One of the most obvious is that the parent can get the exit status of
the child.

9. What is a zombie?
When a program forks and the child finishes before the parent, the kernel still
keeps some of its information about the child in case the parent might need it - for
example, the parent may need to check the child's exit status. To be able to get this
information, the parent calls `wait()'; In the interval between the child terminating and
the parent calling `wait()', the child is said to be a `zombie' (If you do `ps', the child
will have a `Z' in its status field to indicate this.)

10. What are the process states in Unix?


As a process executes it changes state according to its circumstances. Unix
processes have the following states:
Running : The process is either running or it is ready to run .
Waiting : The process is waiting for an event or for a resource.
Stopped : The process has been stopped, usually by receiving a signal.
Zombie : The process is dead but have not been removed from the process
table.

11. What Happens when you execute a program?


When you execute a program on your UNIX system, the system creates a
special environment for that program. This environment contains everything needed
for the system to run the program as if no other program were running on the system.
Each process has process context, which is everything that is unique about the state of
the program you are currently running. Every time you execute a program the UNIX

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

system does a fork, which performs a series of operations to create a process context
and then execute your program in that context. The steps include the following:
¾ Allocate a slot in the process table, a list of currently running programs kept by
UNIX.
¾ Assign a unique process identifier (PID) to the process.
¾ iCopy the context of the parent, the process that requested the spawning of the
new process.
¾ Return the new PID to the parent process. This enables the parent process to
examine or control the process directly.
After the fork is complete, UNIX runs your program.

12. What Happens when you execute a command?


When you enter 'ls' command to look at the contents of your current working
directory, UNIX does a series of things to create an environment for ls and the run it:
The shell has UNIX perform a fork. This creates a new process that the shell will use
to run the ls program. The shell has UNIX perform an exec of the ls program. This
replaces the shell program and data with the program and data for ls and then starts
running that new program. The ls program is loaded into the new process context,
replacing the text and data of the shell. The ls program performs its task, listing the
contents of the current directory.

13. What is a Daemon?


A daemon is a process that detaches itself from the terminal and runs,
disconnected, in the background, waiting for requests and responding to them. It can
also be defined as the background process that does not belong to a terminal session.
Many system functions are commonly performed by daemons, including the sendmail
daemon, which handles mail, and the NNTP daemon, which handles USENET news.
Many other daemons may exist. Some of the most common daemons are:
¾ init: Takes over the basic running of the system when the kernel has finished the
boot process.
¾ inetd: Responsible for starting network services that do not have their own stand-
alone daemons. For example, inetd usually takes care of incoming rlogin, telnet,
and ftp connections.
¾ cron: Responsible for running repetitive tasks on a regular schedule.

14. What is 'ps' command for?


The ps command prints the process status for some or all of the running
processes. The information given are the process identification number (PID),the
amount of time that the process has taken to execute so far etc.

15. How would you kill a process?


The kill command takes the PID as one argument; this identifies which
process to terminate. The PID of a process can be got using 'ps' command.

16. What is an advantage of executing a process in background?


The most common reason to put a process in the background is to allow you to

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

do something else interactively without waiting for the process to complete. At the
end of the command you add the special background symbol, &. This symbol tells
your shell to execute the given command in the background.
Example: cp *.* ../backup& (cp is for copy)

17. How do you execute one program from within another?


The system calls used for low-level process creation are execlp() and
execvp(). The execlp call overlays the existing program with the new one , runs that
and exits. The original program gets back control only when an error occurs.
execlp(path,file_name,arguments..); //last argument must be NULL
A variant of execlp called execvp is used when the number of arguments is not known
in advance.
execvp(path,argument_array); //argument array should be terminated by
NULL

18. What is IPC? What are the various schemes available?


The term IPC (Inter-Process Communication) describes various ways by
which different process running on some operating system communicate between
each other. Various schemes available are as follows:
Pipes:
One-way communication scheme through which different process can
communicate. The problem is that the two processes should have a common
ancestor (parent-child relationship). However this problem was fixed with the
introduction of named-pipes (FIFO).

Message Queues :
Message queues can be used between related and unrelated processes
running on a machine.

Shared Memory:
This is the fastest of all IPC schemes. The memory to be shared is
mapped into the address space of the processes (that are sharing). The speed
achieved is attributed to the fact that there is no kernel involvement. But this
scheme needs synchronization.

Various forms of synchronisation are mutexes, condition-variables, read-write


locks, record-locks, and semaphores.

SECTION - III
MEMORY MANAGEMENT

1. What is the difference between Swapping and Paging?


Swapping:
Whole process is moved from the swap device to the main memory for execution. Process size must be
less than or equal to the available main memory. It is easier to implementation and overhead to the system. Swapping systems
does not handle the memory more flexibly as compared to the paging systems.

Paging:

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

Only the required memory pages are moved to main memory from the
swap device for execution. Process size does not matter. Gives the concept of the
virtual memory.
It provides greater flexibility in mapping the virtual address space into the

physical memory of the machine. Allows more number of processes to fit in the

main memory simultaneously. Allows the greater process size than the available

physical memory. Demand paging systems handle the memory more flexibly.

2. What is major difference between the Historic Unix and the new BSD release of
Unix System V in terms of Memory Management?
Historic Unix uses Swapping – entire process is transferred to the main
memory from the swap device, whereas the Unix System V uses Demand Paging –
only the part of the process is moved to the main memory. Historic Unix uses one
Swap Device and Unix System V allow multiple Swap Devices.

3. What is the main goal of the Memory Management?


¾ It decides which process should reside in the main memory,
¾ Manages the parts of the virtual address space of a process which is non-core
resident,
¾ Monitors the available main memory and periodically write the processes into the
swap device to provide more processes fit in the main memory simultaneously.

4. What is a Map?
A Map is an Array, which contains the addresses of the free space in the swap
device that are allocatable resources, and the number of the resource units available
there.
Address Units
1 10,000

This allows First-Fit allocation of contiguous blocks of a resource. Initially the


Map contains one entry – address (block offset from the starting of the swap area) and
the total number of resources.
Kernel treats each unit of Map as a group of disk blocks. On the allocation and
freeing of the resources Kernel updates the Map for accurate information.

5. What scheme does the Kernel in Unix System V follow while choosing a swap
device among the multiple swap devices?
Kernel follows Round Robin scheme choosing a swap device among the
multiple swap devices in Unix System V.

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

6. What is a Region?
A Region is a continuous area of a process’s address space (such as text, data
and stack). The kernel in a ‘Region Table’ that is local to the process maintains
region. Regions are sharable among the process.

7. What are the events done by the Kernel after a process is being swapped out from
the main memory?
When Kernel swaps the process out of the primary memory, it performs the
following:
¾ Kernel decrements the Reference Count of each region of the process. If
the reference count becomes zero, swaps the region out of the main
memory,
¾ Kernel allocates the space for the swapping process in the swap device,
¾ Kernel locks the other swapping process while the current swapping
operation is going on,
¾ The Kernel saves the swap address of the region in the region table.

8. Is the Process before and after the swap are the same? Give reason.
Process before swapping is residing in the primary memory in its original
form. The regions (text, data and stack) may not be occupied fully by the process,
there may be few empty slots in any of the regions and while swapping Kernel do not
bother about the empty slots while swapping the process out.
After swapping the process resides in the swap (secondary memory) device.
The regions swapped out will be present but only the occupied region slots but not the
empty slots that were present before assigning.
While swapping the process once again into the main memory, the Kernel referring to the Process Memory Map, it
assigns the main memory accordingly taking care of the empty slots in the regions.

9. What do you mean by u-area (user area) or u-block?


This contains the private data that is manipulated only by the Kernel. This is
local to the Process, i.e. each process is allocated a u-area.

10. What are the entities that are swapped out of the main memory while swapping
the process out of the main memory?
All memory space occupied by the process, process’s u-area, and Kernel stack
are swapped out, theoretically.
Practically, if the process’s u-area contains the Address Translation Tables for
the process then Kernel implementations do not swap the u-area.

11. What is Fork swap?


fork() is a system call to create a child process. When the parent process calls
fork() system call, the child process is created and if there is short of memory then the
child process is sent to the read-to-run state in the swap device, and return to the user
state without swapping the parent process. When the memory will be available the
child process will be swapped into the main memory.

12. What is Expansion swap?

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

At the time when any process requires more memory than it is currently
allocated, the Kernel performs Expansion swap. To do this Kernel reserves enough
space in the swap device. Then the address translation mapping is adjusted for the
new virtual address space but the physical memory is not allocated. At last Kernel
swaps the process into the assigned space in the swap device. Later when the Kernel
swaps the process into the main memory this assigns memory according to the new
address translation mapping.

13. How the Swapper works?


The swapper is the only process that swaps the processes. The Swapper
operates only in the Kernel mode and it does not uses System calls instead it uses
internal Kernel functions for swapping. It is the archetype of all kernel process.

14. What are the processes that are not bothered by the swapper? Give Reason.
¾ Zombie process: They do not take any up physical memory.
¾ Processes locked in memories that are updating the region of the process.
¾ Kernel swaps only the sleeping processes rather than the ‘ready-to-run’
processes, as they have the higher probability of being scheduled than the
Sleeping processes.

15. What are the requirements for a swapper to work?


The swapper works on the highest scheduling priority. Firstly it will look for
any sleeping process, if not found then it will look for the ready-to-run process for
swapping. But the major requirement for the swapper to work the ready-to-run
process must be core-resident for at least 2 seconds before swapping out. And for
swapping in the process must have been resided in the swap device for at least 2
seconds. If the requirement is not satisfied then the swapper will go into the wait state
on that event and it is awaken once in a second by the Kernel.

16. What are the criteria for choosing a process for swapping into memory from the
swap device?
The resident time of the processes in the swap device, the priority of the
processes and the amount of time the processes had been swapped out.

17. What are the criteria for choosing a process for swapping out of the memory to
the swap device?
¾ The process’s memory resident time,
¾ Priority of the process and
¾ The nice value.

18. What do you mean by nice value?


Nice value is the value that controls {increments or decrements} the priority
of the process. This value that is returned by the nice () system call. The equation for
using nice value is:
Priority = (“recent CPU usage”/constant) + (base- priority) + (nice value)

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

Only the administrator can supply the nice value. The nice () system call
works for the running process only. Nice value of one process cannot affect the nice
value of the other process.

19. What are conditions on which deadlock can occur while swapping the processes?
¾ All processes in the main memory are asleep.
¾ All ‘ready-to-run’ processes are swapped out.
¾ There is no space in the swap device for the new incoming process that are
swapped out of the main memory.
¾ There is no space in the main memory for the new incoming process.

20. What are conditions for a machine to support Demand Paging?


¾ Memory architecture must based on Pages,
¾ The machine must support the ‘restartable’ instructions.

21. What is ‘the principle of locality’?


It’s the nature of the processes that they refer only to the small subset of the
total data space of the process. i.e. the process frequently calls the same subroutines
or executes the loop instructions.

22. What is the working set of a process?


The set of pages that are referred by the process in the last ‘n’, references,
where ‘n’ is called the window of the working set of the process.

23. What is the window of the working set of a process?


The window of the working set of a process is the total number in which the
process had referred the set of pages in the working set of the process.

24. What is called a page fault?


Page fault is referred to the situation when the process addresses a page in the
working set of the process but the process fails to locate the page in the working set.
And on a page fault the kernel updates the working set by reading the page from the
secondary device.

25. What are data structures that are used for Demand Paging?
Kernel contains 4 data structures for Demand paging. They are,
¾ Page table entries,
¾ Disk block descriptors,
¾ Page frame data table (pfdata),
¾ Swap-use table.

26. What are the bits that support the demand paging?
Valid, Reference, Modify, Copy on write, Age. These bits are the part of the
page table entry, which includes physical address of the page and protection bits.

Page address Age Copy on write Modify Reference Valid Protection

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

27. How the Kernel handles the fork() system call in traditional Unix and in the
System V Unix, while swapping?
Kernel in traditional Unix, makes the duplicate copy of the parent’s address
space and attaches it to the child’s process, while swapping. Kernel in System V
Unix, manipulates the region tables, page table, and pfdata table entries, by
incrementing the reference count of the region table of shared regions.

28. Difference between the fork() and vfork() system call?


During the fork() system call the Kernel makes a copy of the parent process’s
address space and attaches it to the child process.
But the vfork() system call do not makes any copy of the parent’s address
space, so it is faster than the fork() system call. The child process as a result of the
vfork() system call executes exec() system call. The child process from vfork()
system call executes in the parent’s address space (this can overwrite the parent’s data
and stack ) which suspends the parent process until the child process exits.

29. What is BSS(Block Started by Symbol)?


A data representation at the machine level, that has initial values when a
program starts and tells about how much space the kernel allocates for the un-
initialized data. Kernel initializes it to zero at run-time.

30. What is Page-Stealer process?


This is the Kernel process that makes rooms for the incoming pages, by
swapping the memory pages that are not the part of the working set of a process.
Page-Stealer is created by the Kernel at the system initialization and invokes it
throughout the lifetime of the system. Kernel locks a region when a process faults on
a page in the region, so that page stealer cannot steal the page, which is being faulted
in.

31. Name two paging states for a page in memory?


The two paging states are:
¾ The page is aging and is not yet eligible for swapping,
¾ The page is eligible for swapping but not yet eligible for reassignment to other
virtual address space.

32. What are the phases of swapping a page from the memory?
¾ Page stealer finds the page eligible for swapping and places the page
number in the list of pages to be swapped.
¾ Kernel copies the page to a swap device when necessary and clears the
valid bit in the page table entry, decrements the pfdata reference count,
and places the pfdata table entry at the end of the free list if its reference
count is 0.

33. What is page fault? Its types?

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Page fault refers to the situation of not having a page in the main memory
when any process references it.
There are two types of page fault :
¾ Validity fault,
¾ Protection fault.

34. In what way the Fault Handlers and the Interrupt handlers are different?
Fault handlers are also an interrupt handler with an exception that the interrupt
handlers cannot sleep. Fault handlers sleep in the context of the process that caused
the memory fault. The fault refers to the running process and no arbitrary processes
are put to sleep.

35. What is validity fault?


If a process referring a page in the main memory whose valid bit is not set, it
results in validity fault.
The valid bit is not set for those pages:
¾ that are outside the virtual address space of a process,
¾ that are the part of the virtual address space of the process but no physical address
is assigned to it.

36. What does the swapping system do if it identifies the illegal page for swapping?
If the disk block descriptor does not contain any record of the faulted page,
then this causes the attempted memory reference is invalid and the kernel sends a
“Segmentation violation” signal to the offending process. This happens when the
swapping system identifies any invalid memory reference.

37. What are states that the page can be in, after causing a page fault?
¾ On a swap device and not in memory,
¾ On the free page list in the main memory,
¾ In an executable file,
¾ Marked “demand zero”,
¾ Marked “demand fill”.

38. In what way the validity fault handler concludes?


¾ It sets the valid bit of the page by clearing the modify bit.
¾ It recalculates the process priority.

39. At what mode the fault handler executes?


At the Kernel Mode.

40. What do you mean by the protection fault?


Protection fault refers to the process accessing the pages, which do not have
the access permission. A process also incur the protection fault when it attempts to
write a page whose copy on write bit was set during the fork() system call.

41. How the Kernel handles the copy on write bit of a page, when the bit is set?

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

In situations like, where the copy on write bit of a page is set and that page is
shared by more than one process, the Kernel allocates new page and copies the
content to the new page and the other processes retain their references to the old page.
After copying the Kernel updates the page table entry with the new page number.
Then Kernel decrements the reference count of the old pfdata table entry.
In cases like, where the copy on write bit is set and no processes are sharing
the page, the Kernel allows the physical page to be reused by the processes. By doing
so, it clears the copy on write bit and disassociates the page from its disk copy (if one
exists), because other process may share the disk copy. Then it removes the pfdata
table entry from the page-queue as the new copy of the virtual page is not on the swap
device. It decrements the swap-use count for the page and if count drops to 0, frees
the swap space.

42. For which kind of fault the page is checked first?


The page is first checked for the validity fault, as soon as it is found that the
page is invalid (valid bit is clear), the validity fault handler returns immediately, and
the process incur the validity page fault. Kernel handles the validity fault and the
process will incur the protection fault if any one is present.

43. In what way the protection fault handler concludes?


After finishing the execution of the fault handler, it sets the modify and
protection bits and clears the copy on write bit. It recalculates the process-priority and
checks for signals.

44. How the Kernel handles both the page stealer and the fault handler?
The page stealer and the fault handler thrash because of the shortage of the
memory. If the sum of the working sets of all processes is greater that the physical
memory then the fault handler will usually sleep because it cannot allocate pages for a
process. This results in the reduction of the system throughput because Kernel spends
too much time in overhead, rearranging the memory in the frantic pace.

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

Data Structure
1. What is data structure?
A data structure is a way of organizing data that considers not only the items
stored, but also their relationship to each other. Advance knowledge about the
relationship between data items allows designing of efficient algorithms for the
manipulation of data.

2. List out the areas in which data structures are applied extensively?
¾ Compiler Design,
¾ Operating System,
¾ Database Management System,
¾ Statistical analysis package,
¾ Numerical Analysis,
¾ Graphics,
¾ Artificial Intelligence,
¾ Simulation

3. What are the major data structures used in the following areas : RDBMS,
Network data model & Hierarchical data model.
¾ RDBMS – Array (i.e. Array of structures)
¾ Network data model – Graph
¾ Hierarchical data model – Trees

4. If you are using C language to implement the heterogeneous linked list, what
pointer type will you use?
The heterogeneous linked list contains different data types in its nodes and we
need a link, pointer to connect them. It is not possible to use ordinary pointers for this.
So we go for void pointer. Void pointer is capable of storing pointer to any type as it
is a generic pointer type.

5. Minimum number of queues needed to implement the priority queue?


Two. One queue is used for actual storing of data and another for storing
priorities.

6. What is the data structures used to perform recursion?


Stack. Because of its LIFO (Last In First Out) property it remembers its
‘caller’ so knows whom to return when the function has to return. Recursion makes
use of system stack for storing the return addresses of the function calls.
Every recursive function has its equivalent iterative (non-recursive) function.
Even when such equivalent iterative procedures are written, explicit stack is to be
used.

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

7. What are the notations used in Evaluation of Arithmetic Expressions using prefix
and postfix forms?
Polish and Reverse Polish notations.

8. Convert the expression ((A + B) * C – (D – E) ^ (F + G)) to equivalent Prefix


and Postfix notations.
Prefix Notation:
^ - * +ABC - DE + FG
Postfix Notation:
AB + C * DE - - FG + ^

9. Sorting is not possible by using which of the following methods?


(a) Insertion
(b) Selection
(c) Exchange
(d) Deletion

(d) Deletion.
Using insertion we can perform insertion sort, using selection we can perform
selection sort, using exchange we can perform the bubble sort (and other similar
sorting methods). But no sorting method can be done just using deletion.

10. A binary tree with 20 nodes has null branches?


21
Let us take a tree with 5 nodes (n=5)

Null Branches

It will have only 6 (ie,5+1) null branches. In general,


A binary tree with n nodes has exactly n+1 null nodes.

11. What are the methods available in storing sequential files ?


¾ Straight merging,
¾ Natural merging,
¾ Polyphase sort,
¾ Distribution of Initial runs.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

12. How many different trees are possible with 10 nodes ?


1014
For example, consider a tree with 3 nodes(n=3), it will have the maximum
combination of 5 different (ie, 23 - 3 = 5) trees.

i ii iii iv v

In general:
If there are n nodes, there exist 2n-n different trees.

13. List out few of the Application of tree data-structure?


¾ The manipulation of Arithmetic expression,
¾ Symbol Table construction,
¾ Syntax analysis.

14. List out few of the applications that make use of Multilinked Structures?
¾ Sparse matrix,
¾ Index generation.

15. In tree construction which is the suitable efficient data structure?


(a) Array (b) Linked list (c) Stack (d) Queue (e) none

(b) Linked list

16. What is the type of the algorithm used in solving the 8 Queens problem?
Backtracking

17. In an AVL tree, at what condition the balancing is to be done?


If the ‘pivotal value’ (or the ‘Height factor’) is greater than 1 or less than –1.

18. What is the bucket size, when the overlapping and collision occur at same time?
One. If there is only one entry possible in the bucket, when the collision
occurs, there is no way to accommodate the colliding value. This results in the
overlapping of values.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

19. Traverse the given tree using Inorder, Preorder and Postorder traversals.

Given tree:
A

B C

D E F G

H I J

¾ Inorder : D H B E A F C I G J
¾ Preorder: A B D H E C F G I J
¾ Postorder: H D E B F I J G C A

20. There are 8, 15, 13, 14 nodes were there in 4 different trees. Which of them could
have formed a full binary tree?
15.
In general:
There are 2n-1 nodes in a full binary tree.
By the method of elimination:
Full binary trees contain odd number of nodes. So there cannot be full
binary trees with 8 or 14 nodes, so rejected. With 13 nodes you can form a complete
binary tree but not a full binary tree. So the correct answer is 15.
Note:
Full and Complete binary trees are different. All full binary trees are complete
binary trees but not vice versa.

21. In the given binary tree, using array you can store the node 4 at which location?

2 3

Freshersworld.com
5 Resource Center
4
First Job…. Dream Job…. Freshersworld.com

At location 6

1 2 3 - - 4 - - 5

Root LC1 RC1 LC2 RC2 LC3 RC3 LC4 RC4

where LCn means Left Child of node n and RCn means Right Child of node n

22. Sort the given values using Quick Sort?

65 70 75 80 85 60 55 50 45

Sorting takes place from the pivot value, which is the first value of the given
elements, this is marked bold. The values at the left pointer and right pointer are
indicated using L and R respectively.

65 70L 75 80 85 60 55 50 45R

Since pivot is not yet changed the same process is continued after interchanging the
values at L and R positions

65 45 75 L 80 85 60 55 50 R 70

65 45 50 80 L 85 60 55 R 75 70

65 45 50 55 85 L 60 R 80 75 70

65 45 50 55 60 R 85 L 80 75 70

When the L and R pointers cross each other the pivot value is interchanged with the
value at right pointer. If the pivot is changed it means that the pivot has occupied its
original position in the sorted order (shown in bold italics) and hence two different
arrays are formed, one from start of the original array to the pivot position-1 and the
other from pivot position+1 to end.

60 L 45 50 55 R 65 85 L 80 75 70 R

55 L 45 50 R 60 65 70 R 80 L 75 85

50 L 45 R 55 60 65 70 80 L 75 R 85

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

In the next pass we get the sorted form of the array.

45 50 55 60 65 70 75 80 85

23. For the given graph, draw the DFS and BFS?

The given graph:

¾ BFS: AXGHPEMYJ

¾ DFS: AXHPEYMJG

24. Classify the Hashing Functions based on the various methods by which the key
value is found.
¾ Direct method,
¾ Subtraction method,
¾ Modulo-Division method,
¾ Digit-Extraction method,
¾ Mid-Square method,
¾ Folding method,
¾ Pseudo-random method.

25. What are the types of Collision Resolution Techniques and the methods used in
each of the type?
¾ Open addressing (closed hashing),
The methods used include:
Overflow block,
¾ Closed addressing (open hashing)
The methods used include:
Linked list,
Binary tree…

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

26. In RDBMS, what is the efficient data structure used in the internal storage
representation?
B+ tree. Because in B+ tree, all the data is stored only in leaf nodes, that
makes searching easier. This corresponds to the records that shall be stored in leaf
nodes.

27. Draw the B-tree of order 3 created by inserting the following data arriving in
sequence – 92 24 6 7 11 8 22 4 5 16 19 20 78

11 -

5 7 19 24

4 - 6 - 8 - 16 - 20 22 78 92

28. Of the following tree structure, which is, efficient considering space
and time complexities?
(a) Incomplete Binary Tree
(b) Complete Binary Tree
(c) Full Binary Tree

(b) Complete Binary Tree.


By the method of elimination:
Full binary tree loses its nature when operations of insertions and
deletions are done. For incomplete binary trees, extra storage is required and
overhead of NULL node checking takes place. So complete binary tree is the better
one since the property of complete binary tree is maintained even after operations like
additions and deletions are done on it.

29. What is a spanning Tree?


A spanning tree is a tree associated with a network. All the nodes of the graph
appear on the tree once. A minimum spanning tree is a spanning tree organized so
that the total edge weight between nodes is minimized.

30. Does the minimum spanning tree of a graph give the shortest distance between
any 2 specified nodes?
No.
Minimal spanning tree assures that the total weight of the tree is kept at its
minimum. But it doesn’t mean that the distance between any two nodes involved in
the minimum-spanning tree is minimum.

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

31. Convert the given graph with weighted edges to minimal spanning tree.

600
1 3 200
612
410 310
2985 5

400
2 4
1421

the equivalent minimal spanning tree is:

1 3

200
410 612 310

2 4 5

32. Which is the simplest file structure?


(a) Sequential
(b) Indexed
(c) Random
(a) Sequential

33. Whether Linked List is linear or Non-linear data structure?


According to Access strategies Linked list is a linear one.
According to Storage Linked List is a Non-linear one.

34. Draw a binary Tree for the expression :


A * B - (C + D) * (P / Q)

* *

A B + /

Freshersworld.com Resource Center


C 8 D P Q
First Job…. Dream Job…. Freshersworld.com

35. For the following COBOL code, draw the Binary tree?

01 STUDENT_REC.
02 NAME.
03 FIRST_NAME PIC X(10).
03 LAST_NAME PIC X(10).

02 YEAR_OF_STUDY.
03 FIRST_SEM PIC XX.
03 SECOND_SEM PIC XX.

01
STUDENT_REC

02 02
NAME YEAR OF STUDY

03 03 03 03
FIRST NAME LAST NAME FIRST SEM SECOND SEM

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

Operating Systems
Following are a few basic questions that cover the essentials of OS:

1. Explain the concept of Reentrancy.


It is a useful, memory-saving technique for multiprogrammed timesharing
systems. A Reentrant Procedure is one in which multiple users can share a single
copy of a program during the same period. Reentrancy has 2 key aspects: The
program code cannot modify itself, and the local data for each user process must be
stored separately. Thus, the permanent part is the code, and the temporary part is the
pointer back to the calling program and local variables used by that program. Each
execution instance is called activation. It executes the code in the permanent part, but
has its own copy of local variables/parameters. The temporary part associated with
each activation is the activation record. Generally, the activation record is kept on the
stack.
Note: A reentrant procedure can be interrupted and called by an interrupting
program, and still execute correctly on returning to the procedure.

2. Explain Belady's Anomaly.


Also called FIFO anomaly. Usually, on increasing the number of frames
allocated to a process' virtual memory, the process execution is faster, because fewer
page faults occur. Sometimes, the reverse happens, i.e., the execution time increases
even when more frames are allocated to the process. This is Belady's Anomaly. This
is true for certain page reference patterns.

3. What is a binary semaphore? What is its use?


A binary semaphore is one, which takes only 0 and 1 as values. They are used
to implement mutual exclusion and synchronize concurrent processes.

4. What is thrashing?
It is a phenomenon in virtual memory schemes when the processor spends
most of its time swapping pages, rather than executing instructions. This is due to an
inordinate number of page faults.

5. List the Coffman's conditions that lead to a deadlock.


¾ Mutual Exclusion: Only one process may use a critical resource at a time.
¾ Hold & Wait: A process may be allocated some resources while waiting for
others.
¾ No Pre-emption: No resource can be forcible removed from a process holding it.
¾ Circular Wait: A closed chain of processes exist such that each process holds at
least one resource needed by another process in the chain.

6. What are short-, long- and medium-term scheduling?

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

Long term scheduler determines which programs are admitted to the system
for processing. It controls the degree of multiprogramming. Once admitted, a job
becomes a process.
Medium term scheduling is part of the swapping function. This relates to
processes that are in a blocked or suspended state. They are swapped out of real-
memory until they are ready to execute. The swapping-in decision is based on
memory-management criteria.
Short term scheduler, also know as a dispatcher executes most frequently, and
makes the finest-grained decision of which process should execute next. This
scheduler is invoked whenever an event occurs. It may lead to interruption of one
process by preemption.

7. What are turnaround time and response time?


Turnaround time is the interval between the submission of a job and its
completion. Response time is the interval between submission of a request, and the
first response to that request.

8. What are the typical elements of a process image?


¾ User data: Modifiable part of user space. May include program data, user stack
area, and programs that may be modified.
¾ User program: The instructions to be executed.
¾ System Stack: Each process has one or more LIFO stacks associated with it. Used
to store parameters and calling addresses for procedure and system calls.
¾ Process control Block (PCB): Info needed by the OS to control processes.

9. What is the Translation Lookaside Buffer (TLB)?


In a cached system, the base addresses of the last few referenced pages is
maintained in registers called the TLB that aids in faster lookup. TLB contains those
page-table entries that have been most recently used. Normally, each virtual memory
reference causes 2 physical memory accesses-- one to fetch appropriate page-table
entry, and one to fetch the desired data. Using TLB in-between, this is reduced to just
one physical memory access in cases of TLB-hit.

10. What is the resident set and working set of a process?


Resident set is that portion of the process image that is actually in real-
memory at a particular instant. Working set is that subset of resident set that is
actually needed for execution. (Relate this to the variable-window size method for
swapping techniques.)

11. When is a system in safe state?


The set of dispatchable processes is in a safe state if there exists at least one
temporal order in which all processes can be run to completion without resulting in a
deadlock.

12. What is cycle stealing?

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

We encounter cycle stealing in the context of Direct Memory Access (DMA).


Either the DMA controller can use the data bus when the CPU does not need it, or it
may force the CPU to temporarily suspend operation. The latter technique is called
cycle stealing. Note that cycle stealing can be done only at specific break points in an
instruction cycle.

13. What is meant by arm-stickiness?


If one or a few processes have a high access rate to data on one track of a
storage disk, then they may monopolize the device by repeated requests to that track.
This generally happens with most common device scheduling algorithms (LIFO,
SSTF, C-SCAN, etc). High-density multisurface disks are more likely to be affected
by this than low density ones.

14. What are the stipulations of C2 level security?


C2 level security provides for:
¾ Discretionary Access Control
¾ Identification and Authentication
¾ Auditing
¾ Resource reuse

15. What is busy waiting?


The repeated execution of a loop of code while waiting for an event to occur is
called busy-waiting. The CPU is not engaged in any real productive activity during
this period, and the process does not progress toward completion.

16. Explain the popular multiprocessor thread-scheduling strategies.


¾ Load Sharing: Processes are not assigned to a particular processor. A global
queue of threads is maintained. Each processor, when idle, selects a thread from
this queue. Note that load balancing refers to a scheme where work is allocated to
processors on a more permanent basis.
¾ Gang Scheduling: A set of related threads is scheduled to run on a set of
processors at the same time, on a 1-to-1 basis. Closely related threads / processes
may be scheduled this way to reduce synchronization blocking, and minimize
process switching. Group scheduling predated this strategy.
¾ Dedicated processor assignment: Provides implicit scheduling defined by
assignment of threads to processors. For the duration of program execution, each
program is allocated a set of processors equal in number to the number of threads
in the program. Processors are chosen from the available pool.
¾ Dynamic scheduling: The number of thread in a program can be altered during the
course of execution.

17. When does the condition 'rendezvous' arise?


In message passing, it is the condition in which, both, the sender and receiver
are blocked until the message is delivered.

18. What is a trap and trapdoor?

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

Trapdoor is a secret undocumented entry point into a program used to grant


access without normal methods of access authentication. A trap is a software
interrupt, usually the result of an error condition.

19. What are local and global page replacements?


Local replacement means that an incoming page is brought in only to the
relevant process' address space. Global replacement policy allows any page frame
from any process to be replaced. The latter is applicable to variable partitions model
only.

20. Define latency, transfer and seek time with respect to disk I/O.
Seek time is the time required to move the disk arm to the required track.
Rotational delay or latency is the time it takes for the beginning of the required sector
to reach the head. Sum of seek time (if any) and latency is the access time. Time
taken to actually transfer a span of data is transfer time.

21. Describe the Buddy system of memory allocation.


Free memory is maintained in linked lists, each of equal sized blocks. Any
such block is of size 2^k. When some memory is required by a process, the block size
of next higher order is chosen, and broken into two. Note that the two such pieces
differ in address only in their kth bit. Such pieces are called buddies. When any used
block is freed, the OS checks to see if its buddy is also free. If so, it is rejoined, and
put into the original free-block linked-list.

22. What is time-stamping?


It is a technique proposed by Lamport, used to order events in a distributed
system without the use of clocks. This scheme is intended to order events consisting
of the transmission of messages. Each system 'i' in the network maintains a counter
Ci. Every time a system transmits a message, it increments its counter by 1 and
attaches the time-stamp Ti to the message. When a message is received, the receiving
system 'j' sets its counter Cj to 1 more than the maximum of its current value and the
incoming time-stamp Ti. At each site, the ordering of messages is determined by the
following rules: For messages x from site i and y from site j, x precedes y if one of
the following conditions holds....(a) if Ti<Tj or (b) if Ti=Tj and i<j.

23. How are the wait/signal operations for monitor different from those for
semaphores?
If a process in a monitor signal and no task is waiting on the condition
variable, the signal is lost. So this allows easier program design. Whereas in
semaphores, every operation affects the value of the semaphore, so the wait and
signal operations should be perfectly balanced in the program.

24. In the context of memory management, what are placement and replacement
algorithms?

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

Placement algorithms determine where in available real-memory to load a


program. Common methods are first-fit, next-fit, best-fit. Replacement algorithms are
used when memory is full, and one process (or part of a process) needs to be swapped
out to accommodate a new program. The replacement algorithm determines which are
the partitions to be swapped out.

25. In loading programs into memory, what is the difference between load-time
dynamic linking and run-time dynamic linking?
For load-time dynamic linking: Load module to be loaded is read into
memory. Any reference to a target external module causes that module to be loaded
and the references are updated to a relative address from the start base address of the
application module.
With run-time dynamic loading: Some of the linking is postponed until actual
reference during execution. Then the correct module is loaded and linked.

26. What are demand- and pre-paging?


With demand paging, a page is brought into memory only when a location on
that page is actually referenced during execution. With pre-paging, pages other than
the one demanded by a page fault are brought in. The selection of such pages is done
based on common access patterns, especially for secondary memory devices.

27. Paging a memory management function, while multiprogramming a processor


management function, are the two interdependent?
Yes.

28. What is page cannibalizing?


Page swapping or page replacements are called page cannibalizing.

29. What has triggered the need for multitasking in PCs?


¾ Increased speed and memory capacity of microprocessors together with the
support fir virtual memory and
¾ Growth of client server computing

30. What are the four layers that Windows NT have in order to achieve
independence?
¾ Hardware abstraction layer
¾ Kernel
¾ Subsystems
¾ System Services.

31. What is SMP?


To achieve maximum efficiency and reliability a mode of operation known as
symmetric multiprocessing is used. In essence, with SMP any process or threads can
be assigned to any processor.

32. What are the key object oriented concepts used by Windows NT?

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

¾ Encapsulation
¾ Object class and instance

33. Is Windows NT a full blown object oriented operating system? Give reasons.
No Windows NT is not so, because its not implemented in object oriented
language and the data structures reside within one executive component and are not
represented as objects and it does not support object oriented capabilities .

34. What is a drawback of MVT?


It does not have the features like
¾ ability to support multiple processors
¾ virtual storage
¾ source level debugging

35. What is process spawning?


When the OS at the explicit request of another process creates a process, this
action is called process spawning.

36. How many jobs can be run concurrently on MVT?


15 jobs

37. List out some reasons for process termination.


¾ Normal completion
¾ Time limit exceeded
¾ Memory unavailable
¾ Bounds violation
¾ Protection error
¾ Arithmetic error
¾ Time overrun
¾ I/O failure
¾ Invalid instruction
¾ Privileged instruction
¾ Data misuse
¾ Operator or OS intervention
¾ Parent termination.

38. What are the reasons for process suspension?


¾ swapping
¾ interactive user request
¾ timing
¾ parent process request

39. What is process migration?


It is the transfer of sufficient amount of the state of process from one machine
to the target machine

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

40. What is mutant?


In Windows NT a mutant provides kernel mode or user mode mutual
exclusion with the notion of ownership.

41. What is an idle thread?


The special thread a dispatcher will execute when no ready thread is found.

42. What is FtDisk?


It is a fault tolerance disk driver for Windows NT.

43. What are the possible threads a thread can have?


¾ Ready
¾ Standby
¾ Running
¾ Waiting
¾ Transition
¾ Terminated.

44. What are rings in Windows NT?


Windows NT uses protection mechanism called rings provides by the process
to implement separation between the user mode and kernel mode.

45. What is Executive in Windows NT?


In Windows NT, executive refers to the operating system code that runs in
kernel mode.

46. What are the sub-components of I/O manager in Windows NT?


¾ Network redirector/ Server
¾ Cache manager.
¾ File systems
¾ Network driver
¾ Device driver

47. What are DDks? Name an operating system that includes this feature.
DDks are device driver kits, which are equivalent to SDKs for writing device
drivers. Windows NT includes DDks.

48. What level of security does Windows NT meets?


C2 level security.

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

Networking concepts

1. What are the two types of transmission technology available?


(i) Broadcast and (ii) point-to-point

2. What is subnet?
A generic term for section of a large networks usually separated by a bridge or
router.

3. Difference between the communication and transmission.


Transmission is a physical movement of information and concern issues like
bit polarity, synchronisation, clock etc.
Communication means the meaning full exchange of information between two
communication media.

4. What are the possible ways of data exchange?


(i) Simplex (ii) Half-duplex (iii) Full-duplex.

5. What is SAP?
Series of interface points that allow other computers to communicate with the
other layers of network protocol stack.

6. What do you meant by "triple X" in Networks?


The function of PAD (Packet Assembler Disassembler) is described in a
document known as X.3. The standard protocol has been defined between the
terminal and the PAD, called X.28; another standard protocol exists between hte PAD
and the network, called X.29. Together, these three recommendations are often called
"triple X"

7. What is frame relay, in which layer it comes?


Frame relay is a packet switching technology. It will operate in the data link
layer.

8. What is terminal emulation, in which layer it comes?


Telnet is also called as terminal emulation. It belongs to application layer.

9. What is Beaconing?
The process that allows a network to self-repair networks problems. The
stations on the network notify the other stations on the ring when they are not
receiving the transmissions. Beaconing is used in Token ring and FDDI networks.

10. What is redirector?


Redirector is software that intercepts file or prints I/O requests and translates
them into network requests. This comes under presentation layer.

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

11. What is NETBIOS and NETBEUI?


NETBIOS is a programming interface that allows I/O requests to be sent to
and received from a remote computer and it hides the networking hardware from
applications.
NETBEUI is NetBIOS extended user interface. A transport protocol designed
by microsoft and IBM for the use on small subnets.

12. What is RAID?


A method for providing fault tolerance by using multiple hard disk drives.

13. What is passive topology?


When the computers on the network simply listen and receive the signal, they
are referred to as passive because they don’t amplify the signal in any way. Example
for passive topology - linear bus.

14. What is Brouter?


Hybrid devices that combine the features of both bridges and routers.

15. What is cladding?


A layer of a glass surrounding the center fiber of glass inside a fiber-optic
cable.

16. What is point-to-point protocol


A communications protocol used to connect computers to remote networking
services including Internet service providers.

17. How Gateway is different from Routers?


A gateway operates at the upper levels of the OSI model and translates
information between two completely different network architectures or data formats

18. What is attenuation?


The degeneration of a signal over distance on a network cable is called
attenuation.

19. What is MAC address?


The address for a device as it is identified at the Media Access Control (MAC)
layer in the network architecture. MAC address is usually stored in ROM on the
network adapter card and is unique.

20. Difference between bit rate and baud rate.


Bit rate is the number of bits transmitted during one second whereas baud rate
refers to the number of signal units per second that are required to represent those
bits.
baud rate = bit rate / N
where N is no-of-bits represented by each signal shift.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

21. What is Bandwidth?


Every line has an upper limit and a lower limit on the frequency of signals it
can carry. This limited range is called the bandwidth.

22. What are the types of Transmission media?


Signals are usually transmitted over some transmission media that are broadly
classified in to two categories.
a) Guided Media:
These are those that provide a conduit from one device to another that
include twisted-pair, coaxial cable and fiber-optic cable. A signal traveling along any
of these media is directed and is contained by the physical limits of the medium.
Twisted-pair and coaxial cable use metallic that accept and transport signals in the
form of electrical current. Optical fiber is a glass or plastic cable that accepts and
transports signals in the form of light.
b) Unguided Media:
This is the wireless media that transport electromagnetic waves
without using a physical conductor. Signals are broadcast either through air. This is
done through radio communication, satellite communication and cellular telephony.

23. What is Project 802?


It is a project started by IEEE to set standards to enable intercommunication
between equipment from a variety of manufacturers. It is a way for specifying
functions of the physical layer, the data link layer and to some extent the network
layer to allow for interconnectivity of major LAN
protocols.
It consists of the following:
¾ 802.1 is an internetworking standard for compatibility of different LANs and
MANs across protocols.
¾ 802.2 Logical link control (LLC) is the upper sublayer of the data link layer which
is non-architecture-specific, that is remains the same for all IEEE-defined LANs.
¾ Media access control (MAC) is the lower sublayer of the data link layer that
contains some distinct modules each carrying proprietary information specific to
the LAN product being used. The modules are Ethernet LAN (802.3), Token ring
LAN (802.4), Token bus LAN (802.5).
¾ 802.6 is distributed queue dual bus (DQDB) designed to be used in MANs.

24. What is Protocol Data Unit?


The data unit in the LLC level is called the protocol data unit (PDU). The
PDU contains of four fields a destination service access point (DSAP), a source
service access point (SSAP), a control field and an information field. DSAP, SSAP
are addresses used by the LLC to identify the protocol stacks on the receiving and
sending machines that are generating and using the data. The control field specifies
whether the PDU frame is a information frame (I - frame) or a supervisory frame (S -
frame) or a unnumbered frame (U - frame).

25. What are the different type of networking / internetworking devices?

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

Repeater:
Also called a regenerator, it is an electronic device that operates only
at physical layer. It receives the signal in the network before it becomes weak,
regenerates the original bit pattern and puts the refreshed copy back in to the link.
Bridges:
These operate both in the physical and data link layers of LANs of
same type. They divide a larger network in to smaller segments. They contain logic
that allow them to keep the traffic for each segment separate and thus are repeaters
that relay a frame only the side of the segment containing the intended recipent and
control congestion.
Routers:
They relay packets among multiple interconnected networks (i.e.
LANs of different type). They operate in the physical, data link and network layers.
They contain software that enable them to determine which of the several possible
paths is the best for a particular transmission.
Gateways:
They relay packets among networks that have different protocols (e.g.
between a LAN and a WAN). They accept a packet formatted for one protocol and
convert it to a packet formatted for another protocol before forwarding it. They
operate in all seven layers of the OSI model.

26. What is ICMP?


ICMP is Internet Control Message Protocol, a network layer protocol of the
TCP/IP suite used by hosts and gateways to send notification of datagram problems
back to the sender. It uses the echo test / reply to test whether a destination is
reachable and responding. It also handles both control and error messages.

27. What are the data units at different layers of the TCP / IP protocol suite?
The data unit created at the application layer is called a message, at the
transport layer the data unit created is called either a segment or an user datagram, at
the network layer the data unit created is called the datagram, at the data link layer the
datagram is encapsulated in to a frame and finally transmitted as signals along the
transmission media.

28. What is difference between ARP and RARP?


The address resolution protocol (ARP) is used to associate the 32 bit IP
address with the 48 bit physical address, used by a host or a router to find the physical
address of another host on its network by sending a ARP query packet that includes
the IP address of the receiver.
The reverse address resolution protocol (RARP) allows a host to discover its
Internet address when it knows only its physical address.

29. What is the minimum and maximum length of the header in the TCP segment and
IP datagram?
The header should have a minimum length of 20 bytes and can have a
maximum length of 60 bytes.

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

30. What is the range of addresses in the classes of internet addresses?


Class A 0.0.0.0 - 127.255.255.255
Class B 128.0.0.0 - 191.255.255.255
Class C 192.0.0.0 - 223.255.255.255
Class D 224.0.0.0 - 239.255.255.255
Class E 240.0.0.0 - 247.255.255.255

31. What is the difference between TFTP and FTP application layer protocols?
The Trivial File Transfer Protocol (TFTP) allows a local host to obtain files
from a remote host but does not provide reliability or security. It uses the fundamental
packet delivery services offered by UDP.
The File Transfer Protocol (FTP) is the standard mechanism provided by TCP
/ IP for copying a file from one host to another. It uses the services offer by TCP and
so is reliable and secure. It establishes two connections (virtual circuits) between the
hosts, one for data transfer and another for control information.

32. What are major types of networks and explain?


¾ Server-based network
¾ Peer-to-peer network
Peer-to-peer network, computers can act as both servers sharing resources and
as clients using the resources.
Server-based networks provide centralized control of network resources and
rely on server computers to provide security and network administration

33. What are the important topologies for networks?


¾ BUS topology:
In this each computer is directly connected to primary network cable in
a single line.
Advantages:
Inexpensive, easy to install, simple to understand, easy to extend.

¾ STAR topology:
In this all computers are connected using a central hub.
Advantages:
Can be inexpensive, easy to install and reconfigure and easy to trouble
shoot physical problems.

¾ RING topology:
In this all computers are connected in loop.
Advantages:
All computers have equal access to network media, installation can be
simple, and signal does not degrade as much as in other topologies because each
computer regenerates it.

34. What is mesh network?

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

A network in which there are multiple network links between computers to


provide multiple paths for data to travel.

35. What is difference between baseband and broadband transmission?


In a baseband transmission, the entire bandwidth of the cable is consumed by
a single signal. In broadband transmission, signals are sent on multiple frequencies,
allowing multiple signals to be sent simultaneously.

36. Explain 5-4-3 rule?


In a Ethernet network, between any two points on the network ,there can be no
more than five network segments or four repeaters, and of those five segments only
three of segments can be populated.

37. What MAU?


In token Ring , hub is called Multistation Access Unit(MAU).

38. What is the difference between routable and non- routable protocols?
Routable protocols can work with a router and can be used to build large
networks. Non-Routable protocols are designed to work on small, local networks and
cannot be used with a router

39. Why should you care about the OSI Reference Model?
It provides a framework for discussing network operations and design.

40. What is logical link control?


One of two sublayers of the data link layer of OSI reference model, as defined
by the IEEE 802 standard. This sublayer is responsible for maintaining the link
between computers when they are sending data across the physical network
connection.

41. What is virtual channel?


Virtual channel is normally a connection from one source to one destination,
although multicast connections are also permitted. The other name for virtual channel
is virtual circuit.

42. What is virtual path?


Along any transmission path from a given source to a given destination, a
group of virtual circuits can be grouped together into what is called path.

43. What is packet filter?


Packet filter is a standard router equipped with some extra functionality. The
extra functionality allows every incoming or outgoing packet to be inspected. Packets
meeting some criterion are forwarded normally. Those that fail the test are dropped.

44. What is traffic shaping?

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

One of the main causes of congestion is that traffic is often busy. If hosts
could be made to transmit at a uniform rate, congestion would be less common.
Another open loop method to help manage congestion is forcing the packet to be
transmitted at a more predictable rate. This is called traffic shaping.

45. What is multicast routing?


Sending a message to a group is called multicasting, and its routing algorithm
is called multicast routing.

46. What is region?


When hierarchical routing is used, the routers are divided into what we will
call regions, with each router knowing all the details about how to route packets to
destinations within its own region, but knowing nothing about the internal structure of
other regions.

47. What is silly window syndrome?


It is a problem that can ruin TCP performance. This problem occurs when data
are passed to the sending TCP entity in large blocks, but an interactive application on
the receiving side reads 1 byte at a time.

48. What are Digrams and Trigrams?


The most common two letter combinations are called as digrams. e.g. th, in,
er, re and an. The most common three letter combinations are called as trigrams. e.g.
the, ing, and, and ion.

49. Expand IDEA.


IDEA stands for International Data Encryption Algorithm.

50. What is wide-mouth frog?


Wide-mouth frog is the simplest known key distribution center (KDC)
authentication protocol.

51. What is Mail Gateway?


It is a system that performs a protocol translation between different electronic
mail delivery protocols.

52. What is IGP (Interior Gateway Protocol)?


It is any routing protocol used within an autonomous system.

53. What is EGP (Exterior Gateway Protocol)?


It is the protocol the routers in neighboring autonomous systems use to
identify the set of networks that can be reached within or via each autonomous
system.

54. What is autonomous system?


It is a collection of routers under the control of a single administrative

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

authority and that uses a common Interior Gateway Protocol.

55. What is BGP (Border Gateway Protocol)?


It is a protocol used to advertise the set of networks that can be reached with
in an autonomous system. BGP enables this information to be shared with the
autonomous system. This is newer than EGP (Exterior Gateway Protocol).

56. What is Gateway-to-Gateway protocol?


It is a protocol formerly used to exchange routing information between
Internet core routers.

57. What is NVT (Network Virtual Terminal)?


It is a set of rules defining a very simple virtual terminal interaction. The NVT
is used in the start of a Telnet session.

58. What is a Multi-homed Host?


It is a host that has a multiple network interfaces and that requires multiple IP
addresses is called as a Multi-homed Host.

59. What is Kerberos?


It is an authentication service developed at the Massachusetts Institute of
Technology. Kerberos uses encryption to prevent intruders from discovering
passwords and gaining unauthorized access to files.

60. What is OSPF?


It is an Internet routing protocol that scales well, can route traffic along
multiple paths, and uses knowledge of an Internet's topology to make accurate routing
decisions.

61. What is Proxy ARP?


It is using a router to answer ARP requests. This will be done when the
originating host believes that a destination is local, when in fact is lies beyond router.

62. What is SLIP (Serial Line Interface Protocol)?


It is a very simple protocol used for transmission of IP datagrams across a
serial line.

63. What is RIP (Routing Information Protocol)?


It is a simple protocol used to exchange information between the routers.

64. What is source route?


It is a sequence of IP addresses identifying the route a datagram must follow.
A source route may optionally be included in an IP datagram header.

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

RDBMS Concepts
1. What is database?
A database is a logically coherent collection of data with some inherent meaning,

representing some aspect of real world and which is designed, built and populated

with data for a specific purpose.

2. What is DBMS?
It is a collection of programs that enables user to create and maintain a
database. In other words it is general-purpose software that provides the users with
the processes of defining, constructing and manipulating the database for various
applications.

3. What is a Database system?


The database and DBMS software together is called as Database system.

4. Advantages of DBMS?
¾ Redundancy is controlled.
¾ Unauthorised access is restricted.
¾ Providing multiple user interfaces.
¾ Enforcing integrity constraints.
¾ Providing backup and recovery.

5. Disadvantage in File Processing System?


¾ Data redundancy & inconsistency.
¾ Difficult in accessing data.
¾ Data isolation.
¾ Data integrity.
¾ Concurrent access is not possible.
¾ Security Problems.

6. Describe the three levels of data abstraction?


The are three levels of abstraction:
¾ Physical level: The lowest level of abstraction describes how data are stored.
¾ Logical level: The next higher level of abstraction, describes what data are stored
in database and what relationship among those data.
¾ View level: The highest level of abstraction describes only part of entire database.
7. Define the "integrity rules"
There are two Integrity rules.
¾ Entity Integrity: States that “Primary key cannot have NULL value”
¾ Referential Integrity: States that “Foreign Key can be either a NULL
value or should be Primary Key value of other relation.

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

8. What is extension and intension?


Extension -
It is the number of tuples present in a table at any instance. This is time
dependent.
Intension -
It is a constant value that gives the name, structure of table and the
constraints laid on it.

9. What is System R? What are its two major subsystems?


System R was designed and developed over a period of 1974-79 at IBM San
Jose Research Center. It is a prototype and its purpose was to demonstrate that it is
possible to build a Relational System that can be used in a real life environment to
solve real life problems, with performance at least comparable to that of existing
system.
Its two subsystems are
¾ Research Storage
¾ System Relational Data System.

10. How is the data structure of System R different from the relational structure?
Unlike Relational systems in System R
¾ Domains are not supported
¾ Enforcement of candidate key uniqueness is optional
¾ Enforcement of entity integrity is optional
¾ Referential integrity is not enforced

11. What is Data Independence?


Data independence means that “the application is independent of the storage
structure and access strategy of data”. In other words, The ability to modify the
schema definition in one level should not affect the schema definition in the next
higher level.
Two types of Data Independence:
¾ Physical Data Independence: Modification in physical level should not
affect the logical level.
¾ Logical Data Independence: Modification in logical level should affect
the view level.
NOTE: Logical Data Independence is more difficult to achieve

12. What is a view? How it is related to data independence?


A view may be thought of as a virtual table, that is, a table that does not really
exist in its own right but is instead derived from one or more underlying base table. In
other words, there is no stored file that direct represents the view instead a definition
of view is stored in data dictionary.
Growth and restructuring of base tables is not reflected in views. Thus the
view can insulate users from the effects of restructuring and growth in the database.
Hence accounts for logical data independence.

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

13. What is Data Model?


A collection of conceptual tools for describing data, data relationships data
semantics and constraints.

14. What is E-R model?


This data model is based on real world that consists of basic objects called
entities and of relationship among these objects. Entities are described in a database
by a set of attributes.

15. What is Object Oriented model?


This model is based on collection of objects. An object contains values stored
in instance variables with in the object. An object also contains bodies of code
that operate on the object. These bodies of code are called methods. Objects that
contain same types of values and the same methods are grouped together into classes.

16. What is an Entity?


It is a 'thing' in the real world with an independent existence.

17. What is an Entity type?


It is a collection (set) of entities that have same attributes.

18. What is an Entity set?


It is a collection of all entities of particular entity type in the database.

19. What is an Extension of entity type?


The collections of entities of a particular entity type are grouped together into
an entity set.

20. What is Weak Entity set?


An entity set may not have sufficient attributes to form a primary key, and its
primary key compromises of its partial key and primary key of its parent entity, then
it is said to be Weak Entity set.

21. What is an attribute?


It is a particular property, which describes the entity.

22. What is a Relation Schema and a Relation?


A relation Schema denoted by R(A1, A2, …, An) is made up of the relation
name R and the list of attributes Ai that it contains. A relation is defined as a set of
tuples. Let r be the relation which contains set tuples (t1, t2, t3, ..., tn). Each tuple is
an ordered list of n-values t=(v1,v2, ..., vn).

23. What is degree of a Relation?


It is the number of attribute of its relation schema.

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

24. What is Relationship?


It is an association among two or more entities.

25. What is Relationship set?


The collection (or set) of similar relationships.

26. What is Relationship type?


Relationship type defines a set of associations or a relationship set among a
given set of entity types.

27. What is degree of Relationship type?


It is the number of entity type participating.

25. What is DDL (Data Definition Language)?


A data base schema is specifies by a set of definitions expressed by a special
language called DDL.

26. What is VDL (View Definition Language)?


It specifies user views and their mappings to the conceptual schema.

27. What is SDL (Storage Definition Language)?


This language is to specify the internal schema. This language may specify the
mapping between two schemas.

28. What is Data Storage - Definition Language?


The storage structures and access methods used by database system are
specified by a set of definition in a special type of DDL called data storage-definition
language.

29. What is DML (Data Manipulation Language)?


This language that enable user to access or manipulate data as organised by
appropriate data model.
¾ Procedural DML or Low level: DML requires a user to specify what data are
needed and how to get those data.
¾ Non-Procedural DML or High level: DML requires a user to specify what data
are needed without specifying how to get those data.

31. What is DML Compiler?


It translates DML statements in a query language into low-level instruction
that the query evaluation engine can understand.

32. What is Query evaluation engine?


It executes low-level instruction generated by compiler.

33. What is DDL Interpreter?


It interprets DDL statements and record them in tables containing metadata.

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

34. What is Record-at-a-time?


The Low level or Procedural DML can specify and retrieve each record from a
set of records. This retrieve of a record is said to be Record-at-a-time.

35. What is Set-at-a-time or Set-oriented?


The High level or Non-procedural DML can specify and retrieve many
records in a single DML statement. This retrieve of a record is said to be Set-at-a-time
or Set-oriented.

36. What is Relational Algebra?


It is procedural query language. It consists of a set of operations that take one
or two relations as input and produce a new relation.

37. What is Relational Calculus?


It is an applied predicate calculus specifically tailored for relational databases
proposed by E.F. Codd. E.g. of languages based on it are DSL ALPHA, QUEL.

38. How does Tuple-oriented relational calculus differ from domain-oriented


relational calculus
The tuple-oriented calculus uses a tuple variables i.e., variable whose only
permitted values are tuples of that relation. E.g. QUEL
The domain-oriented calculus has domain variables i.e., variables that range over the
underlying domains instead of over relation. E.g. ILL, DEDUCE.

39. What is normalization?


It is a process of analysing the given relation schemas based on their
Functional Dependencies (FDs) and primary key to achieve the properties
¾ Minimizing redundancy
¾ Minimizing insertion, deletion and update anomalies.

40. What is Functional Dependency?


A Functional dependency is denoted by X Y between two sets of attributes
X and Y that are subsets of R specifies a constraint on the possible tuple that can form
a relation state r of R. The constraint is for any two tuples t1 and t2 in r if t1[X] =
t2[X] then they have t1[Y] = t2[Y]. This means the value of X component of a tuple
uniquely determines the value of component Y.

41. When is a functional dependency F said to be minimal?


¾ Every dependency in F has a single attribute for its right hand side.
¾ We cannot replace any dependency X A in F with a dependency Y A where Y
is a proper subset of X and still have a set of dependency that is equivalent to F.
¾ We cannot remove any dependency from F and still have set of dependency that is
equivalent to F.

42. What is Multivalued dependency?

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

Multivalued dependency denoted by X Y specified on relation schema R,


where X and Y are both subsets of R, specifies the following constraint on any
relation r of R: if two tuples t1 and t2 exist in r such that t1[X] = t2[X] then t3 and t4
should also exist in r with the following properties
¾ t3[x] = t4[X] = t1[X] = t2[X]
¾ t3[Y] = t1[Y] and t4[Y] = t2[Y]
¾ t3[Z] = t2[Z] and t4[Z] = t1[Z]
where [Z = (R-(X U Y)) ]

43. What is Lossless join property?


It guarantees that the spurious tuple generation does not occur with respect to
relation schemas after decomposition.

44. What is 1 NF (Normal Form)?


The domain of attribute must include only atomic (simple, indivisible) values.

45. What is Fully Functional dependency?


It is based on concept of full functional dependency. A functional dependency
X Y is full functional dependency if removal of any attribute A from X means that
the dependency does not hold any more.

46. What is 2NF?


A relation schema R is in 2NF if it is in 1NF and every non-prime attribute A
in R is fully functionally dependent on primary key.

47. What is 3NF?


A relation schema R is in 3NF if it is in 2NF and for every FD X A either of
the following is true
¾ X is a Super-key of R.
¾ A is a prime attribute of R.
In other words, if every non prime attribute is non-transitively dependent on
primary key.

48. What is BCNF (Boyce-Codd Normal Form)?


A relation schema R is in BCNF if it is in 3NF and satisfies an additional
constraint that for every FD X A, X must be a candidate key.

49. What is 4NF?


A relation schema R is said to be in 4NF if for every Multivalued dependency
X Y that holds over R, one of following is true
¾ X is subset or equal to (or) XY = R.
¾ X is a super key.

50. What is 5NF?


A Relation schema R is said to be 5NF if for every join dependency {R1, R2,
..., Rn} that holds R, one the following is true

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

¾ Ri = R for some i.
¾ The join dependency is implied by the set of FD, over R in which the left side is
key of R.
51. What is Domain-Key Normal Form?
A relation is said to be in DKNF if all constraints and dependencies that
should hold on the the constraint can be enforced by simply enforcing the
domain constraint and key constraint on the relation.

52. What are partial, alternate,, artificial, compound and natural key?
Partial Key:
It is a set of attributes that can uniquely identify weak entities and that are
related to same owner entity. It is sometime called as Discriminator.
Alternate Key:
All Candidate Keys excluding the Primary Key are known as Alternate
Keys.
Artificial Key:
If no obvious key, either stand alone or compound is available, then
the last resort is to simply create a key, by assigning a unique number to each record
or occurrence. Then this is known as developing an artificial key.
Compound Key:
If no single data element uniquely identifies occurrences within a
construct, then combining multiple elements to create a unique identifier for the
construct is known as creating a compound key.
Natural Key:
When one of the data elements stored within a construct is utilized as
the primary key, then it is called the natural key.

53. What is indexing and what are the different kinds of indexing?
Indexing is a technique for determining how quickly specific data can be
found.
Types:
¾ Binary search style indexing
¾ B-Tree indexing
¾ Inverted list indexing
¾ Memory resident table
¾ Table indexing

54. What is system catalog or catalog relation? How is better known as?
A RDBMS maintains a description of all the data that it contains, information
about every relation and index that it contains. This information is stored in a
collection of relations maintained by the system called metadata. It is also called data
dictionary.

55. What is meant by query optimization?


The phase that identifies an efficient execution plan for evaluating a query that
has the least estimated cost is referred to as query optimization.

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

56. What is join dependency and inclusion dependency?


Join Dependency:
A Join dependency is generalization of Multivalued
dependency.A JD {R1, R2, ..., Rn} is said to hold over a relation R if R1, R2, R3, ...,
Rn is a lossless-join decomposition of R . There is no set of sound and complete
inference rules for JD.
Inclusion Dependency:
An Inclusion Dependency is a statement of the form that some
columns of a relation are contained in other columns. A foreign key constraint is an
example of inclusion dependency.

57. What is durability in DBMS?


Once the DBMS informs the user that a transaction has successfully
completed, its effects should persist even if the system crashes before all its changes
are reflected on disk. This property is called durability.

58. What do you mean by atomicity and aggregation?


Atomicity:
Either all actions are carried out or none are. Users should not have to
worry about the effect of incomplete transactions. DBMS ensures this by undoing the
actions of incomplete transactions.
Aggregation:
A concept which is used to model a relationship between a collection
of entities and relationships. It is used when we need to express a relationship among
relationships.

59. What is a Phantom Deadlock?


In distributed deadlock detection, the delay in propagating local information
might cause the deadlock detection algorithms to identify deadlocks that do not really
exist. Such situations are called phantom deadlocks and they lead to unnecessary
aborts.

60. What is a checkpoint and When does it occur?


A Checkpoint is like a snapshot of the DBMS state. By taking checkpoints,
the DBMS can reduce the amount of work to be done during restart in the event of
subsequent crashes.

61. What are the different phases of transaction?


Different phases are
¾ Analysis phase
¾ Redo Phase
¾ Undo phase

62. What do you mean by flat file database?

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

It is a database in which there are no programs or user access languages. It has


no cross-file capabilities but is user-friendly and provides user-interface management.

63. What is "transparent DBMS"?


It is one, which keeps its Physical Structure hidden from user.

64. Brief theory of Network, Hierarchical schemas and their properties


Network schema uses a graph data structure to organize records example for
such a database management system is CTCG while a hierarchical schema uses a tree
data structure example for such a system is IMS.

65. What is a query?


A query with respect to DBMS relates to user commands that are used to
interact with a data base. The query language can be classified into data definition
language and data manipulation language.

66. What do you mean by Correlated subquery?


Subqueries, or nested queries, are used to bring back a set of rows to be used
by the parent query. Depending on how the subquery is written, it can be executed
once for the parent query or it can be executed once for each row returned by the
parent query. If the subquery is executed for each row of the parent, this is called a
correlated subquery.
A correlated subquery can be easily identified if it contains any references to
the parent subquery columns in its WHERE clause. Columns from the subquery
cannot be referenced anywhere else in the parent query. The following example
demonstrates a non-correlated subquery.
E.g. Select * From CUST Where '10/03/1990' IN (Select ODATE From ORDER
Where CUST.CNUM = ORDER.CNUM)

67. What are the primitive operations common to all record management systems?
Addition, deletion and modification.

68. Name the buffer in which all the commands that are typed in are stored
‘Edit’ Buffer

69. What are the unary operations in Relational Algebra?


PROJECTION and SELECTION.

70. Are the resulting relations of PRODUCT and JOIN operation the same?
No.
PRODUCT: Concatenation of every row in one relation with every row in
another.
JOIN: Concatenation of rows from one relation and related rows from another.

71. What is RDBMS KERNEL?

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

Two important pieces of RDBMS architecture are the kernel, which is the
software, and the data dictionary, which consists of the system-level data structures
used by the kernel to manage the database
You might think of an RDBMS as an operating system (or set of subsystems),
designed specifically for controlling data access; its primary functions are storing,
retrieving, and securing data. An RDBMS maintains its own list of authorized users
and their associated privileges; manages memory caches and paging; controls locking
for concurrent resource usage; dispatches and schedules user requests; and manages
space usage within its table-space structures
.
72. Name the sub-systems of a RDBMS
I/O, Security, Language Processing, Process Control, Storage Management,
Logging and Recovery, Distribution Control, Transaction Control, Memory
Management, Lock Management

73. Which part of the RDBMS takes care of the data dictionary? How
Data dictionary is a set of tables and database objects that is stored in a special
area of the database and maintained exclusively by the kernel.

74. What is the job of the information stored in data-dictionary?


The information in the data dictionary validates the existence of the objects,
provides access to them, and maps the actual physical storage location.

75. Not only RDBMS takes care of locating data it also


determines an optimal access path to store or retrieve the data

76. How do you communicate with an RDBMS?


You communicate with an RDBMS using Structured Query Language (SQL)

77. Define SQL and state the differences between SQL and other conventional
programming Languages
SQL is a nonprocedural language that is designed specifically for data access
operations on normalized relational database structures. The primary difference
between SQL and other conventional programming languages is that SQL statements
specify what data operations should be performed rather than how to perform them.

78. Name the three major set of files on disk that compose a database in Oracle
There are three major sets of files on disk that compose a database. All the files are binary. These are

¾ Database files
¾ Control files
¾ Redo logs
The most important of these are the database files where the actual data
resides. The control files and the redo logs support the functioning of the architecture
itself.
All three sets of files must be present, open, and available to Oracle for any data on the database to be useable.
Without these files, you cannot access the database, and the database administrator might have to recover some or all of the
database using a backup, if there is one.

Freshersworld.com Resource Center


10
First Job…. Dream Job…. Freshersworld.com

79. What is an Oracle Instance?


The Oracle system processes, also known as Oracle background processes,
provide functions for the user processes—functions that would otherwise be done by
the user processes themselves
Oracle database-wide system memory is known as the SGA, the system global
area or shared global area. The data and control structures in the SGA are shareable,
and all the Oracle background processes and user processes can use them.
The combination of the SGA and the Oracle background processes is known
as an Oracle instance

80. What are the four Oracle system processes that must always be up and running
for the database to be useable
The four Oracle system processes that must always be up and running for the
database to be useable include DBWR (Database Writer), LGWR (Log Writer), SMON
(System Monitor), and PMON (Process Monitor).

81. What are database files, control files and log files. How many of these files should
a database have at least? Why?
Database Files
The database files hold the actual data and are typically the largest in
size. Depending on their sizes, the tables (and other objects) for all the user accounts
can go in one database file—but that's not an ideal situation because it does not make
the database structure very flexible for controlling access to storage for different
users, putting the database on different disk drives, or backing up and restoring just
part of the database.
You must have at least one database file but usually, more than one
files are used. In terms of accessing and using the data in the tables and other objects,
the number (or location) of the files is immaterial.
The database files are fixed in size and never grow bigger than the size
at which they were created
Control Files
The control files and redo logs support the rest of the architecture.

Any database must have at least one control file, although you typically have

more than one to guard against loss. The control file records the name of the

database, the date and time it was created, the location of the database and redo

logs, and the synchronization information to ensure that all three sets of files are

always in step. Every time you add a new database or redo log file to the database,

the information is recorded in the control files.

Freshersworld.com Resource Center


11
First Job…. Dream Job…. Freshersworld.com

Redo Logs
Any database must have at least two redo logs. These are the journals
for the database; the redo logs record all changes to the user objects or system objects.
If any type of failure occurs, the changes recorded in the redo logs can be used to
bring the database to a consistent state without losing any committed transactions. In
the case of non-data loss failure, Oracle can apply the information in the redo logs
automatically without intervention from the DBA.
The redo log files are fixed in size and never grow dynamically from
the size at which they were created.

82. What is ROWID?


The ROWID is a unique database-wide physical address for every row on
every table. Once assigned (when the row is first inserted into the database), it never
changes until the row is deleted or the table is dropped.
The ROWID consists of the following three components, the combination of
which uniquely identifies the physical storage location of the row.
¾ Oracle database file number, which contains the block with the rows
¾ Oracle block address, which contains the row
¾ The row within the block (because each block can hold many rows)
The ROWID is used internally in indexes as a quick means of retrieving rows
with a particular key value. Application developers also use it in SQL statements as a
quick way to access a row once they know the ROWID

83. What is Oracle Block? Can two Oracle Blocks have the same address?
Oracle "formats" the database files into a number of Oracle blocks when they
are first created—making it easier for the RDBMS software to manage the files and
easier to read data into the memory areas.
The block size should be a multiple of the operating system block size.
Regardless of the block size, the entire block is not available for holding data; Oracle
takes up some space to manage the contents of the block. This block header has a
minimum size, but it can grow.
These Oracle blocks are the smallest unit of storage. Increasing the Oracle
block size can improve performance, but it should be done only when the database is
first created.
Each Oracle block is numbered sequentially for each database file starting at
1. Two blocks can have the same block address if they are in different database files.

84. What is database Trigger?


A database trigger is a PL/SQL block that can defined to automatically
execute for insert, update, and delete statements against a table. The trigger can e
defined to execute once for the entire statement or once for every row that is inserted,
updated, or deleted. For any one table, there are twelve events for which you can
define database triggers. A database trigger can call database procedures that are also
written in PL/SQL.

85. Name two utilities that Oracle provides, which are use for backup and recovery.

Freshersworld.com Resource Center


12
First Job…. Dream Job…. Freshersworld.com

Along with the RDBMS software, Oracle provides two utilities that you can
use to back up and restore the database. These utilities are Export and Import.
The Export utility dumps the definitions and data for the specified part of the
database to an operating system binary file. The Import utility reads the file produced
by an export, recreates the definitions of objects, and inserts the data
If Export and Import are used as a means of backing up and recovering the
database, all the changes made to the database cannot be recovered since the export
was performed. The best you can do is recover the database to the time when the
export was last performed.

86. What are stored-procedures? And what are the advantages of using them.
Stored procedures are database objects that perform a user defined operation.
A stored procedure can have a set of compound SQL statements. A stored procedure
executes the SQL commands and returns the result to the client. Stored procedures are
used to reduce network traffic.

87. How are exceptions handled in PL/SQL? Give some of the internal exceptions'
name
PL/SQL exception handling is a mechanism for dealing with run-time errors
encountered during procedure execution. Use of this mechanism enables execution to
continue if the error is not severe enough to cause procedure termination.
The exception handler must be defined within a subprogram specification.
Errors cause the program to raise an exception with a transfer of control to the
exception-handler block. After the exception handler executes, control returns to the
block in which the handler was defined. If there are no more executable statements in
the block, control returns to the caller.
User-Defined Exceptions
PL/SQL enables the user to define exception handlers in the
declarations area of subprogram specifications. User accomplishes this by naming an
exception as in the following example:
ot_failure EXCEPTION;
In this case, the exception name is ot_failure. Code associated with this handler is
written in the EXCEPTION specification area as follows:
EXCEPTION
when OT_FAILURE then
out_status_code := g_out_status_code;
out_msg := g_out_msg;
The following is an example of a subprogram exception:

EXCEPTION
when NO_DATA_FOUND then
g_out_status_code := 'FAIL';
RAISE ot_failure;
Within this exception is the RAISE statement that transfers control back to the
ot_failure exception handler. This technique of raising the exception is used to invoke
all user-defined exceptions.
System-Defined Exceptions

Freshersworld.com Resource Center


13
First Job…. Dream Job…. Freshersworld.com

Exceptions internal to PL/SQL are raised automatically upon error.


NO_DATA_FOUND is a system-defined exception. Table below gives a complete
list of internal exceptions.

PL/SQL internal exceptions.

Exception Name Oracle Error


CURSOR_ALREADY_OPEN ORA-06511
DUP_VAL_ON_INDEX ORA-00001
INVALID_CURSOR ORA-01001
INVALID_NUMBER ORA-01722
LOGIN_DENIED ORA-01017
NO_DATA_FOUND ORA-01403
NOT_LOGGED_ON ORA-01012
PROGRAM_ERROR ORA-06501
STORAGE_ERROR ORA-06500
TIMEOUT_ON_RESOURCE ORA-00051
TOO_MANY_ROWS ORA-01422
TRANSACTION_BACKED_OUT ORA-00061
VALUE_ERROR ORA-06502
ZERO_DIVIDE ORA-01476

In addition to this list of exceptions, there is a catch-all exception named


OTHERS that traps all errors for which specific error handling has not been
established.

88. Does PL/SQL support "overloading"? Explain


The concept of overloading in PL/SQL relates to the idea that you can define
procedures and functions with the same name. PL/SQL does not look only at the
referenced name, however, to resolve a procedure or function call. The count and data
types of formal parameters are also considered.
PL/SQL also attempts to resolve any procedure or function calls in locally defined packages before looking at
globally defined packages or internal functions. To further ensure calling the proper procedure, you can use the dot notation.
Prefacing a procedure or function name with the package name fully qualifies any procedure or function reference.

89. Tables derived from the ERD


a) Are totally unnormalised
b) Are always in 1NF
c) Can be further denormalised
d) May have multi-valued attributes

(b) Are always in 1NF

90. Spurious tuples may occur due to


i. Bad normalization
ii. Theta joins
iii. Updating tables from join

Freshersworld.com Resource Center


14
First Job…. Dream Job…. Freshersworld.com

a) i & ii b) ii & iii


c) i & iii d) ii & iii

(a) i & iii because theta joins are joins made on keys that are not primary
keys.

91. A B C is a set of attributes. The functional dependency is as follows


AB -> B
AC -> C
C -> B
a) is in 1NF
b) is in 2NF
c) is in 3NF
d) is in BCNF

(a) is in 1NF since (AC)+ = { A, B, C} hence AC is the primary key. Since


C B is a FD given, where neither C is a Key nor B is a prime attribute, this it is
not in 3NF. Further B is not functionally dependent on key AC thus it is not in 2NF.
Thus the given FDs is in 1NF.

92. In mapping of ERD to DFD


a) entities in ERD should correspond to an existing entity/store in DFD
b) entity in DFD is converted to attributes of an entity in ERD
c) relations in ERD has 1 to 1 correspondence to processes in DFD
d) relationships in ERD has 1 to 1 correspondence to flows in DFD

(a) entities in ERD should correspond to an existing entity/store in DFD

93. A dominant entity is the entity


a) on the N side in a 1 : N relationship
b) on the 1 side in a 1 : N relationship
c) on either side in a 1 : 1 relationship
d) nothing to do with 1 : 1 or 1 : N relationship

(b) on the 1 side in a 1 : N relationship

94. Select 'NORTH', CUSTOMER From CUST_DTLS Where REGION = 'N' Order
By
CUSTOMER Union Select 'EAST', CUSTOMER From CUST_DTLS Where
REGION = 'E' Order By CUSTOMER
The above is
a) Not an error
b) Error - the string in single quotes 'NORTH' and 'SOUTH'
c) Error - the string should be in double quotes
d) Error - ORDER BY clause

Freshersworld.com Resource Center


15
First Job…. Dream Job…. Freshersworld.com

(d) Error - the ORDER BY clause. Since ORDER BY clause cannot be used
in UNIONS

95. What is Storage Manager?


It is a program module that provides the interface between the low-level data
stored in database, application programs and queries submitted to the system.

96. What is Buffer Manager?


It is a program module, which is responsible for fetching data from disk
storage into main memory and deciding what data to be cache in memory.

97. What is Transaction Manager?


It is a program module, which ensures that database, remains in a consistent
state despite system failures and concurrent transaction execution proceeds without
conflicting.

98. What is File Manager?


It is a program module, which manages the allocation of space on disk storage
and data structure used to represent information stored on a disk.

99. What is Authorization and Integrity manager?


It is the program module, which tests for the satisfaction of integrity constraint
and checks the authority of user to access data.

100. What are stand-alone procedures?


Procedures that are not part of a package are known as stand-alone because
they independently defined. A good example of a stand-alone procedure is one
written in a SQL*Forms application. These types of procedures are not available for
reference from other Oracle tools. Another limitation of stand-alone procedures is that
they are compiled at run time, which slows execution.

101. What are cursors give different types of cursors.


PL/SQL uses cursors for all database information accesses statements. The
language supports the use two types of cursors
¾ Implicit
¾ Explicit

102. What is cold backup and hot backup (in case of Oracle)?
¾ Cold Backup:
It is copying the three sets of files (database files, redo logs, and
control file) when the instance is shut down. This is a straight file copy, usually from
the disk directly to tape. You must shut down the instance to guarantee a consistent
copy.
If a cold backup is performed, the only option available in the
event of data file loss is restoring all the files from the latest backup. All work
performed on the database since the last backup is lost.

Freshersworld.com Resource Center


16
First Job…. Dream Job…. Freshersworld.com

¾ Hot Backup:
Some sites (such as worldwide airline reservations systems) cannot
shut down the database while making a backup copy of the files. The cold backup is
not an available option.
So different means of backing up database must be used — the hot
backup. Issue a SQL command to indicate to Oracle, on a tablespace-by-tablespace
basis, that the files of the tablespace are to backed up. The users can continue to make
full use of the files, including making changes to the data. Once the user has indicated
that he/she wants to back up the tablespace files, he/she can use the operating system
to copy those files to the desired backup destination.
The database must be running in ARCHIVELOG mode for the hot
backup option.
If a data loss failure does occur, the lost database files can be
restored using the hot backup and the online and offline redo logs created since the
backup was done. The database is restored to the most consistent state without any
loss of committed transactions.

103. What are Armstrong rules? How do we say that they are complete and/or
sound
The well-known inference rules for FDs
¾ Reflexive rule :
If Y is subset or equal to X then X Y.
¾ Augmentation rule:
If X Y then XZ YZ.
¾ Transitive rule:
If {X Y, Y Z} then X Z.
¾ Decomposition rule :
If X YZ then X Y.
¾ Union or Additive rule:
If {X Y, X Z} then X YZ.
¾ Pseudo Transitive rule :
If {X Y, WY Z} then WX Z.
Of these the first three are known as Amstrong Rules. They are sound because
it is enough if a set of FDs satisfy these three. They are called complete because using
these three rules we can generate the rest all inference rules.

104. How can you find the minimal key of relational schema?
Minimal key is one which can identify each tuple of the given relation schema
uniquely. For finding the minimal key it is required to find the closure that is the set
of all attributes that are dependent on any given set of attributes under the given set of
functional dependency.
Algo. I Determining X+, closure for X, given set of FDs F
1. Set X+ = X
2. Set Old X+ = X+
3. For each FD Y Z in F and if Y belongs to X+ then add
+
Z to X

Freshersworld.com Resource Center


17
First Job…. Dream Job…. Freshersworld.com

4. Repeat steps 2 and 3 until Old X+ = X+

Algo.II Determining minimal K for relation schema R, given set of FDs F


1. Set K to R that is make K a set of all attributes in R
2. For each attribute A in K
a. Compute (K – A)+ with respect to F
b. If (K – A)+ = R then set K = (K – A)+

105. What do you understand by dependency preservation?


Given a relation R and a set of FDs F, dependency preservation states
that the closure of the union of the projection of F on each decomposed relation Ri is
equal to the closure of F. i.e.,
((ΠR1(F)) U … U (ΠRn(F)))+ = F+
if decomposition is not dependency preserving, then some dependency is lost in the
decomposition.

106. What is meant by Proactive, Retroactive and Simultaneous Update.


Proactive Update:
The updates that are applied to database before it becomes
effective in real world .
Retroactive Update:
The updates that are applied to database after it becomes
effective in real world .
Simulatneous Update:
The updates that are applied to database at the same time when
it becomes effective in real world .

107. What are the different types of JOIN operations?


Equi Join: This is the most common type of join which involves only
equality comparisions. The disadvantage in this type of join is that there

Freshersworld.com Resource Center


18
First Job…. Dream Job…. Freshersworld.com

SQL
1. Which is the subset of SQL commands used to manipulate Oracle Database
structures, including tables?
Data Definition Language (DDL)

2. What operator performs pattern matching?


LIKE operator

3. What operator tests column for the absence of data?


IS NULL operator

4. Which command executes the contents of a specified file?


START <filename> or @<filename>

5. What is the parameter substitution symbol used with INSERT INTO command?
&

6. Which command displays the SQL command in the SQL buffer, and then executes
it?
RUN

7. What are the wildcards used for pattern matching?


_ for single character substitution and % for multi-character substitution

8. State true or false. EXISTS, SOME, ANY are operators in SQL.


True

9. State true or false. !=, <>, ^= all denote the same operation.
True

10. What are the privileges that can be granted on a table by a user to others?
Insert, update, delete, select, references, index, execute, alter, all

11. What command is used to get back the privileges offered by the GRANT
command?
REVOKE

12. Which system tables contain information on privileges granted and privileges
obtained?
USER_TAB_PRIVS_MADE, USER_TAB_PRIVS_RECD

13. Which system table contains information on constraints on all the tables created?
USER_CONSTRAINTS

Freshersworld.com Resource Center


1
First Job…. Dream Job…. Freshersworld.com

14. TRUNCATE TABLE EMP;


DELETE FROM EMP;
Will the outputs of the above two commands differ?
Both will result in deleting all the rows in the table EMP.

15. What is the difference between TRUNCATE and DELETE commands?


TRUNCATE is a DDL command whereas DELETE is a DML command.
Hence DELETE operation can be rolled back, but TRUNCATE operation cannot be
rolled back. WHERE clause can be used with DELETE and not with TRUNCATE.

16. What command is used to create a table by copying the structure of another
table?
Answer :
CREATE TABLE .. AS SELECT command
Explanation :
To copy only the structure, the WHERE clause of the SELECT command
should contain a FALSE statement as in the following.
CREATE TABLE NEWTABLE AS SELECT * FROM EXISTINGTABLE
WHERE 1=2;
If the WHERE condition is true, then all the rows or rows satisfying the
condition will be copied to the new table.

17. What will be the output of the following query?


SELECT REPLACE(TRANSLATE(LTRIM(RTRIM('!! ATHEN !!','!'), '!'),
'AN', '**'),'*','TROUBLE') FROM DUAL;
TROUBLETHETROUBLE

18. What will be the output of the following query?


SELECT DECODE(TRANSLATE('A','1234567890','1111111111'), '1','YES', 'NO' );
Answer :
NO
Explanation :
The query checks whether a given string is a numerical digit.

19. What does the following query do?


SELECT SAL + NVL(COMM,0) FROM EMP;
This displays the total salary of all employees. The null values in the
commission column will be replaced by 0 and added to salary.

20. Which date function is used to find the difference between two dates?
MONTHS_BETWEEN

21. Why does the following command give a compilation error?


DROP TABLE &TABLE_NAME;

Freshersworld.com Resource Center


2
First Job…. Dream Job…. Freshersworld.com

Variable names should start with an alphabet. Here the table name starts with
an '&' symbol.

22. What is the advantage of specifying WITH GRANT OPTION in the GRANT
command?
The privilege receiver can further grant the privileges he/she has obtained
from the owner to any other user.

23. What is the use of the DROP option in the ALTER TABLE command?
It is used to drop constraints specified on the table.

24. What is the value of ‘comm’ and ‘sal’ after executing the following query if the
initial value of ‘sal’ is 10000?
UPDATE EMP SET SAL = SAL + 1000, COMM = SAL*0.1;
sal = 11000, comm = 1000

25. What is the use of DESC in SQL?


Answer :
DESC has two purposes. It is used to describe a schema as well as to retrieve
rows from table in descending order.
Explanation :
The query SELECT * FROM EMP ORDER BY ENAME DESC will display
the output sorted on ENAME in descending order.

26. What is the use of CASCADE CONSTRAINTS?


When this clause is used with the DROP command, a parent table can be
dropped even when a child table exists.

27. Which function is used to find the largest integer less than or equal to a specific
value?
FLOOR

28. What is the output of the following query?


SELECT TRUNC(1234.5678,-2) FROM DUAL;
1200

SQL – QUERIES

I. SCHEMAS

Table 1 : STUDIES

Freshersworld.com Resource Center


3
First Job…. Dream Job…. Freshersworld.com

PNAME (VARCHAR), SPLACE (VARCHAR), COURSE (VARCHAR), CCOST


(NUMBER)

Table 2 : SOFTWARE

PNAME (VARCHAR), TITLE (VARCHAR), DEVIN (VARCHAR), SCOST


(NUMBER), DCOST (NUMBER), SOLD (NUMBER)

Table 3 : PROGRAMMER

PNAME (VARCHAR), DOB (DATE), DOJ (DATE), SEX (CHAR), PROF1


(VARCHAR), PROF2 (VARCHAR), SAL (NUMBER)

LEGEND :

PNAME – Programmer Name, SPLACE – Study Place, CCOST – Course Cost,


DEVIN – Developed in, SCOST – Software Cost, DCOST – Development Cost,
PROF1 – Proficiency 1

QUERIES :

1. Find out the selling cost average for packages developed in Oracle.
2. Display the names, ages and experience of all programmers.
3. Display the names of those who have done the PGDCA course.
4. What is the highest number of copies sold by a package?
5. Display the names and date of birth of all programmers born in April.
6. Display the lowest course fee.
7. How many programmers have done the DCA course.
8. How much revenue has been earned through the sale of packages developed
in C.
9. Display the details of software developed by Rakesh.
10. How many programmers studied at Pentafour.
11. Display the details of packages whose sales crossed the 5000 mark.
12. Find out the number of copies which should be sold in order to recover the
development cost of each package.
13. Display the details of packages for which the development cost has been
recovered.
14. What is the price of costliest software developed in VB?
15. How many packages were developed in Oracle ?
16. How many programmers studied at PRAGATHI?
17. How many programmers paid 10000 to 15000 for the course?
18. What is the average course fee?
19. Display the details of programmers knowing C.
20. How many programmers know either C or Pascal?
21. How many programmers don’t know C and C++?

Freshersworld.com Resource Center


4
First Job…. Dream Job…. Freshersworld.com

22. How old is the oldest male programmer?


23. What is the average age of female programmers?
24. Calculate the experience in years for each programmer and display along
with their names in descending order.
25. Who are the programmers who celebrate their birthdays during the current
month?
26. How many female programmers are there?
27. What are the languages known by the male programmers?
28. What is the average salary?
29. How many people draw 5000 to 7500?
30. Display the details of those who don’t know C, C++ or Pascal.
31. Display the costliest package developed by each programmer.
32. Produce the following output for all the male programmers
Programmer
Mr. Arvind – has 15 years of experience

KEYS:

1. SELECT AVG(SCOST) FROM SOFTWARE WHERE DEVIN =


'ORACLE';
2. SELECT PNAME,TRUNC(MONTHS_BETWEEN(SYSDATE,DOB)/12)
"AGE", TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12)
"EXPERIENCE" FROM PROGRAMMER;
3. SELECT PNAME FROM STUDIES WHERE COURSE = 'PGDCA';
4. SELECT MAX(SOLD) FROM SOFTWARE;
5. SELECT PNAME, DOB FROM PROGRAMMER WHERE DOB LIKE
'%APR%';
6. SELECT MIN(CCOST) FROM STUDIES;
7. SELECT COUNT(*) FROM STUDIES WHERE COURSE = 'DCA';
8. SELECT SUM(SCOST*SOLD-DCOST) FROM SOFTWARE GROUP BY
DEVIN HAVING DEVIN = 'C';
9. SELECT * FROM SOFTWARE WHERE PNAME = 'RAKESH';
10. SELECT * FROM STUDIES WHERE SPLACE = 'PENTAFOUR';
11. SELECT * FROM SOFTWARE WHERE SCOST*SOLD-DCOST > 5000;
12. SELECT CEIL(DCOST/SCOST) FROM SOFTWARE;
13. SELECT * FROM SOFTWARE WHERE SCOST*SOLD >= DCOST;
14. SELECT MAX(SCOST) FROM SOFTWARE GROUP BY DEVIN
HAVING DEVIN = 'VB';
15. SELECT COUNT(*) FROM SOFTWARE WHERE DEVIN = 'ORACLE';
16. SELECT COUNT(*) FROM STUDIES WHERE SPLACE = 'PRAGATHI';
17. SELECT COUNT(*) FROM STUDIES WHERE CCOST BETWEEN 10000
AND 15000;
18. SELECT AVG(CCOST) FROM STUDIES;
19. SELECT * FROM PROGRAMMER WHERE PROF1 = 'C' OR PROF2 = 'C';
20. SELECT * FROM PROGRAMMER WHERE PROF1 IN ('C','PASCAL') OR
PROF2 IN ('C','PASCAL');

Freshersworld.com Resource Center


5
First Job…. Dream Job…. Freshersworld.com

21. SELECT * FROM PROGRAMMER WHERE PROF1 NOT IN ('C','C++')


AND PROF2 NOT IN ('C','C++');
22. SELECT TRUNC(MAX(MONTHS_BETWEEN(SYSDATE,DOB)/12))
FROM PROGRAMMER WHERE SEX = 'M';
23. SELECT TRUNC(AVG(MONTHS_BETWEEN(SYSDATE,DOB)/12))
FROM PROGRAMMER WHERE SEX = 'F';
24. SELECT PNAME, TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12)
FROM PROGRAMMER ORDER BY PNAME DESC;
25. SELECT PNAME FROM PROGRAMMER WHERE
TO_CHAR(DOB,'MON') = TO_CHAR(SYSDATE,'MON');
26. SELECT COUNT(*) FROM PROGRAMMER WHERE SEX = 'F';
27. SELECT DISTINCT(PROF1) FROM PROGRAMMER WHERE SEX = 'M';
28. SELECT AVG(SAL) FROM PROGRAMMER;
29. SELECT COUNT(*) FROM PROGRAMMER WHERE SAL BETWEEN
5000 AND 7500;
30. SELECT * FROM PROGRAMMER WHERE PROF1 NOT IN
('C','C++','PASCAL') AND PROF2 NOT IN ('C','C++','PASCAL');
31. SELECT PNAME,TITLE,SCOST FROM SOFTWARE WHERE SCOST IN
(SELECT MAX(SCOST) FROM SOFTWARE GROUP BY PNAME);
32.SELECT 'Mr.' || PNAME || ' - has ' ||
TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12) || ' years of experience'
“Programmer” FROM PROGRAMMER WHERE SEX = 'M' UNION
SELECT 'Ms.' || PNAME || ' - has ' || TRUNC (MONTHS_BETWEEN
(SYSDATE,DOJ)/12) || ' years of experience' “Programmer” FROM
PROGRAMMER WHERE SEX = 'F';

II . SCHEMA :
Table 1 : DEPT

DEPTNO (NOT NULL , NUMBER(2)), DNAME (VARCHAR2(14)),


LOC (VARCHAR2(13)

Table 2 : EMP

EMPNO (NOT NULL , NUMBER(4)), ENAME (VARCHAR2(10)),


JOB (VARCHAR2(9)), MGR (NUMBER(4)), HIREDATE (DATE),
SAL (NUMBER(7,2)), COMM (NUMBER(7,2)), DEPTNO (NUMBER(2))

MGR is the empno of the employee whom the employee reports to. DEPTNO is a
foreign key.
QUERIES

1. List all the employees who have at least one person reporting to them.

Freshersworld.com Resource Center


6
First Job…. Dream Job…. Freshersworld.com

2. List the employee details if and only if more than 10 employees are present in
department no 10.
3. List the name of the employees with their immediate higher authority.
4. List all the employees who do not manage any one.
5. List the employee details whose salary is greater than the lowest salary of an
employee belonging to deptno 20.
6. List the details of the employee earning more than the highest paid manager.
7. List the highest salary paid for each job.
8. Find the most recently hired employee in each department.
9. In which year did most people join the company? Display the year and the
number of employees.
10. Which department has the highest annual remuneration bill?
11. Write a query to display a ‘*’ against the row of the most recently hired
employee.
12. Write a correlated sub-query to list out the employees who earn more than the
average salary of their department.
13. Find the nth maximum salary.
14. Select the duplicate records (Records, which are inserted, that already exist) in
the EMP table.
15. Write a query to list the length of service of the employees (of the form n years
and m months).

KEYS:

1. SELECT DISTINCT(A.ENAME) FROM EMP A, EMP B WHERE A.EMPNO =


B.MGR; or SELECT ENAME FROM EMP WHERE EMPNO IN (SELECT MGR
FROM EMP);
2. SELECT * FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM EMP
GROUP BY DEPTNO HAVING COUNT(EMPNO)>10 AND DEPTNO=10);
3. SELECT A.ENAME "EMPLOYEE", B.ENAME "REPORTS TO" FROM EMP
A, EMP B WHERE A.MGR=B.EMPNO;
4. SELECT * FROM EMP WHERE EMPNO IN ( SELECT EMPNO FROM EMP
MINUS SELECT MGR FROM EMP);
5. SELECT * FROM EMP WHERE SAL > ( SELECT MIN(SAL) FROM EMP
GROUP BY DEPTNO HAVING DEPTNO=20);
6. SELECT * FROM EMP WHERE SAL > ( SELECT MAX(SAL) FROM EMP
GROUP BY JOB HAVING JOB = 'MANAGER' );
7. SELECT JOB, MAX(SAL) FROM EMP GROUP BY JOB;
8. SELECT * FROM EMP WHERE (DEPTNO, HIREDATE) IN (SELECT
DEPTNO, MAX(HIREDATE) FROM EMP GROUP BY DEPTNO);
9. SELECT TO_CHAR(HIREDATE,'YYYY') "YEAR", COUNT(EMPNO) "NO.
OF EMPLOYEES" FROM EMP GROUP BY TO_CHAR(HIREDATE,'YYYY')
HAVING COUNT(EMPNO) = (SELECT MAX(COUNT(EMPNO)) FROM EMP
GROUP BY TO_CHAR(HIREDATE,'YYYY'));
10. SELECT DEPTNO, LPAD(SUM(12*(SAL+NVL(COMM,0))),15)
"COMPENSATION" FROM EMP GROUP BY DEPTNO HAVING SUM(

Freshersworld.com Resource Center


7
First Job…. Dream Job…. Freshersworld.com

12*(SAL+NVL(COMM,0))) = (SELECT MAX(SUM(12*(SAL+NVL(COMM,0))))


FROM EMP GROUP BY DEPTNO);
11. SELECT ENAME, HIREDATE, LPAD('*',8) "RECENTLY HIRED" FROM
EMP WHERE HIREDATE = (SELECT MAX(HIREDATE) FROM EMP) UNION
SELECT ENAME NAME, HIREDATE, LPAD(' ',15) "RECENTLY HIRED" FROM
EMP WHERE HIREDATE != (SELECT MAX(HIREDATE) FROM EMP);
12. SELECT ENAME,SAL FROM EMP E WHERE SAL > (SELECT AVG(SAL)
FROM EMP F WHERE E.DEPTNO = F.DEPTNO);
13. SELECT ENAME, SAL FROM EMP A WHERE &N = (SELECT COUNT
(DISTINCT(SAL)) FROM EMP B WHERE A.SAL<=B.SAL);
14. SELECT * FROM EMP A WHERE A.EMPNO IN (SELECT EMPNO FROM
EMP GROUP BY EMPNO HAVING COUNT(EMPNO)>1) AND A.ROWID!=MIN
(ROWID));
15. SELECT ENAME
"EMPLOYEE",TO_CHAR(TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDAT
E)/12))||' YEARS '|| TO_CHAR(TRUNC(MOD(MONTHS_BETWEEN (SYSDATE,
HIREDATE),12)))||' MONTHS ' "LENGTH OF SERVICE" FROM EMP;

Freshersworld.com Resource Center


8
First Job…. Dream Job…. Freshersworld.com

Freshersworld.com Resource Center


9
First Job…. Dream Job…. Freshersworld.com

UNIX Concepts

SECTION - I

FILE MANAGEMENT IN UNIX

1. How are devices represented in UNIX?

All devices are represented by files called special files that are located in/dev
directory. Thus, device files and other files are named and accessed in the same way. A
'regular file' is just an ordinary data file in the disk. A 'block special file' represents a
device with characteristics similar to a disk (data transfer in terms of blocks). A 'character
special file' represents a device with characteristics similar to a keyboard (data transfer is
by stream of bits in sequential order).

2. What is 'inode'?

All UNIX files have its description stored in a structure called 'inode'. The inode
contains info about the file-size, its location, time of last access, time of last modification,
permission and so on. Directories are also represented as files and have an associated
inode. In addition to descriptions about the file, the inode contains pointers to the data
blocks of the file. If the file is large, inode has indirect pointer to a block of pointers to
additional data blocks (this further aggregates for larger files). A block is typically 8k.

Inode consists of the following fields:

• File owner identifier


• File type
• File access permissions
• File access times
• Number of links
• File size
• Location of the file data
3. Brief about the directory representation in UNIX

A Unix directory is a file containing a correspondence between filenames and


inodes. A directory is a special file that the kernel maintains. Only kernel modifies
directories, but processes can read directories. The contents of a directory are a list of
filename and inode number pairs. When new directories are created, kernel makes two
entries named '.' (refers to the directory itself) and '..' (refers to parent directory).

System call for creating directory is mkdir (pathname, mode).

4. What are the Unix system calls for I/O?

• open(pathname,flag,mode) - open file


• creat(pathname,mode) - create file
• close(filedes) - close an open file
• read(filedes,buffer,bytes) - read data from an open file
• write(filedes,buffer,bytes) - write data to an open file
• lseek(filedes,offset,from) - position an open file
• dup(filedes) - duplicate an existing file descriptor
• dup2(oldfd,newfd) - duplicate to a desired file descriptor
• fcntl(filedes,cmd,arg) - change properties of an open file
• ioctl(filedes,request,arg) - change the behaviour of an open file

The difference between fcntl anf ioctl is that the former is intended for any open file,
while the latter is for device-specific operations.

5. How do you change File Access Permissions?

Every file has following attributes:

• owner's user ID ( 16 bit integer )


• owner's group ID ( 16 bit integer )
• File access mode word

'r w x -r w x- r w x'

(user permission-group permission-others permission)

r-read, w-write, x-execute


To change the access mode, we use chmod(filename,mode).

Example 1:

To change mode of myfile to 'rw-rw-r--' (ie. read, write permission for user -
read,write permission for group - only read permission for others) we give the args as:

chmod(myfile,0664) .

Each operation is represented by discrete values

'r' is 4

'w' is 2

'x' is 1

Therefore, for 'rw' the value is 6(4+2).

Example 2:

To change mode of myfile to 'rwxr--r--' we give the args as:

chmod(myfile,0744).

6. What are links and symbolic links in UNIX file system?

A link is a second name (not a file) for a file. Links can be used to assign more
than one name to a file, but cannot be used to assign a directory more than one name or
link filenames on different computers.

Symbolic link 'is' a file that only contains the name of another file.Operation on
the symbolic link is directed to the file pointed by the it.Both the limitations of links are
eliminated in symbolic links.

Commands for linking files are:

Link ln filename1 filename2

Symbolic link ln -s filename1 filename2

7. What is a FIFO?
FIFO are otherwise called as 'named pipes'. FIFO (first-in-first-out) is a special
file which is said to be data transient. Once data is read from named pipe, it cannot be
read again. Also, data can be read only in the order written. It is used in interprocess
communication where a process writes to one end of the pipe (producer) and the other
reads from the other end (consumer).

8. How do you create special files like named pipes and device files?

The system call mknod creates special files in the following sequence.

1. kernel assigns new inode,


2. sets the file type to indicate that the file is a pipe, directory or special file,
3. If it is a device file, it makes the other entries like major, minor device numbers.

For example:

If the device is a disk, major device number refers to the disk controller and minor
device number is the disk.

9. Discuss the mount and unmount system calls

The privileged mount system call is used to attach a file system to a directory of
another file system; the unmount system call detaches a file system. When you mount
another file system on to your directory, you are essentially splicing one directory tree
onto a branch in another directory tree. The first argument to mount call is the mount
point, that is , a directory in the current file naming system. The second argument is the
file system to mount to that point. When you insert a cdrom to your unix system's drive,
the file system in the cdrom automatically mounts to /dev/cdrom in your system.

10. How does the inode map to data block of a file?

Inode has 13 block addresses. The first 10 are direct block addresses of the first
10 data blocks in the file. The 11th address points to a one-level index block. The 12th
address points to a two-level (double in-direction) index block. The 13th address points to
a three-level(triple in-direction)index block. This provides a very large maximum file size
with efficient access to large files, but also small files are accessed directly in one disk
read.

11. What is a shell?


A shell is an interactive user interface to an operating system services that allows an user
to enter commands as character strings or through a graphical user interface. The shell
converts them to system calls to the OS or forks off a process to execute the command.
System call results and other information from the OS are presented to the user through
an interactive interface. Commonly used shells are sh,csh,ks etc.

SECTION - II

PROCESS MODEL and IPC

1. Brief about the initial process sequence while the system boots up.

While booting, special process called the 'swapper' or 'scheduler' is created with
Process-ID 0. The swapper manages memory allocation for processes and influences
CPU allocation. The swapper inturn creates 3 children:

• the process dispatcher,


• vhand and
• dbflush

with IDs 1,2 and 3 respectively.

This is done by executing the file /etc/init. Process dispatcher gives birth to the
shell. Unix keeps track of all the processes in an internal data structure called the Process
Table (listing command is ps -el).

2. What are various IDs associated with a process?

Unix identifies each process with a unique integer called ProcessID. The process
that executes the request for creation of a process is called the 'parent process' whose PID
is 'Parent Process ID'. Every process is associated with a particular user called the 'owner'
who has privileges over the process. The identification for the user is 'UserID'. Owner is
the user who executes the process. Process also has 'Effective User ID' which determines
the access privileges for accessing resources like files.

getpid() -process id

getppid() -parent process id

getuid() -user id
geteuid() -effective user id

3. Explain fork() system call.

The `fork()' used to create a new process from an existing process. The new
process is called the child process, and the existing process is called the parent. We can
tell which is which by checking the return value from `fork()'. The parent gets the child's
pid returned to him, but the child gets 0 returned to him.

4. Predict the output of the following program code

main()

fork();

printf("Hello World!");

Answer:

Hello World!Hello World!

Explanation:

The fork creates a child that is a duplicate of the parent process. The child begins
from the fork().All the statements after the call to fork() will be executed twice.(once by
the parent process and other by child). The statement before fork() is executed only by
the parent process.

5. Predict the output of the following program code

main()

fork(); fork(); fork();


printf("Hello World!");

Answer:

"Hello World" will be printed 8 times.

Explanation:

2^n times where n is the number of calls to fork()

6. List the system calls used for process management:

System calls Description

fork() To create a new process

exec() To execute a new program in a process

wait() To wait until a created process completes its execution

exit() To exit from a process execution

getpid() To get a process identifier of the current process

getppid() To get parent process identifier

nice() To bias the existing priority of a process

brk() To increase/decrease the data segment size of a process

7. How can you get/set an environment variable from a program?

Getting the value of an environment variable is done by using `getenv()'.

Setting the value of an environment variable is done by using `putenv()'.

8. How can a parent and child process communicate?


A parent and child can communicate through any of the normal inter-process
communication schemes (pipes, sockets, message queues, shared memory), but also have
some special ways to communicate that take advantage of their relationship as a parent
and child. One of the most obvious is that the parent can get the exit status of the child.

9. What is a zombie?

When a program forks and the child finishes before the parent, the kernel still
keeps some of its information about the child in case the parent might need it - for
example, the parent may need to check the child's exit status. To be able to get this
information, the parent calls `wait()'; In the interval between the child terminating and the
parent calling `wait()', the child is said to be a `zombie' (If you do `ps', the child will have
a `Z' in its status field to indicate this.)

10. What are the process states in Unix?

As a process executes it changes state according to its circumstances. Unix


processes have the following states:

Running : The process is either running or it is ready to run .

Waiting : The process is waiting for an event or for a resource.

Stopped : The process has been stopped, usually by receiving a signal.

Zombie : The process is dead but have not been removed from the process table.

11. What Happens when you execute a program?

When you execute a program on your UNIX system, the system creates a special
environment for that program. This environment contains everything needed for the
system to run the program as if no other program were running on the system. Each
process has process context, which is everything that is unique about the state of the
program you are currently running. Every time you execute a program the UNIX system
does a fork, which performs a series of operations to create a process context and then
execute your program in that context. The steps include the following:

• Allocate a slot in the process table, a list of currently running programs kept by
UNIX.
• Assign a unique process identifier (PID) to the process.
• iCopy the context of the parent, the process that requested the spawning of the
new process.
• Return the new PID to the parent process. This enables the parent process to
examine or control the process directly.

After the fork is complete, UNIX runs your program.

12. What Happens when you execute a command?

When you enter 'ls' command to look at the contents of your current working
directory, UNIX does a series of things to create an environment for ls and the run it: The
shell has UNIX perform a fork. This creates a new process that the shell will use to run
the ls program. The shell has UNIX perform an exec of the ls program. This replaces the
shell program and data with the program and data for ls and then starts running that new
program. The ls program is loaded into the new process context, replacing the text and
data of the shell. The ls program performs its task, listing the contents of the current
directory.

13. What is a Daemon?

A daemon is a process that detaches itself from the terminal and runs,
disconnected, in the background, waiting for requests and responding to them. It can also
be defined as the background process that does not belong to a terminal session. Many
system functions are commonly performed by daemons, including the sendmail daemon,
which handles mail, and the NNTP daemon, which handles USENET news. Many other
daemons may exist. Some of the most common daemons are:

• init: Takes over the basic running of the system when the kernel has finished the
boot process.
• inetd: Responsible for starting network services that do not have their own stand-
alone daemons. For example, inetd usually takes care of incoming rlogin, telnet,
and ftp connections.
• cron: Responsible for running repetitive tasks on a regular schedule.

14. What is 'ps' command for?

The ps command prints the process status for some or all of the running
processes. The information given are the process identification number (PID),the amount
of time that the process has taken to execute so far etc.
15. How would you kill a process?

The kill command takes the PID as one argument; this identifies which process to
terminate. The PID of a process can be got using 'ps' command.

16. What is an advantage of executing a process in background?

The most common reason to put a process in the background is to allow you to do
something else interactively without waiting for the process to complete. At the end of
the command you add the special background symbol, &. This symbol tells your shell to
execute the given command in the background.

Example: cp *.* ../backup& (cp is for copy)

17. How do you execute one program from within another?

The system calls used for low-level process creation are execlp() and execvp().
The execlp call overlays the existing program with the new one , runs that and exits. The
original program gets back control only when an error occurs.

execlp(path,file_name,arguments..); //last argument must be NULL

A variant of execlp called execvp is used when the number of arguments is not known in
advance.

execvp(path,argument_array); //argument array should be terminated by NULL

18. What is IPC? What are the various schemes available?

The term IPC (Inter-Process Communication) describes various ways by which


different process running on some operating system communicate between each other.
Various schemes available are as follows:

Pipes:

One-way communication scheme through which different process can


communicate. The problem is that the two processes should have a common
ancestor (parent-child relationship). However this problem was fixed with the
introduction of named-pipes (FIFO).

Message Queues :

Message queues can be used between related and unrelated processes


running on a machine.

Shared Memory:

This is the fastest of all IPC schemes. The memory to be shared is mapped
into the address space of the processes (that are sharing). The speed achieved is
attributed to the fact that there is no kernel involvement. But this scheme needs
synchronization.

Various forms of synchronisation are mutexes, condition-variables, read-write locks,


record-locks, and semaphores.

SECTION - III

MEMORY MANAGEMENT

1. What is the difference between Swapping and Paging?


Swapping:

Whole process is moved from the swap device to the main memory for execution. Process size must be less than
or equal to the available main memory. It is easier to implementation and overhead to the system. Swapping systems does not handle
the memory more flexibly as compared to the paging systems.

Paging:

Only the required memory pages are moved to main memory from the
swap device for execution. Process size does not matter. Gives the concept of the virtual
memory.
It provides greater flexibility in mapping the virtual address space into the physical

memory of the machine. Allows more number of processes to fit in the main memory

simultaneously. Allows the greater process size than the available physical memory.

Demand paging systems handle the memory more flexibly.

2. What is major difference between the Historic Unix and the new BSD release of
Unix System V in terms of Memory Management?

Historic Unix uses Swapping – entire process is transferred to the main memory
from the swap device, whereas the Unix System V uses Demand Paging – only the part
of the process is moved to the main memory. Historic Unix uses one Swap Device and
Unix System V allow multiple Swap Devices.

3. What is the main goal of the Memory Management?

• It decides which process should reside in the main memory,


• Manages the parts of the virtual address space of a process which is non-core
resident,
• Monitors the available main memory and periodically write the processes into the
swap device to provide more processes fit in the main memory simultaneously.

4. What is a Map?

A Map is an Array, which contains the addresses of the free space in the swap
device that are allocatable resources, and the number of the resource units available there.
This allows First-Fit allocation of contiguous blocks of a resource. Initially the
Map contains one entry – address (block offset from the starting of the swap area) and the
total number of resources.

Kernel treats each unit of Map as a group of disk blocks. On the allocation and
freeing of the resources Kernel updates the Map for accurate information.

5. What scheme does the Kernel in Unix System V follow while choosing a swap
device among the multiple swap devices?

Kernel follows Round Robin scheme choosing a swap device among the multiple
swap devices in Unix System V.

6. What is a Region?

A Region is a continuous area of a process’s address space (such as text, data and
stack). The kernel in a ‘Region Table’ that is local to the process maintains region.
Regions are sharable among the process.

7. What are the events done by the Kernel after a process is being swapped out from
the main memory?

When Kernel swaps the process out of the primary memory, it performs the
following:

• Kernel decrements the Reference Count of each region of the process. If the
reference count becomes zero, swaps the region out of the main memory,
• Kernel allocates the space for the swapping process in the swap device,
• Kernel locks the other swapping process while the current swapping operation is
going on,
• The Kernel saves the swap address of the region in the region table.

8. Is the Process before and after the swap are the same? Give reason.

Process before swapping is residing in the primary memory in its original form.
The regions (text, data and stack) may not be occupied fully by the process, there may be
few empty slots in any of the regions and while swapping Kernel do not bother about the
empty slots while swapping the process out.
After swapping the process resides in the swap (secondary memory) device. The
regions swapped out will be present but only the occupied region slots but not the empty
slots that were present before assigning.
While swapping the process once again into the main memory, the Kernel referring to the Process Memory Map, it assigns
the main memory accordingly taking care of the empty slots in the regions.

9. What do you mean by u-area (user area) or u-block?

This contains the private data that is manipulated only by the Kernel. This is local
to the Process, i.e. each process is allocated a u-area.

10. What are the entities that are swapped out of the main memory while swapping
the process out of the main memory?

All memory space occupied by the process, process’s u-area, and Kernel stack are
swapped out, theoretically.

Practically, if the process’s u-area contains the Address Translation Tables for the
process then Kernel implementations do not swap the u-area.

11. What is Fork swap?

fork() is a system call to create a child process. When the parent process calls fork()
system call, the child process is created and if there is short of memory then the child
process is sent to the read-to-run state in the swap device, and return to the user state
without swapping the parent process. When the memory will be available the child
process will be swapped into the main memory.

12. What is Expansion swap?

At the time when any process requires more memory than it is currently allocated, the
Kernel performs Expansion swap. To do this Kernel reserves enough space in the swap
device. Then the address translation mapping is adjusted for the new virtual address space
but the physical memory is not allocated. At last Kernel swaps the process into the
assigned space in the swap device. Later when the Kernel swaps the process into the main
memory this assigns memory according to the new address translation mapping.
13. How the Swapper works?

The swapper is the only process that swaps the processes. The Swapper operates only in
the Kernel mode and it does not uses System calls instead it uses internal Kernel
functions for swapping. It is the archetype of all kernel process.

14. What are the processes that are not bothered by the swapper? Give Reason.

• Zombie process: They do not take any up physical memory.


• Processes locked in memories that are updating the region of the process.
• Kernel swaps only the sleeping processes rather than the ‘ready-to-run’ processes,
as they have the higher probability of being scheduled than the Sleeping
processes.

15. What are the requirements for a swapper to work?

The swapper works on the highest scheduling priority. Firstly it will look for any sleeping
process, if not found then it will look for the ready-to-run process for swapping. But the
major requirement for the swapper to work the ready-to-run process must be core-
resident for at least 2 seconds before swapping out. And for swapping in the process must
have been resided in the swap device for at least 2 seconds. If the requirement is not
satisfied then the swapper will go into the wait state on that event and it is awaken once
in a second by the Kernel.

16. What are the criteria for choosing a process for swapping into memory from the
swap device?

The resident time of the processes in the swap device, the priority of the processes and
the amount of time the processes had been swapped out.

17. What are the criteria for choosing a process for swapping out of the memory to
the swap device?

• The process’s memory resident time,


• Priority of the process and
• The nice value.
18. What do you mean by nice value?

Nice value is the value that controls {increments or decrements} the priority of the
process. This value that is returned by the nice () system call. The equation for using nice
value is:

Priority = (“recent CPU usage”/constant) + (base- priority) + (nice value)

Only the administrator can supply the nice value. The nice () system call works
for the running process only. Nice value of one process cannot affect the nice value of the
other process.

19. What are conditions on which deadlock can occur while swapping the processes?

• All processes in the main memory are asleep.


• All ‘ready-to-run’ processes are swapped out.
• There is no space in the swap device for the new incoming process that are
swapped out of the main memory.
• There is no space in the main memory for the new incoming process.

20. What are conditions for a machine to support Demand Paging?

• Memory architecture must based on Pages,


• The machine must support the ‘restartable’ instructions.

21. What is ‘the principle of locality’?

It’s the nature of the processes that they refer only to the small subset of the total
data space of the process. i.e. the process frequently calls the same subroutines or
executes the loop instructions.

22. What is the working set of a process?

The set of pages that are referred by the process in the last ‘n’, references, where
‘n’ is called the window of the working set of the process.
23. What is the window of the working set of a process?

The window of the working set of a process is the total number in which the
process had referred the set of pages in the working set of the process.

24. What is called a page fault?

Page fault is referred to the situation when the process addresses a page in the
working set of the process but the process fails to locate the page in the working set. And
on a page fault the kernel updates the working set by reading the page from the secondary
device.

25. What are data structures that are used for Demand Paging?

Kernel contains 4 data structures for Demand paging. They are,

• Page table entries,


• Disk block descriptors,
• Page frame data table (pfdata),
• Swap-use table.

26. What are the bits that support the demand paging?

Valid, Reference, Modify, Copy on write, Age. These bits are the part of the page
table entry, which includes physical address of the page and protection bits.

Page address Age Copy on write Modify Reference Valid Protection

26. How the Kernel handles the fork() system call in traditional Unix and in the
System V Unix, while swapping?

Kernel in traditional Unix, makes the duplicate copy of the parent’s address space and
attaches it to the child’s process, while swapping. Kernel in System V Unix, manipulates
the region tables, page table, and pfdata table entries, by incrementing the reference count
of the region table of shared regions.

26. Difference between the fork() and vfork() system call?

During the fork() system call the Kernel makes a copy of the parent process’s address
space and attaches it to the child process.

But the vfork() system call do not makes any copy of the parent’s address space, so it
is faster than the fork() system call. The child process as a result of the vfork() system
call executes exec() system call. The child process from vfork() system call executes in
the parent’s address space (this can overwrite the parent’s data and stack ) which
suspends the parent process until the child process exits.

26. What is BSS(Block Started by Symbol)?

A data representation at the machine level, that has initial values when a program starts
and tells about how much space the kernel allocates for the un-initialized data. Kernel
initializes it to zero at run-time.

26. What is Page-Stealer process?

This is the Kernel process that makes rooms for the incoming pages, by swapping the
memory pages that are not the part of the working set of a process. Page-Stealer is
created by the Kernel at the system initialization and invokes it throughout the lifetime of
the system. Kernel locks a region when a process faults on a page in the region, so that
page stealer cannot steal the page, which is being faulted in.

26. Name two paging states for a page in memory?

The two paging states are:

• The page is aging and is not yet eligible for swapping,


• The page is eligible for swapping but not yet eligible for reassignment to other
virtual address space.
26. What are the phases of swapping a page from the memory?

• Page stealer finds the page eligible for swapping and places the page number in
the list of pages to be swapped.
• Kernel copies the page to a swap device when necessary and clears the valid bit in
the page table entry, decrements the pfdata reference count, and places the pfdata
table entry at the end of the free list if its reference count is 0.

33. What is page fault? Its types?

Page fault refers to the situation of not having a page in the main memory when any
process references it.

There are two types of page fault :

• Validity fault,
• Protection fault.

33. In what way the Fault Handlers and the Interrupt handlers are different?

Fault handlers are also an interrupt handler with an exception that the interrupt handlers
cannot sleep. Fault handlers sleep in the context of the process that caused the memory
fault. The fault refers to the running process and no arbitrary processes are put to sleep.

33. What is validity fault?

If a process referring a page in the main memory whose valid bit is not set, it
results in validity fault.

The valid bit is not set for those pages:

• that are outside the virtual address space of a process,


• that are the part of the virtual address space of the process but no physical address
is assigned to it.

33. What does the swapping system do if it identifies the illegal page for swapping?
If the disk block descriptor does not contain any record of the faulted page, then
this causes the attempted memory reference is invalid and the kernel sends a
“Segmentation violation” signal to the offending process. This happens when the
swapping system identifies any invalid memory reference.

33. What are states that the page can be in, after causing a page fault?

• On a swap device and not in memory,


• On the free page list in the main memory,
• In an executable file,
• Marked “demand zero”,
• Marked “demand fill”.

33. In what way the validity fault handler concludes?

• It sets the valid bit of the page by clearing the modify bit.
• It recalculates the process priority.

33. At what mode the fault handler executes?

At the Kernel Mode.

33. What do you mean by the protection fault?

Protection fault refers to the process accessing the pages, which do not have the access
permission. A process also incur the protection fault when it attempts to write a page
whose copy on write bit was set during the fork() system call.

33. How the Kernel handles the copy on write bit of a page, when the bit is set?

In situations like, where the copy on write bit of a page is set and that page is shared by
more than one process, the Kernel allocates new page and copies the content to the new
page and the other processes retain their references to the old page. After copying the
Kernel updates the page table entry with the new page number. Then Kernel decrements
the reference count of the old pfdata table entry.
In cases like, where the copy on write bit is set and no processes are sharing the page,
the Kernel allows the physical page to be reused by the processes. By doing so, it clears
the copy on write bit and disassociates the page from its disk copy (if one exists), because
other process may share the disk copy. Then it removes the pfdata table entry from the
page-queue as the new copy of the virtual page is not on the swap device. It decrements
the swap-use count for the page and if count drops to 0, frees the swap space.

33. For which kind of fault the page is checked first?

The page is first checked for the validity fault, as soon as it is found that the page is
invalid (valid bit is clear), the validity fault handler returns immediately, and the process
incur the validity page fault. Kernel handles the validity fault and the process will incur
the protection fault if any one is present.

33. In what way the protection fault handler concludes?

After finishing the execution of the fault handler, it sets the modify and protection bits
and clears the copy on write bit. It recalculates the process-priority and checks for signals.

33. How the Kernel handles both the page stealer and the fault handler?

The page stealer and the fault handler thrash because of the shortage of the
memory. If the sum of the working sets of all processes is greater that the physical
memory then the fault handler will usually sleep because it cannot allocate pages for a
process. This results in the reduction of the system throughput because Kernel spends too
much time in overhead, rearranging the memory in the frantic pace.
Freshersworld.com Resource Center

1
1. What is pipelining?
2. What are the five stages in a DLX pipeline?
3. For a pipeline with ‘n’ stages, what’s the ideal throughput? What prevents us from
achieving this ideal throughput?
4. What are the different hazards? How do you avoid them?
5. Instead of just 5-8 pipe stages why not have, say, a pipeline with 50 pipe stages?
6. What are Branch Prediction and Branch Target Buffers?
7. How do you handle precise exceptions or interrupts?
8. What is a cache?
9. What’s the difference between Write-Through and Write-Back Caches? Explain
advantages and disadvantages of each.
10. Cache Size is 64KB, Block size is 32B and the cache is Two-Way Set
Associative. For a 32-bit physical address, give the division between Block
Offset, Index and Tag.
11. What is Virtual Memory?
12. What is Cache Coherency?
13. What is MESI?
14. What is a Snooping cache?
15. What are the components in a Microprocessor?
16. What is ACBF(Hex) divided by 16?
17. Convert 65(Hex) to Binary
18. Convert a number to its two’s compliment and back
19. The CPU is busy but you want to stop and do some other task. How do you do it?
1. What are the flags in 8086? - In 8086 Carry flag, Parity flag, Auxiliary carry
flag, Zero flag, Overflow flag, Trace flag, Interrupt flag, Direction flag, and Sign
flag.
2. What are the various interrupts in 8086? - Maskable interrupts, Non-Maskable
interrupts.
3. What is meant by Maskable interrupts? - An interrupt that can be turned off by
the programmer is known as Maskable interrupt.
4. What is Non-Maskable interrupts? - An interrupt which can be never be turned
off (ie.disabled) is known as Non-Maskable interrupt.
5. Which interrupts are generally used for critical events? - Non-Maskable
interrupts are used in critical events. Such as Power failure, Emergency, Shut off
etc.,
6. Give examples for Maskable interrupts? - RST 7.5, RST6.5, RST5.5 are
Maskable interrupts
7. Give example for Non-Maskable interrupts? - Trap is known as Non-Maskable
interrupts, which is used in emergency condition.
8. What is the Maximum clock frequency in 8086? - 5 Mhz is the Maximum
clock frequency in 8086.
9. What are the various segment registers in 8086? - Code, Data, Stack, Extra
Segment registers in 8086.
10. Which Stack is used in 8086? - FIFO (First In First Out) stack is used in 8086.In
this type of Stack the first stored information is retrieved first.
11. What are the address lines for the software interrupts? -

RST 0 0000 H

RST1 0008 H

RST2 0010 H

RST3 0018 H

RST4 0020 H

RST5 0028 H
RST6 0030 H

RST7 0038 H

12. What is SIM and RIM instructions? - SIM is Set Interrupt Mask. Used to mask
the hardware interrupts. RIM is Read Interrupt Mask. Used to check whether the
interrupt is Masked or not.
13. Which is the tool used to connect the user and the computer? - Interpreter is
the tool used to connect the user and the tool.
14. What is the position of the Stack Pointer after the PUSH instruction? - The
address line is 02 less than the earlier value.
15. What is the position of the Stack Pointer after the POP instruction? - The
address line is 02 greater than the earlier value.
16. Logic calculations are done in which type of registers? - Accumulator is the
register in which Arithmetic and Logic calculations are done.
17. What are the different functional units in 8086? - Bus Interface Unit and
Execution unit, are the two different functional units in 8086.
18. Give examples for Micro controller? - Z80, Intel MSC51 &96, Motorola are the
best examples of Microcontroller.
19. What is meant by cross-compiler? - A program runs on one machine and
executes on another is called as cross-compiler.
20. What are the address lines for the hardware interrupts? -

RST 7.5 003C H

RST 6.5 0034 H

RST 5.5 002C H

TRAP 0024 H
21. Which Segment is used to store interrupt and subroutine return address
registers? - Stack Segment in segment register is used to store interrupt and
subroutine return address registers.
22. Which Flags can be set or reset by the programmer and also used to control
the operation of the processor? - Trace Flag, Interrupt Flag, Direction Flag.
23. What does EU do? - Execution Unit receives program instruction codes and data
from BIU, executes these instructions and store the result in general registers.
24. Which microprocessor accepts the program written for 8086 without any
changes? - 8088 is that processor.
25. What is the difference between 8086 and 8088? - The BIU in 8088 is 8-bit data
bus & 16- bit in 8086.Instruction queue is 4 byte long in 8088and 6 byte in 8086.
1. What is a Microprocessor? - Microprocessor is a program-controlled device,
which fetches the instructions from memory, decodes and executes the
instructions. Most Micro Processor are single- chip devices.
2. Give examples for 8 / 16 / 32 bit Microprocessor? - 8-bit Processor - 8085 / Z80
/ 6800; 16-bit Processor - 8086 / 68000 / Z8000; 32-bit Processor - 80386 / 80486.
3. Why 8085 processor is called an 8 bit processor? - Because 8085 processor has
8 bit ALU (Arithmetic Logic Review). Similarly 8086 processor has 16 bit ALU.
4. What is 1st / 2nd / 3rd / 4th generation processor? - The processor made of
PMOS / NMOS / HMOS / HCMOS technology is called 1st / 2nd / 3rd / 4th
generation processor, and it is made up of 4 / 8 / 16 / 32 bits.
5. Define HCMOS? - High-density n- type Complimentary Metal Oxide Silicon
field effect transistor.
6. What does microprocessor speed depend on? - The processing speed depends
on DATA BUS WIDTH.
7. Is the address bus unidirectional? - The address bus is unidirectional because
the address information is always given by the Micro Processor to address a
memory location of an input / output devices.
8. Is the data bus is Bi-directional? - The data bus is Bi-directional because the
same bus is used for transfer of data between Micro Processor and memory or
input / output devices in both the direction.
9. What is the disadvantage of microprocessor? - It has limitations on the size of
data. Most Microprocessor does not support floating-point operations.
10. What is the difference between microprocessor and microcontroller? - In
Microprocessor more op-codes, few bit handling instructions. But in
Microcontroller: fewer op-codes, more bit handling Instructions, and also it is
defined as a device that includes micro processor, memory, & input / output
signal lines on a single chip.
11. What is meant by LATCH? - Latch is a D- type flip-flop used as a temporary
storage device controlled by a timing signal, which can store 0 or 1. The primary
function of a Latch is data storage. It is used in output devices such as LED, to
hold the data for display.
12. Why does microprocessor contain ROM chips? - Microprocessor contain ROM
chip because it contain instructions to execute data.
13. What is the difference between primary & secondary storage device? - In
primary storage device the storage capacity is limited. It has a volatile memory. In
secondary storage device the storage capacity is larger. It is a nonvolatile
memory. Primary devices are: RAM / ROM. Secondary devices are: Floppy disc /
Hard disk.
14. Difference between static and dynamic RAM? - Static RAM: No refreshing, 6
to 8 MOS transistors are required to form one memory cell, Information stored as
voltage level in a flip flop. Dynamic RAM: Refreshed periodically, 3 to 4
transistors are required to form one memory cell, Information is stored as a charge
in the gate to substrate capacitance.
15. What is interrupt? - Interrupt is a signal send by external device to the processor
so as to request the processor to perform a particular work.
16. What is cache memory? - Cache memory is a small high-speed memory. It is
used for temporary storage of data & information between the main memory and
the CPU (center processing unit). The cache memory is only in RAM.
17. What is called “Scratch pad of computer”? - Cache Memory is scratch pad of
computer.
18. Which transistor is used in each cell of EPROM? - Floating –gate Avalanche
Injection MOS (FAMOS) transistor is used in each cell of EPROM.
19. Differentiate between RAM and ROM? - RAM: Read / Write memory, High
Speed, Volatile Memory. ROM: Read only memory, Low Speed, Non Voliate
Memory.
20. What is a compiler? - Compiler is used to translate the high-level language
program into machine code at a time. It doesn’t require special instruction to store
in a memory, it stores automatically. The Execution time is less compared to
Interpreter.
21. Which processor structure is pipelined? - All x86 processors have pipelined
structure.
22. What is flag? - Flag is a flip-flop used to store the information about the status of
a processor and the status of the instruction executed most recently
23. What is stack? - Stack is a portion of RAM used for saving the content of
Program Counter and general purpose registers.
24. Can ROM be used as stack? - ROM cannot be used as stack because it is not
possible to write to ROM.
25. What is NV-RAM? - Nonvolatile Read Write Memory, also called Flash
memory. It is also know as shadow RAM.
Frequently Asked Questions -Telecommunication

A well-known telecommunications company uses this pop quiz for oral and written
examinations of applicants for engineering positions.

1. A 2MB PCM(pulse code modulation) has…

a) 32 channels
b) 30 voice channels & 1 signaling channel.
c) 31 voice channels & 1 signaling channel.
d) 32 channels out of which 30 voice channels, 1 signaling channel, & 1 synchronization
channel.

Ans: c

2. Time taken for 1 satellite hop in voice communication is…

a) 1/2 second
b) 1 seconds
c) 4 seconds
d) 2 seconds

Ans: (a)

3. Max number of satellite hops allowed in voice communication is:

a) only one
b) more han one
c) two hops
d) four hops

Ans: (c)

4. What is the maximal decimal number that can be accommodated in a byte?

a) 128
b) 256
c) 255
d) 512

Ans: (c)

5. Conditional results after execution of an instruction in a micro processor is stored


in…
a) register
b) accumulator
c) flag register
d) flag register part of PSW(Program Status Word)

Ans: (d)

6. Frequency at which VOICE is sampled is…

a) 4 KHz
b) 8 KHz
c) 16 KHz
d) 64 KHz

Ans: (a)

7. Line of sight is…

a) Straight Line
b) Parabolic
c) Tx & Rx should be visible to each other
d) none of the above

Ans: (c)

8. Purpose of PC(Program Counter) in a MicroProcessor is…

a) To store address of TOS(Top Of Stack)


b) To store address of next instruction to be executed.
c) count the number of instructions.
d) to store base address of the stack.

Ans: (b)

9. What action is taken when the processor under execution is interrupted by a non-
maskable interrupt?

a) Processor serves the interrupt request after completing the execution of the current
instruction.
b) Processor serves the interrupt request after completing the current task.
c) Processor serves the interrupt request immediately.
d) Processor serving the interrupt request depends upon the priority of the current task
under execution.

Ans: (a)
10. The status of the Kernel is…

a) task
b) process
c) not defined.
d) none of the above.

Ans: (b)

11. What is the nominal voltage required in subscriber loop connected to local
exchange?

a) +48 volts
b) -48 volts
c) 230 volts
d) 110 volts

12. To send a data packet using datagram , connection will be established…

a) before data transmission.


b) connection is not established before data transmission.
c) no connection is required.
d) none of the above.

Ans: (c)

13. Word alignment is…

a) aligning the address to the next word boundary of the machine.


b) aligning to an even boundary.
c) aligning to a word boundary.
d) none of the above.

Ans: (a)

14. When a C function call is made, the order in which parameters passed to the
function are pushed into the stack is…

a) left to right
b) right to left
c) bigger variables are moved first than the smaller variales.
d) smaller variables are moved first than the bigger ones.
e) none of the above.

Ans: (b)
15. What is the type of signaling used between two exchanges?

a) inband
b) common channel signaling
c) any of the above
d) none of the above.

Ans: (a)

16. Buffering is…

a) the process of temporarily storing the data to allow for small variation in device speeds
b) a method to reduce cross talks
c) storage of data within transmitting medium until the receiver is ready to receive.
d) a method to reduce routing overhead.

Ans: (a)

17. Memory allocation of variables declared in a program is…

a) allocated in RAM.
b) allocated in ROM.
c) allocated on stack.
d) assigned to registers.

Ans: (c)

18. A software that allows a personal computer to pretend as a computer terminal is


a) terminal adapter
b) bulletin board
c) modem
d) terminal emulation

Ans: (d)
Frequently Asked Questions - VLSI Design.

1. Explain why & how a MOSFET works.


2. Draw Vds-Ids curve for a MOSFET. Now, show how this curve changes (a) with
increasing Vgs (b) with increasing transistor width (c) considering Channel
Length Modulation
3. Explain the various MOSFET Capacitances & their significance
4. Draw a CMOS Inverter. Explain its transfer characteristics
5. Explain sizing of the inverter
6. How do you size NMOS and PMOS transistors to increase the threshold voltage?
7. What is Noise Margin? Explain the procedure to determine Noise Margin
8. Give the expression for CMOS switching power dissipation
9. What is Body Effect?
10. Describe the various effects of scaling
11. Give the expression for calculating Delay in CMOS circuit
12. What happens to delay if you increase load capacitance?
13. What happens to delay if we include a resistance at the output of a CMOS circuit?
14. What are the limitations in increasing the power supply to reduce delay?
15. How does Resistance of the metal lines vary with increasing thickness and
increasing length?
16. You have three adjacent parallel metal lines. Two out of phase signals pass
through the outer two metal lines. Draw the waveforms in the center metal line
due to interference. Now, draw the signals if the signals in outer metal lines are in
phase with each other
17. What happens if we increase the number of contacts or via from one metal layer
to the next?
18. Draw a transistor level two input NAND gate. Explain its sizing (a) considering
Vth (b) for equal rise and fall times
19. Let A & B be two inputs of the NAND gate. Say signal A arrives at the NAND
gate later than signal B. To optimize delay, of the two series NMOS inputs A &
B, which one would you place near the output?
20. Draw the stick diagram of a NOR gate. Optimize it
21. For CMOS logic, give the various techniques you know to minimize power
consumption
22. What is Charge Sharing? Explain the Charge Sharing problem while sampling
data from a Bus
23. Why do we gradually increase the size of inverters in buffer design? Why not give
the output of a circuit to one large inverter?
24. In the design of a large inverter, why do we prefer to connect small transistors in
parallel (thus increasing effective width) rather than lay out one transistor with
large width?
25. Given a layout, draw its transistor level circuit. (I was given a 3 input AND gate
and a 2 input Multiplexer. You can expect any simple 2 or 3 input gates)
26. Give the logic expression for an AOI gate. Draw its transistor level equivalent.
Draw its stick diagram
27. Why don’t we use just one NMOS or PMOS transistor as a transmission gate?
28. For a NMOS transistor acting as a pass transistor, say the gate is connected to
VDD, give the output for a square pulse input going from 0 to VDD
29. Draw a 6-T SRAM Cell and explain the Read and Write operations
30. Draw the Differential Sense Amplifier and explain its working. Any idea how to
size this circuit? (Consider Channel Length Modulation)
31. What happens if we use an Inverter instead of the Differential Sense Amplifier?
32. Draw the SRAM Write Circuitry
33. Approximately, what were the sizes of your transistors in the SRAM cell? How
did you arrive at those sizes?
34. How does the size of PMOS Pull Up transistors (for bit & bit- lines) affect
SRAM’s performance?
35. What’s the critical path in a SRAM?
36. Draw the timing diagram for a SRAM Read. What happens if we delay the
enabling of Clock signal?
37. Give a big picture of the entire SRAM Layout showing your placements of
SRAM Cells, Row Decoders, Column Decoders, Read Circuit, Write Circuit and
Buffers
38. In a SRAM layout, which metal layers would you prefer for Word Lines and Bit
Lines? Why?
39. How can you model a SRAM at RTL Level?
40. What’s the difference between Testing & Verification?
41. For an AND-OR implementation of a two input Mux, how do you test for Stuck-
At-0 and Stuck-At-1 faults at the internal nodes? (You can expect a circuit with
some redundant logic)
42. What is Latch Up? Explain Latch Up with cross section of a CMOS Inverter.
How do you avoid Latch Up?
Frequently Asked Questions - Bluetooth

Used for a written exam by a company in India.

1. Why is Bluetooth called a cable replacement technology? - Bluetooth


technology allows the creation of Personal Area Networks without cables or wires
that are usual in home networks.
2. Give a generic description of Bluetooth? - Bluetooth is a low-cost, short-range
(RF) links between mobile PCs, mobile phones and other portable devices.
Bluetooth can transmit through solid, non-metal objects.
3. Why can Bluetooth equipment integrate easily in TCP/IP network? - Because
Bluetooth uses wireless LAN standards IEEE for data transmission.
4. Is it possible to connect multiple Bluetooth hubs? - No, only one hub can be
used at a time with a computer. USB or Serial devices can be added.
5. What is FCC and how does it relate to Bluetooth? - FCC is Federal
Communication Commission, which issues licenses to the stations for specific
frequencies. It also decides who is able to use which frequency for what purpose.
Since Bluetooth is using unlicensed spectrum, FCC has no direct involvement
with Bluetooth
6. Under what frequency range does Bluetooth work? - 2.45 GHz is the
frequency range.
7. Do Bluetooth devices need line of sight to connect to one another? - No.
8. Which technology is used in Bluetooth for avoiding interference? - Frequency
hopping is the technology used in Bluetooth.
9. Bluetooth signals do not interfere with our PCs or cordless phones or
portables. Why? - Bluetooth uses low-power signals, it plays around in 2.45
GHz range, while most of consumer devices would be using 900 MHz.
10. What is Airport? - Airport is a wireless communications system, like Bluetooth.
It is based on the IEEE 802.11 recommendation. It also uses 2.4 GHz frequency
band, but its range is about 45 meters and it boasts a transmission speed of 11
Mbit/second. It is developed by Lucent Technologies.
11. What is Piconet? - A collection of devices connected through Bluetooth
technology in an ad hoc fashion.
12. What are the three main types of connection used by Bluetooth? - Single
slave, Master slave, Scatternet .
13. What is FEC in Bluetooth? - Forward Error Correction is a method by which
Bluetooth increases its noise immunity. FEC is a method that enables a receiver to
not only detect, but also correct errors in a transmission.
14. Which method is primarily used for Voice transfer? - Synchronous
Connection Oriented (SCO) is a method primarily used for Voice transfer.
15. What is the frequency range used for Bluetooth in Europe and United
States? - 2402 MHz to 2480 MHz are the frequency ranges used in USA and
Europe.
16. List some Technology characteristic of Bluetooth? - Omni directional,
Adaptive output power to minimize interference, Support Synchronous &
asynchronous services, Fast Frequency Hopping to avoid interference, Short data
packets to maximize capacity during interface.
17. Which company originally conceived and developed Bluetooth? - Ericsson.
18. How does Bluetooth use frequency hopping for security? - Bluetooth picks a
random frequency out of 79 and then hops around the range about 1600 times per
second.
19. What is a Bluetooth dongle? - A device that hangs outside of a computer, or
phone to provide Bluetooth connection.
20. What are the other (competing or not) wireless technologies? - Wi-Fi, IrDa,
EDGE, UWB (Ultra Wide Band)
21. Which Bluetooth version uses adaptive frequency hopping? Why? - In
Version 1.2 Adaptive frequency hopping method is used, which improves
resistance to radio interference, and provides higher transmission speed.
22. How many SCO links are there in a piconet? - In a piconet, there can be up to
three SCO links of 64,000 bits per second each.
23. what is the total number of masters and slaves in a piconet? - 1 Master and 7
Slaves.
24. Which method is used for Data transfer? - Asynchronous Connectionless
(ACL) is Data transfer method in Bluetooth
25. What is the frequency range used for Bluetooth in Japan? - 2472 to 2497
MHz is the frequency range used for Bluetooth in Japan.
26. What is the strength of the signal transmitted by powerful cell phones? - The
powerful cell phones can transmit a signal of 3 watts.
Database
1. What is database?

A database is a logically coherent collection of data with some inherent meaning, representing
some aspect of real world and which is designed, built and populated with data for a specific
purpose.

2. What is DBMS?
It is a collection of programs that enables user to create and maintain a database. In other words
it is general-purpose software that provides the users with the processes of defining, constructing
and manipulating the database for various applications.

3. What is a Database system?


The database and DBMS software together is called as Database system.

4. Advantages of DBMS?
� Redundancy is controlled.
� Unauthorised access is restricted.
� Providing multiple user interfaces.
� Enforcing integrity constraints.
� Providing backup and recovery.

5. Disadvantage in File Processing System?


� Data redundancy & inconsistency.
� Difficult in accessing data.
� Data isolation.
� Data integrity.
� Concurrent access is not possible.
� Security Problems.

6. Describe the three levels of data abstraction?


The are three levels of abstraction:
� Physical level: The lowest level of abstraction describes how data are stored.
� Logical level: The next higher level of abstraction, describes what data are stored in
database and what relationship among those data.
� View level: The highest level of abstraction describes only part of entire database.
7. Define the "integrity rules"
There are two Integrity rules.
� Entity Integrity: States that �Primary key cannot have NULL value�
� Referential Integrity: States that �Foreign Key can be either a NULL value or should be
Primary Key value of other relation.

8. What is extension and intension?


Extension -
It is the number of tuples present in a table at any instance. This is time dependent.
Intension -
It is a constant value that gives the name, structure of table and the constraints laid on it.

9. What is System R? What are its two major subsystems?


System R was designed and developed over a period of 1974-79 at IBM San Jose Research
Center. It is a prototype and its purpose was to demonstrate that it is possible to build a
Relational System that can be used in a real life environment to solve real life problems, with
performance at least comparable to that of existing system.
Its two subsystems are
� Research Storage
� System Relational Data System.

10. How is the data structure of System R different from the relational structure?
Unlike Relational systems in System R
� Domains are not supported
� Enforcement of candidate key uniqueness is optional
� Enforcement of entity integrity is optional
� Referential integrity is not enforced

11. What is Data Independence?


Data independence means that �the application is independent of the storage structure and
access strategy of data�. In other words, The ability to modify the schema definition in one
level should not affect the schema definition in the next higher level.
Two types of Data Independence:
� Physical Data Independence: Modification in physical level should not affect the logical level.
� Logical Data Independence: Modification in logical level should affect the view level.
NOTE: Logical Data Independence is more difficult to achieve
12. What is a view? How it is related to data independence?
A view may be thought of as a virtual table, that is, a table that does not really exist in its own
right but is instead derived from one or more underlying base table. In other words, there is no
stored file that direct represents the view instead a definition of view is stored in data dictionary.
Growth and restructuring of base tables is not reflected in views. Thus the view can insulate users
from the effects of restructuring and growth in the database. Hence accounts for logical data
independence.

13. What is Data Model?


A collection of conceptual tools for describing data, data relationships data semantics and
constraints.

14. What is E-R model?


This data model is based on real world that consists of basic objects called entities and of
relationship among these objects. Entities are described in a database by a set of attributes.

15. What is Object Oriented model?


This model is based on collection of objects. An object contains values stored in instance
variables with in the object. An object also contains bodies of code that operate on the object.
These bodies of code are called methods. Objects that contain same types of values and the
same methods are grouped together into classes.

16. What is an Entity?


It is a 'thing' in the real world with an independent existence.

17. What is an Entity type?


It is a collection (set) of entities that have same attributes.

18. What is an Entity set?


It is a collection of all entities of particular entity type in the database.

19. What is an Extension of entity type?


The collections of entities of a particular entity type are grouped together into an entity set.

20. What is Weak Entity set?


An entity set may not have sufficient attributes to form a primary key, and its primary key
compromises of its partial key and primary key of its parent entity, then it is said to be Weak
Entity set.

21. What is an attribute?


It is a particular property, which describes the entity.

22. What is a Relation Schema and a Relation?


A relation Schema denoted by R(A1, A2, �, An) is made up of the relation name R and the list
of attributes Ai that it contains. A relation is defined as a set of tuples. Let r be the relation which
contains set tuples (t1, t2, t3, ..., tn). Each tuple is an ordered list of n-values t=(v1,v2, ..., vn).

23. What is degree of a Relation?


It is the number of attribute of its relation schema.

24. What is Relationship?


It is an association among two or more entities.

25. What is Relationship set?


The collection (or set) of similar relationships.

26. What is Relationship type?


Relationship type defines a set of associations or a relationship set among a given set of entity
types.

27. What is degree of Relationship type?


It is the number of entity type participating.

25. What is DDL (Data Definition Language)?


A data base schema is specifies by a set of definitions expressed by a special language called
DDL.

26. What is VDL (View Definition Language)?


It specifies user views and their mappings to the conceptual schema.

27. What is SDL (Storage Definition Language)?


This language is to specify the internal schema. This language may specify the mapping between
two schemas.
28. What is Data Storage - Definition Language?
The storage structures and access methods used by database system are specified by a set of
definition in a special type of DDL called data storage-definition language.

29. What is DML (Data Manipulation Language)?


This language that enable user to access or manipulate data as organised by appropriate data
model.
� Procedural DML or Low level: DML requires a user to specify what data are needed and how
to get those data.
� Non-Procedural DML or High level: DML requires a user to specify what data are needed
without specifying how to get those data.

31. What is DML Compiler?


It translates DML statements in a query language into low-level instruction that the query
evaluation engine can understand.

32. What is Query evaluation engine?


It executes low-level instruction generated by compiler.

33. What is DDL Interpreter?


It interprets DDL statements and record them in tables containing metadata.

34. What is Record-at-a-time?


The Low level or Procedural DML can specify and retrieve each record from a set of records. This
retrieve of a record is said to be Record-at-a-time.

35. What is Set-at-a-time or Set-oriented?


The High level or Non-procedural DML can specify and retrieve many records in a single DML
statement. This retrieve of a record is said to be Set-at-a-time or Set-oriented.

36. What is Relational Algebra?


It is procedural query language. It consists of a set of operations that take one or two relations as
input and produce a new relation.

37. What is Relational Calculus?


It is an applied predicate calculus specifically tailored for relational databases proposed by E.F.
Codd. E.g. of languages based on it are DSL ALPHA, QUEL.

38. How does Tuple-oriented relational calculus differ from domain-oriented relational calculus
The tuple-oriented calculus uses a tuple variables i.e., variable whose only permitted values are
tuples of that relation. E.g. QUEL
The domain-oriented calculus has domain variables i.e., variables that range over the underlying
domains instead of over relation. E.g. ILL, DEDUCE.

39. What is normalization?


It is a process of analysing the given relation schemas based on their Functional Dependencies
(FDs) and primary key to achieve the properties
� Minimizing redundancy
� Minimizing insertion, deletion and update anomalies.

40. What is Functional Dependency?


A Functional dependency is denoted by X Y between two sets of attributes X and Y that are
subsets of R specifies a constraint on the possible tuple that can form a relation state r of R. The
constraint is for any two tuples t1 and t2 in r if t1[X] = t2[X] then they have t1[Y] = t2[Y]. This
means the value of X component of a tuple uniquely determines the value of component Y.

41. When is a functional dependency F said to be minimal?


� Every dependency in F has a single attribute for its right hand side.
� We cannot replace any dependency X A in F with a dependency Y A where Y is a proper
subset of X and still have a set of dependency that is equivalent to F.
� We cannot remove any dependency from F and still have set of dependency that is
equivalent to F.

42. What is Multivalued dependency?


Multivalued dependency denoted by X Y specified on relation schema R, where X and Y are both
subsets of R, specifies the following constraint on any relation r of R: if two tuples t1 and t2 exist
in r such that t1[X] = t2[X] then t3 and t4 should also exist in r with the following properties
� t3[x] = t4[X] = t1[X] = t2[X]
� t3[Y] = t1[Y] and t4[Y] = t2[Y]
� t3[Z] = t2[Z] and t4[Z] = t1[Z]
where [Z = (R-(X U Y)) ]

43. What is Lossless join property?


It guarantees that the spurious tuple generation does not occur with respect to relation schemas
after decomposition.

44. What is 1 NF (Normal Form)?


The domain of attribute must include only atomic (simple, indivisible) values.

45. What is Fully Functional dependency?


It is based on concept of full functional dependency. A functional dependency X Y is full functional
dependency if removal of any attribute A from X means that the dependency does not hold any
more.

46. What is 2NF?


A relation schema R is in 2NF if it is in 1NF and every non-prime attribute A in R is fully
functionally dependent on primary key.

47. What is 3NF?


A relation schema R is in 3NF if it is in 2NF and for every FD X A either of the following is true
� X is a Super-key of R.
� A is a prime attribute of R.
In other words, if every non prime attribute is non-transitively dependent on primary key.

48. What is BCNF (Boyce-Codd Normal Form)?


A relation schema R is in BCNF if it is in 3NF and satisfies an additional constraint that for every
FD X A, X must be a candidate key.

49. What is 4NF?


A relation schema R is said to be in 4NF if for every Multivalued dependency X Y that holds over
R, one of following is true
� X is subset or equal to (or) XY = R.
� X is a super key.

50. What is 5NF?


A Relation schema R is said to be 5NF if for every join dependency {R1, R2, ..., Rn} that holds R,
one the following is true
� Ri = R for some i.
� The join dependency is implied by the set of FD, over R in which the left side is key of R.
51. What is Domain-Key Normal Form?
A relation is said to be in DKNF if all constraints and dependencies that should hold on the the
constraint can be enforced by simply enforcing the domain constraint and key constraint on the
relation.

52. What are partial, alternate,, artificial, compound and natural key?
Partial Key:
It is a set of attributes that can uniquely identify weak entities and that are related to same owner
entity. It is sometime called as Discriminator.
Alternate Key:
All Candidate Keys excluding the Primary Key are known as Alternate Keys.
Artificial Key:
If no obvious key, either stand alone or compound is available, then the last resort is to simply
create a key, by assigning a unique number to each record or occurrence. Then this is known as
developing an artificial key.
Compound Key:
If no single data element uniquely identifies occurrences within a construct, then combining
multiple elements to create a unique identifier for the construct is known as creating a compound
key.
Natural Key:
When one of the data elements stored within a construct is utilized as the primary key, then it is
called the natural key.

53. What is indexing and what are the different kinds of indexing?
Indexing is a technique for determining how quickly specific data can be found.
Types:
� Binary search style indexing
� B-Tree indexing
� Inverted list indexing
� Memory resident table
� Table indexing

54. What is system catalog or catalog relation? How is better known as?
A RDBMS maintains a description of all the data that it contains, information about every relation
and index that it contains. This information is stored in a collection of relations maintained by the
system called metadata. It is also called data dictionary.
55. What is meant by query optimization?
The phase that identifies an efficient execution plan for evaluating a query that has the least
estimated cost is referred to as query optimization.

56. What is join dependency and inclusion dependency?


Join Dependency:
A Join dependency is generalization of Multivalued dependency.A JD {R1, R2, ..., Rn} is said to
hold over a relation R if R1, R2, R3, ..., Rn is a lossless-join decomposition of R . There is no set
of sound and complete inference rules for JD.
Inclusion Dependency:
An Inclusion Dependency is a statement of the form that some columns of a relation are
contained in other columns. A foreign key constraint is an example of inclusion dependency.

57. What is durability in DBMS?


Once the DBMS informs the user that a transaction has successfully completed, its effects should
persist even if the system crashes before all its changes are reflected on disk. This property is
called durability.

58. What do you mean by atomicity and aggregation?


Atomicity:
Either all actions are carried out or none are. Users should not have to worry about the effect of
incomplete transactions. DBMS ensures this by undoing the actions of incomplete transactions.
Aggregation:
A concept which is used to model a relationship between a collection of entities and relationships.
It is used when we need to express a relationship among relationships.

59. What is a Phantom Deadlock?


In distributed deadlock detection, the delay in propagating local information might cause the
deadlock detection algorithms to identify deadlocks that do not really exist. Such situations are
called phantom deadlocks and they lead to unnecessary aborts.

60. What is a checkpoint and When does it occur?


A Checkpoint is like a snapshot of the DBMS state. By taking checkpoints, the DBMS can reduce
the amount of work to be done during restart in the event of subsequent crashes.
61. What are the different phases of transaction?
Different phases are
� Analysis phase
� Redo Phase
� Undo phase

62. What do you mean by flat file database?


It is a database in which there are no programs or user access languages. It has no cross-file
capabilities but is user-friendly and provides user-interface management.

63. What is "transparent DBMS"?


It is one, which keeps its Physical Structure hidden from user.

64. Brief theory of Network, Hierarchical schemas and their properties


Network schema uses a graph data structure to organize records example for such a database
management system is CTCG while a hierarchical schema uses a tree data structure example for
such a system is IMS.

65. What is a query?


A query with respect to DBMS relates to user commands that are used to interact with a data
base. The query language can be classified into data definition language and data manipulation
language.

66. What do you mean by Correlated subquery?


Subqueries, or nested queries, are used to bring back a set of rows to be used by the parent
query. Depending on how the subquery is written, it can be executed once for the parent query or
it can be executed once for each row returned by the parent query. If the subquery is executed for
each row of the parent, this is called a correlated subquery.
A correlated subquery can be easily identified if it contains any references to the parent subquery
columns in its WHERE clause. Columns from the subquery cannot be referenced anywhere else
in the parent query. The following example demonstrates a non-correlated subquery.
E.g. Select * From CUST Where '10/03/1990' IN (Select ODATE From ORDER Where
CUST.CNUM = ORDER.CNUM)

67. What are the primitive operations common to all record management systems?
Addition, deletion and modification.
68. Name the buffer in which all the commands that are typed in are stored
�Edit� Buffer

69. What are the unary operations in Relational Algebra?


PROJECTION and SELECTION.

70. Are the resulting relations of PRODUCT and JOIN operation the same?
No.
PRODUCT: Concatenation of every row in one relation with every row in another.
JOIN: Concatenation of rows from one relation and related rows from another.

71. What is RDBMS KERNEL?


Two important pieces of RDBMS architecture are the kernel, which is the software, and the data
dictionary, which consists of the system-level data structures used by the kernel to manage the
database
You might think of an RDBMS as an operating system (or set of subsystems), designed
specifically for controlling data access; its primary functions are storing, retrieving, and securing
data. An RDBMS maintains its own list of authorized users and their associated privileges;
manages memory caches and paging; controls locking for concurrent resource usage; dispatches
and schedules user requests; and manages space usage within its table-space structures
.
72. Name the sub-systems of a RDBMS
I/O, Security, Language Processing, Process Control, Storage Management, Logging and
Recovery, Distribution Control, Transaction Control, Memory Management, Lock Management

73. Which part of the RDBMS takes care of the data dictionary? How
Data dictionary is a set of tables and database objects that is stored in a special area of the
database and maintained exclusively by the kernel.

74. What is the job of the information stored in data-dictionary?


The information in the data dictionary validates the existence of the objects, provides access to
them, and maps the actual physical storage location.

75. Not only RDBMS takes care of locating data it also


determines an optimal access path to store or retrieve the data
76. How do you communicate with an RDBMS?
You communicate with an RDBMS using Structured Query Language (SQL)

77. Define SQL and state the differences between SQL and other conventional programming
Languages
SQL is a nonprocedural language that is designed specifically for data access operations on
normalized relational database structures. The primary difference between SQL and other
conventional programming languages is that SQL statements specify what data operations
should be performed rather than how to perform them.

78. Name the three major set of files on disk that compose a database in Oracle
There are three major sets of files on disk that compose a database. All the files are binary.
These are
� Database files
� Control files
� Redo logs
The most important of these are the database files where the actual data resides. The control
files and the redo logs support the functioning of the architecture itself.
All three sets of files must be present, open, and available to Oracle for any data on the database
to be useable. Without these files, you cannot access the database, and the database
administrator might have to recover some or all of the database using a backup, if there is one.

79. What is an Oracle Instance?


The Oracle system processes, also known as Oracle background processes, provide functions
for the user processes�functions that would otherwise be done by the user processes
themselves
Oracle database-wide system memory is known as the SGA, the system global area or shared
global area. The data and control structures in the SGA are shareable, and all the Oracle
background processes and user processes can use them.
The combination of the SGA and the Oracle background processes is known as an Oracle
instance

80. What are the four Oracle system processes that must always be up and running for the
database to be useable
The four Oracle system processes that must always be up and running for the database to be
useable include DBWR (Database Writer), LGWR (Log Writer), SMON (System Monitor), and
PMON (Process Monitor).
81. What are database files, control files and log files. How many of these files should a database
have at least? Why?
Database Files
The database files hold the actual data and are typically the largest in size. Depending on their
sizes, the tables (and other objects) for all the user accounts can go in one database file�but
that's not an ideal situation because it does not make the database structure very flexible for
controlling access to storage for different users, putting the database on different disk drives, or
backing up and restoring just part of the database.
You must have at least one database file but usually, more than one files are used. In terms of
accessing and using the data in the tables and other objects, the number (or location) of the files
is immaterial.
The database files are fixed in size and never grow bigger than the size at which they were
created
Control Files
The control files and redo logs support the rest of the architecture. Any database must have at
least one control file, although you typically have more than one to guard against loss. The
control file records the name of the database, the date and time it was created, the location of the
database and redo logs, and the synchronization information to ensure that all three sets of files
are always in step. Every time you add a new database or redo log file to the database, the
information is recorded in the control files.
Redo Logs
Any database must have at least two redo logs. These are the journals for the database; the redo
logs record all changes to the user objects or system objects. If any type of failure occurs, the
changes recorded in the redo logs can be used to bring the database to a consistent state without
losing any committed transactions. In the case of non-data loss failure, Oracle can apply the
information in the redo logs automatically without intervention from the DBA.
The redo log files are fixed in size and never grow dynamically from the size at which they were
created.

82. What is ROWID?


The ROWID is a unique database-wide physical address for every row on every table. Once
assigned (when the row is first inserted into the database), it never changes until the row is
deleted or the table is dropped.
The ROWID consists of the following three components, the combination of which uniquely
identifies the physical storage location of the row.
� Oracle database file number, which contains the block with the rows
� Oracle block address, which contains the row
� The row within the block (because each block can hold many rows)
The ROWID is used internally in indexes as a quick means of retrieving rows with a particular key
value. Application developers also use it in SQL statements as a quick way to access a row once
they know the ROWID

83. What is Oracle Block? Can two Oracle Blocks have the same address?
Oracle "formats" the database files into a number of Oracle blocks when they are first
created�making it easier for the RDBMS software to manage the files and easier to read data
into the memory areas.
The block size should be a multiple of the operating system block size. Regardless of the block
size, the entire block is not available for holding data; Oracle takes up some space to manage the
contents of the block. This block header has a minimum size, but it can grow.
These Oracle blocks are the smallest unit of storage. Increasing the Oracle block size can
improve performance, but it should be done only when the database is first created.
Each Oracle block is numbered sequentially for each database file starting at 1. Two blocks can
have the same block address if they are in different database files.

84. What is database Trigger?


A database trigger is a PL/SQL block that can defined to automatically execute for insert, update,
and delete statements against a table. The trigger can e defined to execute once for the entire
statement or once for every row that is inserted, updated, or deleted. For any one table, there are
twelve events for which you can define database triggers. A database trigger can call database
procedures that are also written in PL/SQL.

85. Name two utilities that Oracle provides, which are use for backup and recovery.
Along with the RDBMS software, Oracle provides two utilities that you can use to back up and
restore the database. These utilities are Export and Import.
The Export utility dumps the definitions and data for the specified part of the database to an
operating system binary file. The Import utility reads the file produced by an export, recreates the
definitions of objects, and inserts the data
If Export and Import are used as a means of backing up and recovering the database, all the
changes made to the database cannot be recovered since the export was performed. The best
you can do is recover the database to the time when the export was last performed.

86. What are stored-procedures? And what are the advantages of using them.
Stored procedures are database objects that perform a user defined operation. A stored
procedure can have a set of compound SQL statements. A stored procedure executes the SQL
commands and returns the result to the client. Stored procedures are used to reduce network
traffic.

87. How are exceptions handled in PL/SQL? Give some of the internal exceptions' name
PL/SQL exception handling is a mechanism for dealing with run-time errors encountered during
procedure execution. Use of this mechanism enables execution to continue if the error is not
severe enough to cause procedure termination.
The exception handler must be defined within a subprogram specification. Errors cause the
program to raise an exception with a transfer of control to the exception-handler block. After the
exception handler executes, control returns to the block in which the handler was defined. If there
are no more executable statements in the block, control returns to the caller.
User-Defined Exceptions
PL/SQL enables the user to define exception handlers in the declarations area of subprogram
specifications. User accomplishes this by naming an exception as in the following example:
ot_failure EXCEPTION;
In this case, the exception name is ot_failure. Code associated with this handler is written in the
EXCEPTION specification area as follows:
EXCEPTION
when OT_FAILURE then
out_status_code := g_out_status_code;
out_msg := g_out_msg;
The following is an example of a subprogram exception:
EXCEPTION
when NO_DATA_FOUND then
g_out_status_code := 'FAIL';
RAISE ot_failure;
Within this exception is the RAISE statement that transfers control back to the ot_failure
exception handler. This technique of raising the exception is used to invoke all user-defined
exceptions.
System-Defined Exceptions
Exceptions internal to PL/SQL are raised automatically upon error. NO_DATA_FOUND is a
system-defined exception. Table below gives a complete list of internal exceptions.

PL/SQL internal exceptions.


PL/SQL internal exceptions.

Exception Name Oracle Error


CURSOR_ALREADY_OPEN ORA-06511
DUP_VAL_ON_INDEX ORA-00001
INVALID_CURSOR ORA-01001
INVALID_NUMBER ORA-01722
LOGIN_DENIED ORA-01017
NO_DATA_FOUND ORA-01403
NOT_LOGGED_ON ORA-01012
PROGRAM_ERROR ORA-06501
STORAGE_ERROR ORA-06500
TIMEOUT_ON_RESOURCE ORA-00051
TOO_MANY_ROWS ORA-01422
TRANSACTION_BACKED_OUT ORA-00061
VALUE_ERROR ORA-06502
ZERO_DIVIDE ORA-01476

In addition to this list of exceptions, there is a catch-all exception named OTHERS that traps all
errors for which specific error handling has not been established.

88. Does PL/SQL support "overloading"? Explain


The concept of overloading in PL/SQL relates to the idea that you can define procedures and
functions with the same name. PL/SQL does not look only at the referenced name, however, to
resolve a procedure or function call. The count and data types of formal parameters are also
considered.
PL/SQL also attempts to resolve any procedure or function calls in locally defined packages
before looking at globally defined packages or internal functions. To further ensure calling the
proper procedure, you can use the dot notation. Prefacing a procedure or function name with the
package name fully qualifies any procedure or function reference.

89. Tables derived from the ERD


a) Are totally unnormalised
b) Are always in 1NF
c) Can be further denormalised
d) May have multi-valued attributes

(b) Are always in 1NF

90. Spurious tuples may occur due to


i. Bad normalization
ii. Theta joins
iii. Updating tables from join
a) i & ii b) ii & iii
c) i & iii d)
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

Interview TYPES | HR INTERVIEW| PANEL INTERVIEW | TECHNICAL INTERVIEW |TEAM INTERVIEW | CAMPUS
INTERVIEW|

Tips on Group Discussions


[Basics] [Preparation ] [Dressing ] [Etiquette ] [Resume Tips] [Questions] [Answering] [Process of Interview] [Mistakes]
[Top Tips]

Tips on interviews and Group Discussions GET A MOCK GD HERE

Many companies conduct group discussion after the written test so as to check
on your interactive skills and how good you are at communicating with other
people. The GD is to check how you behave, participate and contribute in a
group, how much importance do you give to the group objective as well as your
own, how well do you listen to viewpoints of others and how open-minded are
you in accepting views contrary to your own. The aspects which make up a GD
are verbal communication, non-verbal behaviour, conformation to norms,
decision-making ability and cooperation. You should try to be as true as possible
to these aspects.

1. In a group discussion what should my objectives be and how should I


achieve them?
2. Is it wise to take a strong stand either in favor or against the topic right at the
start of a Group Discussion ?
3. Is it a good strategy to try and be the first speaker on the topic in a GD?
4. In an interview how does one handle the question "Tell us about yourself?".
5. Is it better to have a longer selection interview or a shorter one?
6. In the MBA entrance interview how do I justify my decision to pursue the
MBA programme?
In a group discussion what should my objectives be and how should I achieve
them? In order to succeed at any unstructured group discussion, you must
define what your objective in the group is. A good definition of your objective is
- to be seen to have contributed meaningfully in an attempt to achieve the right
consensus.

The key words in this definition are 'seen', 'meaningfully', and 'attempt'. Let us
understand what each of these imply in terms of action points : The first
implication is that merely making a meaningful contribution in an attempt to
achieve consensus is not enough. You have to be seen by the evaluator to have
made a meaningful contribution in n attempt to build the right consensus.

In other words you must ensure that you are heard by the group. If the group
hears you so will the evaluator. You must get at least some airtime. If you are
not a very assertive person you will have to simply learn to be assertive for those
15 minutes. If you get cowed down easily in an aggressive group, you can say
goodbye to the business school admission.

1 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

Many GD participants often complain that they did not get a chance to speak.
The fact of the matter is that in no GD do you get a chance to speak. You have
to make your chances.

The second important implication is that making just any sort of contribution is
not enough. Your contribution has to be meaningful. A meaningful contribution
suggests that you have a good knowledge base, are able to structure arguments
logically and are a good communicator. These are qualities that are desired by
all evaluators.

Many GD participants feel that the way to succeed in a GD is by speaking


frequently, for a long time and loudly. This is not true. The quality of what you
say is more important than the quantity. Don't be demoralized if you feel you
have not spoken enough. If you have spoken sense and have been heard, even
if only for a short time, it is usually good enough. You must have substance in
your arguments.

Therefore, think things through carefully. Always enter the room with a piece
of paper and a pen. In the first two minutes jot down as many ideas as you can. It
pays to think laterally. Everybody else will state the obvious. Can you state
something different? Can you take the group ahead if it is stuck at one point?
Can you take it in a fresh and more relevant direction? You may like to dissect
the topic and go into the underlying causes or into the results.

One way of deciding what sort of contribution is meaningful at what point of


time is to follow two simple rules. First, in times of chaos a person who restores
order to the group is appreciated. Your level of participation in a fish market kind
of scenario can be low, but your degree of influence must never be low. In
other words you must make positive contributions every time you speak and not
speak for the sake of speaking. The second rule is applicable when the group is
floundering. In this situation a person who provides a fresh direction to the group
is given credit.

The third implication is that you must be clearly seen to be attempting to build
a consensus. Nobody expects a group of ten people, all with different points of
view on a controversial subject to actually achieve a consensus. But did you
make the attempt to build a consensus?

The reason why an attempt to build a consensus is important is because in most


work situations you will have to work with people in a team, accept joint
responsibilities and take decisions as a group. You must demonstrate the fact that
you are capable and inclined to work as part of a team.

What are the ways that you can try to build consensus?

First, you must not just talk, you should also listen. You must realize that other
people also may have valid points to make. You should not only try to
persuade other people to your point of view, but also come across as a person
who has an open mind and appreciates the valid points of others.

You must try and resolve contradictions and arguments of others in the group.
You must synthesize arguments and try and achieve a unified position in the
group. Try to think of the various arguments of yours and others' as parts of a
jigsaw puzzle or as building blocks of a larger argument for or against the topic.

2 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

Try and lay down the boundaries or the area of the discussion at the beginning.
Discuss what the group should discuss before actually beginning your
discussion. This will at least ensure that everyone is talking about the same thing.

Try and summarize the discussion at the end. In the summary do not merely
restate your point of view; also accommodate dissenting viewpoints. If the
group did not reach a consensus, say so in your summary.

You must carry people with you. So do not get emotional, shout, invade other
people's private space.

Do not bang your fist on the table except in extreme circumstances.

If you have spoken and you notice that someone else has tried to enter the
discussion on a number of occasions and has not had the chance to do so
maybe you could give him a chance the next time he tries. But do not offer a
chance to anyone who is not trying to speak. He may not have anything to say at
that point and you will just end up looking foolish.

The surest way of antagonizing others in the GD as well as the examiner is to


appoint yourself as a de facto chairperson of the group. Do not try to impose a
system whereby everyone gets a chance to speak in turn. A GD is meant to be a
free flowing discussion.

Let it proceed naturally. Do not ever try to take a vote on the topic. A vote is no
substitute for discussion.

Do not address only one or two persons when speaking. Maintain eye contact
with as many members of the group as possible. This will involve others in what
you are saying and increase your chances of carrying them with you. Do this
even if you are answering a specific point raised by one person. One last point.
You must not agree with another participant in the group merely for the sake of
achieving consensus. If you disagree, say so. You are not there to attempt to
build just any consensus. You have to attempt to build the right consensus.

Is it wise to take a strong stand either in favour or against the topic right at the
start of a Group Discussion ?

In theory yes. If you believe something why shouldn't you say so? If we are
convinced about something our natural response is to say so emphatically.
However in practice what is likely to happen if you take a very strong and
dogged stance right at the beginning of the interview is that you will
antagonize the people in the group who disagree with you and will be unable to
carry them with you and convince them of the validity of your argument. We
therefore recommend that after you hear the topic you think about it for a
minute with an open mind and note down the major issues that come to your
mind. Don't jump to any conclusions.

Instead arrive at a stand in your own mind after examining all the issues in a
balanced manner. Only then begin to speak. And when you do so outline the
major issues first and only then state your stand. In other words give the
justification first and the stand later. If you were to state your stand first chances
are that the others in the group who disagree with your stand will interrupt to
contradict you before you can elaborate on the reasons why you have taken that

3 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

stance. In this situation the evaluator will only get an impression of what you
think and not how you think. Remember you are being evaluated on how you
think and not what you think.

Is it a good strategy to try and be the first speaker on the topic in a GD?

In most GD's the opening speaker is the person who is likely to get the
maximum uninterrupted airtime. The reason is simple - at the start most other
participants in the GD are still trying to understand the basic issues in the topic,
or are too nervous to speak and are waiting for someone else to start. Therefore
the evaluators get the best chance to observe the opening speaker.

Now this is a double edged sword. If the opening speaker talks sense naturally he
will get credit because he opened and took the group in the right direction. If on
the other hand the first speaker doesn't have too much sense to say, he will
attract the undivided attention of the evaluators to his shortcomings. He will be
marked as a person who speaks without thinking merely for the sake of speaking.
As someone who leads the group in the wrong direction and does not make a
positive contribution to the group.

So remember speaking first is a high risk high return strategy. It can make or
mar your GD performance depending how you handle it. Speak first only if you
have something sensible to say. Otherwise keep shut and let someone else start.

In an interview how does one handle the question "Tell us about yourself?".

An often asked opening question. Perhaps the most frequently asked question
across interviews. Your opening statement needs to be a summary of your goals,
overall professional capabilities, achievements, background (educational and
family), strengths, professional objectives and anything about your personality
that is relevant and interesting. This question represents an opportunity to lead
the interviewer in the direction you want him to go e.g., your speciality or
whatever else you may wish to highlight.

Your intention should be to try to subtly convince the interviewers that you are
a good candidate, you have proved that in the past, and have a personality that
fits the requirement. Remember that the first impression you create will go a long
way in the ultimate selection. Keep in mind, most candidates who are asked this
question just blurt out their schooling, college, marks and qualifications. All
this is already there in the CV.
Why tell the interviewer something he already knows?

A final word on approaching this question. Once you have said what you have to
say - shut up. Don't drone on for the sake of speaking for you just might say
something foolish. Sometimes interviewers don't interrupt in order to give the
candidate the impression that he has not spoken enough. This is just a stress
inducing tactic. Don't fall for it, if you feel you have spoken enough. In case the
pause gets too awkward for you just add something like,

"Is there something specific that you wish to know about me?"

Is it better to have a longer selection interview or a shorter one?

4 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

The length of an interview in no way is an indicator of how well an interview


went. This is especially so when there are a number of candidates to be
interviewed for example in the civil services interview or the MBA entrance
interview. In the past a number of candidates have reported varying lengths of
interviews. Nothing positive or negative should be read into this. An interview is
only a device whereby the panel seeks information about the candidate.
Information that will help the panel decide whether or not the candidate should
be selected.

If the panel feels that it has gathered enough information about the candidate in
15 minutes of the interview commencing and that it has no further questions to
ask the interview will be terminated in 15 minutes. If on the other hand the panel
takes an hour to gather the information required to take a decision the interview
will last for an hour. In either case the decision could be positive or negative. It is
a fallacy to believe that interview panels take longer interviews of candidates
whom they are more interested in.

No panel likes to waste its time. If an interview is lasting longer than usual then
it only means that the panel is seeking more information about the candidate in
order to take a decision.

In the MBA entrance interview how do I justify my decision to pursue the MBA
programme?

When you are asked this for God's sake don't tell the panel that you are looking
for a "challenging job in a good firm with lots of money, status and glamour".
That is the first answer that most candidates think of. Unfortunately it is the last
answer that will get you admission. In the answer to a direct question on this
subject you must convey to the interview panel that you have made a rational and
informed decision about your career choice and your intended course of higher
study. There are broadly six areas which your answer could touch upon :

Career Objectives : You could talk about your career objectives and how the
two year MBA programme will help you achieve them. This implies that you
have a clear idea of what your career objectives are and how you wish to achieve
them. For example you may want to be an entrepreneur and wish to set up your
independent enterprise after doing your MBA and then working for a few years
in a professionally managed company. You could explain to the panel that the
MBA programme will provide you with the necessary inputs to help you run
your business enterprise better. But then you must be clear about what the inputs
you will receive in the MBA programme are.

Value Addition : That brings us to the second area that your answer should
touch upon. What is the value you will add to yourself during your tw o year
study of management. Value addition will essentially be in two forms knowledge
and skills. Knowledge of the various areas of management e.g. marketing,
finance, systems, HRD etc. and skills of analysis and communication. You will
find it useful to talk to a few people who are either doing their MBA or have
already done it. They will be able to give you a more detailed idea of what they
gained from their MBA.

Background : Remember, there must be no inconsistency between your


proposed study of management and your past subject of study or your past work
experience. If you have studied commerce in college then management is a
natural course of higher studies. If you are an engineer this is a tricky area. You

5 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://freshersworld.com/interview/gdtips.htm

must never say that by pursuing a career in management you will be wasting
your engineering degree. Try and say that the MBA course and your engineering
degree will help you do your job better in the company that you will join. But
then you should be able to justify how your engineering qualification will help.

Opportunities and Rewards : You could also at this stage mention the
opportunities that are opening up in organizations for management graduates.
Highlight with examples. At the end you may mention that while monetary
rewards are not everything they are also important and MBAs do get paid well.
You must not mention these reasons as your primary motivators even if that may
be the case.

General Tips
A good level of general awareness will come in handy so that you aren't at
a loss of words on certain issues.
Understand the topic and analyse it mentally before speaking.
Be clear about the purpose and content of your viewpoint.
One should be able to communicate his views in an effective manner to
everyone. Be clear in speech, audible but not too loud and above all remain
confident.
Remember the six C's of effective communication -- Clarity,
Completeness, Conciseness, Confidence, Correctness and Courtesy.
You should mantain eye contact with all others in the group and not focus
on a particular person for he may benefit from that.
Be responsive to ideas from other people and seem to be very receptive
and open-minded but don't allow others to change your own viewpoint..
Starting the discussion is considered to be good however it isn't that
important; what is important is that you speak for a period long enough for
you to be able to communicate your viewpoint .
Always mantain your calm and never get aggresive. If you haven't been
able to talk then one can cut in saying "Excuse me, but what I think is
.........." or something of that sort.
Never lose your temper and never attack anyone on a personal front. Your
attitude should be one of cooperation and not one of conflict.
Don't lose sight of the goal of the discussion.
Listen to any criticisms and give them a thought before trying to defend
your views.

Home | Our Services | Careers | About Us | Sign Up | President's Note

Copyright © 2003 Freshersworld.com, All rights reserved.

6 of 6 8/22/2007 11:36 PM
:: Freshersworld.com ... http://www.freshersworld.com/interview/toptips.htm

Interview TYPES | HR INTERVIEW| PANEL INTERVIEW | TECHNICAL INTERVIEW |TEAM INTERVIEW | CAMPUS
INTERVIEW|

Top Ten Interview Tips -Note it


[Basics] [Preparation ] [Dressing ] [Etiquette ] [Resume Tips] [Questions] [Answering] [Process of Interview] [Mistakes]
[Top Tips]

Great interviews arise from careful groundwork. You can ace your next
interview if you:

1. Enter into a state of relaxed concentration. This is the state from which great
basketball players or Olympic skaters operate. You'll need to quiet the
negative self chatter in your head through meditation or visualization prior to
sitting down in the meeting. You'll focus on the present moment and will be
less apt to experience lapses in concentration, nervousness, self-doubt and
self-condemnation.
2. Act spontaneous, but be well prepared. Be your authentic self, professional
yet real. Engage in true conversation with your interviewer, resting on the
preparation you did prior to coming to the meeting. Conduct several trial runs
with another person simulating the interview before it actually occurs. It's the
same as anticipating the questions you'll be asked on a final exam.
3. Set goals for the interview. It is your job to leave the meeting feeling secure
that the interviewer knows as much as he or she possibly can about your
skills, abilities, experience and achievements. If you sense there are
misconceptions, clear them up before leaving. If the interviewer doesn't get
around to asking you important questions, pose them yourself (diplomatically)
and answer them. Don't leave the meeting without getting your own questions
answered so that you have a clear idea of what you would be getting yourself
into. If possible, try to get further interviews, especially with other key
players.
4. Know the question behind the question. Ultimately, every question boils down
to, "Why should we hire you?" Be sure you answer that completely. If there is
a question about your meeting deadlines, consider whether the interviewer is
probing delicately about your personal life, careful not to ask you whether
your family responsibilities will interfere with your work. Find away to address
fears if you sense they are present.
5. Follow up with an effective "thank you" letter. Don't write this letter lightly. It
is another opportunity to market yourself. Find some areas discussed in the
meeting and expand upon them in your letter. Writing a letter after a meeting
is a very minimum. Standing out among the other candidates will occur if you
thoughtfully consider this follow up letter as an additional interview in which
you get to do all the talking. Propose useful ideas that demonstrate your
added value to the team.
6. Consider the interviewer's agenda. Much is on the shoulders of the
interviewer. He or she has the responsibility of hiring the right candidate. Your
ability to do the job will need to be justified. "Are there additional pluses
here?" "Will this person fit the culture of this organization?" These as well as
other questions will be heavily on the interviewer's mind. Find ways to
demonstrate your qualities above and beyond just doing the job.
7. Expect to answer the question, "Tell me about yourself." This is a pet question

1 of 2 8/22/2007 11:40 PM
:: Freshersworld.com ... http://www.freshersworld.com/interview/toptips.htm

of prepared and even unprepared interviewers. Everything you include should


answer the question, "Why should we hire you?" Carefully prepare your
answer to include examples of achievements from your work life that closely
match the elements of the job before you. Obviously, you'll want to know as
much about the job description as you can before you respond to the
question.
8. Watch those nonverbal clues. Experts estimate that words express only 30%
to 35% of what people actually communicate; facial expressions and body
movements and actions convey the rest. Make and keep eye contact. Walk
and sit with a confident air. Lean toward an interviewer to show interest and
enthusiasm. Speak with a well-modulated voice that supports appropriate
excitement for the opportunity before you.
9. Be smart about money questions. Don't fall into the trap of telling the
interviewer your financial expectations. You may be asking for too little or too
much money and in each case ruin your chances of being offered the job.
Instead, ask what salary range the job falls in. Attempt to postpone a money
discussion until you have a better understanding of the scope of
responsibilities of the job.
10. Don't hang out your dirty laundry. Be careful not to bare your soul and tell
tales that are inappropriate or beyond the scope of the interview. State your
previous experience in the most positive terms. Even if you disagreed with a
former employer, express your enthusiasm for earlier situations as much as
you can. Whenever you speak negatively about another person or situation in
which you were directly involved, you run the risk (early in the relationship) of
appearing like a troubled person who may have difficulty working with others.

Home | Our Services | Careers | About Us | Sign Up | President's Note

Copyright © 2003 Freshersworld.com, All rights reserved.

2 of 2 8/22/2007 11:40 PM
Frequently Asked Questions - C/C++ Questions

1. What does static variable mean?


2. What is a pointer?
3. What is a structure?
4. What are the differences between structures and arrays?
5. In header files whether functions are declared or defined?
6. What are the differences between malloc() and calloc()?
7. What are macros? what are its advantages and disadvantages?
8. Difference between pass by reference and pass by value?
9. What is static identifier?
10. Where are the auto variables stored?
11. Where does global, static, local, register variables, free memory and C Program
instructions get stored?
12. Difference between arrays and linked list?
13. What are enumerations?
14. Describe about storage allocation and scope of global, extern, static, local and
register variables?
15. What are register variables? What are the advantage of using register variables?
16. What is the use of typedef?
17. Can we specify variable field width in a scanf() format string? If possible how?
18. Out of fgets() and gets() which function is safe to use and why?
19. Difference between strdup and strcpy?
20. What is recursion?
21. Differentiate between a for loop and a while loop? What are it uses?
22. What are the different storage classes in C?
23. Write down the equivalent pointer expression for referring the same element
a[i][j][k][l]?
24. What is difference between Structure and Unions?
25. What the advantages of using Unions?
26. What are the advantages of using pointers in a program?
27. What is the difference between Strings and Arrays?
28. In a header file whether functions are declared or defined?
29. What is a far pointer? where we use it?
30. How will you declare an array of three function pointers where each function
receives two ints and returns a float?
31. what is a NULL Pointer? Whether it is same as an uninitialized pointer?
32. What is a NULL Macro? What is the difference between a NULL Pointer and a
NULL Macro?
33. What does the error 'Null Pointer Assignment' mean and what causes this error?
34. What is near, far and huge pointers? How many bytes are occupied by them?
35. How would you obtain segment and offset addresses from a far address of a
memory location?
36. Are the expressions arr and &arr same for an array of integers?
37. Does mentioning the array name gives the base address in all the contexts?
38. Explain one method to process an entire string as one unit?
39. What is the similarity between a Structure, Union and enumeration?
40. Can a Structure contain a Pointer to itself?
41. How can we check whether the contents of two structure variables are same or
not?
42. How are Structure passing and returning implemented by the complier?
43. How can we read/write Structures from/to data files?
44. What is the difference between an enumeration and a set of pre-processor #
defines?
45. what do the 'c' and 'v' in argc and argv stand for?
46. Are the variables argc and argv are local to main?
47. What is the maximum combined length of command line arguments including the
space between adjacent arguments?
48. If we want that any wildcard characters in the command line arguments should be
appropriately expanded, are we required to make any special provision? If yes,
which?
49. Does there exist any way to make the command line arguments available to other
functions without passing them as arguments to the function?
50. What are bit fields? What is the use of bit fields in a Structure declaration?
51. To which numbering system can the binary number 1101100100111100 be easily
converted to?
52. Which bit wise operator is suitable for checking whether a particular bit is on or
off?
53. Which bit wise operator is suitable for turning off a particular bit in a number?
54. Which bit wise operator is suitable for putting on a particular bit in a number?
55. Which bit wise operator is suitable for checking whether a particular bit is on or
off?
56. which one is equivalent to multiplying by 2:Left shifting a number by 1 or Left
shifting an unsigned int or char by 1?
57. Write a program to compare two strings without using the strcmp() function.
58. Write a program to concatenate two strings.
59. Write a program to interchange 2 variables without using the third one.
60. Write programs for String Reversal & Palindrome check
61. Write a program to find the Factorial of a number
62. Write a program to generate the Fibinocci Series
63. Write a program which employs Recursion
64. Write a program which uses Command Line Arguments
65. Write a program which uses functions like strcmp(), strcpy()? etc
66. What are the advantages of using typedef in a program?
67. How would you dynamically allocate a one-dimensional and two-dimensional
array of integers?
68. How can you increase the size of a dynamically allocated array?
69. How can you increase the size of a statically allocated array?
70. When reallocating memory if any other pointers point into the same piece of
memory do you have to readjust these other pointers or do they get readjusted
automatically?
71. Which function should be used to free the memory allocated by calloc()?
72. How much maximum can you allocate in a single call to malloc()?
73. Can you dynamically allocate arrays in expanded memory?
74. What is object file? How can you access object file?
75. Which header file should you include if you are to develop a function which can
accept variable number of arguments?
76. Can you write a function similar to printf()?
77. How can a called function determine the number of arguments that have been
passed to it?
78. Can there be at least some solution to determine the number of arguments passed
to a variable argument list function?
79. How do you declare the following:
o An array of three pointers to chars
o An array of three char pointers
o A pointer to array of three chars
o A pointer to function which receives an int pointer and returns a float
pointer
o A pointer to a function which receives nothing and returns nothing
80. What do the functions atoi(), itoa() and gcvt() do?
81. Does there exist any other function which can be used to convert an integer or a
float to a string?
82. How would you use qsort() function to sort an array of structures?
83. How would you use qsort() function to sort the name stored in an array of pointers
to string?
84. How would you use bsearch() function to search a name stored in array of
pointers to string?
85. How would you use the functions sin(), pow(), sqrt()?
86. How would you use the functions memcpy(), memset(), memmove()?
87. How would you use the functions fseek(), freed(), fwrite() and ftell()?
88. How would you obtain the current time and difference between two times?
89. How would you use the functions randomize() and random()?
90. How would you implement a substr() function that extracts a sub string from a
given string?
91. What is the difference between the functions rand(), random(), srand() and
randomize()?
92. What is the difference between the functions memmove() and memcpy()?
93. How do you print a string on the printer?
94. Can you use the function fprintf() to display the output on the screen?

C++ Questions

1. What is a class?
2. What is an object?
3. What is the difference between an object and a class?
4. What is the difference between class and structure?
5. What is public, protected, private?
6. What are virtual functions?
7. What is friend function?
8. What is a scope resolution operator?
9. What do you mean by inheritance?
10. What is abstraction?
11. What is polymorphism? Explain with an example.
12. What is encapsulation?
13. What do you mean by binding of data and functions?
14. What is function overloading and operator overloading?
15. What is virtual class and friend class?
16. What do you mean by inline function?
17. What do you mean by public, private, protected and friendly?
18. When is an object created and what is its lifetime?
19. What do you mean by multiple inheritance and multilevel inheritance?
Differentiate between them.
20. Difference between realloc() and free?
21. What is a template?
22. What are the main differences between procedure oriented languages and object
oriented languages?
23. What is R T T I ?
24. What are generic functions and generic classes?
25. What is namespace?
26. What is the difference between pass by reference and pass by value?
27. Why do we use virtual functions?
28. What do you mean by pure virtual functions?
29. What are virtual classes?
30. Does c++ support multilevel and multiple inheritance?
31. What are the advantages of inheritance?
32. When is a memory allocated to a class?
33. What is the difference between declaration and definition?
34. What is virtual constructors/destructors?
35. In c++ there is only virtual destructors, no constructors. Why?
36. What is late bound function call and early bound function call? Differentiate.
37. How is exception handling carried out in c++?
38. When will a constructor executed?
39. What is Dynamic Polymorphism?
40. Write a macro for swapping integers.

Some More Questions ::

1. What is the output of printf("%d")


2. What will happen if I say delete this
3. Difference between "C structure" and "C++ structure".
4. Difference between a "assignment operator" and a "copy constructor"
5. What is the difference between "overloading" and "overriding"?
6. Explain the need for "Virtual Destructor".
7. Can we have "Virtual Constructors"?
8. What are the different types of polymorphism?
9. What are Virtual Functions? How to implement virtual functions in "C"
10. What are the different types of Storage classes?
11. What is Namespace?
12. What are the types of STL containers?.
13. Difference between "vector" and "array"?
14. How to write a program such that it will delete itself after execution?
15. Can we generate a C++ source code from the binary file?
16. What are inline functions?
17. Talk something about profiling?
18. How many lines of code you have written for a single program?
19. What is "strstream" ?
20. How to write Multithreaded applications using C++?
21. Explain "passing by value", "passing by pointer" and "passing by reference"
22. Write any small program that will compile in "C" but not in "C++"
23. Have you heard of "mutable" keyword?
24. What is a "RTTI"?
25. Is there something that I can do in C and not in C++?
26. Why preincrement operator is faster than postincrement?
27. What is the difference between "calloc" and "malloc"?
28. What will happen if I allocate memory using "new" and free it using "free" or
allocate sing "calloc" and free it using "delete"?
29. What is Memory Alignment?
30. Explain working of printf.
31. Difference between "printf" and "sprintf".
32. What is "map" in STL?
33. When shall I use Multiple Inheritance?
34. What are the techniques you use for debugging?
35. How to reduce a final size of executable?
36. Give 2 examples of a code optimization.
• How do you write a program which produces its own source code as its output?
• How can I find the day of the week given the date?
• Why doesn't C have nested functions?
• What is the most efficient way to count the number of bits which are set in a value?
• How can I convert integers to binary or hexadecimal?
• How can I call a function, given its name as a string?
• How do I access command-line arguments?
• How can I return multiple values from a function?
• How can I invoke another program from within a C program?
• How can I access memory located at a certain address?
• How can I allocate arrays or structures bigger than 64K?
• How can I find out how much memory is available?
• How can I read a directory in a C program?
• How can I increase the allowable number of simultaneously open files?
• What's wrong with the call "fopen("c:\newdir\file.dat", "r")"?
• What is the output of printf("%d")
• What will happen if I say delete this
• Difference between "C structure" and "C++ structure".
• Diffrence between a "assignment operator" and a "copy constructor"
• What is the difference between "overloading" and "overridding"?
• Explain the need for "Virtual Destructor".
• Can we have "Virtual Constructors"?
• What are the different types of polymorphism?
• What are Virtual Functions? How to implement virtual functions in "C"
• What are the different types of Storage classes?
• What is Namespace?
• What are the types of STL containers?.
• Difference between "vector" and "array"?
• How to write a program such that it will delete itself after exectution?
• Can we generate a C++ source code from the binary file?
• What are inline functions?
• Talk sometiming about profiling?
• How many lines of code you have written for a single program?
• What is "strstream" ?
• How to write Multithreaded applications using C++?
• Explain "passing by value", "passing by pointer" and "passing by reference"
• Write any small program that will compile in "C" but not in "C++"
• Have you heard of "mutable" keyword?
• What is a "RTTI"?
• Is there something that I can do in C and not in C++?
• Why preincrement operator is faster than postincrement?
• What is the difference between "calloc" and "malloc"?
• What will happen if I allocate memory using "new" and free it using "free" or allocate sing
"calloc" and free it using "delete"?
• What is Memory Alignment?
• Explain working of printf.
• Difference between "printf" and "sprintf".
• What is "map" in STL?
• When shall I use Multiple Inheritance?
• What are the techniques you use for debugging?
• How to reduce a final size of executable?
• Give 2 examples of a code optimization.
• What is inheritance?
• Difference between Composition and Aggregation.
• Difference: Sequence Diagrams, Collaboration Diagrams.
• Difference: 'uses', 'extends', 'includes'
• What shall I go for Package Diagram?
• What is Polymorphism?
• Is class an Object? Is object a class?
• Comment: C++ "includes" behavior and java "imports"
• What do you mean by "Realization"?
• What is a Presistent, Transient Object?
• What is the use of Operator Overloading?
• Does UML guarantee project success?
• Difference: Activity Diagram and Sequence Diagram.
• What is association?
• How to resolve many to many relationship?
• How do you represent static members and abstract classes in Class Diagram?
• What does static variable mean?
• What is a pointer?
• What is a structure?
• What are the differences between structures and arrays?
• In header files whether functions are declared or defined?
• What are the differences between malloc() and calloc()?
• What are macros? what are its advantages and disadvantages?
• Difference between pass by reference and pass by value?
• What is static identifier?
• Where are the auto variables stored?
• Where does global, static, local, register variables, free memory and C Program instructions get
stored?
• Difference between arrays and linked list?
• What are enumerations?
• Describe about storage allocation and scope of global, extern, static, local and register variables?
• What are register variables? What are the advantage of using register variables?
• What is the use of typedef?
• Can we specify variable field width in a scanf() format string? If possible how?
• Out of fgets() and gets() which function is safe to use and why?
• Difference between strdup and strcpy?
• What is recursion?
• Differentiate between a for loop and a while loop? What are it uses?
• What are the different storage classes in C?
• Write down the equivalent pointer expression for referring the same element a[i][j][k][l]?
• What is difference between Structure and Unions?
• What the advantages of using Unions?
• What are the advantages of using pointers in a program?
• What is the difference between Strings and Arrays?
• In a header file whether functions are declared or defined?
• What is a far pointer? where we use it?
• How will you declare an array of three function pointers where each function receives two ints and
returns a float?
• what is a NULL Pointer? Whether it is same as an uninitialized pointer?
• What is a NULL Macro? What is the difference between a NULL Pointer and a NULL Macro?
• What does the error 'Null Pointer Assignment' mean and what causes this error?
• What is near, far and huge pointers? How many bytes are occupied by them?
• How would you obtain segment and offset addresses from a far address of a memory location?
• Are the expressions arr and &arr same for an array of integers?
• Does mentioning the array name gives the base address in all the contexts?
• Explain one method to process an entire string as one unit?
• What is the similarity between a Structure, Union and enumeration?
• Can a Structure contain a Pointer to itself?
• How can we check whether the contents of two structure variables are same or not?
• How are Structure passing and returning implemented by the complier?
• How can we read/write Structures from/to data files?
• What is the difference between an enumeration and a set of pre-processor # defines?
• what do the 'c' and 'v' in argc and argv stand for?
• Are the variables argc and argv are local to main?
• What is the maximum combined length of command line arguments including the space between
adjacent arguments?
• If we want that any wildcard characters in the command line arguments should be appropriately
expanded, are we required to make any special provision? If yes, which?
• Does there exist any way to make the command line arguments available to other functions
without passing them as arguments to the function?
• What are bit fields? What is the use of bit fields in a Structure declaration?
• To which numbering system can the binary number 1101100100111100 be easily converted to?
• Which bit wise operator is suitable for checking whether a particular bit is on or off?
• Which bit wise operator is suitable for turning off a particular bit in a number?
• Which bit wise operator is suitable for putting on a particular bit in a number?
• Which bit wise operator is suitable for checking whether a particular bit is on or off?
• which one is equivalent to multiplying by 2:Left shifting a number by 1 or Left shifting an
unsigned int or char by 1?
• Write a program to compare two strings without using the strcmp() function.
• Write a program to concatenate two strings.
• Write a program to interchange 2 variables without using the third one.
• Write programs for String Reversal & Palindrome check
• Write a program to find the Factorial of a number
• Write a program to generate the Fibinocci Series
• Write a program which employs Recursion
• Write a program which uses Command Line Arguments
• Write a program which uses functions like strcmp(), strcpy()? etc
• What are the advantages of using typedef in a program?
• How would you dynamically allocate a one-dimensional and two-dimensional array of integers?
• How can you increase the size of a dynamically allocated array?
• How can you increase the size of a statically allocated array?
• When reallocating memory if any other pointers point into the same piece of memory do you have
to readjust these other pointers or do they get readjusted automatically?
• Which function should be used to free the memory allocated by calloc()?
• How much maximum can you allocate in a single call to malloc()?
• Can you dynamically allocate arrays in expanded memory?
• What is object file? How can you access object file?
• Which header file should you include if you are to develop a function which can accept variable
number of arguments?
• Can you write a function similar to printf()?
• How can a called function determine the number of arguments that have been passed to it?
• Can there be at least some solution to determine the number of arguments passed to a variable
argument list function?
• How do you declare the following:
• An array of three pointers to chars
• An array of three char pointers
• A pointer to array of three chars
• A pointer to function which receives an int pointer and returns a float pointer
• A pointer to a function which receives nothing and returns nothing
• What do the functions atoi(), itoa() and gcvt() do?
• Does there exist any other function which can be used to convert an integer or a float to a string?
• How would you use qsort() function to sort an array of structures?
• How would you use qsort() function to sort the name stored in an array of pointers to string?
• How would you use bsearch() function to search a name stored in array of pointers to string?
• How would you use the functions sin(), pow(), sqrt()?
• How would you use the functions memcpy(), memset(), memmove()?
• How would you use the functions fseek(), freed(), fwrite() and ftell()?
• How would you obtain the current time and difference between two times?
• How would you use the functions randomize() and random()?
• How would you implement a substr() function that extracts a sub string from a given string?
• What is the difference between the functions rand(), random(), srand() and randomize()?
• What is the difference between the functions memmove() and memcpy()?
• How do you print a string on the printer?
• Can you use the function fprintf() to display the output on the screen?
• What is an object?
• What is the difference between an object and a class?
• What is the difference between class and structure?
• What is public, protected, private?
• What are virtual functions?
• What is friend function?
• What is a scope resolution operator?
• What do you mean by inheritance?
• What is abstraction?
• What is polymorphism? Explain with an example.
• What is encapsulation?
• What do you mean by binding of data and functions?
• What is function overloading and operator overloading?
• What is virtual class and friend class?
• What do you mean by inline function?
• What do you mean by public, private, protected and friendly?
• When is an object created and what is its lifetime?
• What do you mean by multiple inheritance and multilevel inheritance? Differentiate between
them.
• Difference between realloc() and free?
• What is a template?
• What are the main differences between procedure oriented languages and object oriented
languages?
• What is R T T I ?
• What are generic functions and generic classes?
• What is namespace?
• What is the difference between pass by reference and pass by value?
• Why do we use virtual functions?
• What do you mean by pure virtual functions?
• What are virtual classes?
• Does c++ support multilevel and multiple inheritance?
• What are the advantages of inheritance?
• When is a memory allocated to a class?
• What is the difference between declaration and definition?
• What is virtual constructors/destructors?
• In c++ there is only virtual destructors, no constructors. Why?
• What is late bound function call and early bound function call? Differentiate.
• How is exception handling carried out in c++?
• When will a constructor executed?
• What is Dynamic Polymorphism?
• Write a macro for swapping integers.
Frequently Asked Questions - Electronics

• What is meant by D-FF?


• What is the basic difference between Latches and Flip flops?
• What is a multiplexer?
• How can you convert an SR Flip-flop to a JK Flip-flop?
• How can you convert an JK Flip-flop to a D Flip-flop?
• What is Race-around problem? How can you rectify it?
• Which semiconductor device is used as a voltage regulator and why?
• What do you mean by an ideal voltage source?
• What do you mean by zener breakdown and avalanche breakdown?
• What are the different types of filters?
• What is the need of filtering ideal response of filters and actual response of filters?
• What is sampling theorem?
• What is impulse response?
• Explain the advantages and disadvantages of FIR filters compared to IIR counterparts.
• What is CMRR? Explain briefly.
• What do you mean by half-duplex and full-duplex communication? Explain briefly.
• Which range of signals are used for terrestrial transmission?
• What is the need for modulation?
• Which type of modulation is used in TV transmission?
• Why we use vestigial side band (VSB-C3F) transmission for picture?
• When transmitting digital signals is it necessary to transmit some harmonics in addition to
fundamental frequency?
• For asynchronous transmission, is it necessary to supply some synchronizing pulses additionally
or to supply or to supply start and stop bit?
• BPFSK is more efficient than BFSK in presence of noise. Why?
• What is meant by pre-emphasis and de-emphasis?
• What do you mean by 3 dB cutoff frequency? Why is it 3 dB, not 1 dB?
• What do you mean by ASCII, EBCDIC?

1. Insights of an inverter. Explain the working?


2. Insights of a 2 input NOR gate. Explain the working?
3. Insights of a 2 input NAND gate. Explain the working?
4. Implement F= not (AB+CD) using CMOS gates?
5. Insights of a pass gate. Explain the working?
6. Why do we need both PMOS and NMOS transistors to implement a pass gate?
7. What does the above code synthesize to?
8. Cross section of a PMOS transistor?
9. Cross section of an NMOS transistor?
10. What is a D-latch? Write the VHDL Code for it?
11. Differences between D-Latch and D flip-flop?
12. Implement D flip-flop with a couple of latches? Write a VHDL Code for a D flip-
flop?
13. What is latchup? Explain the methods used to prevent it?
14. What is charge sharing?
15. While using logic design, explain the various steps that r followed to obtain the
desirable design in a well defined manner?
16. Why is OOPS called OOPS? (C++)
17. What is a linked list? Explain the 2 fields in a linked list?
18. Implement a 2 I/P and gate using Tran gates?
19. Insights of a 4bit adder/Sub Circuit?
20. For f = AB+CD if B is S-a-1, what r the test vectors needed to detect the fault?
21. Explain various adders and diff between them?
22. Explain the working of 4-bit Up/down Counter?
23. A circuit has 1 input X and 2 outputs A and B. If X = HIGH for 4 clock ticks, A =
1. If X = LOW for 4 clock ticks, B = 1. Draw a state diagram for this Spec?
24. Advantages and disadvantages of Mealy and Moore?
25. Id vs. Vds Characteristics of NMOS and PMOS transistors?
26. Explain the operation of a 6T-SRAM cell?
27. Differences between DRAM and SRAM?
28. Implement a function with both ratioed and domino logic and merits and demerits
of each logic?
29. Given a circuit and asked to tell the output voltages of that circuit?
30. How can you construct both PMOS and NMOS on a single substrate?
31. What happens when the gate oxide is very thin?
32. What is setup time and hold time?
33. Write a pseudo code for sorting the numbers in an array?
34. What is pipelining and how can we increase throughput using pipelining?
35. Explain about stuck at fault models, scan design, BIST and IDDQ testing?
36. What is SPICE?
37. Differences between IRSIM and SPICE?
38. Differences between netlist of HSPICE and Spectre?
39. What is FPGA?
40. Draw the Cross Section of an Inverter? Clearly show all the connections between
M1 and poly, M1 and diffusion layers etc?
41. Draw the Layout of an Inverter?
42. If the current thru the poly is 20nA and the contact can take a max current of
10nA how would u overcome the problem?
43. Implement F = AB+C using CMOS gates?
44. Working of a 2-stage OPAMP?
45. 6-T XOR gate?
46. Differences between blocking and Non-blocking statements in Verilog?
47. Differences between Signals and Variables in VHDL? If the same code is written
using Signals and Variables what does it synthesize to?
48. Differences between functions and Procedures in VHDL?
49. What is component binding?
50. What is polymorphism? (C++)
51. What is hot electron effect?
52. Define threshold voltage?
53. Factors affecting Power Consumption on a chip?
54. Explain Clock Skew?
55. Why do we use a Clock tree?
56. Explain the various Capacitances associated with a transistor and which one of
them is the most prominent?
57. Explain the Various steps in Synthesis?
58. Explain ASIC Design Flow?
59. Explain Custom Design Flow?
60. Why is Extraction performed?
61. What is LVS, DRC?
62. Who provides the DRC rules?
63. What is validation?
64. What is Cross Talk?
65. Different ways of implementing a comparator?
66. What r the phenomenon which come into play when the devices are scaled to the
sub-micron lengths?
67. What is clock feed through?
68. Implement an Inverter using a single transistor?
69. What is Fowler-Nordheim Tunneling?
70. Insights of a Tri-state inverter?
71. If an/ap = 0.5, an/ap = 1, an/ap = 3, for 3 inverters draw the transfer
characteristics?
72. Differences between Array and Booth Multipliers?
73. Explain the concept of a Clock Divider Circuit? Write a VHDL code for the
same?
74. Which gate is normally preferred while implementing circuits using CMOS logic,
NAND or NOR? Why?
75. Insights of a Tri-State Inverter?
76. Basic Stuff related to Perl?
77. Have you studied buses? What types?
78. Have you studied pipelining? List the 5 stages of a 5 stage pipeline. Assuming 1
clock per stage, what is the latency of an instruction in a 5 stage machine? What is
the throughput of this machine ?
79. How many bit combinations are there in a byte?
80. For a single computer processor computer system, what is the purpose of a
processor cache and describe its operation?
81. Explain the operation considering a two processor computer system with a cache
for each processor.
82. What are the main issues associated with multiprocessor caches and how might
you solve them?
83. Explain the difference between write through and write back cache.
84. Are you familiar with the term MESI?
85. Are you familiar with the term snooping?
86. Describe a finite state machine that will detect three consecutive coin tosses (of
one coin) that results in heads.
87. In what cases do you need to double clock a signal before presenting it to a
synchronous state machine?
88. You have a driver that drives a long signal & connects to an input device. At the
input device there is either overshoot, undershoot or signal threshold violations,
what can be done to correct this problem?
89. What are the total number of lines written by you in C/C++? What is the most
complicated/valuable program written in C/C++?
90. What compiler was used?
91. What is the difference between = and == in C?
92. Are you familiar with VHDL and/or Verilog?
93. What types of CMOS memories have you designed? What were their size?
Speed?
94. What work have you done on full chip Clock and Power distribution? What
process technology and budgets were used?
95. What types of I/O have you designed? What were their size? Speed?
Configuration? Voltage requirements?
96. Process technology? What package was used and how did you model the
package/system? What parasitic effects were considered?
97. What types of high speed CMOS circuits have you designed?
98. What transistor level design tools are you proficient with? What types of designs
were they used on?
99. What products have you designed which have entered high volume production?
100. What was your role in the silicon evaluation/product ramp? What tools did
you use?
101. If not into production, how far did you follow the design and why did not
you see it into production?
102. What types of CMOS memories have you designed? What were their size?
Speed? Configuration Process technology?
103. What work have you done on full chip Clock and Power distribution?
What process technology and budgets were used?
104. What types of I/O have you designed? What were their size? Speed?
Configuration? Voltage requirements? Process technology? What package was
used and how did you model the package/system? What parasitic effects were
considered?
105. What types of high speed CMOS circuits have you designed?
106. What transistor level design tools are you proficient with? What types of
designs were they used on?
107. What products have you designed which have entered high volume
production?
108. What was your role in the silicon evaluation/product ramp? What tools did
you use?
109. If not into production, how far did you follow the design and why did not
you see it into production?
More Question >>

The following questions are used for screening the candidates during the first interview.
The questions apply mostly to fresh college grads pursuing an engineering career at Intel.

1. Have you studied buses? What types?


2. Have you studied pipelining? List the 5 stages of a 5 stage pipeline. Assuming 1
clock per stage, what is the latency of an instruction in a 5 stage machine? What is
the throughput of this machine ?
3. How many bit combinations are there in a byte?
4. For a single computer processor computer system, what is the purpose of a
processor cache and describe its operation?
5. Explain the operation considering a two processor computer system with a cache
for each processor.
6. What are the main issues associated with multiprocessor caches and how might
you solve them?
7. Explain the difference between write through and write back cache.
8. Are you familiar with the term MESI?
9. Are you familiar with the term snooping?
10. Describe a finite state machine that will detect three consecutive coin tosses (of
one coin) that results in heads.
11. In what cases do you need to double clock a signal before presenting it to a
synchronous state machine?
12. You have a driver that drives a long signal & connects to an input device. At the
input device there is either overshoot, undershoot or signal threshold violations,
what can be done to correct this problem?
13. What are the total number of lines written by you in C/C++? What is the most
complicated/valuable program written in C/C++?
14. What compiler was used?
15. What is the difference between = and == in C?
16. Are you familiar with VHDL and/or Verilog?
17. What types of CMOS memories have you designed? What were their size?
Speed?
18. What work have you done on full chip Clock and Power distribution? What
process technology and budgets were used?
19. What types of I/O have you designed? What were their size? Speed?
Configuration? Voltage requirements?
20. Process technology? What package was used and how did you model the
package/system? What parasitic effects were considered?
21. What types of high speed CMOS circuits have you designed?
22. What transistor level design tools are you proficient with? What types of designs
were they used on?
23. What products have you designed which have entered high volume production?
24. What was your role in the silicon evaluation/product ramp? What tools did you
use?
25. If not into production, how far did you follow the design and why did not you see
it into production?
Frequently Asked Questions - Operating System Concepts

• What is MUTEX ?
• What isthe difference between a 'thread' and a 'process'?
• What is INODE?
• Explain the working of Virtual Memory.
• How does Windows NT supports Multitasking?
• Explain the Unix Kernel.
• What is Concurrency? Expain with example Deadlock and Starvation.
• What are your solution strategies for "Dining Philosophers Problem" ?
• Explain Memory Partitioning, Paging, Segmentation.
• Explain Scheduling.
• Operating System Security.
• What is Semaphore?
• Explain the following file systems : NTFS, Macintosh(HPFS), FAT .
• What are the different process states?
• What is Marshalling?
• Define and explain COM?
• What is Marshalling?
• Difference - Loading and Linking ?
• What are the basic functions of an operating system?
• Explain briefly about, processor, assembler, compiler, loader, linker and the
functions executed by them.
• What are the difference phases of software development? Explain briefly?
• Differentiate between RAM and ROM?
• What is DRAM? In which form does it store data?
• What is cache memory?
• What is hard disk and what is its purpose?
• Differentiate between Complier and Interpreter?
• What are the different tasks of Lexical analysis?
• What are the different functions of Syntax phase, Sheduler?
• What are the main difference between Micro-Controller and Micro- Processor?
• Describe different job scheduling in operating systems.
• What is a Real-Time System ?
• What is the difference between Hard and Soft real-time systems ?
• What is a mission critical system ?
• What is the important aspect of a real-time system ?
• If two processes which shares same system memory and system clock in a
distributed system, What is it called?
• What is the state of the processor, when a process is waiting for some event to
occur?
• What do you mean by deadlock?
• Explain the difference between microkernel and macro kernel.
• Give an example of microkernel.
• When would you choose bottom up methodology?
• When would you choose top down methodology?
• Write a small dc shell script to find number of FF in the design.
• Why paging is used ?
• Which is the best page replacement algorithm and Why? How much time is spent
usually in each phases and why?
• Difference between Primary storage and secondary storage?
• What is multi tasking, multi programming, multi threading?
• Difference between multi threading and multi tasking?
• What is software life cycle?
• Demand paging, page faults, replacement algorithms, thrashing, etc.
• Explain about paged segmentation and segment paging
• While running DOS on a PC, which command would be used to duplicate the
entire diskette?
Frequently Asked Questions - 8085 Microprocessor

1. Which type of architecture 8085 has?


2. How many memory locations can be addressed by a microprocessor with 14
address lines?
3. 8085 is how many bit microprocessor?
4. Why is data bus bi-directional?
5. What is the function of accumulator?
6. What is flag, bus?
7. What are tri-state devices and why they are essential in a bus oriented system?
8. Why are program counter and stack pointer 16-bit registers?
9. What does it mean by embedded system?
10. What are the different addressing modes in 8085?
11. What is the difference between MOV and MVI?
12. What are the functions of RIM, SIM, IN?
13. What is the immediate addressing mode?
14. What are the different flags in 8085?
15. What happens during DMA transfer?
16. What do you mean by wait state? What is its need?
17. What is PSW?
18. What is ALE? Explain the functions of ALE in 8085.
19. What is a program counter? What is its use?
20. What is an interrupt?
21. Which line will be activated when an output device require attention from CPU?
Frequently Asked Questions - Java & Advanced Java

1. Can a main() method of class be invoked in another class?


2. What is the difference between java command line arguments and C command
line arguments?
3. What is the difference between == & .equals
4. What is the difference between abstract class & Interface.
5. What is singleton class & it's implementation.
6. Use of static,final variable
7. Examples of final class
8. Difference between Event propagation & Event delegation
9. Difference between Unicast & Multicast model
10. What is a java bean
11. What is synchronized keyword used for.
12. What are the restrictions of an applet & how to make the applet access the local
machines resources.
13. What is reflect package used for & the methods of it.
14. What is serialization used for
15. Can methods be overloaded based on the return types ?
16. Why do we need a finalze() method when Garbage Collection is there ?
17. Difference between AWT and Swing compenents ?
18. Is there any heavy weight component in Swings ?
19. Can the Swing application if you upload in net, be compatible with your browser?
20. What should you do get your browser compatible with swing components?
21. What are the methods in Applet ?
22. When is init(),start() called ?
23. When you navigate from one applet to another what are the methods called?
24. What is the difference between Trusted and Untrusted Applet ?
25. What is Exception ?
26. What are the ways you can handle exception ?
27. When is try,catch block used ?
28. What is finally method in Exceptions ?
29. What are the types of access modifiers ?
30. What is protected and friendly ?
31. What are the other modifiers ?
32. Is synchronised modifier ?
33. What is meant by polymorphism ?
34. What is inheritance ?
35. What is method Overloading ? What is this in OOPS ?
36. What is method Overriding ? What is it in OOPS ?
37. Does java support multi dimensional arrays ?
38. Is multiple inheritance used in Java ?
39. How do you send a message to the browser in JavaScript ?
40. Does javascript support multidimensional arrays ?
41. Is there any tool in java that can create reports ?
42. What is meant by Java ?
43. What is meant by a class ?
44. What is meant by a method ?
45. What are the OOPS concepts in Java ?
46. What is meant by encapsulation ? Explain with an example
47. What is meant by inheritance ? Explain with an example
48. What is meant by polymorphism ? Explain with an example
49. Is multiple inheritance allowed in Java ? Why ?
50. What is meant by Java interpreter ?
51. What is meant by JVM ?
52. What is a compilation unit ?
53. What is meant by identifiers ?
54. What are the different types of modifiers ?
55. What are the access modifiers in Java ?
56. What are the primitive data types in Java ?
57. What is meant by a wrapper class ?
58. What is meant by static variable and static method ?
59. What is meant by Garbage collection ?
60. What is meant by abstract class
61. What is meant by final class, methods and variables ?
62. What is meant by interface ?
63. What is meant by a resource leak ?
64. What is the difference between interface and abstract class ?
65. What is the difference between public private, protected and static
66. What is meant by method overloading ?
67. What is meant by method overriding ?
68. What is singleton class ?
69. What is the difference between an array and a vector ?
70. What is meant by constructor ?
71. What is meant by casting ?
72. What is the difference between final, finally and finalize ?
73. What is meant by packages ?
74. What are all the packages ?
75. Name 2 calsses you have used ?
76. Name 2 classes that can store arbitrary number of objects ?
77. What is the difference between java.applet.* and java.applet.Applet ?
78. What is a default package ?
79. What is meant by a super class and how can you call a super class ?
80. What is anonymous class ?
81. Name interfaces without a method ?
82. What is the use of an interface ?
83. What is a serializable interface ?
84. How to prevent field from serialization ?
85. What is meant by exception ?
86. How can you avoid the runtime exception ?
87. What is the difference between throw and throws ?
88. What is the use of finally ?
89. Can multiple catch statements be used in exceptions ?
90. Is it possible to write a try within a try statement ?
91. What is the method to find if the object exited or not ?
92. What is meant by a Thread ?
93. What is meant by multi-threading ?
94. What is the 2 way of creating a thread ? Which is the best way and why?
95. What is the method to find if a thread is active or not ?
96. What are the thread-to-thread communcation ?
97. What is the difference between sleep and suspend ?
98. Can thread become a member of another thread ?
99. What is meant by deadlock ?
100. How can you avoid a deadlock ?
101. What are the three typs of priority ?
102. What is the use of synchronizations ?
103. Garbage collector thread belongs to which priority ?
104. What is meant by time-slicing ?
105. What is the use of 'this' ?
106. How can you find the length and capacity of a string buffer ?
107. How to compare two strings ?
108. What are the interfaces defined by Java.lang ?
109. What is the purpose of run-time class and system class
110. What is meant by Stream and Types ?
111. What is the method used to clear the buffer ?
112. What is meant by Stream Tokenizer ?
113. What is serialization and de-serialisation ?
114. What is meant by Applet ?
115. How to find the host from which the Applet has originated ?
116. What is the life cycle of an Applet ?
117. How do you load an HTML page from an Applet ?
118. What is meant by Applet Stub Interface ?
119. What is meant by getCodeBase and getDocumentBase method ?
120. How can you call an applet from a HTML file
121. What is meant by Applet Flickering ?
122. What is the use of parameter tag ?
123. What is audio clip Interface and what are all the methods in it ?
124. What is the difference between getAppletInfo and getParameterInfo ?
125. How to communicate between applet and an applet ?
126. What is meant by event handling ?
127. What are all the listeners in java and explain ?
128. What is meant by an adapter class ?
129. What are the types of mouse event listeners ?
130. What are the types of methods in mouse listeners ?
131. What is the difference between panel and frame ?
132. What is the default layout of the panel and frame ?
133. What is meant by controls and types ?
134. What is the difference between a scroll bar and a scroll panel.
135. What is the difference between list and choice ?
136. How to place a component on Windows ?
137. What are the different types of Layouts ?
138. What is meant by CardLayout ?
139. What is the difference between GridLayout and GridBagLayout
140. What is the difference between menuitem and checkboxmenu item.
141. What is meant by vector class, dictionary class , hash table class,and property class ?
142. Which class has no duplicate elements ?
143. What is resource bundle ?
144. What is an enumeration class ?
145. What is meant by Swing ?
146. What is the difference between AWT and Swing ?
147. What is the difference between an applet and a Japplet
148. What are all the components used in Swing ?
149. What is meant by tab pans ?
150. What is the use of JTree ?
151. How can you add and remove nodes in Jtree.
152. What is the method to expand and collapse nodes in a Jtree
153. What is the use of JTable ?
154. What is meant by JFC ?
155. What is the class in Swing to change the appearance of the Frame in
Runtime.
156. How to reduce flicking in animation ?
157. What is meant by Javabeans ?
158. What is JAR file ?
159. What is meant by manifest files ?
160. What is Introspection ?
161. What are the steps involved to create a bean ?
162. Say any two properties in Beans ?
163. What is persistence ?
164. What is the use of beaninfo ?
165. What are the interfaces you used in Beans ?
166. What are the classes you used in Beans ?
167. What is the diffrence between an Abstract class and Interface
168. What is user defined exception ?
169. What do you know about the garbate collector ?
170. What is the difference between C++ & Java ?
171. How do you communicate in between Applets & Servlets ?
172. What is the use of Servlets ?
173. In an HTML form I have a Button which makes us to open another page in
15 seconds. How will do you that ?
174. What is the difference between Process and Threads ?
175. How will you initialize an Applet ?
176. What is the order of method invocation in an Applet ?
177. When is update method called ?
178. How will you communicate between two Applets ?
179. Have you ever used HashTable and Dictionary ?
180. What are statements in JAVA ?
181. What is JAR file ?
182. What is JNI ?
183. What is the base class for all swing components ?
184. What is JFC ?
185. What is Difference between AWT and Swing ?
186. Considering notepad/IE or any other thing as process, What will Happen if
you start notepad or IE 3 times? Where 3 processes are started or 3 threads are
started ?
187. How does thread synchronization occurs inside a monitor ?
188. How will you call an Applet using a Java Script function ?
189. Is there any tag in HTML to upload and download files ?
190. Why do you Canvas ?
191. How can you push data from an Applet to Servlet ?
192. What are the benefits of Swing over AWT ?
193. Where the CardLayout is used ?
194. What is the Layout for ToolBar ?
195. What is the difference between Grid and GridbagLayout ?
196. How will you add panel to a Frame ?
197. What is the corresponding Layout for Card in Swing ?
198. What is light weight component ?
199. What is bean ? Where it can be used ?
200. What is difference in between Java Class and Bean ?
201. What is the mapping mechanism used by Java to identify IDL language ?
202. Diff between Application and Applet ?
203. What is serializable Interface ?
204. What is the difference between CGI and Servlet ?
205. What is the use of Interface ?
206. Why Java is not fully objective oriented ?
207. Why does not support multiple Inheritance ?
208. What it the root class for all Java classes ?
209. What is polymorphism ?
210. Suppose If we have variable ' I ' in run method, If I can create one or
More thread each thread will occupy a separate copy or same variable will be
shared ?
211. What is Constructor and Virtual function? Can we call Virtual
212. Funciton in a constructor ?
213. Why we use OOPS concepts? What is its advantage ?
214. What is the difference in between C++ and Java ? can u explain in detail?
215. What is the exact difference in between Unicast and Multicast object ?
Where we will use ?
216. How do you sing an Applet ?
217. In a Container there are 5 components. I want to display the all the
components names, how will you do that one ?
218. Why there are some null interface in java ? What does it mean ?
219. Give me some null interfaces in JAVA ?
220. Tell me the latest versions in JAVA related areas ?
221. What is meant by class loader ? How many types are there? When will we
use them ?
222. What is meant by flickering ?
223. What is meant by cookies ? Explain ?
224. Problem faced in your earlier project
225. How OOPS concept is achieved in Java
226. Features for using Java
227. How does Java 2.0 differ from Java 1.0
228. Public static void main - Explain
229. What are command line arguments
230. Explain about the three-tier model
231. Difference between String & StringBuffer
232. Wrapper class. Is String a Wrapper Class
233. What are the restriction for static method Purpose of the file class
234. Default modifier in Interface
235. Difference between Interface & Abstract class
236. Can abstract be declared as Final
237. Can we declare variables inside a method as Final Variables
238. What is the package concept and use of package
239. How can a dead thread be started
240. Difference between Applet & Application
241. Life cycle of the Applet
242. Can Applet have constructors
243. Differeence between canvas class & graphics class
244. Explain about Superclass & subclass
245. What is AppletStub
246. Explain Stream Tokenizer
247. What is the difference between two types of threads
248. Checked & Unchecked exception
249. Use of throws exception
250. What is finally in exception handling Vector class
251. What will happen to the Exception object after exception handling
252. Two types of multi-tasking
253. Two ways to create the thread
254. Synchronization
255. I/O Filter
256. Can applet in different page communicate with each other
257. Why Java is not 100 % pure OOPS ? ( EcomServer )
258. When we will use an Interface and Abstract class ?
259. How to communicate 2 threads each other ?
260. What is the difference between an Abstract class and Interface?
261. What is user defined exception?
262. What do you know about the garbage collector?
263. What is the difference between java and c++?
264. In an htm form I have a button which makes us to open another page in 15
seconds. How will you do that?
265. What is the difference between process and threads?
266. What is update method called?
267. Have you ever used HashTable and Directory?
268. What are statements in Java?
269. What is a JAR file?
270. What is JNI?
271. What is the base class for all swing components?
272. What is JFC?
273. What is the difference between AWT and Swing?
274. Considering notepad/IE or any other thing as process, What will happen if
you start notepad or IE 3 times ? Where three processes are started or three
threads are started?
275. How does thread synchronization occur in a monitor?
276. Is there any tag in htm to upload and download files?
277. Why do you canvas?
278. How can you know about drivers and database information ?
279. What is serialization?
280. Can you load the server object dynamically? If so what are the 3 major
steps involved in it?
281. What is the layout for toolbar?
282. What is the difference between Grid and Gridbaglayout?
283. How will you add panel to a frame?
284. Where are the card layouts used?
285. What is the corresponding layout for card in swing?
286. What is light weight component?
287. Can you run the product development on all operating systems?
288. What are the benefits if Swing over AWT?
289. How can two threads be made to communicate with each other?
290. What are the files generated after using IDL to java compiler?
291. What is the protocol used by server and client?
292. What is the functionability stubs and skeletons?
293. What is the mapping mechanism used by java to identify IDL language?
294. What is serializable interface?
295. What is the use of interface?
296. Why is java not fully objective oriented?
297. Why does java not support multiple inheritance?
298. What is the root class for all java classes?
299. What is polymorphism?
300. Suppose if we have a variable 'I' in run method, if I can create one or more
thread each thread will occupy a separate copy or same variable will be shared?
301. What are virtual functions?
302. Write down how will you create a Binary tree?
303. What are the traverses in binary tree?
304. Write a program for recursive traverse?
305. What are session variable in servlets?
306. What is client server computing?
307. What is constructor and virtual function? Can we call a virtual function in
a constructor?
308. Why do we use oops concepts? What is its advantage?
309. What is middleware? What is the functionality of web server?
310. Why is java not 100% pure oops?
311. When will you use an interface and abstract class?
312. What is the exact difference in between Unicast and Multicast object?
Where will it be used?
313. What is the main functionality of the remote reference layer?
314. How do you download stubs from Remote place?
315. I want to store more than 10 objects in a remote server? Which
methodology will follow?
316. What is the main functionality of Prepared Statement?
317. What is meant by Static query and Dynamic query?
318. What are Normalization Rules? Define Normalization?
319. What is meant by Servelet? What are the parameters of service method?
320. What is meant by Session? Explain something about HTTP Session Class?
321. In a container there are 5 components. I want to display all the component
names, how will you do that?
322. Why there are some null interface in JAVA? What does it mean? Give
some null interface in JAVA?
323. Tell some latest versions in JAVA related areas?
324. What is meant by class loader? How many types are there? When will we
use them?
325. What is meant by flickering?
326. What is meant by distributed application? Why are we using that in our
application?
327. What is the functionality of the stub?
328. Explain about version control?
329. Explain 2-tier and 3-tier architecture?
330. What is the role of Web Server?
331. How can we do validation of the fields in a project?
332. What is meant by cookies? Explain the main features?
333. Why java is considered as platform independent?
334. What are the advantages of java over C++?
335. How java can be connected to a database?
336. What is thread?
337. What is difference between Process and Thread?
338. Does java support multiple inheritance? if not, what is the solution?
339. What are abstract classes?
340. What is an interface?
341. What is the difference abstract class and interface?
342. What are adapter classes?
343. what is meant wrapper classes?
344. What are JVM.JRE, J2EE, JNI?
345. What are swing components?
346. What do you mean by light weight and heavy weight components?
347. What is meant by function overloading and function overriding?
348. Does java support function overloading, pointers, structures, unions or
linked lists?
349. What do you mean by multithreading?
350. What are byte codes?
351. What are streams?
352. What is user defined exception?
353. In an htm page form I have one button which makes us to open a new page
in 15 seconds. How will you do that?

Advanced Java

1. What is RMI?
2. Explain about RMI Architecture?
3. What are Servelets?
4. What is the use of servlets?
5. Explain RMI Architecture?
6. How will you pass values from htm page to the servlet?
7. How do you load an image in a Servelet?
8. What is purpose of applet programming?
9. How will you communicate between two applets?
10. What IS the difference between Servelets and Applets?
11. How do you communicate in between Applets and Servlets?
12. What is the difference between applet and application?
13. What is the difference between CGI and Servlet?
14. In the servlets, we are having a web page that is invoking servlets ,username and
password? which is checks in database? Suppose the second page also if we want
to verify the same information whether it will connect to the database or it will be
used previous information?
15. What are the difference between RMI and Servelets?
16. How will you call an Applet using Java Script Function?
17. How can you push data from an Applet to a Servlet?
18. What are 4 drivers available in JDBC? At what situation are four of the drivers
used?
19. If you are truncated using JDBC , how can you that how much data is truncated?
20. How will you perform truncation using JDBC?
21. What is the latest version of JDBC? What are the new features added in that?
22. What is the difference between RMI registry and OS Agent?
23. To a server method, the client wants to send a value 20, with this value exceeds to
20 a message should be sent to the client . What will you do for achieving this?
24. How do you invoke a Servelet? What is the difference between doPost method
and doGet method?
25. What is difference between the HTTP Servelet and Generic Servelet? Explain
about their methods and parameters?
26. Can we use threads in Servelets?
27. Write a program on RMI and JDBC using Stored Procedure?
28. How do you swing an applet?
29. How will you pass parameters in RMI? Why do you serialize?
30. In RMI ,server object is first loaded into memory and then the stub reference is
sent to the client. true or false?
31. Suppose server object not loaded into the memory and the client request for it.
What will happen?
32. What is the web server used for running the servelets?
33. What is Servlet API used for connecting database?
34. What is bean? Where can it be used?
35. What is the difference between java class and bean?
36. Can we sent objects using Sockets?
37. What is the RMI and Socket?
38. What is CORBA?
39. Can you modify an object in CORBA?
40. What is RMI and what are the services in RMI?
41. What are the difference between RMI and CORBA?
42. How will you initialize an Applet?
43. What is the order of method invocation in an Applet?
44. What is ODBC and JDBC? How do you connect the Database?
45. What do you mean by Socket Programming?
46. What is difference between Generic Servlet and HTTP Servelet?
47. What you mean by COM and DCOM?
48. what is e-commerce?
Frequently Asked Questions - Networking

• User(s) are complaining of delays when using the network. What would you do?
• What are some of the problems associated with operating a switched LAN?
• Name some of the ways of combining TCP/IP traffic and SNA traffic over the
same link.
• What sort of cabling is suitable for Fast Ethernet protocols?
• What is a Class D IP address?
• Why do I sometimes lose a server's address when using more than one server?
• What is Firewall?
• How do I monitor the activity of sockets?
• How would I put my socket in non-blocking mode?
• What are RAW sockets?
• What is the role of TCP protocol and IP protocol.
• What is UDP?
• How can I make my server a daemon?
• How should I choose a port number for my server?
• Layers in TCP/IP
• How can I be sure that a UDP message is received?
• How to get IP header of a UDP message
• Writing UDP/SOCK_DGRAM applications
• How many bytes in an IPX network address?
• What is the difference between MUTEX and Semaphore?
• What is priority inversion?
• Different Solutions to dining philosophers problem.
• What is a message queue?
• Questions on Shared Memory.
• What is DHCP?
• Working of ping, telnet, gopher.
• Can I connect two computers to internet using same line ?
• Why networks are layered ? What is the advantage of that ?
• How many layers are there in OSI ? Why is it called OSI model ?
• network topologies ?
• Which are the different network toplogies ?
• an example of bus type network.
• What is the Bandwidth of ethernet ?
• Explain the advantage and disadvantage of ethernet ?
• Which is the protocol used in ethernet. (CSMA/CD) Why is it called so ?
• What is the advantage of Ring network ?
• Compare it with ethernet
Frequently Asked Questions - RMI Technology

• Why do you use UniCastRemoteObject in RMI ?


• How many interfaces are used in RMI?
• Can Rmi registry be written in the code, without having to write it in the
command prompt and if yes where?
• Why is Socket used ?
• When MalformedURLException and UnknownHost Exception throws ?
• What is meant by RMI ?
• Explain RMI Architecture ?
• What is meant by a stub ?
• What is meant by a skelotn ?
• What is meant by serialisation and deserialisation ?
• What is meant by RRL ?
• What is the use of TL ?
• What is RMI Registry ?
• What is rmic ?
• How will you pass parameter in RMI ?
• What exceptions are thrown by RMI ?
• What are the steps involved in RMI ?
• What is meant by bind(), rebind(), unbind() and lookup() methods?
• What are the advanatages of RMI ?
• What is JNI ?
• What is Remote Interface ?
• What class is used to create Server side object ?
• What class is used to bind the server object with RMI Registry ?
• What is the use of getWriter method ?
• Explain RMI Architecture?
• What is the difference between RMI & Corba ?
• What are the services in RMI ?
• In RMI, server object first loaded into the memory and then the stub Reference is
sent to the client ? or whether a stub reference is directly sent to the client ?
• Suppose server object is not loaded into the memory, and the Client request for it ,
what will happen?
• What is serialization ?
• Can you load the server object dynamically? If so,what are the Major 3 steps
involved in it ?
• What is difference RMI registry and OSAgent ?
• To a server method, the client wants to send a value 20, with this value exceeds to
20,. a message should be sent to the client ?
• What will you do for achieving for this ?
• Can you run the product development on all operating systems
• Can we send object using Sockets ?
• What is the RMI and Socket ?
• What is the protocol used by server and client ?
• Can I modify an object in CORBA ?
• What is the functionality stubs and skeletons ?
• What is an RMI?
• How will you pass parameters in RMI ? Why u serialize?
• What is the main functionality of the Remote Reference Layer
• How do you download stubs from a Remote place ?
• I want to store more than 10 objects in a remote server ? Which Methodology will
follow ?
• Write a program on RMI and JDBC using StoredProcedure ?
• What is meant by distributed Application ? Why we are using that in our
applications ?
• What is the functionality of the stub ?
• How to generate skeleton & Stub classes?
• Explain lazy activation?
• Firewalls in RMI
Frequently Asked Questions - Servlets

• How do u deal property files in servlet?


• What methods do u use in Servlet - Applet communication ?
• What are the types of Servlet ?
• Difference between HttpServlet and Generic Servlets ?
• Difference between doGet and doPost ?
• What are the methods in HttpServlet?
• What are the types of SessionTracking?
• What is Cookie ? Why is Cookie used ?
• If my browser does not support Cookie,and my server sends a cookie instance
What will happen ?
• Why do u use Session Tracking in HttpServlet ?
• Can u use javaScript in Servlets ?
• What is the capacity the doGet can send to the server ?
• What are the type of protocols used in HttpServlet ?
• What is meant by a servlet ?
• What are the types of servlets ? Explain
• What is the different between a Servlet and a CGI?
• What is the difference between 2 types of Servlets ?
• What is the type of method for sending request from HTTP server ?
• What are the exceptions thrown by Servlets ? Why ?
• What is the life cycle of a servlet ?
• What is meant by cookies ?
• What is HTTP Session ?
• What is the difference between GET and POST methods ?
• How can you run a Servlet Program ?
• How to commuincate between an applet and a servlet ?
• What is a Servlet-to-Servlet communcation ?
• What is Session Tracking ?
• What are the security issues in Servlets ?
• What is HTTP Tunneling?
• How do you load an image in a Servlet ?
• What is Servlet Chaining ?
• What is URL Rewriting ?
• What is context switching ?
• How will you pass values from HTML page to the Servlet ?
• What is Servlet API used for conneting database ?
• In servlets, we are having a web page that is invoking servlets? Username and
password ? which is cheks in the database ? Suppose the second page also If we
want to verify the same information whethe it will connect to the database or it
will be used previous information?
• What are virtual functions ?
• Write down how will you create a binary Tree ?
• What are the traverses in Binary Tree ?
• Write a program for recursive Traverse ?
• What are session variable in Servlets ?
• What is client server computing ?
• What is meant by Servelet? What are the parameters of the Service Method ?
• What is meant by Session ? Tell me something about HTTPSession Class ?
• How do you invoke a Servelt? What is the difference in between DoPost and
doGet methods ?
• What is the difference in between the HTTPServlet and Generic Servlet?
• Expalin their methods ? Tell me their parameter names also Have you used
threads in Servelet ?
• How do you load an Image in a Servlet ?
• Explain Servlet Life cycle?
• Why do you go for servlet rather than CGI
Frequently Asked Questions - Visual Basic

• Which controls can not be placed in MDI ?


• List out controls which does not have events
• Which property of textbox cannot be changed at runtime. What is the max size of
textbox?
• How many system controls are available
• ___,_____ and ____ container objects.
• ___ Property is to compress a image in image control.
• ___,___ and __ are difference between image and picture controls.
• To.set the command button for ESC ___ Property has to be changed.
• Is it possible to set a shortcut key for label.
• What is the default property of datacontrol.
• ___,__,___ are the type of combo box?
• __ no of controls in form.
• OLE is used for _______
• What is the need of tabindex property is label control.
• ___ is the control used to call a windows application.
• Clear property is available in ____,___ control.
• ___ Property is used to count no. of items in a combobox.
• ___ is a property to resize a label control according to your caption.
• Which controls have refresh method.
• ___ property is used to change to ___ value to access a identity column'in
datacontrols.
• _____ is the property to ___,____,____ are valid for recordsource property of dat
control.
• To find the current recordposition in data control.
• Timer control contains ________ no. of events.
• ____ property is used to lock a textbox to enter a datas.
• What is the need of zorder method?
• ____ is the difference between Listindex and Tab index.
• ____ property of menu cannot be set at run time.
• Can you create a tabletype of recordset in Jet - connected ODBC dbengine.
• Difference between listbox and combo box.
• What are the new events in textbox that has been included in VB6.0
• Can you create a updatecascade, Deletecascade relation in Ms- Access? If no,
give on eample.
• _____ collection in recordset used to assign a value from textbox to table columns
without making abinding in datacontrol.
• ___ argument can be used to make a menuitem into bold.
• What is the difference between Msgbox Statement and MsgboxQ function?
• What is.the difference between queryunload and unload in form?
• ___,___ arguments will be used to run a executable program in shell function
• ___ property used to add a menus at runtime.
• What is the difference between modal and moduless window?
• ___ VB constant make the menu item in centre.
• ___ method used to move a recordset pointer in nth position in DAG.
• To validate a range of values for a property whenever the property values
changes,which type of property procedure you use?
• What are 3 main differences between flexgrid control and dbgrid control?
• What is the difference between change event in normal combobox and
dbcombobox?
• To populate a single column value which dbcontrols you to use?
• What is ODBC?
• PartsofODBC?
• WhatisDSN?
• WhatisDAO?
• Types of cursors in DAO?
• Types of LockEdits in DAO? 51 .Types of Recordsets.
• Difference between Tabletype and Snapshot?
• Draw Sequence Modal of DAO? Explain.
• Difference between Dynaset and Snapshot?
• Difference between Recordset and Querydef?
• What is the use of Tabledef?
• Default cursor Type and LockEdit type in DAO?
• What is the default workspace?
• Is it posible to Create Tables Through Querydef?
• It is possible to access Text (x.txt) files? Explain.
• What is ODBC Direct and Microsoft Jet Database Engine ?
• Is it possible to Manipulate data through flexgrid? Explain.
• Types of DBCombo boxes
• What do you mean by Databound Controls? Explain.
• What is RDO?
• Types of cursors in RDO.
• Types of LockEdits in RDO.
• Types of LockEdits in RDO.
• Types of Resultsets.
• Difference between Recordset and Resultsets.
• Explain Default cursor Type and LockEdits type in RDO
• Draw Sequence Modal of RDO? Explain.
• What is meant by Establish Connection in RDO? 74.1s it possible to Access
BackEnd procedures? Explain.
• What is OLE? Explain.
• What is DDE?
• Difference between Linked Object and Embedded Object?
• Explain OLE Drag and Drop.
• Difference between DDE and OLE.
• What is the difference between Object and Class?
• Give brief description about class?
• Does VB Supports OOPS Concepts? Explain..
• Difference between Class Module and Standard Module?
• Explain Get, Let, Set Properties.
• Difference Types of Procedures in VB?
• What is the use of NEW Keyword? Explain.
• What is constructors and distructors.
• Types of Modal windows in VB.
• What is ActiveX? Explain.
• Types of ActiveX Components in VB?
• Difference between ActiveX Control and Standard Control.
• Difference between ActiveX Exe and Dll.
• What is instantiating?
• Advantage of ActiveX Dll over Active Exe.
• Difference Types of Instancing Property in ActiveX Dll and Exe.
• What is ActiveX Dll and ActiveX Exe?
• Write the steps in Creating ActiveX Dll and Active Exe?
• Explain the differences between ActiveX Dll and ActiveX Exe?
• How would you use ActiveX Dll and ActiveX Exe in your application?
• How would you access objects created in ActiveX Exe and ActiveX D1T
• What is the use of ActiveX Documents?
• What is ActiveX Document?
• What is the use of Visual Basic Document file?
• What is hyperlink?
• How would you create Visual basic Document file?
• What is Internet Explorer and its uses?
• How would you navigate between one document to another document
• in Internet Explorer ?
• How would you run your ActiveX Document Dll?
• How would you view html code in Active Server Pages?
• How would you cre.ate your application in DHTML?
• What is ActiveX Control?
• Write the Steps in Creating an ActiveX Control?
• How would you attach an ActiveX control in Your Application?
• How would you create properties in ActiveX Control?
• What is the-use of property page Wizard in ActiveX Control?
• How would you add elements in TreevieW Control.
• What are the types of line styles available in Treeview Control?
• What is the use of Imagelist Controls
• How would you attach pictures in Treeview Control?
• What are the uses of List View Control?
• Explain the types of Views in Listview Control.
• How would you attach pictures in column headers of List View Control?
• How would you add column headers in listview control?
• How would you add elements and pictures to listitems in listview control?
• How would you activate animation control?
• What is the use of progress Bar Control?
• How would you find out the value property in Slider Bar Control?
• What is the use of Data Form Wizard?
• How would you map properties to controls by using ActiveX Control Interface
Wizard?
• How would you convert a form into document?
• How would you Create a Query Builder and Explain its uses
• How would you create properties by using class Builder Wizard?
• HTML stands for What? Use of HTML ?
• Whether HTML supports multimedia: and document links?
• DHTML Is used for what?
• What do you mean by HTTP?
• What is the use of Hyperlink control for DHTML applications?
• How can you Navigate from the DHTML application to another DHTML
application? .
• What are the Internet tools available in VB6.0?
• Explain the usage of Web Browser Control?
• What do you mean by ADO?
• What is the difference Between ADO and other data access objects0
• WhatisOLEDB?
• What are the important components of OLEDB?
• Through which protocol OLEDB components are interfaced?
• It possible to call OLEDB's Features directly in VB without using any control?
• What type of databases you can access through AD I Data Access Object?
• How many objects resides in ADO ?
• What is the use of Connection object?
• What is the use of command Object?
• Recordset object consists what?
• What is the use of parameters collection?
• Which type of object requires this object?
• Is it possible to call backend procedures with ADO control?
• Is there any Edit method in ADO Data Access method?
• How can you check whether a record is valid record or Invalid record using ADO
control or Object?
• What do you mean by provider?
• What type of recordsets are available in ADO?
• Is it possible to call oracle database through ADO control or Object?
• How many File System Controls are there ? Explain.
• How can you filter out specific type of file using file system controls?
• How can you get selected file from file system Control?
• How many ways we can access file using VB?
• Which method is preferred to save datas like database?
• How to get freefile location in memory?
• How to find size of the file. Which method or function is used to occomplish this?
• Using which type we can access file line by line?
• Which method is used to write context Into file?
• How can you read content from file?
• Binary Access-method isused to access file in which manner?
• How can you check Beginning and End of the file?
• What is the use of Scalewidth and ScaleHeight Proeperty?
• What is the use of Active Control Property?
• How can you save and Get data from Clipboard/
• What are the types of Error?
• In which areas the Error occurs?
• What are the tools available for Debuggiu in VB?
• What is the use of Immediate, Local Window?
• What is the use of debug Window?
• How can you Implement windows functionality in VB?
• How many types of API functions are availble in VB?
• How can you Add API functions to your Application?
• How to get Cursor position using API?
• Is it possible to change menu runtime using API? If yes? Specify the function
names.
• What are the types of API Types.
• Scope of API's can be of types, what are they? Why API functions are Required?
Frequently Asked Questions - Web Technology Concepts

• What is HTTP? Explain its working?


• What is DNS?
• Why do I need a domain name like 'www.aucse.Com'?
• What happens when I type in some url and press enter?
• How does CGI work? Can I use 'C' language to write a CGI?
• Working of Proxy Server, Cookies, types of cookies?
• What is Firewall?
• How to redirect to another page?
• Some questions on web servers.
• What is DOM?
• Connection Pooling in IIS 3.0 and 4.0
• What is Code Base, Style Sheets?
• Need for CSS
• DHTML: Difference between FontSize and Font Size?
• Layers in TCP/IP
• Some sites work with "http://sitename.com" but for some sites we need to specify
"www" - like "http://www.sitename.com". Why?
• Explain "URL Encoding",HTML "entity", GET method, POST method
• If we force XML for web design, the browzer size will reduce. How?
• How does DTD work?
• Difference between ASP and DHTML?
• How to create virtual directory in IIS?
• Can I host muliple sites on same machine?
• Administration of IIS.
• Some questions on ODBC and internet.
• XML and propritory databbases.
• Working of ping, telnet, gopher.
• Some questions about cross-browzer compatibility.
☺ 1
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

8086 Assembly Language Tutorial


Provided by

www.Freshersworld.com

Tutorial Index :
Section 1. Introduction to Assembler and Assembly Language _________________ 3
Section 1.1. Generation of Language ________________________________________ 3
Section 1.2. Assembly Language and Assembler_______________________________ 3
Section 1.3. Introduction to 8086 CPU internal architecture_____________________ 4
Section 1.4. Memory segmentation__________________________________________ 4
Section 2. First Step in Assembly program _________________________________ 5
Section 3. Basic structure of assembly program _____________________________ 6
Section 3.1. Basic structure of Assembly program _____________________________ 6
Section 3.2. Basic structure of Data Segment _________________________________ 8
Section 3.3. Basic structure of Code segment _________________________________ 9
Section 3.4. Simple Commands in the Code Segment__________________________ 10
Section 3.4.1. Data Movement__________________________________________________ 10
Section 3.4.2. Arithmetic Operations _____________________________________________ 12
Section 3.4.2.1. ADD and SUB function ________________________________________ 13
Section 3.4.2.2. MUL and DIV function ________________________________________ 13
Section 3.4.2.3. Other arithmetic operations _____________________________________ 14
Section 3.4.3. Simple Control flow ______________________________________________ 15
Section 3.4.3.1. Unconditional Jump ___________________________________________ 15
Section 3.4.3.2. CALL procedure _____________________________________________ 15
Section 3.4.3.3. Conditional Jump _____________________________________________ 16
Section 3.4.3.4. Looping ____________________________________________________ 18
Section 3.4.4. Logic Control ___________________________________________________ 18
Section 3.4.4.1. Simple Logic Function _________________________________________ 18
Section 3.4.4.2. Relational Operators___________________________________________ 18
Section 3.4.4.3. Rotation & shifting____________________________________________ 19
Section 3.4.5. Simple interrupts (I/O) ____________________________________________ 20
Section 3.5. Basic structure of the Stack Segment_____________________________ 21
Section 4. Macro Processing ___________________________________________ 22
Section 4.1. Macro Definition _____________________________________________ 22
Section 4.2. Local Directives ______________________________________________ 24
Section 4.3. Nested Macro ________________________________________________ 25
Section 4.4. Special Directives_____________________________________________ 25
Section 4.4.1. Repetition Directives______________________________________________ 25
Section 4.4.2. Conditional Directives ____________________________________________ 26
Section 4.5. INCLUDE Directive __________________________________________ 29

*** Page 1 ***


☺ 2
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 5. Linking to Subprograms ______________________________________ 29


Section 5.1. Intersegment Calls____________________________________________ 29
Section 5.2. Returning Parameters _________________________________________ 33
Section 5.3. Local Variable Storage ________________________________________ 34
Section 5.4. Recursive Calling_____________________________________________ 34
Section 5.5. Linking C and Assembly Language Programs _____________________ 35
Section 6. Keyboard & Screen handling (I/O) _____________________________ 36
Section 6.1. Introduction to I/O handling ___________________________________ 36
Section 6.2. I/O with DOS interrupt ________________________________________ 37
Section 6.2.1. String input _____________________________________________________ 37
Section 6.2.2. Display the special characters _______________________________________ 37
Section 6.3. Video display with BIOS interrupt ______________________________ 37
Section 6.3.1. Screen Clearing and Coloring _______________________________________ 38
Section 6.3.2. Setting and Moving the Cursor ______________________________________ 39
Section 7. Interrupt Service Routine (ISR) ________________________________ 39
Section 7.1. Introduction to 8086 Interrupt Service Routine ____________________ 39
Section 7.2. Writing the Interrupt Service Routine ___________________________ 40
Section 7.3. Chaining and Reentrance Problem ______________________________ 41
Section 8. Examples __________________________________________________ 42
Section 9. Appendix 1: How to write and assemble my assembly program? ______ 48
Section 10. Appendix 2: Commands and syntax of Assembly language_________ 49

Freshersworld.com 8086 Assembly Language Tutorial


www.Freshersworld.com.com

Provided by
www.Freshersworld.com.com
First Job ….. ! Dream Job ….! Freshersworld.com

*** Page 2 ***


☺ 3
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 1. Introduction to Assembler and Assembly Language

Section 1.1. Generation of Language


A computer cannot do anything until you "tell" it what to do and how to do. The process of telling the
computer a sequence of instructions is called programming.

Programming languages can be classified into various levels. They are:

1. Low level language, e.g. Machine Language & Assembly Language. Low level languages are
closely related to the internal architecture of the computer system. For each single action of the
computer, a corresponding program line must be written.
2. High level language, e.g. C, C++, COBOL, etc.

Machine language, or first-generation language, is a set of instructions that can be directly executed by
a computer system. Each instruction is composed of an operation code (OPCODE), and an operand which
defines the function that the computer must perform. They are written at the most basic level of the computer
operation, as a series of 1s and 0s. However, it is difficult to understand and time-consuming for programmers.

Section 1.2. Assembly Language and Assembler


In order to make the OPCODE easier to read and memorized, mnemonics are used to replace the
binary codes. Furthermore, decimal number or symbolic notations are used for the operand. Assembly
language, or second-generation language, is a low-level language that uses mnemonics to represent machine
code instructions. The following is the simple Assembly program in 8086/ 8088 machine 1 (different from
68000 machine) with 16-bit data manipulation. The following will teach you the assembly program for 8086/
8088 machine only.

CODE_SEG SEGMENT
MAIN PROC FAR
ASSUME CS:CODE_SEG, DS:DATA_SEG
MOV AX, DATA_SEG
MOV DS, AX
MOV CX,0100h
START: MOV AH,2h
MOV DL,2Ah
MOV ABC,0Ah
INT 21h
MOV AH,4Ch
INT 21h
MAIN ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT
ABC DB 0Bh
DATA_SEG ENDS

END MAIN
Figure 1 Simple Assembly Program

An assembler is a language translator used to convert assembly language into machine code.
Assembler accepts as input a program whose instructions are essentially in one to one correspondence with
those of machine language, with symbolic names used for operation codes and operands. It produces as output a
machine-language program in main storage for execution. It is not necessary to find the meaning or work done
in the assembly program. The purpose of the assembler is nothing but the translation.

1
8088 refers to the model of the processor used. For example, 80386, 80486, 80586 are the model of the processor. It is designed in late
1970s.
*** Page 3 ***
☺ 4
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 1.3. Introduction to 8086 CPU internal architecture


In a CPU, especially 8086 CPU, the visible component is the registers. The registers on the 8086 CPU
can be categorized into three parts: general purpose registers, segment registers and other registers.

1. General Purpose Registers


Although these registers are called “General Purpose Registers”, everyone has its own special
purpose.
There are totally eight 16-bit general purpose registers on the 8086 CPU. The main four
general purpose registers are:
☺ AX (accumulator) is used to store the results of the arithmetic and logical
computations.
☺ BX (base register) is used to store the address of a variable, works as a pointer.
☺ CX (counter) is acted as a counter in the looping.
☺ DX (data) will hold the overflow from certain arithmetic operations.

The other four registers are:


☺ SI & DI (Source Index & Destination Index) are acted as pointers of a string.
☺ BP (base pointer) is used to access parameters and local variables in a procedure.
☺ SP (stack pointer) is a pointer that points the head of the stack.
Besides the above eight 16-bit registers, the 8086 CPU also
have the eight 8-bit registers, which divides the AX, BX, CX and DX
registers into eight registers, as shown in Figure 2. They are called AH AL
AH, AL, BH, BL, CH, CL, DH and DL. AH is the higher-order byte BH BL
of AX register, and AL is the lower-order byte of AX. It implies the CH CL
similar meaning in BX, CX and DX registers. DH DL

2. Segment Registers Figure 2 Register Segmentation


There are four special segment registers:
☺ CS (Code Segment Registers) stores the starting address of the program instruction.
☺ DS (Data Segment Registers) stores the starting address of the data segment.
☺ SS (Stack Segment Registers) stores the starting address of the stack segment.
☺ ES (Extra Segment) locates an additional data segment if needed.

3. Other Registers
There are two main types of other registers. One is instruction pointer (IP) and the other is the
status register. The instruction pointer contains the address of the currently executing instruction. A 16-
bit register provides a pointer into the current code segment.
The status register holds 16-bit information, which includes overflow register (O), sign
register (N), zero register (Z) & carry register (C).
☺ O is set to 1 if overflow value (signed) is generated. Cleared otherwise.
☺ N is set to 1 if negative result generated. Cleared otherwise.
☺ Z is set to 1 if result is zero. Cleared otherwise.
☺ C is set to 1 if carry bit (unsigned) is generated. Cleared otherwise.
☺ P is set to 1 if parity bit is even. Cleared otherwise.

O N Z P C
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Figure 3 Internal construction of Status register

Section 1.4. Memory segmentation 00000 CD AB 00001


Writing the assembly program includes the tracing of 00002 00003
00004
the data & address in the memory. Here, we introduce the :
00005
:
memory segmentation. :
:
:
The first 1MB spaces of memory, from address 0 2 to FFFFC
:
FFFFD
FFFFFh, is the entire address space of the 8086/ 8088 FFFFE FFFFF

2 Figure 4 Memory Segmentation


h means in hexadecimal form.
*** Page 4 ***
☺ 5
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

microprocessors. The data addresses to locations are limited in this range.


But, what is memory segmentation?
Memory segmentation is like to divide a large memory space into a linear array of bytes. A single
index, called address, selects some particular byte from that array. Traditionally, segmented address uses two
components to specify a certain memory location: a segment value and an offset value within that segment.
A full segmented address contains a segment address and the offset address, written as segment: offset.
Both are 1 word (16 bits) value. This representation of the address is called the logical address representation.
In order to calculate the actual address, which is called the physical address, on the address bus, the CPU will
multiply the segment address by 10h and adds the offset address, i.e.,
Physical address = segment address × 10h + offset
Inside the 8088 machine, the 16-bit number is stored in the memory in such a way that the most
significance byte is stored in higher memory than lower-order byte, i.e. it will be stored in reverse order. For
example, the number ABCDh will become CDABh, as in Figure 4.

Section 2.First Step in Assembly program


Here we copy the simple assembly program from section 1.
CODE_SEG SEGMENT
MAIN PROC FAR
ASSUME CS:CODE_SEG, DS:DATA_SEG
MOV AX, DATA_SEG
MOV DS, AX
MOV CX,0100h
START: MOV AH,2h
MOV DL,2Ah
MOV ABC,0Ah
INT 21h
MOV AH,4Ch
INT 21h
MAIN ENDP
CODE_SEG ENDS
DATA_SEG SEGMENT
ABC DB 0Bh
DATA_SEG ENDS
END MAIN
Figure 5 Simple Assembly Program

To begin with, the assembly program can be divided into 3 segments:

1. Code segment (CS), which defines the main program or instructions.


2. Data segment (DS), which defines the data you used.
3. Stack segment (SS), which defines the stack.

All the above segments are not necessarily located one by one in the memory. They can be located far
away from each other, as shown in figure 6. Furthermore, an assembly program is free to allocate less than 3
segments. For example, only 1 code segment & 1 data segment is accepted with the warning message.

*** Page 5 ***


☺ 6
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 3. Basic structure of assembly


program Address
0100:0001
CS
Section 3.1. Basic structure of Assembly program
Processor Directive
By default, the assembler instructions are available on all members of 1750:0001 DS
the 80x86 family, including 8086, 8088, 80186, 80286, 80386, 80486, 80586,
etc. By generating an error message for non-8086 instructions, a processor
directive will prevent the accidental use of the instructions that are not available 3230:0001
on 8086 processor. The processor directive is SS
p8086
Such processor directives enable all instructions available on an
8086 processor. Figure 6 Location of Program segment in the memory

Segment Definition
All programs consist of one or more segments. Of course, while your programs is running, the segment
registers point at the currently active segments. Segment, in the assembly language source file, are defined with
the following instructions:
<Segment Name> segment (<align>) (<combine>) (<class>)
<code>
<Segment Name> ends
where
<Segment Name> is the segment name you designed,
<align> indicates the boundary on which the segment is to begin,
<combine> indicates whether to combine with other segments in linking,
<class> is used as identifier for the linker to combine various segments.

<align> ::= para | byte | page | word


where
para sets the segment starting address evenly divisible by 16 (10h)
byte sets the segment starting address on the next available byte
page sets the segment starting address on the next page (100h).
word sets the segment starting address on the next available word.

<combine> ::= STACK | PUBLIC | NONE


where
STACK defines stack segment only.
PUBLIC grouped the same class segment both physically and logically
NONE separated each segment with others logically.

<class> ::= ‘<name>’


It is used as an identifier for the linker to combine various code segments.

Segment Registers
When MS-DOS begins execution of your program, it initializes two segment registers. It points CS at
the code segment containing your main program and it points SS at your stack segment. From that point
forward, you are responsible for maintaining the segment registers yourself.
To access the data correctly in your program, you should copy the address from the actual data
segment to the data segment register, as shown below:
MOV AX, DATA_SEG
MOV DS, AX
Let’s explain each term in the syntax of the segment.

Segment Names

*** Page 6 ***


☺ 7
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

The segment directive requires a label in the label field. This label is the segment’s name. The
assembler will use the segment name to obtain the address of a segment. You must also specify the segment’s
name in the label field of the ENDS directive that ends the segment.
Segments normally load into memory in the order that they appear in your source file. If you write the
code segment after the data segment, the data segment would load into memory before the code segment.

Align Type
The align parameter is one of the following words: byte, word, para, or page. These keywords instruct
the assembler, linker, and DOS to load the segment on a byte, word, paragraph or page boundary. The align
parameter is optional. If one of the above keywords does not appear as a parameter to the segment directive, the
default alignment is paragraph (16 bytes).
Aligning a segment on a byte boundary loads the segment into memory starting at the first available
byte after the last segment. Aligning on a word boundary will start the segment at the first byte with an even
address after the last segment.

Combine Type
The combine type controls the order of the segment. To specify the combine type you use one of the
keywords: PUBLIC, STACK or NONE. The PUBLIC and STACK combine types essentially perform the same
operation. They will combine all the segments with the same name, and join into a single contiguous segment.
The main difference between PUBLIC and STACK is that STACK is used in the stack segment while PUBLIC
is used in the code segment and data segment.

Class Type
The final operand to the segment directive is usually the class type. The class type specifies the
ordering of segments that do not have the same segment name. This operand consists of a symbol enclosed by
apostrophes ‘ ‘. Generally, you should use the following names: CODE (for code segment), DATA (for data
segment) and STACK (for stack segment).
The following will be the typical three segments:
CODE_SEG SEGMENT PARA PUBLIC ‘CODE’
: :
CODE_SEG ENDS
DATA_SEG SEGMENT PARA PUBLIC ‘DATA’
: :
DATA_SEG ENDS
STACK_SEG SEGMENT PARA STACK ‘STACK’
DW 1024 dup (?)
STACK_SEG ENDS
END
Figure 7 Typical Segment Definitions

Assume Directive
How does the assembler know which segment is the data segment, and which one is stack segment?
The segment directives don’t tell you what type of segment it happens to be in the program. When you specify
the segment in your program, not only you must tell the CPU that a segment is a data segment, but also you
must tell the assembler where and when the segment is a data segment. The assume directive provides this
information to the assembler.
The assume directive takes the following form:
ASSUME CS:<code segment name>, DS:<data segment name>, SS:<stack segment name>
The assume directives tells the assembler that you have loaded the specified segment register(s) with
the segment addresses of the special value. Note that this directive does not modify any of the segment registers,
it simply tells the assembler to assume the segment registers are pointing at certain segments in the program.
END directive
The END directive terminates an assembly language source file. In addition to telling the assembler
that it has reached the end of the assembly language source file, the end directive operand <entry point> tells the
MS-DOS where to transfer the control when the program begins execution, as shown by the following syntax:
END <entry point>

*** Page 7 ***


☺ 8
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

If you write separate assembly and you’re linking together several different object codes, only one
module can have a main program. Likewise, only one module should specify the starting location of the
program. Others will leave blank.

Section 3.2.Basic structure of Data Segment


Data segment is the assembly segment that defines the data you will use. The syntax is:
<variable name> DB | DW <value>
Variable name represents the name of your variable. DB or DW declares the size of the variable, and
the value is the initial value of that variable.
Variable name should begin at column one on the instruction in the data segment. If you need more
than one variable in your program, just place additional lines in the data segment declaring the variables. The
assembler will allow you to refer to that variable by name rather than by the location.
The first variable you place in the data segment gets allocated storage at location DS:0. The next
variable in memory gets the storage just beyond the pervious variable. DB declares the byte size (2 hex digits),
and DW declares the word size (4 hex digits) for the variable.

Here are the examples for the data initialization.


V1 DB 25h ; V1=25 hexadecimal no. with byte size
V21 DB 20d ; V21 = 20 decimal number
V22 DW 0010110101001010b ; V22 is binary digit with Word size
V3 DB 10 dup(?) ; 10 consecutive non-initialized bytes
V4 DB “HELLO$” ; Character string 3
Figure 8 Variable declaration

For the above example, the variable V1 locates at location DS:0, V21 locates at location DS:1, V22
locates at location DS:2, V3 locates at location DS:4, etc. The question mark ‘?’ tells the assembler that the
variable should be left uninitalized when it loads into the memory, i.e. just leave space for that variable. You
may specify any initial value for the variable before or after (replace the “?”) the execution of the program.

Number Base
To differentiate between numbers in the various bases, you can use a suffix character. If you terminate
a number with a ‘b’ or ‘B’, then the assembler assumes that it is a binary number. If it contains any digits other
than 0 or 1 will generate an error. A suffix ‘D’ or ‘d’ assumes the number is a decimal number, while a suffix
‘H’ or ‘h’ will select the hexadecimal radix.
All integer constants must begin with a decimal digit, including hexadecimal constants. To represent
the number ‘ABCD’, you must specify as ‘0ABCDh’. The assembler requires the leading decimal digit so that it
can differentiate between symbols and numeric constants.
If you do not specify the suffix after the number, the assembler will use the current default radix, i.e.
decimal radix. Therefore, you can specify the values without using ‘D’ character.

Array
In the high-level programming, it is commonly to use the arrays. Abstractly, an array is an aggregate
data type whose members are all the same type. Selection of the member from the array is by an integer index.
For example, A[2] selects the third element from array A in C language.
There are three factors controlling the array. The base address of an array is the address of the first
element on the array and always appears in the lowest memory location. The index is the position of the
member that retrieves the specified element. The element size is the size of the element in the memory.
For a single dimension array, the address of the specified element can be calculated as:
Address = Base Address + (Index × Element Size)
In the assembly language, an array is defined as
<arrayname> DB | DW <size> dup (<element>)
Array name is the name of the array variable. The <size> dup (<element>) tells the assembler to
duplicate the object with the size defined in <size>. For example, in Figure 7, 10 dup (?) duplicate the array V3
10 times with a byte size for each element. With a ? in the “( )”, 10 uninitialized value will be defined. If a
value, say 1, is defined in the ( ), 10 byte size array with value 1 will be assigned.
In order to design an array with all different value, you can use the following syntax

3
All string must be ended with “$” notation, otherwise the assembler will output the unpredictable result.
*** Page 8 ***
☺ 9
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

<arrayname> DB | DW value1, value2, value3, ……valuen


This form allocates n variables of DB or DW type. It initializes the first item to value1, the second item
to value2, etc. For example,
Integers DB 0, 1, 2, 3, 4
initialize the five-element array, with the values from 0 to 4 respectively.
Consider the following declaration:
Strange DW 256 dup (0, 1, 2, 3)
The array Strange has 1024 elements. The n dup (XXX) operand tells the assembler to duplicate XXX
n times, not creating an array with n elements. If XXX contains k elements, then the dup operator will create an
array with size kn. The values in the above example will be 0 1 2 3 0 1 2 3 ….
To access the element in the array, the address formula will be used.
For the base address, you can use the name of the array. The element size is the number of bytes for
each array element. If the object is an array of the bytes, the element size is 1, while it will be 2 if the object is
an array of the word length.
The assembly code for accessing the array will be
[<arrayname>+<index>*<element size>]
The square box tells the assembler to resolve the entire element to the address inside the box. For
example, to denote the array SUMMER[2] with word size in assembly, you can use it as:
[SUMMER+3*2]

String
To declare the string, you can use the following syntax
<stringname> DB ‘<string>$’
The <stringname> is the name of the string, which defined inside the ‘’ or “ “. If you want to place an ‘
inside a string, you must place a pair of ‘ next to each other, e.g.
‘I’’m fine, thanks’
or by using the other characters as the string delimiter:
“I’m fine, thanks”
A string will appear as an array of ASCII number for each character. With the size of the ASCII is a
byte size, we will only use DB to define the string.

Section 3.3. Basic structure of Code segment


In the last section, we have discussed that Code segment includes the main program codes of the
program. Since the spacing is not important for the assembler, we divide the program line into 4 columns:
• Label
• Mnemonic
• Operand
• Comment (can be inserted everywhere)
We copy from the examples in section 1 and define the above parts as follows:
Label Mnemonic Operand
CODE_SEG SEGMENT
MAIN PROC FAR
ASSUME CS:CODE_SEG, DS:DATA_SEG
MOV AX, DATA_SEG
MOV DS, AX
MOV CX,0100h
START: MOV AH,2h
MOV DL,2Ah
MOV ABC,0Ah
INT 21h
MOV AH,4Ch
INT 21h
MAIN ENDP
CODE_SEG ENDS
Figure 9 Simple Assembly Program (Only Code segment part)

Label
*** Page 9 ***
☺ 10
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

The label field is an optional field containing a symbolic label for the current statement. Labels are
used in assembly language as to mark the lines which can be jumped by the other instruction (as GOTO
statement). In general, you should begin your labels in column one with the syntax:
<label name> :
A symbol is associated with some particular value. This value can be an offset within a segment, a
constant, a string, etc. A symbolic name consists of a sequence of letters, digits, and special characters, with the
following restrictions:
1. First character must be alphabetic letter or special character like ‘$’. No numeric digit is allowed.
Only ‘$’ or ‘?’ characters are not allowed (as these two characters have meanings).
2. It cannot be reserved words.
3. The maximum length for the characters is 31.
4. It is not case-sensitive, which is different from C. It will treat the upper and lower case alphabetic
equivalently.

Mnemonic
A mnemonic is an instruction name. The mnemonic field contains an assembler instruction.
Instructions are divided into three classes: machine instructions, assembler directives and pseudo opcodes.
Machine instructions are assembler mnemonics that corresponds to the actual instructions. The assembler
directives are special instructions that provide the information to the assembler but not generate any code. All
instructions introduced in section 3.1 are assembler directives. They are only message to the assembler, nothing
else. A pseudo-opcode is a message to the assembler, but it will emit the object code bytes. For example, DB
and DW in data segment in section 3.2 are the pseudo-opcode. These instructions will emit the bytes or words
of the data specified by their operands but they are not true instructions in the assembly language.

Operand
The operand field contains the operands, or parameters, for the instruction specified in the mnemonic
field. Operands never appear on lines by themselves. The type and number of the operands depend entirely on
the specific instruction.

Comment
The comment field allows you to annotate each line of source code in your program. When the
assembler is processing a line of text with beginning of the notation “;”, it completely ignores everything on the
source line following a semi-colon. You can also have a comment on the line by itself.

Rules for writing assembly language


Each assembly language statement appears on its own line in the source file. No multiple assembly
language statements on a single line are allowed. However, a blank line is accepted.

Procedure Definition
In the whole code segment you must define at least one procedure segment as:
<procedure name> PROC {FAR | NEAR}
: : ;***your (main/ sub) program here***
<procedure name> ENDP

Procedure name, as function name of the subroutine in high level language, must be unique. Proc
means the procedure begins, while endp tells the assembler the procedure ends. Far refers the procedure can be
called outside, while Near refers the procedure can be called only in this procedure. As you can see, the
definition of a procedure looks like definition of a segment. One difference is that procedure name must be a
unique identifier within your program. Your code calls this procedure using this name. This topic will be further
discussed in the CALL section.

Section 3.4. Simple Commands in the Code Segment

Section 3.4.1. Data Movement


To begin with, we introduce MOV command. MOV is the command that copy (move) the content of
one memory to another memory location. Generally speaking, assembly language instructions manipulate data
stored in memory and registers. In order to tell which data and registers we needed, use defined addressing

*** Page 10 ***


☺ 11
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

methods is the efficient way to access. We will show how the addressing modes reference with MOV command
in the following paragraphs.
Consider the 8086 MOV instruction
MOV <destination>, <source>
The instruction MOV copies the data from the source operand to the destination operand. The only
restriction of the MOV instruction is that both operands must be the same size.
We can use the different type of the memory location or the registers in the source and destination.
However, the best choice of the source or destination is using the registers. Instructions using the registers will
be shorter and faster than accessing the memory location.
Furthermore, as we will show in the following sections, the general purpose registers will be one of the
instruction operands (or in other words, parameters).

There are two restrictions in the MOV instruction:


1. It is invalid in specifying CS as the destination operand, and
2. It is invalid that both of the operands are segment registers.

Furthermore, there are five main types of the indexing methods:

• Immediate data reference & Register data reference (Direct data reference)
Immediate data reference consists of an immediate mode source and a destination location.
Data value directly move to a defined register. From the example “MOV AX, 004Ch”, it means that
the hexadecimal number 004C immediately move to AX (accumulator long) register.
Register data reference includes data moving from one register or memory location to another
register. From the example, “MOV AX, BX”, it means that the content of the BX register moved to the
AX register.
We can also represent this mode into another way. The instruction
MOV AL, DS:[8088h]
Loads the byte at memory location 8088h (in data segment) to the AL register. Likewise, the
instruction
MOV DS:[1234h], DL
stores the value from the DL register to the memory location 1234h.
Likewise, to access the location in the code segment 1234h you would use
MOV AX, CS:[1234h]
Of course, you can use the name of the memory location as the source. For example,
MOV AX, [CON]
means that the content of variable CON will be copied to AX. The CPU, as similar as above, will
resolve the [CON] as an address first.

• Register Indirect Addressing Modes


There are totally four forms of the addressing modes on the 8086 CPU.
MOV <destination>, [BX | BP | SI | DI]
These four addressing modes reference the byte at the offset found in the BX, BP, SI or DI
register respectively. The BX, SI and DI use the data segment (DS) address as reference, but BP
refers as the stack segment (SS) reference.
Similar as above, the above instructions can refer to different segments, e.g.,
MOV AL, CS: [BX]
refers the base address BX relative to the code segment.

• Indexed Addressing Modes


The syntax of the indexed addressing modes are:
MOV <destination>, DISP [BX | BP | SI | DI]
If BX contains 1000h, the instruction
MOV CL, 20h [BX]
will load CL from memory location DS:1020h.
Likewise, if BP contains 2020h,
MOV DH, 1000h [BP]
will load DH from location SS:3020h.

*** Page 11 ***


☺ 12
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

The offsets generated by these addressing modes are the sum of the constant and the specified
register. The addressing modes involving BX, SI and DI are all use the data segment, while the BP
addressing modes referring to stack segment.

• Based Indexed Addressing Modes


The based indexed addressing modes are simply combinations of the register indirect
addressing modes. These addressing modes form the offset by adding together a base register (BX
or BP) and an index register (SI or DI), which the syntax is:
MOV <destination>, [BX | BP] [SI | DI]
Suppose that BX contains 1000h and SI contains 880h, the instruction
MOV AL, [BX] [SI]
would load AL from the location DS:1880h.
Likewise, if BP contains 1598h and DI contains 1004h,
MOV AX, [BP+DI]
will load the 16-bit in AX from location SS:259Ch and SS:259Dh.

• Based Indexed Plus Displacement Addressing Mode


These addressing modes are a slight modification of the base/ indexed addressing modes with
the addition of a 8-bit or 16-bit constant. For example,
MOV AL, DISP [BX] [SI]
MOV AL, DISP [BX+DI]
MOV AL, [BP+SI+DISP]

In order to remember all the above memory addressing modes, the following syntax can help you to do
this.
MOV <destination>, <DISP | [BX | BP] | [SI | DI] >
There are totally three terms in the source field: DISP, [BX | BP] and [SI | DI]. You can choose one
term, two terms or three terms. For example, choose DISP from column one, nothing from column two and [DI]
from column three getting
MOV AL, DISP [DI]
Moreover, the generic of the move instruction takes three different assembly language forms:
MOV <register>, <memory>
MOV <memory>, <register>
MOV <register>, <register>
Note that at least one of the operands is always general purpose register.
Finally, if the effective address calculation produces a value greater than FFFFh, the CPU ignores the
overflow and the result wraps around back to zero. For example, if BX contains 10h, the instruction
MOV AL, FFFFh [BX]
will load the AL register from location DS: 0Fh, but not DS: 1000Fh.

XCHG instruction
The XCHG (exchange) instruction swaps two values. The general form is
XCHG <operand1>, <operand2>
There are two specific forms of this instruction on the 8086 machine:
XCHG <register>, <memory>
XCHG <register>, <register>
Since the 8086 often provides shorter and faster versions of instructions that use the AX register, you
should try to arrange your computations so that the CPU can use the AX register as much as possible. However,
both the operands must be the same size, and the XCHG instruction does not modify any status flags in the
status register.

Section 3.4.2.Arithmetic Operations


Although we are accustomed to decimal arithmetic, a microcomputer performs only binary arithmetic.
In the following operations, we will only base on binary operations, or in other words, hexadecimal operations.
The 8086 provides many arithmetic operations: addition, subtraction, multiplication, division,
negation, etc. We will introduce all these in the following paragraphs.

*** Page 12 ***


☺ 13
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 3.4.2.1. ADD and SUB function


To begin with, we define ADD and SUB first.

ADD {destination} , {source} ; destination = destination + source


SUB {destination} , {source} ; destination = destination - source
which takes the form:
ADD {<register> | <memory>} , {<register> | <memory> | <immediate>}
SUB {<register> | <memory>} , {<register> | <memory> | <immediate>}
Note that no memory forms can both exist in destination and source operand. If you want to add both
memory elements together, you must load one of the memories to the register, and performs the addition.
The ADD instruction adds the contents of the source operand to the destination operand. For example,
if AL = 60h and
ADD AL, 20h
is executed, AX will become 80. Why? 4
In order to deal with carry bit and borrow bit problem, we define ADC and SBB.
ADC {destination} , {source} ; destination = destination + source + Carry
SBB {destination} , {source} ; destination = destination – source - Carry
which takes the form:
ADC {<register> | <memory>} , {<register> | <memory> | <immediate>}
SBB {<register> | <memory>} , {<register> | <memory> | <immediate>}
ADC will add the three elements: destination, source operand and a carry bit (0 or 1). If the carry bit is
clear before execution, ADC will behave exactly like the ADD instruction.
The following example will demonstrate the carry bit calculation.
For example, we want to do the calculation: 0123 BC62
+) 0012 553A
0136 119C
It is clear that we cannot use one memory location to store the whole source and destination numbers.
In order to deal with this, we break down each number into two bytes, defining W11 = 0123, W12 = BC62,
W21 = 0012, W22 = 553A. The output will store in W31 & W32. Here is the sample program segment.
MOV AX, W12 ; Add rightmost
ADD AX, W22
MOV W32, AX
MOV AX, W11 ; Add leftmost
ADC AX, W21 ; With carry
MOV W31, AX
; ***** data definition *****
W11 DW 0123h
W12 DW BC62h
W21 DW 0012h
W22 DW 553Ah
W31 DW ? ; not initialized
W32 DW ?
Figure 10 Multi-word Addition

During the ADD operation, although there is a carry bit, it would not be added into the result.
However, the carry flags (CF) will be set to 1. When ADC operation performed, it will add three elements,
including AX contents, W21 and CF, whatever CF related to that calculation or not.
The SUB instruction is similar to ADD instruction. Note that the subtraction is not commutative.
The ADD and SUB instruction will affect the status registers. They will set the overflow flag to be 1 if
signed overflow/ underflow occurs. They will set the sign flag if the result is negative. They will set the zero
flag if the result is zero, and set the carry flag if an unsigned overflow occurs.

Section 3.4.2.2.MUL and DIV function


For multiplication, define the instructions as follows.
MUL {source} ; AX = AL * source / DX:AX = AX * source
IMUL {source} ; AX = AL * source/ DX:AX = AX * source

4
Since it is overflow for AL, the value would store in the whole AX register.
*** Page 13 ***
☺ 14
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

which takes the form:


MUL {<register> | <memory>}
IMUL {<register> | <memory>}
MUL multiplies unsigned 8 or 16 bits data while IMUL multiples the signed (2’s complement) 8 or 16
bits data. Note that when multiplying two n-bit values, the result may require as many as 2n bits. Therefore, the
basic operations can be divided into two types: byte times byte or word times word. In the byte times byte
operation, the multiplicand will be in the AL register and the result will put in AX. All contents in AH will be
erased after multiplication. In the word times word operation, the multiplicand will be in the AX register. After
multiplication, the most-significant word is in the DX while the least-significant word will be in AX. The
original content in DX will be erased.
For example, if the following program segment is executed,
MOV AL, B1
MUL B2
IMUL B2
: :
;***** data definition *****
B1 DB 80H
B2 DB 40H
Figure 11 Unsigned and Signed Multiplication

The first MUL B2 will treat 80h as +128, whereas IMUL will treat 80h as -128 (2's complement).
After MUL executes, since 128×64 = 8192 which is 2000h, therefore AX = 2000. However, when IMUL
executes, since -128×64 = -8192 which is E000h, therefore AX = E000.
Division shares the same properties with multiplication. The syntax are:
DIV {source} ; AL = AX / source …. AH or AX = DX:AX / source…DX
IDIV {source} ; AL = AX / source …. AH or AX = DX:AX / source…DX
which takes the form:
DIV {<register> | <memory>}
IDIV {<register> | <memory>}
DIV handles unsigned data while IDIV handles signed division. The basic operations can be divided
into two types: byte into word or word into double word. In the byte into word operation, the dividend will be
in the AX register. The remainder will put in AH while the quotient will put in AL. In the word into double
word operation, the most significance dividend will be in the DX register while the least significance dividend
will be in the AX register. The remainder will put in DX while the quotient will put in AX.
You cannot simply divide the 8-bit value by another 8-bit value. If the denominator is an eight-bit
value, the numerator must be a 16-bit value. You can extend that 8-bit value into 16 bit and loaded it into a 16-
bit register (e.g., AX), and perform the division.
Furthermore, if the dividend and divisor have the same sign, DIV and IDIV generate same results.
However, if they are different in their sign, DIV generates a positive quotient while IDIV generates a negative
quotient.
We summarized the MUL and DIV operation into the following table.
Instruction Multiplier Multiplicand in Product in
MUL CL CL (byte) AL AX
MUL BX BX (word) AX DX AX
Instruction Divisor Dividend in Quotient in Remainder in
DIV CL CL (byte) AX AL AH
DIV BX BX (word) DX AX AX DX
Table 1 Summary of MUL and DIV operation

Section 3.4.2.3. Other arithmetic operations


The NEG instruction reverses the sign of a binary value. In effect, NEG reverses the bits and adds 1 to
the number (as 2’s complement operation). The syntax is
NEG {<memory> | <register>}
The INC instruction increases the memory or register content by 1. The DEC instruction decreases the
memory or register content by 1. It will be used in the looping, which will be discussed in the next section. The
syntax are

*** Page 14 ***


☺ 15
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

INC {<memory> | <register>}


DEC {<memory> | <register>}
The INC instruction is very important because adding one to a register is a very common operation.
The fact that INC does not affect the carry flag is very important that you would not affect the result of ADC or
SBB operation.

Section 3.4.3. Simple Control flow


The instructions discussed thus far are executed in a straight line, with one instruction sequentially
following another. However, most programs consist of number of loops in which a series of steps until reaching
a specific requirement and determining which action to take. Examples include the loops and subroutine calls.
Certain instructions in assembly language achieve the need of the above purpose. The following are the
four classes of transfer operations, including unconditional jump, conditional jump, looping and call, in the
assembly language.

Section 3.4.3.1. Unconditional Jump


A commonly used instruction for transferring control is the unconditional jump instruction. The
operation transfers control under all circumstances. The syntax is
JMP {<address> | <label> | <register>}
You normally specify the target address by using a label. A statement label, as told before, is usually
an identifier followed by a colon, usually on the same line as an executable machine instruction. The assembler
determines the offset of the statement after the label and automatically computes the distance from the jump
instruction to the statement label. Therefore, you do not have to worry about computing displacements
manually. For example, the following short little jump jumps to label “START” if JMP program line is
executed.
START: MOV AX, 20h
JMP START
Figure 12 Sample JUMP example

Note that you can use any general purpose register. For example, if you use
JMP AX
It is roughly equivalent to
MOV IP, AX
Some forms of memory addressing, unfortunately, do not intrinsically specify a size. For example,
JMP [BX]
cannot tell us the size of the variable (for far or near jump?). To solve the ambiguity, you will need to
use a type coercion operator.

Coercion Operator
There are times when you would probably like to treat a byte variable as a word, or treat a word as a
double word (addressing). Temporarily changing the type of a label for some particular occurrence is called
coercion, as shown below:
<type> PTR <expression>
Type is any of byte, word, dword, near, far, or other types. Expression is any general expression on
that is the address of some object. The coercion operator returns an expression with the same value as
expression, but with the type specified by type. For example,
JMP word ptr [BX]
refers to the size of the BX is a word size. For example, the following will jump to the different code
segment address with address ABC:
JMP dword ptr CS:[ABC]

Section 3.4.3.2. CALL procedure


The CALL and RET instruction enable us to call and return any procedure we like. Before we enter
into detailed discussion, we define the call & return function as
CALL <label>
RET <immediate>
and re-call the procedure syntax as
<procedure name> PROC {FAR | NEAR}

*** Page 15 ***


☺ 16
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

: : ;***your (main/ sub) program here***


<procedure name> ENDP
In the procedure definition, FAR allows us to call outside the code segment (inter-segment call) while
NEAR only allows us to call inside the code segment (intra-segment call).
The CALL instructions take the same forms as the JMP instructions except there is no short
intrasegment call.

The FAR CALL instruction does the following:


1. Pushes the CS register onto the stack.
2. Pushes the 16-bit offset of the next instruction following the call onto the stack.
3. Copies the 32-bit effective address into the CS:IP register.
4. Execution continues at the first instruction of the subroutine.

The NEAR CALL instruction does the following:


1. Pushes the 16-bit offset of the next instruction following the call onto the stack.
2. Copies the 16-bit effective address into the IP register.
3. Execution continues at the first instruction of the subroutine.
The return RET instruction returns control to the caller of a subroutine. It does so by popping the
return address off the stack and transferring control to the instruction at the return address. Near call returns pop
a 16-bit return address off the stack into the IP register. A far call returns pop a 16-bit offset into the IP register
and a 16-bit segment value into the CS register.
The other form of the RET instruction is adding a displacement number after the RET. It is identical to
those RET instruction, except the CPU adds the displacement value to the stack pointer immediately after
popping the return address from the stack. This mechanism removes parameters pushed onto the stack before
returning to the caller. Let’s take an example.
CODE_SEG SEGMENT
BEGIN PROC FAR
: :
CALL A
CALL B
: :
BEGIN ENDP
A PROC NEAR
: :
RET
A ENDP
CODE_SEG ENDS
CODE_SEG1 SEGMENT
B PROC FAR
: :
RET
B ENDP
CODE_SEG1 ENDS
Figure 13 Simple procedure call

From the example, we notice that if the subroutine A to be called within the code segment, PROC
NEAR can be defined for the procedure. However, when we want to call the procedure outside the code
segment, e.g. B, PROC FAR must be defined. After finishing all the procedure and returning to the program
after CALL function, RET tells the assembler return back to the original program. Otherwise, the program
would continue to execute with unpredictable results. Note that the above program is not valid in executing the
FAR call procedure. For more details, please refer the subroutine section.

Section 3.4.3.3. Conditional Jump


Although the JMP, CALL and RET instructions provide transfer of control, they do not allow you to
make decisions before the jump. The conditional jump instructions handle this task. The conditional jump
instructions are the basic tool for creating loops and other conditionally executable statements like the if…..then
statement.

*** Page 16 ***


☺ 17
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

The conditional jumps test one or more bits in the status register to see if they match some particular
pattern. If the pattern matches, control transfers to the target location. If the match fails, the CPU ignores the
conditional jump and execution continues with the next instruction. Some instructions, for example, test the
conditions of the sign, carry, overflow and zero flags.
Most of the time, you will probably execute a conditional jump after the comparison. CMP allows you
to do this. To compare the content of the two data fields before executing the conditional jump instruction, a
compare instruction can be executed:
CMP {destination}, {source} ; destination – source (set flags)
which takes the form:
CMP {<register> | <memory>}, {<register> | <memory> | <immediate>}
Note that no both memories can exist in destination and source.
The CMP instruction updates the status flags according to the result of the subtraction operation. You
can test the result of the comparison by checking the appropriate flags in the status register.
On a 8086 machine, the conditional jump instructions are all two bytes long, which takes the form:
JXX {<address> | <label>}
where XX is the mnemonic representing the condition of branching. The first byte is a one byte opcode
followed by a one byte displacement. Although this leads to a very compact instruction, a single byte
displacement only allows a range of -128 bytes to +127 bytes.
Conditional branching instructions test the corresponding status register. If the condition is TRUE, the
program will flow to the label specified. The status register would not change according to the JXX condition.
The JXX command will be summarized in the following table.

Definition Description Condition 5


Jump Based on Unsigned Data
JE / JZ Jump equal or jump zero Z=1
JNE / JNZ Jump not equal or jump not zero Z=0
JA / JNBE Jump above or jump not below/ equal C=0 & Z=0
JAE / JNB Jump above/ equal or jump not below C=0
JB / JNAE Jump below or jump not above/ equal C=1
JBE / JNA Jump below/ equal or jump not above C=1 or Z=1
Jump Based on Signed Data
JE / JZ Jump equal or jump zero Z=1
JNE / JNZ Jump not equal or jump not zero Z=0
JG / JNLE Jump greater or jump not less/ equal N=0 & Z=0
JGE / JNL Jump greater/ equal or jump not less N=0
JL / JNGE Jump less or jump not greater/ equal N=1
JLE / JNG Jump less/ equal or jump not greater N=1 or Z=1
Arithmetic Jump
JS Jump sign N=1
JNS Jump no sign N=0
JC Jump carry C=1
JNC Jump no carry C=0
JO Jump overflow O=1
JNO Jump not overflow O=0
JP / JPE Jump parity even P=1
JNP / JPO Jump parity odd P=0
The conditional jump instruction give you the ability to split program flow into one of the two paths
depending upon some logical condition. Suppose you want to increment the AX register if BX is equal to CX.
You can accomplish this with the following code:
CMP BX, CX
JNE NEXTSTAT
INC AX
NEXTSTAT: : :
Figure 14 Example of using conditional jump

5
Refer P.4 for register notation.
*** Page 17 ***
☺ 18
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Use the opposite branch to skip over the instructions you want to execute if the condition is true.
Always use the opposite branch rule given earlier to select the opposite branch, otherwise you may use more
than one conditional jump to perform one jumping.

Section 3.4.3.4. Looping


The JMP instruction would cause an endless loop. However, a routine is more likely to loop a
specified number of times until it reaches a particular condition. The LOOP instruction, which serves the above
purpose, requires an initial value in the CX register. It will decrement the CX register and branches to the target
location if the CX register does not contain 0. The syntax is:
LOOP <label>
Although the loop instruction’s name suggests that you would normally create loops with it, keep in mind that
all it is really doing is decreasing CX and branching to the target address if CS does not contain zero after the
decrement. For example, the following loop will loop the program segment 10 times.
MOV CX, 10
A: INC AX
: :
LOOP A
Figure 15 Example of looping

The loop instruction does not affect any flags.

Section 3.4.4. Logic Control

Section 3.4.4.1. Simple Logic Function


Logic function is important in circuitry design. The instructions for Boolean logic are AND, OR,
XOR, and NOT. The syntax are:
AND {destination}, {source} ; destination = destination AND source
OR {destination}, {source} ; destination = destination OR source
XOR 6 {destination}, {source} ; destination = destination XOR source
NOT {destination} ; destination = NOT destination
which takes the form:
AND {register | memory} , {register | memory | immediate}
OR {register | memory} , {register | memory | immediate}
XOR {register | memory} , {register | memory | immediate}
NOT {register | memory}
Note that no memory location can appear in both destination and source. Of course, both the
destination and source must be same size.
Under all the operation (except NOT), these instruction will clear the carry and overflow flag, and
copy the high order bit of the result into the sign bit.
All the above logic functions are applied bit-by-bit. For example, if AL = 1100 0101 (C5h) and BH =
0101 1100 (5Ch), after the operation
AND AL, BH
AL would set to 0100 0100 (44h).

Section 3.4.4.2. Relational Operators


The following are the syntax of the relational operators:
<expression> <relational operator> <expression>
where <relational operator>::= EQ | NE | LT | LE | GT | GE
= ≠ < ≤ > ≥
It will return a value (FFh) when the condition is true, otherwise it will return 0 (false condition). For
example, if the following is executed,
0 EQ 0
it will return FFh. The use of the relational operators will be discussed in the conditional directive
section.

6
XOR is Exclusive OR, which will set the bit zero if both bits are equal (0 0 or 1 1).
*** Page 18 ***
☺ 19
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Section 3.4.4.3. Rotation & shifting


There are several shifting and rotation instructions, the main function of them are integer
multiplication. Using shifting and rotation to perform such calculation on integer is faster than using
multiplication. Destination operand must either be register or memory. Source operand is immediate provided
that it is 1. The syntax are
Commands Explanation
SHL {<register>, <memory>}, {1 | CL} Shift Left
SHR {<register>, <memory>}, {1 | CL} Shift Right
SAL {<register>, <memory>}, {1 | CL} Shift arithmetic left
SAR {<register>, <memory>}, {1 | CL} Shift arithmetic right
ROL {<register>, <memory>}, {1 | CL} Rotation to left
ROR {<register>, <memory>}, {1 | CL} Rotation to right
RCL {<register>, <memory>}, {1 | CL} Rotation through carry bit left
RCR {<register>, <memory>}, {1 | CL} Rotation through carry bit right
SHR will shift all the bits right by one bit, supply 0 to the missing bit and put the thrown bit to the
carry bit C. For example, if AH = 10101101 and
SHR AH, 1
is executed, AH will become 01010110 and the carry bit C = 1 (thrown bit)
SAL would perform the same thing with SHL. However, when the arithmetic right shifting is
executed, the most significant bit will remain the original position.
SAR instruction shifts all the bits in the operand to the right one bit, and replicating the high order bit.
The main purpose is to perform a signed division by some power of two.
ROL does the similar thing with SHL. However, ROL & ROR will put the thrown bit to the missing
part of the value. For example, if AH = 10101101 and
ROR AH, 1
is executed, AH will become 11010110 and the carry bit C = 1.
RCR does the similar thing with ROR. However, RCR will put the thrown bit to the carry bit and get
the last result of thrown bit to the missing part. Notice that if you rotate through carry bit (n+1) times, where n is
the number of bits in the operand, you will get your original value. For example, if AH = 10101101 and carry
bit C = 0, and
RCR AH, 1
is executed, AH will become 01010110 and the carry bit C = 1.

C 0 0 C
SHL/ SAL SHR

C C
ROL ROR

C C
RCL RCR

0 C
SAR

Figure 16 Shifting & Rotation graphical representation

For 8088 and 8086 CPUs, the number of bits to be shifted or rotated is either 1 or in CL. If the number
of bits shifted is larger than 1, the source operand must be initialized in CL. For example, if AH = 10101101
and 3 bit right shifting is needed, the following must be followed. 7
MOV CL, 3
SHR AH, CL
Figure 17 Shift Left Example with constant larger than 1

7
The command, for example, “SHL AH, 3” is incorrect unless the constant is 1.
*** Page 19 ***
☺ 20
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Since shifting an integer value to the left one position is equivalent to multiplying that value by two
(2h), use the shift left instruction for multiplication by powers of two.
For example, if the following calculation is done:
810 × 1010 (= 8010) where 810 = 000010002
It is noticed that 810 × 1010 = 8 × (8+2) = 8 × (23+21) = 8 × 23+ 8 × 21
Therefore, when we do the following procedure,
MOV AH, 8h ; store the value of AH = 24d
MOV AL, AH ; store the value of AL = 24d
MOV CL, 3 ; left shifting the AH by 3
SHL AH, CL
SHL AL, 1 ; left shifting the AL by 1
ADD AH, AL ; Add the value to perform the multiplication
Figure 18 Multiplication and Shifting Example

AH will become 01010000 = 8010. Try more examples by yourself!

Section 3.4.5. Simple interrupts (I/O)


An interrupt is an operation that interrupts execution of a program so that the system can take special
action. The interrupt INT is a very special form of a call instruction. Whereas the CALL instruction calls
subroutines within your program, the INT instruction calls the system routines and other special subroutines.
The major difference between interrupt service routines and standard procedures is that you can have any
number of different procedures in an assembly language program, while the system supports a maximum of 256
different interrupt service routines. A program calls a subroutine by specifying the address of that subroutine; it
calls an interrupt service routine by specifying the interrupt number for that particular interrupt service routine.
The interrupt form is
INT <special code>
where special code controls the different types of interrupts, within 0 to 255. It allows you to call one
of the 256 different interrupt routines. This form of the INT instruction is two bytes long. The first byte is the
INT opcode, and the second byte is the immediate data containing the interrupt number.
Although you can use the INT instruction to call procedures, the primary purpose of the interrupt
instruction is to make a system call. A system call is a subroutine call to a procedure provided by the system,
such as DOS, mouse, or some other piece of software resident in the machine. Since you always refer to a
specific number when make a system call, your program does not need to know the actual address of the
subroutine in memory. The INT instruction provides dynamic linking to your program. The CPU determines the
actual address of an interrupt service routine at run time by looking up the address in an interrupt vector table.
This allows the change of the address of the system routines without fear of correcting new interrupt service
routine numbers. As long as the system call uses the same interrupt number, the CPU will automatically call the
interrupt service routine at its new address.
The only problem is that MS-DOS alone supports over 100 different calls. BIOS and other system
utilities provide even more. This is beyond the interrupts reserved number (256). The common solution is to
employ a single interrupt number for a given class and pass a service number in one of the registers (typically
AH). For example, MS-DOS uses only a single interrupt number, 21h. To choose a particular DOS function,
you load a DOS service code into the AH register before executing the INT 21h instruction. For example, to
terminate a program and return the control to the MS-DOS, you would normally load AH with 4Ch and call
DOS interrupt, as shown below:
MOV AH, 4Ch
INT 21h
Figure 19 Quit interrupt

The keyboard and screen interrupt is another good example. Interrupt 21h provides some service for
keyboard and screen handling, with different service number. To choose a particular operation, you load the
service number into the AH register before executing the 21h. The following table lists some typical service
numbers.
Service No. Explanation
01h Keyboard input with echo
02h Display output
07h Keyboard input without echo (no check for Ctrl-C)

*** Page 20 ***


☺ 21
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

08h Keyboard input without echo (check for Ctrl-C)


09h Display string
4Ch Terminate program
Table 2 DOS interrupt service code

For example, to read a character from a keyboard buffer with displaying the character on the screen,
you would use the following code:
MOV AH, 01h
INT 21h
Figure 20 Input Service interrupt

The AL register will store the standard ASCII code shown on the screen. With the service number 08h,
it acts as service number 02h, except that no output will be shown on the screen. With the service number 07h,
it acts as service number 08h, except that it will ignore Ctrl-C key.
Another example is to print a character or string on the screen. In order to print the character, use the
output Service 02h. The operation would display a character read from the DL register (ASCII format). For
displaying the string, use the output Service 09h. The operation would display a string, defined in the data
segment, with the effective address at DX register. For example, if we want to print the string “HELLO”, the
following procedure must be follow:
MOV AH, 09h
LEA DX, NAME
INT 21h
: :
DATA_SEG SEGMENT
NAME DB “HELLO$”
DATA_SEG ENDS
Figure 21 Output Service interrupt

LEA (load effective address) instruction is used to prepare the pointer values. It takes the form:
LEA <destination>, <source>
which takes the form
LEA <register>, <memory>
It loads the specified general purpose register with the effective address of the specified memory
location. The effective address is the final memory address obtained after all addressing mode computations.
For example,
LEA AX, 3 [BX]
loads the value of BX plus 3 into the AX register.
For the string case, it will load the address of the first character (ASCII form) in the register (DX) to
enable the string operation. Furthermore, it will display characters until it finds the “$” sign.

Section 3.5. Basic structure of the Stack Segment


Every DOS executable of .EXE format must have a stack of sufficient size to operate normally. Stack
is a piece of memory reserved for an EXE program which stays in memory. When you try to assemble a
program, you may see a message:
“NO STACK SEGMENT”
It is still work if you don’t declare it. However, from now on, you should define your own stack.
A piece of memory must be reserved for the operations of the stack. The definition of the stack inside
the stack segment is
DW <size of stack> dup (<initial value>)
For example,
STACK_SEG SEGMENT STACK
DW 1024 dup (?)
STACK_SEG ENDS
Figure 22 Stack Definition

*** Page 21 ***


☺ 22
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

defines the stack with duplicating 1024 word initialized to 0. It is


suggested that you should declare the enough stack space you needed 8 . Push Direction
Otherwise, you will cause an error in execution. Furthermore, STACK
must be written behind the SEGMENT. ss
When a program is loaded into the memory, a stack is created.
Stack segment register (SS) initialized the stack segment. Stack pointer
(SP) will point to the top of the stack. The base register (BP) is used to bp
access the elements inside the stack without popping out the top elements.
When using SP and BP, the referencing pointer is SS.
There are two basic instructions for stack manipulation. They are
push and pop, and the syntax are: sp
PUSH {<register> | <memory>} Figure 23 Stack operation
POP {<register> | <memory>}

PUSH will decrease the stack pointer (SP) by 2 before placing the
data in the stack. POP is an operation which copies the top element to the Push Direction
register before increase the stack pointer by 2 9 . ss
Notice three things about the manipulation of the stack. First, it is
always in the stack segment. Second, the stack grows down in memory, i.e. as next element
you push the values onto the stack the CPU stores them into successively to be placed
lower (smaller) memory locations. Finally, the SP (stack pointer) always sp top of stack
contains the address of the value on the top of the stack.
All pushes and pops are 16-bit operations. There is no way to push a
single 8-bit value onto the stack. To push an 8-bit value you should load it
into 16-bit register first, with the higher order byte being 0. Figure 24 Stack push implementation

Section 4. Macro Processing

Section 4.1. Macro Definition


For each symbolic instruction, the assembler generates one machine language instruction. However, if
you want to repeat the same instruction(s) with a calling statement, there will be overhead in the calling
procedure. In this regard, a macro statement can help to solve the problem. To begin with, macros can simplify
and reduce the amount of coding. Furthermore, it is easy to be read. Finally, errors can be reduced in the
program.
A macro is like a procedure that inserts a block of statements at various points in the assembly program
during assembly. Unlike the assembly instructions you write, the conditional assembly (talked later) and macro
language constructs execution during assembly. The conditional directives and macro statements do not exist
when your assembly program is running. The purpose of these statements is to control which statements the
assembler assembles into your final execution file. The macro directives let you emit repetitive sequences of
instructions to an assembly language file like high level language procedures and loops, but without any
running overheads.
The assembler has facilities that programmers use to define the macros. A specific macro name is
defined for the macro along with the assembly instructions that the macro is to generate. Next, the instructions
are defined within the macro.
A macro definition appears before any defined segment, except if your macro is a data definition, put it
in data segment. The syntax is:
<Macro name> MACRO (arg1,arg2,....)
::::: ;***your macro here***
ENDM
The name of the macro is defined before the MARCO directive. It should be a valid and unique
symbol in the source file. You will use this identifier to expand the macro (as the calling subroutine). The
arguments are the values you specify when you expand the macro (as the formal and actual parameters in the
calling subroutine). The MACRO directive tells the assembler that the following instructions up to ENDM are
to be part of the macro definition. The ENDM tells the assembler the end of the macro definition.

8
Reserve space for interrupt execution, procedure call and own use.
9
It implies that it will only PUSH and POP a word size data. (16 bit)
*** Page 22 ***
☺ 23
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

During the expansion, the assembler will expand every occurrence of the macro in the code segment. It
will replace the macro name by the macro body at the destination address, and the formal arguments inside
macro body by the supplied arguments. In this case, no run-time overhead is needed. The only thing the
assembler done is a simple substitution followed by normal assembling.
Note that the assembler does not immediately assemble the instructions between the MACRO and
ENDM directives when the assembler encounters the macro. Instead, the assembler stores the text
corresponding to the macro into a special table (called the symbol table). The assembler inserts these
instructions into your program when the assembler expands the macro. For example,
CLS MACRO
MOV AH, 06h
MOV AL, 00h
MOV BH, 07h
MOV CX, 0000h
MOV DH, 18h
MOV DL, 50h
INT 10h
ENDM
Figure 25 Macro Definition of clearing Screen

How to call the macro procedure? In the code segment, use the symbol to call the macro procedure. In
the above example, if you want to call the CLS macro, just write CLS in the code segment. When you do this,
the assembler will insert the statements between the MACRO and ENDM directives into your code at the point
of the macro invocation.

If arguments are needed, formal parameters and actual parameters (argument) are defined in the macro
definition and the calling macro respectively. The assembler will substitute the actual parameters appearing as
operands for the formal parameters appearing in the macro definition. The assembler does a straight textual
substitution only. For example, if we want to print the message with different message in different cases, the
following example can be followed:
PRTMSG MACRO MSG ;/*** printing message ***/
MOV AH, 09h
LEA DX, MSG
INT 21h
ENDM

CODE_SEG SEGMENT PARA


MAIN PROC FAR
: :
PRTMSG MSG1
PRTMSG MSG2
: :
MAIN ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA


MSG1 DB “Hello$”
MSG2 DB “Everybody$”
DATA_SEG ENDS
Figure 26 Macro Definition with argument

After the assembling, the program will become


CODE_SEG SEGMENT PARA
MAIN PROC FAR
: :
MOV AH, 09h
LEA DX, MSG1
INT 21h

*** Page 23 ***


☺ 24
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

MOV AH, 09h


LEA DX, MSG2
INT 21h
: :
MAIN ENDP
CODE_SEG ENDS
Figure 27 Assembly Program after assembling

In some instances using macros can save a considerable amount of typing in the program. For example,
if you want to clear the screen many times, you may use a lot of code for only one purpose in case of no macro.
A large number of same statements are duplicated in the program. Writing the macro can simplify your
program, and easy to write.
Since the assembler does a textual substitution for macro parameters when expanding the macro, there
are times when a macro expansion might not produce the results you expected. For example, look at the
following statement:
MSG A * 5
As you can see, the calling to the MSG macro with text can lead to the problem. The assembler will
automatically convert a text object A passed to the macro.
If we call the macro procedure as:
MSG <A*5>
the assembler will automatically convert the text object A*5 to the macro. In order to evaluate the
value A*5 expression, the following should be done:
MSG %A*5
It will evaluate the expression “A*5” and convert the resulting numeric value to a text value consisting
of the digits that represent the value before the expansion.

Macro and Procedure


Although the macro and procedure produce the same result, they do it in different ways. The procedure
definition generates code when the assembler encounters the PROC directive. A call to this procedure requires:
1. Encounters the CALL instruction
2. Pushes the return address onto the stack
3. Jumps to the procedure
4. Executes the code in the procedure
5. Pops the return address off the stack
6. Returns the calling code.

The macro, on the other hand, does not emit any code when processing the statements between the
MACRO and ENDM directives. However, upon encountering macro in the mnemonic field:
1. The assembler will assemble every statement between the MACRO and ENDM directives
2. Emit the code to the output execution file (*.exe).

At the running time, the CPU executes these instructions without the procedure overhead.
The execution of a macro expansion is usually faster than the execution time of the same code
implemented with a procedure. Furthermore, to call a macro, you simply specify the macro name as though it
were an instruction or directive. To call a procedure, you need to use the CALL instruction.

Section 4.2. Local Directives


Some macros may require definition of instruction labels. However, there will be a problem with using
the label. Since the assembler copies the macro text directly, the label will be redefined each time when both the
main procedure and the macro are using the same label. When this happens, the assembler will generate a
multiple definition error. To overcome this problem, the LOCAL directives can be used to define the local label
within a macro. The syntax is:
LOCAL (label_1,label_2,....)
For example,
CLS MACRO
LOCAL A
MOV AH, 06h
MOV AL, 00h
*** Page 24 ***
☺ 25
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

A: MOV BH, 07h


: :
LOOP A
ENDM
Figure 28 Macro Definition with local definition

The local label definition should be defined after the macro directives. During the expansion, the
assembler will assign the different labels in the program.

Section 4.3.Nested Macro


A macro definition may contain a reference to another defined macro. Consider a simple macro named
DOSINT that loads a service in the AH register and calls DOS Interrupt 21h:
DOSINT MACRO SERVICE
MOV AH, SERVICE
INT 21h
ENDM
Figure 29 Example of Dos interrupt macro

Suppose that you have another macro named DISPLY that uses the service 02 in the AH register to
display a character:
DISPLY MACRO CHAR
MOV DL, CHAR
MOV AH, 02h
INT 21h
ENDM
Figure 30 Example of Display macro

Now, you can change the above macro into the following nested macro:
DISPLY MACRO CHAR
MOV DL, CHAR
DOSINT 02h
ENDM
Figure 31 Example of Display macro

and the expansion will be as the same as before.

Section 4.4. Special Directives 10

Section 4.4.1. Repetition Directives


Another macro format is the repeat macro. A repeat macro is nothing but more than a loop that repeats
the statements within the loop some specified number of times. There are three types of repetition directives,
REPT, IRP and IRPC. These three directives cause the assembler to repeat a block of statements, terminated by
ENDM. These directives do not have to be contained in a MACRO definition, but if they are, one ENDM is
required to terminate the repetition and the second ENDM to terminate the MACRO definition.

REPT directive
The syntax of the REPT directives is:
REPT <expression>
<statements>
ENDM
Expression must be a numeric expression that evaluates to an unsigned constant. The repeat directive
duplicates all the statements between REPT and ENDM with the number of times indicated in the expression,
for example,
MAKEWORD MACRO N
REPT N

10
Ignore this part forward for CSC Minor Students
*** Page 25 ***
☺ 26
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

DW 1024
ENDM
ENDM
Figure 32 Example of REPT directives

When a macro MAKEWORD 3 is called, the loop will repeat 3 times, each time emitting the code of
"DW 1024" after the expansion. Note that the REPT loop executes at assembly time, not at run time. REPT is
not a mechanism for creating loops within the program, it is only used for replicating sections of code within
your program.

IRP directive
Another form of the repeat macro is the IRP macro. The IRP (Indefinite Repeat) operation will cause a
repeat of block of instruction up to the ENDM. The syntax is:
IRP <<parameter>, <arguments>>
<statements>
ENDM
The “< >” brackets are required around the items in the parameter and arguments. The IRP directive
replicates the instructions between IRP and ENDM once for each item appearing in the argument. Furthermore,
for each iteration, the first symbol in the parameter is assigned the value of the successive items from the second
parameter. For example,
IRP N, <1,2,3,4>
DB N
ENDM
Figure 33 Indefinite Repeat Example

The loop emits 4 DB instructions, generating DB 1, DB 2, DB 3 and DB 4. The arguments can be


any number of legal symbols, string, numeric, or arithmetic constants. Remember, the IRP loop, like the REPT
loop, executes at assembly time, not at run time.

IRPC directive
The third form of the loop macro is the IRPC macro. It differs from the IRP macro in that it repeats a
loop the number of times specified by the length of a character string rather than by the number of the operands
present. Here is the general syntax:
IRPC <<parameter>, <string argument>>
<statements>
ENDM
The statements in the loop repeat once for each character in the string operand. The angle brackets “<
>” must appear around the string, for example,
IRPC N, <1234>
DB N
ENDM
Figure 34 Indefinite Repeat Example

The assembler will generate a block of the code for each character in the string argument. After the
expansion, the assembler will generate DB 1, DB 2, DB 3 and DB 4. The arguments can be any number of
legal symbols, string, numeric, or arithmetic constants.

Section 4.4.2. Conditional Directives


It is important that you realize these directives evaluating their expressions at ASSEMBLY TIME, not
at any running time. The conditional assembly directive is not the same as a C conditional statement. For
example, the IF statement in assembly is similar to #ifdef in C statement, but not exactly equal to the if
statement in C.
The conditional assembly directives are important because they let you generate different object code
for different operating environments and different situations, especially in the macro expansion.
One possible solution to determine the processor to execute different sections of code in the program is
to use the conditional assembly. With conditional assembly, you can conditionally choose whether the
assembler assembles the code or not. Since the code segment appear in the same source file, the program will be
much easier to maintain since you will not have to correct the same bug in two separate programs. You may
*** Page 26 ***
☺ 27
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

need to correct the same bug twice in two separate code sequences, so it is less likely that you will forget to
make the change in both places.
The conditional assembly directives are especially useful in the macros. They can help you produce
efficient code when a macro would normally produce sub-optimal code. It actually acts as a programming
language within a programming language.

IF Directive
The assembly language supports a number of the conditional directives. Conditional directives IF are
most useful within a macro definition. Every IF directives must have a matching ENDIF to terminate the tested
condition. One optional ELSE may provide an alternative condition. The syntax is:
IF <condition>
<sequence of statements>
<ELSE> ;optional
<sequence of statements>
ENDIF
Omission of ENDIF causes an error message "Undetermined conditional". The assembler evaluates the
condition. If it is a non-zero value (true), the assembler will assemble the statements between the if and else
directives (or endif, if the else is not present). If the expression evaluates to zero (false) and an else section is
present, the assembler will assemble the statements between the else and the endif directive. If the else section is
not present and expression evaluates to false, the assembler will not assemble any of the code between the if and
endif directives.
The important thing to remember is that the condition has to be an expression (it can be the relational
operation, e.g., EQ, LT, etc.) that the assembler can evaluate at assembly time, i.e., it must evaluate to a
constant. For example, if you want to assemble the first set of code for A = 0, otherwise to assembler the second
set of code, you could use the following statements:
IF A EQ 0
MOV AX, A ;<first set>
ELSE
MOV BX, A ;<second set>
ENDIF
Figure 35 Example of using IF directives

IFE Directive
The IFE directive is used exactly like the IF directive except it assembles the code after the IFE
directive only if the expression evaluates to zero (false), rather than non-zero (true), i.e. reverse case of IF
directive.

IFDEF & IFNDEF Directive


These two directives require a single symbol as the operand. IFDEF will assemble the associated code
if the symbol is defined, IFNDEF will assemble the associated code if the symbol isn’t defined. Use ELSE and
ENDIF to terminate the conditional assembly sequences, as:
IFDEF <symbol>
<sequence of statements>
<ELSE> ;optional
<sequence of statements>
ENDIF
These directives are especially popular for including or not including code in an assembly language
program to handle certain special cases. For example, if you want to use statement to include the statements in
the code, you can write the first line of the IFDEF directives as:
IFDEF SETTING
: :
To activate the code, simply define the symbol SETTING somewhere at the beginning of the program
(before the first IFDEF referencing SETTING). To automatically eliminate the code, simply delete the
definition of SETTING. You may define the SETTING using a simple statement like:
SETTING = 0
Note that the value you assign to SETTING is unimportant. Only the fact that you have defined this
symbol is important.

*** Page 27 ***


☺ 28
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

IFB, IFNB
The IFB and IFNB directives, useful mainly in macros, check to see if an operand is blank (IFB) or not
blank (IFNB), which is in the form:
IFB <<condition>>
<sequence of statements>
<ELSE> ;optional
<sequence of statements>
ENDIF
The IFB works in an opposite manner to IFB, i.e. it would assemble the statements above that IFB does
not and vice versa. Note that “< >” is needed in the IFB statement.
For example, if we use IFNB (if not blank), all INT 21h requests require a service in the AH register,
whereas some requests also require a value in the DX register. The following macro, DOSINT, uses IFNB to
test for a nonblank argument for the DX.
DOSINT MACRO SERVICE, ADDRESS
MOV AH, SERVICE
IFNB <ADDRESS>
LEA DX, ADDRESS
ENDIF
INT 21h
ENDM
Figure 36 Example of IF directives

If DOSINT 01h is called, the assembler will generate only three program lines, which is:
MOV AH, 01h
INT 21h
Figure 37 Example of IF directives after expansion of missing parameter

If DOSINT 09h, MSG is called, the assembler will generate the following program lines:
MOV AH, 09h
LEA DX, MSG
INT 21h
Figure 38 Example of IF directives after the expansion

WWW.Freshersworld.com

IFIDN, IFDIF, IFIDNI, and IFDIFI


The IFIDN, IFDIF, IFIDNI and IFDIFI assembly directives take two operands and process the
associated code if the operands are identical (IFIDN), different (IFDIF), identical ignoring case (IFIDNI), or
different ignoring case (IFDIFI). The syntax is
IFXXX <<operand1>>, <<operand2>>
<sequence of statements>
<ELSE> ;optional
<sequence of statements>
ENDIF
where XXX is the assembly code. Note that “< >” is required.

EXITM directive
The EXITM directive immediately terminates the expansion of a macro, exactly as ENDM. But why
EXITM? The answer is the conditional assembly. Conditional assembly can be used to conditionally execute
the EXITM directive in certain condition, such as
COUNTER MACRO COUNT
IF COUNT EQ 0
: :
EXITM
ENDIF
ADD AX, COUNT
ENDM

*** Page 28 ***


☺ 29
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

Figure 39 Example of EXITM

Section 4.5. INCLUDE Directive


The include directive, when encountered in the source file, switches program input from the current
file to the file specified in the parameter list of the include. This allows you to construct the text files containing
macros, source code and other assembler items. The syntax for the include directives is:
INCLUDE <filename>
Filename must be a valid DOS filename. The assembler will merge the specified file into the assembly
at the point of the include directive. Note that you can nest include the statements inside files you include.
Using the include directive by itself does not provide separate compilation. You could use the include
directive to break up a large source file into the separate modules and join these modules together when you
assemble you file. The following example would include the PRINTF.ASM file during the assemble of the
program:
INCLUDE PRINTF.ASM
Now the program can benefit from the modularity gained by this approach. The include directives
inserts the source file at the point of the include during assembly, exactly as though you had typed that code in
the program.

Section 5. Linking to Subprograms

Section 5.1. Intersegment Calls


As in section 3.4.3.2, the subprogram can be called by the main program (Far call). However, it will
not work before defining any attributes. The call in main program has to know that subprogram exists outside
the main program segment, and the subprogram must tell the assembler and linker that another module has to
know the address of the subprogram, and thus the EXTRN and PUBLIC directives must be assigned.
To use the EXTRN and PUBLIC, you must create at least two procedures. One procedure contains a
set of variables and procedures used by the second. The second procedure uses those variables without knowing
how they’re implemented. The syntax of EXTRN and PUBLIC are:
EXTRN <subprogram name> : type
PUBLIC <subprogram name>
where type can be BYTE, WORD, FAR, NEAR, etc. BYTE and WORD identify the data items that
this module references but another module defines. NEAR and FAR identify the procedure or instruction label
that this module references but another modules defines. The EXTRN directive tells the assembler that there is a
subprogram outside this procedure. The PUBLIC directive tells the assembler and linker that the address of the
specified symbol defined in the current assembly is to be available to other modules. Likewise, all external
subprogram names within a module must appear within a PUBLIC statement in some other procedures.
Although there are possible ways to module your program into the procedures, you may need to pass
the data from the main program or return the data from the procedure. When you pass parameters, it depends on
the size and the number of the parameters. There are several ways to pass the parameters to the procedure.

Passing Parameters in Registers


If you are passing a small number of bytes to a procedure, the registers are an excellent place to pass
parameters. The registers are an ideal place to pass value parameters to a procedure. If you are passing a single
parameter to a procedure you may use AL register to pass the parameter. If you are passing several parameters
to a procedure, you should probably use the registers. In general, you should avoid using BP register.
Let's show an example to illustrate this. In the following example it consists of a main program, MAIN,
and a subprogram, ADDING. The main program defines the segments for the stack, data and code. The main
purpose of the program is to add A and B together by using the subprogram function. An EXTRN in the main
program defines the entry point to the subprogram as ADDING.
The subprogram contains a PUBLIC statement (after the ASSUME statement) that makes the
ADDING known to the linker as the entry point for execution. This subprogram simply adds the contents of the
AX and the BX. Since the subprogram does not define any data, it does not need a data segment. Also, the
subprogram does not define a stack segment because it references the same stack addresses as the main
program. Consequently, the stack defined in the main program is available to the subprogram. The linker
requires definition of at least one stack for an EXE program, and the definition of the stack in the main program
serves that purpose.
; Main Program
*** Page 29 ***
☺ 30
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

EXTRN ADDING:FAR
CODE_SEG SEGMENT PARA
MAIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
MOV AX, DATA_SEG
MOV DS, AX
MOV AX, A
MOV BX, B
CALL ADDING
MOV AH, 4Ch
INT 21h
MAIN ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA


A DW 5
B DW 7
DATA_SEG ENDS
STACK_SEG SEGMENT PARA STACK
DW 1024 dup (?)
STACK_SEG ENDS
END MAIN
; Subprogram
CODE_SEG SEGMENT PARA
ADDING PROC FAR
ASSUME CS: CODE_SEG
PUBLIC ADDING
ADD AX, BX
RET
ADDING ENDP
CODE_SEG ENDS
END ADDING
Figure 40 Use of EXTRN and PUBLIC in main and sub-program

How can we do if common data is used in both main program and the subprograms? A common
requirement is to process data in one assembly module that is defined in another assembly module. We modify
the above example in the following one, and noted the changes is that we move the content of A and B to AX
and BX in the subprogram.
; Main program
EXTRN ADDING1:FAR
PUBLIC A, B
CODE_SEG SEGMENT PARA PUBLIC
MAIN1 PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
MOV AX, DATA_SEG
MOV DS, AX
CALL ADDING1
MOV AH, 4Ch
INT 21h
MAIN1 ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA PUBLIC


A DW 5
B DW 7
DATA_SEG ENDS
STACK_SEG SEGMENT PARA STACK
DW 1024 dup (?)
STACK_SEG ENDS
*** Page 30 ***
☺ 31
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

END MAIN1
; Subprogram:
EXTRN A: WORD, B: WORD
CODE_SEG SEGMENT PARA PUBLIC
ADDING1 PROC FAR
ASSUME CS: CODE_SEG
PUBLIC ADDING1
MOV AX, A
MOV BX, B
ADD AX, BX
RET
ADDING1 ENDP
CODE_SEG ENDS
END ADDING1
Figure 41 Example of using common data

Note that there are two main changes in the above example. To begin with, the main program MAIN
defines the data A and B as PUBLIC. The data segment is also defined with the PUBLIC attribute. In the code
segments, the PUBLIC attribute will cause the linker to combine the two logical code segments into one
physical code segment.
Next, the subprogram ADDING defines A and B as EXTRN, and both as WORD size. This definition
informs the assembler as to the length of the one word. The assembler can now generate to correct operation
code for the MOV instructions, but the linker will have to complete the operands.
The main program and the subprogram may define any other data items, but only those defined as
PUBLIC and EXTRN are known in common.
The reason why the ADDING subprogram can refer to the main program's data is because it does not
change the address in the DS register, which still points to the main program data segment. However, programs
are not always simple, and subprograms often have to define their own data as well as refer the data in the
calling program.

The next example shows the variation of the data definition. Both the data is defined in both data
segments.
; Main program
EXTRN ADDING2:FAR
PUBLIC A
CODE_SEG SEGMENT PARA
MAIN2 PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
MOV AX, DATA_SEG
MOV DS, AX
CALL ADDING2
MOV AH, 4Ch
INT 21h
MAIN2 ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA


A DW 5
DATA_SEG ENDS
STACK_SEG SEGMENT PARA STACK
DW 1024 dup (?)
STACK_SEG ENDS
END MAIN2
; Subprogram:
EXTRN A: WORD
CODE_SEG SEGMENT PARA PUBLIC
ADDING2 PROC FAR
ASSUME CS: CODE_SEG
PUBLIC ADDING2
*** Page 31 ***
☺ 32
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

MOV AX, A
PUSH DS
ASSUME DS: DATA_SEG
MOV AX, DATA_SEG
MOV DS, AX
MOV BX, B
ADD AX, BX
POP DS
RET
ADDING2 ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA


B DW 7
DATA_SEG ENDS
END ADDING2
Figure 42 Example of using data in both programs

The main difference between this example and the above example is the definition of the data. Data A
is defined in the main program while data B is defined in the sub-program. In the subprogram, it has to get the
data A first while the DS register still contains the address of the main program data segment address. The
subprogram then pushes the DS on the stack and loads the address of its own data segment. The subprogram
now can get its own data segment.
Furthermore, you can use the PUBLIC in both the data segment. In this case, the linker combines them
and need not to push and pop the DS because the programs use the same data segment and DS address.

WWW.Freshers world.com
Passing Parameters on the Stack
Another way of making data know to a called subprogram is by passing the parameters, in which a
program passes data physically via the stack. It can deal with that procedure which pass large number of
parameters, and it will be demonstrated by the following example.
; Main program
EXTRN ADDING3:FAR
CODE_SEG SEGMENT PARA PUBLIC
MAIN3 PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
MOV AX, DATA_SEG
MOV DS, AX
PUSH A
PUSH B
CALL ADDING3
MOV AH, 4Ch
INT 21h
MAIN3 ENDP
CODE_SEG ENDS

DATA_SEG SEGMENT PARA


A DW 5
B DW 7
DATA_SEG ENDS
STACK_SEG SEGMENT PARA STACK
DW 1024 dup (?)
STACK_SEG ENDS
END MAIN3
; Subprogram:
CODE_SEG SEGMENT PARA PUBLIC
ADDING3 PROC FAR
ASSUME CS: CODE_SEG

*** Page 32 ***


☺ 33
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

PUBLIC ADDING3
PUSH BP
MOV BP, SP
MOV AX, [BP+8]
MOV BX, [BP+6]
ADD AX, BX
POP BP
RET 4
ADDING3 ENDP
CODE_SEG ENDS
END ADDING3
Figure 43 Example of passing parameters to the subprogram

Take a look at the stack after the execution of the MOV BP, SP in the
subprogram ADDING3, and look like the right hand figure:
1. A push loaded data A (0005) onto the stack first.
BP 0000
2. A push loaded data B (0007) onto the stack in the main
program. IP 3500
3. CALL function in the main program pushed the content of CS 3412
the CS onto the stack, e.g., 1234.
B 0700
4. CALL function in the main program pushed the content of
the IP onto the stack, e.g., 0035. A 0500

The called program requires use of the BP, say 0000, to access the
parameters in the stack. Its first action is to save the contents of the BP for the Figure 44 The contents of the stack
calling program by pushing it onto the stack. The program then inserts the
contents of the SP into the BP because the BP is usable as an index register. Since the BP now also contains the
SP pointer, which points the top of the stack, now data A is in the stack at (BP+8) and data B is at (BP+6). The
routine transfers these values from the stack to the AX and BX, and performs the addition.
Before returning to the calling program, the routine pops the BP (returning the base pointer address),
which increments the SP by 2. The last instruction, RET, is a far return to the calling program that performs the
following:
1. Pops the word now at the top of the stack to the IP and increase the SP by 2.
2. Pops the word now at the top of the stack onto the CS and increase the SP by 2.
3. Because of the two passed parameters (A and B) in the stack, the RET instruction is coded
as RET 4. The 4, known as a pop value, contains the number of bytes in the passed
parameters. The RET operation also adds the pop value to the SP, correcting it so that it
points to the bottom of the stack.

In effect, because the parameters in the stack are no longer required, the operation discards the value A
and B in the stack and returns correctly to the calling program. Note that the POP and RET operation increment
the SP but no any erasing in the content of the stack.
When saving other registers onto the stack, always make sure that you save and set up BP before
pushing the other registers. If you push the other registers before setting up the BP, the offsets into the stack
will change. That means that the two statement
PUSH BP
MOV BP, SP
instructions should be the first two instructions in any subroutine when passing the parameters by
stack.

Section 5.2. Returning Parameters


You can return the results in the same places as you pass the parameters. In returning function results
in a register, like parameters, the registers are the best place to return the results. You can place the results in the
register.
Another good place where you can return the results is on the stack. The idea is to push some dummy
values onto the stack to create space for the function result. The procedure, before leaving, stores its result into
this location. When the function returns to the caller, it pops everything off the stack except this result. For
example, there are three parameters passing to the procedure, and the procedure adds all of these three

*** Page 33 ***


☺ 34
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

parameters, returning the sum. In this case, we will push one more dummy values (in the following example,
[BP+10]) for storing the sum.
Calling sequence:
PUSH AX ; for dummy variable
PUSH A ; push three variables
PUSH B
PUSH C
CALL SUMMING
POP AX ; Get the return result
Procedure:
SUMMING PROC NEAR
PUSH BP
MOV BP, SP
MOV AX, [BP+4]
ADD AX, [BP+6]
ADD AX, [BP+8]
MOV [BP+10], AX
POP BP
RET 6
SUMMING ENDP
Figure 45 Example of returning results

Section 5.3. Local Variable Storage


Sometimes a procedure will require temporary storage, that it no longer requires when the procedure
returns. You can easily allocate such local variable storage on the stack. The 8088 CPU supports the local
variable storage with the same mechanism it uses for parameters. It uses the BP and SP register to access and
allocate the variables. For example,
TESTING PROC NEAR
PUSH BP
MOV BP, SP
SUB SP, 6
MOV AX, [BP+4]
MOV BX, [BP-2]
: :
ADD SP, 6
POP BP
RET 6
TESTING ENDP
Figure 46 Example of using local variable

The SUB SP, 6 instruction makes room for three words on the stack. You can allocate
three local variables in these three words. You can reference these three variables by indexing off the BP
register ([bp-2], [bp-4], [bp-6]) using negative offsets. Upon reaching that statement, you can use the memory
between BP and SP as the temporary storage of the local variables.
The example uses the matching instruction:
ADD SP, 6
at the end of the procedure to delocate the local storage. The value you add to the stack pointer must
exactly match the value you subtract when allocating this storage. If these two values don’t match, the stack
pointer upon entry to the routine will not match the stack pointer upon exit, this is like pushing or popping too
many items inside the procedure.
Unlike parameters, you can allocate local variables in any order. As long as you are consistent with
your location assignments, you can allocate them in any way you choose.

Section 5.4. Recursive Calling


Recursion occurs when a procedure calls itself. There is one thing you should keep in mind when using
recursion. The recursive routines can eat up a considerable stack space. Therefore, when writing recursive

*** Page 34 ***


☺ 35
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

subroutines, always allocate sufficient memory in your stack segment. The best example is the quick sort, which
is almost a literal translation of the C-language form. Please refer Sample Program 3.

Section 5.5. Linking C and Assembly Language Programs


The assembler code can call C functions and reference external C variables. C program can also call
public assembler functions and reference public for assembler variables. The following is a few simple rules to
share the functions and variables between C and Assembly.

1. Similar as in Assembly Language, when a C program links to the assembly program, EXTRN and
PUBLIC must be defined in the main and subprogram respectively. In the C program, the syntax
of the EXTRN is:
extern <program function>
For example, if a function called _ADDING (which is an assembly language procedure) to
be called by a C program with parameters a and b with both integer type, the following
must be written before the main program in C:
extern int _ADDING (int, int);
The extern statement must be defined at the beginning of the main program.
2. If you are programming in C, all external labels should start with an underscore ‘_’ character in
assembly. The C compilers automatically prefix an underscore to all function and external variable
names when they’re used in C code, so you only need to attend to underscores in your assembler
code. You must be sure that all assembler references to C functions and variables begin with
underscores, and you must begin all assembler functions and variables that are made public and
referenced by C with underscores. Furthermore, you must name the code segment as _TEXT, and
all calls from C to assembly will be near procedure.
3. The assembler is normally insensitive to case when handling symbolic names, making no
distinction between uppercase and lowercase letters. Since C is case sensitive, it’s desirable to
have assembler be case sensitive, at least for those symbols that are shared between assembler and
C.
4. It’s important that your assembler EXTRN statements that declare external C variables specify the
right size for those variables. The correspondence between C and assembler types is as follows:
Byte size in assembly:
Byte size in assembly: unsigned char, char
Word size in assembly: unsigned short, short, unsigned int, int
5. C will pass parameters onto the stack. Before calling a function, C first pushes the parameters to
that function onto the stack, starting with the rightmost parameter and ending with the leftmost
parameter. The C function call:
Testing (a, b, 5);
compiles to
MOV AX, 5
PUSH AX
PUSH B
PUSH A
CALL _Testing
Figure 47 Conversion of C function to assembly function

You can see that the rightmost parameter, 5, begin pushed first, then B, and finally A.
6. As far as C is concerned, C can do anything as long as they preserve the registers. However, SI
and DI are special cases, since they are used by C as register variables. If register variables are
enabled in the C module calling your assembler function, you must preserve SI and DI. It is a
good practice that you should push them on entry and pop them when exit.
7. A C callable assembler function must return a value in AX, just like other functions. In general, a
8-bit or 16-bit value is returned in AX register, while the 32-bit values are returned in DX:AX
two-word form.
The typical procedure for accessing the two passed parameters is done as the following example.
C program:
#include <stdio.h>
#include <stdlib.h>
extern int adding (int, int);

*** Page 35 ***


☺ 36
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

int main ( )
{
int a, b;
: : :
ADDING (a, b);
: : :
}
Assembly Program:
PUBLIC _ADDING
CODE_SEG SEGMENT PARA PUBLIC ‘CODE’
_ADDING PROC NEAR
ASSUME CS: CODE_SEG
PUSH BP
MOV BP, SP
MOV A, [BP+4]
MOV B, [BP+6]
PUSH SI
PUSH DS
: :
POP DS
POP SI
POP BP
MOV AX, 0
RET 4
_ADDING ENDP
CODE_SEG ENDS
END _ADDING
Figure 48 Example of Linking from C to Assembly Program

One case in which you may wish to call a C function from assembler is when you need to perform
complex calculations. This is especially true when mixed integer type and floating-point calculations are
involved. There is nothing different from calling to assembly program, but note that:
1. Define the extern function (procedure calling to C) in both C and assembly program. In the
assembly procedure, if you want to call the C function outside the procedure, the definition of the
extern will be
EXTRN _adding: proc
where proc means the procedure.
2. Push all necessary parameters before calling C function.
3. Pop all necessary parameters after calling C function.
4. The return parameter will be in the AX register.

Section 6.Keyboard & Screen handling (I/O)

Section 6.1. Introduction to I/O handling


Up to this point, most programs have defined data items in the data area or within an instruction
operand as immediate data. However, most programs require input data from a keyboard and provide answers
on screen. In the following paragraphs, it will cover the basic requirements for displaying information on a
screen and for accepting input from a keyboard.
There are various methods for telling the system the keyboard processing and screen handling. The
main methods are:
• Direct access: the whole screen is mapped onto a piece of main memory, so screen display can be
done simply by putting appropriate values into the main memory directly. The interface of
keyboard and the system is called port which has specific address (or just a port number). Any
input from keyboard can be read from that port. Where the screen is mapped and which port the
keyboard uses may be different in different machines.
• BIOS interrupt: it uses the INT instruction to transfer the control directly to BIOS.
• DOS interrupt: it uses the INT instruction to transfer the control directly to DOS. As DOS is
portable to any PC machine, DOS interrupt can be used in any I/O devices.
*** Page 36 ***
☺ 37
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

To call a BIOS or DOS interrupt, an interrupt instruction will be used in the assembly program. Given
an interrupt value, the instruction INT will transfer the control to one of the 256 different interrupt handlers.
The interrupt vector table holds the address of these interrupt handlers. We will introduce different applications
of BIOS and DOS interrupt in the keyboard and screen processing.

Section 6.2. I/O with DOS interrupt

Section 6.2.1. String input


In section 3, we have introduced the simple interrupt to handle the input characters. However, the
original DOS service to accept the string from a keyboard is particularly powerful. In the DOS interrupt service
0Ah, it provides a function that reads a line of text (string) from the keyboard and stores it into the input buffer.
For example,
CODE_SEG SEGMENT
ASSUME CS: CODE_SEG, DS: DATA_SEG
: :
MOV AH, 0Ah
LEA DX, NAMESTRING
INT 21h
: :
CODE_SEG ENDS
DATA_SEG SEGMENT
NAMESTRING DB 10, ?, 10 dup (?)
DATA_SEG ENDS
Figure 49 Keyboard input segment

To begin with, the system needs to know the maximum length of the input data. The purpose is to warn
the user who input too many characters. Secondly, the system must know how many characters the user inputs.
Therefore, the label NAMESTRING needs three parameters to define an input string. The first parameter
denotes the maximum length of input string, the second parameter denotes the actual number of input string,
and the third parameter declares the space for input string.
To request the input string in code segment, apply the DOS interrupt with service 0Ah in the AH. Load
the address of the parameter list into the DX and issue the INT 21h. Such interrupt will wait for the user to
enter the characters and check whether they are exceeding the maximum or not. This operation will echo the
entered characters Pressing the ENTER key (ASCII code: 0Dh) will tell the system the end of an entry. 11
All the characters are interpreted as the ASCII code (with ENTER key). Therefore, the string definition
must be DB.

Section 6.2.2. Display the special characters


Similar as in section 3, you will use DOS interrupt service 02h to display the character (or 09h to
display the string with “$”). When special character is needed to print on the screen after the string, the
following data syntax must be followed.
DATA_SEG SEGMENT
NAMESTRING DB “Name”, 0Dh, 0Ah, “$”
DATA_SEG ENDS
Figure 50 Data definition for printing the special character

where 0Dh is the enter key and 0Ah is the line-feed control.

Section 6.3. Video display with BIOS interrupt


The PC BIOS uses several interrupt numbers to accomplish various operations. The main interrupt
service in the video display service is 10h. As same as DOS interrupt, it requires additional parameters in
certain memory locations.

11
Enter Key will count in the maximum length of the string. However, it will not count in the actual length of the string.
*** Page 37 ***
☺ 38
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

The INT 10h instruction does several video display related functions. You can use it to initialize the
video display, set the cursor size and position, read the cursor position, etc. You can select the particular
function to execute by passing a service number in the AH register.

Section 6.3.1. Screen Clearing and Coloring


Prompts and commands will stay on the screen until overwritten or scrolled off. In assembly, clearing
screen can be requested by using BIOS interrupt INT 10h Service 06h. Furthermore, the initial value must be
set to the following registers.
Registers Purpose Initial Value
AH Interrupt Service Code 06h
AL Number of lines scrolled up 00 for full screen, other constant for number of lines
BH Specify the color See below
CH Starting row Any value (Suggestion: 00)
CL Starting column Any value (Suggestion: 00)
DH Ending row Any value (Suggestion: 18h)
DL Ending column Any value (Suggestion: 50h)
Table 3 Register purpose in screen handling

For example,
MOV AH, 06h
MOV AL, 00h
MOV BH, 07h
MOV CX, 0000h
MOV DH, 18h
MOV DL, 50h
INT 10h
Figure 51 Screen clearing example

will perform the clear screen function.


Value Background color Foreground color
0h/ 0000b Black Black
1h/ 0001b Blue Blue
2h/ 0010b Green Green
3h/ 0011b Cyan Cyan
4h/ 0100b Red Red
5h/ 0101b Magenta Magenta
6h/ 0110b Brown Brown
7h/ 0111b White White 7 6 5 4 3 2 1 0
8h/ 1000b Blink black Gray
9h/ 1001b Blink blue Light blue blinking bit
Foreground color bits
Ah/ 1010b Blink green Light green Background color bits
Bh/ 1011b Blink cyan Light cyan
Ch/ 1100b Blink red Light red
Dh/ 1101b Blink magenta Light magenta Figure 52 Internal structure for color definition
Eh/ 1110b Blink brown Yellow
Fh/ 1111b Blink white Bright white
Table 4 Color and the corresponding value

BH specifies the color of the resulting screen. The most-significant bit represents blinking, the next 3
bits represents background color, while the least-significant 4 bits represents foreground color. Inserting a
different value to different parameters causes the windowing effect function. For example,
MOV AH, 06h
MOV AL, 05h
MOV BH, 61h
MOV CX, 0A1Ch
MOV DH, 0Eh
MOV DL, 34h
*** Page 38 ***
☺ 39
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

INT 10h
Figure 53 Windows effect example

would create a window at the center of the screen with its own parameters.

Section 6.3.2. Setting and Moving the Cursor


Setting the cursor
Setting the cursor is a common requirement for text mode, since its position determines where to
display the next character. INT 10h Service 02h tells the operation to set the cursor, BH defines the page
number (00), and DH & DL define the row (y-coordinate) and column (x-coordinate) position respectively. For
example,
MOV AH, 02h
MOV BH, 00h
MOV DH, 05h
MOV DL, Ch
INT 10h
Figure 54 Moving Cursor example

defines the cursor at row 5 and column 12.


Get the cursor position
Similarly, to get the cursor position, set INT 10h Service 03h and set page number BH to 00. For
example,
MOV AH, 03h
MOV BH, 00h
INT 10h
Figure 55 Reading Cursor example

After the above execution, DH will contain the row number and DL will contain the column number of
the cursor position.

Read the character from the cursor position


In most application we will use the cursor to tell the user to input a character from the keyboard. How
can we get a character from the cursor position? An BIOS interrupt 10h with service number 08h will help. For
example,
MOV AH, 08h
MOV BH, 00h
INT 10h
Figure 56 Reading character from Cursor example

The character will be read in the AL register with the ASCII representation.

Section 7. Interrupt Service Routine (ISR)


In the last section we have discussed the interrupt. The interrupt is program control interruption based
on an external event. These interrupts generally have nothing at all to do with the instructions currently
executing; instead, some event, such as pressing a key on the keyboard, informs the CPU that a device needs
some attention. The CPU interrupts the currently executing program, services the device, and returns the control
back to the program.
An interrupt service routine is a procedure written specifically to handle an interrupt. Although
different phenomenon cause interrupts, the structure of an interrupt service routine, or ISR, is approximately the
same for interrupts. The following will describe the interrupt structure and how to write a basic interrupt service
routines for the 8086 assembly language.

Section 7.1. Introduction to 8086 Interrupt Service Routine


In the 8086 chips it allows up to 256 vectored interrupts. This means that you can have up to 256
different sources for an interrupt and the CPU will directly call the service routine for that interrupt without any
software processing. The CPU provides a 256 entry interrupt vector table beginning at address 0:0 in memory.
*** Page 39 ***
☺ 40
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

This is a 1K table containing a 256 4-byte entries. Each entry in this table contains a segmented address that
points at the interrupt service routine in memory. Generally, we will refer to interrupts by their interrupt value,
so interrupt INT 0 address is at memory location 0:0, interrupt INT 1 address is at address 0:4, etc.
When an interrupt occurs, the CPU does the following:
1. The CPU pushes the flags register onto the stack.
2. The CPU pushes a far return address (CS:IP) onto the stack, segment value first.
3. The CPU determines the interrupt number and fetches four-byte interrupt vector from the
correspondence address.
4. The CPU transfers control to the routine specified by the interrupt vector table entry.
After the completion of the steps, the interrupt service routine takes control. When the interrupt service
routine wants to return the control, it must execute an IRET (interrupt return) instruction. The interrupt return,
similar as RET instruction, pops the far return address and the flags off the stack. Note that executing a far
return is insufficient since that would leave the flags on the stack.
Furthermore, upon entry into the interrupt service routine, the CPU will disable further hardware
interrupts by clearing the interrupt flag.

Section 7.2. Writing the Interrupt Service Routine


The interrupt service routine ISR are written like almost any other assembly language procedure except
that they return with an IRET instruction rather than RET. Although the distance of the ISR procedure, i.e.
NEAR or FAR, is usually of no significance, you should make all ISRs FAR procedures. This will make
programming easier if you decide to call an ISR directly rather than using the normal interrupt handling
mechanism.
The ISR has a very special restriction: they must preserve the state of the CPU. In particular, these
ISRs must preserve all registers they modify. For example,
SimpleISR PROC FAR
MOV AX, 0
IRET
SimpleISR ENDP
Figure 57 Simple ISR

Suppose you were executing the following code segment:


MOV AX, 5
ADD AX, 2
The interrupt service routine would set the AX register to zero and the register AX will be zero rather
than five. Worse yet, the interrupts are generally asynchronous, meaning that they can occur at any time. Thus
we cannot know what value of AX will be at any time. Bugs in the ISR are very difficult to find, because such
bugs often affect the execution of unrelated code. The solution to this problem, of course, is to make sure you
preserve all registers you use in the ISR. One possible method to preserve the registers is to save and restore all
register a procedure modifies.
Writing the ISR is only the first step to implementing an interrupt handler. You must also initialize the
interrupt vector table entry with the address of your ISR. There is two common way to accomplish this: store
the address directly in the interrupt vector table or call DOS and let DOS do the job for you.
Storing the address yourself is an easy task. All you need to do is loading a segment register with zero
and store the four-byte address at the appropriate offset within that segment. The following code sequence
initializes the entry for interrupt 255 with the address of the SimpleISR routine in the above example.
MOV AX, 0
MOV ES, AX
CLI
LEA WORD PTR ES:[0FFh*4], [SimpleISR]
MOV WORD PTR ES:[0FFh*4+2], CS
Figure 58 Example of storing the address by yourself

The CLI instruction tells the assembler to prevent any interrupt from this point, and the STI instruction
allows any interrupt raised, and the syntax is
CLI
STI
Perhaps a better way to initialize an interrupt vector is to use the DOS Set Interrupt Vector call. Calling
DOS interrupt with AH equal to 25h provides this function. This call expects an interrupt number in the AL

*** Page 40 ***


☺ 41
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

register and the address of the interrupt service routine in DS: DX, where DS stores the segment address of the
interrupt and DX stores the address. The call to DOS that would accomplish the same thing as the code above is
MOV AX, 2523h
MOV DX, CS ;assume SimpleISR in code segment
MOV DS, DX
LEA DX, SimpleISR
INT 21h
MOV AX, DATA_SEG ; restore data segment in DS
MOV DS, AX
Figure 59 Example of storing the address by dos interrupt

Although this code sequence is a little more complex than putting the data directly into the interrupt
vector table, it is safer. Many programs monitor changes made to the interrupt vector table through DOS. If you
call DOS to change an interrupt vector table entry, those programs will become aware of your changes.
Generally, it is a very bad idea to patch the interrupt vector and not restore the original entry after your
program terminates. Well behaved programs always save the previous value of an interrupt vector table entry
and restore this value before termination. The following code sequences demonstrate how to do this. At the
beginning of your program, you should save the old interrupt address. The DOS interrupt with service number
35h in AH will perform this. This interrupt will save the interrupt number, defined in AL, in ES: BX as
segment: offset address. For example,
MOV AX, 3523h
INT 21h
MOV [OLDOFFSET], BX
MOV [OLDSEGMENT], ES
Figure 60 Load the address of the interrupt

The above example shows how to save the interrupt address (segment: offset) of INT 10h (Video
interrupt). Defining AH = 35h, AL = 23h, the segment address will be stored in ES and the offset address will
be stored in BX after the interrupt. We will save all these address in the two variables.
Before exit the program, you should restore the interrupt vector entries, for example:
MOV DS, CS: [OLDSEGMENT]
MOV DX, CS: [OLDOFFSET]
MOV AX, 2523h
INT 21h
Figure 61 Example of storing the address by dos interrupt

The above interrupt only responds to the corresponding interrupt. For example, the interrupt may
raised if Ctrl-C key is pressed (INT 23h). After your ISR has defined, that interrupt service routine only
responds to the Ctrl-C key, which is exactly the same as the original interrupt. Here is the reference of other
interrupts that can be changed to your ISR.
Interrupt No. Interrupt raised when......
00h Divide overflow error
09h Keyboard input
08h/ 1Ch Every 1/18.2 sec (0.055sec, 5/91sec)
23h Ctrl-C key is pressed
70h Every 940ms
Table 5 Interrupt service code

Section 7.3. Chaining and Reentrance Problem


Chaining ISR
Interrupt service routines come into basic varieties: those that need exclusive access to an interrupt
vector and those that must share an interrupt vector with several other ISRs. The timer, real-time clock, and
keyboard ISRs are generally fall into the latter category. It is not at all uncommon to find several ISRs in
memory sharing each of these interrupts.
Sharing an interrupt vector is rather easy. All an ISR needs to do to share an interrupt vector is to save
the old interrupt vector when installing the ISR and then call the original ISR before or after you do you own

*** Page 41 ***


☺ 42
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

ISR processing. If you’ve saved away the address of the original ISR in the word variable OLDOFFSET, you
can jump directly to the original ISR rather than calling it. In such cases, you should put the necessary variables
directly in the code segment, as shown below:
OLDOFFSET DW ?
NEWISR PROC NEAR
: : :
JMP CS: [OLDOFFSET]
NEWISR ENDP
Figure 62 Example of chaining the ISRs

This code will pass along your original ISR. The OLDOFFSET variable must be defined in the code
segment if you use this technique to transfer the control to the original ISR.

Reentrancy problem
A minor problem develops with developing ISRs, what happens if you enable interrupts while in an
ISR and a second interrupt from the same device comes along? This would interrupt the ISR and then reenter
the ISR from the beginning. Many applications do not behave properly under these conditions. The easiest way
to prevent such an occurrence is to turn off the interrupts while executing code in a critical section, i.e. using
CLI instruction.
Another problem is the DOS interrupt problem. The internal data structure of DOS is designed so that
is is non-reenterable. It is because the DOS is for a single user, and single program system. It is not possible to
active the DOS interrupt when it has activated. Therefore, you can only include the INT 21h in the ISR only if
we know that INT 21h has not been called. Generally, it is suggested that you should not to call INT 21h in the
ISR.

Section 8. Examples
Example 1
Question: Write a program to satisfy the following requirement:
1. Read until 10 small alphabetic letter entered.
2. Convert the 10 small letter to capital letter and output these letters.
Algorithm:
1. Display the input message and set the counter SI.
2. Read the characters
3. Check whether it is small alphabetic letter.
4. If it is correct, change that letter to capital letter by adding -20h to its ASCII. Save the ASCII in
the array MSG [SI] 12 .
5. Check whether the loop ends (10). If the loop is not finished, or the input is incorrect, repeat step 2
until it is finished.
6. Display the capital letter list.
Program:
;*** BEGIN OF THE PROGRAM ***
;*** DEFINE THE VARIABLES ***
CODE_SEG SEGMENT
BEGIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
START: MOV AX,DATA_SEG
MOV DS,AX
;*** DISPLAY THE MESSAGE 1 ***
MOV AH,09h
LEA DX,MESSAGE1
INT 21h
;*** READ THE CHARACTERS ***
READ_CH: MOV AH,01h
INT 21h
;*** JUMP IF THE CHARACTERS < 'a' ***
CMP AL,61h
JL READ_CH
;*** CORRECT IF THE CHARACTERS < 'z' ***
CMP AL,7Bh

12
In assembly program, to implement the array, use [MSG+SI] (as MSG [SI] in C). It will act as a list.
*** Page 42 ***
☺ 43
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

JL CORRECT
JMP READ_CH
;*** CHANGE THE SAMLL LETTER TO CAPITAL LETTER ***
CORRECT: ADD AL,-20h
;*** CHECK THE CHARACTERS READ ***
MOV [MSG+SI],AL
ADD SI,1
CMP SI,10
JZ WRITE_MSG
JMP READ_CH
;*** ECHO THE STRING READ ***
WRITE_MSG: MOV AH,09h
LEA DX,MESSAGE2
INT 21h
LEA DX,MSG
INT 21h
;*** END OF PROGRAM ***
END_SEG: MOV AH,4Ch
INT 21h
BEGIN ENDP
CODE_SEG ENDS
;*** DATA SEGMENT ***
DATA_SEG SEGMENT
MESSAGE1 DB "Enter the 10 characters :$"
MESSAGE2 DB " ;Corresponding CORRECT characters in capital letter :$"
MSG DB 10 DUP(?)
END_MSG DB '$'
DATA_SEG ENDS
;*** STACK SEGMENT ***
STACK_SEG SEGMENT STACK
DW 10 DUP (?)
STACK_SEG ENDS
END BEGIN

Figure 63 Sample Program 1

Example 2
Question: Write an assembly program to do the following:
1. Read from the keyboard a positive decimal integer of at most 4 digits (0-9999). Convert it to
decimal integer.
2. Using stack, display the integer as string.
Algorithm:
1. Read the characters. Check whether the user enters the return input (ASCII for return key is 0Dh)
or enter the digits.
2. If it is correct, change the characters to digits by multiplication, e.g.
1234 = 1×1000+2×100+3×10+4.
Multiply from the least significance digit to most significance digit.
3. Check whether it gets 4 digits. If it is not, repeat step 1.
4. By similar argument of step 2, get the least significance digit from the remainder of the division.
5. Convert it to the string and push to the stack.
6. Repeat step 5 until all digits are pushed into the stack.
7. Pop the elements from the stack and output to the screen.
Program:
;*** BEGIN OF THE PROGRAM ***
;*** PART(I): CHANGE CHARACTERS TO DECIMAL INTEGERS ***
;*** DEFINE THE VARIABLES ***
CODE_SEG SEGMENT
BEGIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
START: MOV AX,DATA_SEG
MOV DS,AX
;*** DISPLAY THE MESSAGE 1 ***
MOV AH,09h
LEA DX,MESSAGE1
INT 21h
;*** READ THE CHARACTERS ***
READ_CH: MOV AH,01h
INT 21h
;*** CHECK THE "RETURN" INPUT ***
CMP AL,0Dh
JZ PARTII

*** Page 43 ***


☺ 44
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

;*** JUMP IF THE CHARACTERS < '0' ***


CMP AL,30h
JL READ_CH
;*** JUMP IF THE CHARACTERS > '9' ***
CMP AL,39h
JG READ_CH
;*** CHANGE THE CHARACTERS TO DIGITS ***
ADD AL,-30h
MOV ADDER,AL
MOV AX,SUM
MOV SI,10
MUL SI
ADD AL,ADDER
MOV SUM,AX
ADD COUNT,1
;*** CHECK THE 4 INPUT ***
CMP COUNT,4
JZ PARTII
JMP READ_CH
;*** END OF PART (I) ***
;*** PART(II):CHANGE DECIMAL INTEGER TO CHARACTERS ***
;*** DISPLAY THE OUTPUT SIGNAL ***
PARTII: MOV AH,02h
MOV DX,000Dh
INT 21h
MOV DX,000Ah
INT 21h
MOV AH,09h
LEA DX,MESSAGE2
INT 21h
MOV COUNT,0
;*** CHANGE DECIMAL TO CHAR. ***
CONVERT: MOV AX,SUM
MOV DX,0
MOV SI,10
DIV SI
PUSH DX
MOV SUM,AX
ADD COUNT,1
CMP AX,0
JG CONVERT
;*** ECHO THE STRING ***
WRITE_MSG: POP DX
ADD DX,30h
MOV AH,02h
INT 21h
ADD COUNT,-1
CMP COUNT,0
JG WRITE_MSG
;*** END OF PROGRAM ***
END_SEG: MOV AH,4Ch
INT 21h
BEGIN ENDP
CODE_SEG ENDS
;*** STACK SEGMENT ***
STACK_SEG SEGMENT STACK
DW 40 DUP(?)
STACK_SEG ENDS
;*** DATA SEGMENT ***
DATA_SEG SEGMENT
MESSAGE1 DB "Enter digits (max 4):$"
MESSAGE2 DB "The output is:$"
SUM DW 0
COUNT DB 0
ADDER DB 0
DATA_SEG ENDS
END BEGIN

Figure 64 Sample Program 2

Example 3
Question: Write an assembly program to do the quick sort.
Algorithm: Please refer any reference on recursive calling (C programming textbook, P. 245)
Program for C Version: (Copy from C programming textbook, P. 245)
#include<stdio.h>
#define SWAP(x,y) {int z=(x);(x)=(y);(y)=(z);}
main()
{

*** Page 44 ***


☺ 45
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

int a[100], n;
: :
rquick(a,0,n-1);
: :
}
void rquick(int a[], int lo, int hi)
{
int low, high, pivot;
low=lo;
high=hi;
if (low<high)
{
pivot=a[high];
do {
while (low<high && a[low]<=pivot)
low++;
while (low<high && a[high]>=pivot)
high--;
if (low<high)
SWAP(a[low],a[high]);
} while (low<high)
SWAP(a[low],a[hi]);
rquick(a,lo.low-1);
rquick(a,low+1,hi);
}
}

Figure 65 Quick Sort program for C Version

WWW.F r e s h e r s w o r l d.com

Program for Assembly Version:


Points to note:
1. Include the main program in the program
2. Only two elements, lo & hi, are pushed into the stack. It is not necessary to push the address of the array
since the array is defined within the data segment.
3. Only number 0 to 9 can be printed on the screen. For the number greater than 9, the program still work, but
no correct output will be shown. Please read the content inside the data segment after sorting, if you use the
number larger than 9.
;*** BEGIN OF THE PROGRAM ***
CODE_SEG SEGMENT PARA 'CODE'
BEGIN PROC NEAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
START: MOV AX,DATA_SEG
MOV DS,AX
;*** PUSH THE PARAMETERS ***
MOV AX, 0
PUSH AX
MOV AX, 4
PUSH AX
;*** PASS THE CONTROL ***
CALL SORT
;*** PRINT THE OUTPUT ***
MOV SI,0
PRINTING: MOV AH,02h
LEA BX,A
ADD BX,SI
ADD BX,SI
MOV DX,[BX]
INC SI
ADD DX,30h
INT 21h
CMP SI,5
JGE END_SEG
MOV DX,2Ch
INT 21h
JMP PRINTING
;*** END OF PROGRAM ***
END_SEG: MOV AH,4Ch
INT 21h
BEGIN ENDP
;*** PROCEDURE SORT ***
SORT PROC NEAR
PUSH BP

*** Page 45 ***


☺ 46
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

MOV BP, SP
SUB SP, 6
;*** INDEX: LOW = [BP-2], HIGH = [BP-4], PIVOT = [BP-6] (local var)
; LO = [BP+6], HI = [BP+4] ***
;*** LOW=LO ***
MOV AX, [BP+6]
MOV [BP-2], AX
;*** HIGH=HI ***
MOV BX, [BP+4]
MOV [BP-4], BX
;*** IF (LOW<HIGH) ***
CMP AX, BX
JGE ELOOP1
;*** COMPUTE ADDRESS OF A[LOW], PUT IN BX ***
LEA BX, A
ADD BX, [BP-2]
ADD BX, [BP-2]
;*** COMPUTE ADDRESS OF A[HIGH], PUT IN SI ***
LEA SI, A
ADD SI, [BP-4]
ADD SI, [BP-4]
;*** PIVOT = A[HIGH] ***
MOV AX, [SI]
MOV [BP-6], AX
;*** WHILE (LOW<HIGH..... ***
WHILE1: MOV AX, [BP-4]
CMP [BP-2], AX
JGE WHILE2
;*** && A[LOW]<=PIVOT ***
MOV AX, [BP-6]
CMP [BX], AX
JG WHILE2
JMP NEXTP
ELOOP1: JMP ELOOP
;*** LOW++ ***
NEXTP: MOV AX, [BP-2]
ADD AX, 1
MOV [BP-2],AX
ADD BX, 2
JMP WHILE1
;*** WHILE (HIGH>LOW..... ***
WHILE2: MOV AX, [BP-4]
CMP [BP-2], AX
JGE NLOOP
;*** && A[HIGH]>=PIVOT ***
MOV AX, [BP-6]
CMP [SI], AX
JL NLOOP
;*** HIGH-- ***
MOV AX, [BP-4]
SUB AX, 1
MOV [BP-4], AX
SUB SI, 2
JMP WHILE2
;*** IF LOW<HIGH ***
NLOOP: MOV AX, [BP-4]
CMP [BP-2], AX
JGE CHECKING
;*** SWAP(A[LOW],A[HIGH]) ***
PUSH AX
MOV AX, [BX]
XCHG AX, [SI]
MOV [BX], AX
POP AX
;*** WHILE (LOW<HIGH) ***
CHECKING: MOV AX, [BP-4]
CMP [BP-2], AX
JL WHILE1
;*** COMPUTE ADDRESS OF A[HI], PUT IN CX ***
LEA CX, A
ADD CX, [BP+4]
ADD CX, [BP+4]
;*** SWAP(A[LOW],A[HI]) ***
MOV AX, [BX]
PUSH SI
MOV SI,CX
XCHG AX, [SI]
POP SI
MOV [BX], AX
;*** call Recursive 1 ***
MOV AX, [BP-2]
*** Page 46 ***
☺ 47
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

DEC AX
PUSH [BP+6]
PUSH AX
CALL SORT
;*** call Recursive 2 ***
MOV AX, [BP-2]
INC AX
PUSH AX
PUSH [BP+4]
CALL SORT
;*** EXIT and RET ***
ELOOP: ADD SP, 6
POP BP
RET 4
SORT ENDP
CODE_SEG ENDS
;*** STACK SEGMENT ***
STACK_SEG SEGMENT STACK 'STACK'
DW 1024 DUP(?)
STACK_SEG ENDS
;*** DATA SEGMENT ***
DATA_SEG SEGMENT PARA 'DATA'
A DW 5,2,3,4,1
DATA_SEG ENDS
END BEGIN

Figure 66 Quick Sort program for Assembly Version

Example 4
Question: Write a program which displays another message when interrupt raised.
Algorithm: 1. Store the old ISR address, and define new ones.
2. Display the endless message.
3. Define the new ISR. Execute the ISR by pressing Ctrl_C key.
4. Accept "Y" to terminate the endless message.
5. Restore the old ISR.
Program:
;********** MACRO DEFINITION **********
PRINT MACRO MSG
MOV AH, 09h
LEA DX, MSG
INT 21h
ENDM
;********** BEGIN OF THE PROGRAM **********
;********** DEFINE THE VARIABLES **********
CODE_SEG SEGMENT PARA 'CODE'
MAIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
OLD_SEGMENT DW ?
OLD_OFFSET DW ?
MOV AX,DATA_SEG
MOV DS,AX
;********** STORE THE ISR **********
MOV AH, 35h
MOV AL, 23h
INT 21h
MOV [OLD_SEGMENT], ES
MOV [OLD_OFFSET], BX
;********** SET UP THE ISR **********
PUSH DS
MOV AX, CS
MOV DS, AX
LEA DX, CTL_C
MOV AL, 23h
MOV AH, 25h
INT 21h
POP DS
;********** PRINT MESSAGE **********
ABC: PRINT MSG1
JMP ABC
;********** RESTORE THE ISR **********
MOV AH, 25h
MOV AL, 23h
MOV DX, CS:[OLD_SEGMENT]
MOV DS, CS:[OLD_OFFSET]
INT 21h
;********** END OF PROGRAM **********
END_SEG: MOV AH,4Ch

*** Page 47 ***


☺ 48
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

INT 21h
MAIN ENDP
;********** ISR **********
CTL_C PROC FAR
PRINT MSG2
MOV AH, 01h
INT 21h
CMP AL, 59h
JE END_SEG
IRET
CTL_C ENDP
CODE_SEG ENDS
;********** STACK SEGMENT **********
STACK_SEG SEGMENT STACK 'STACK'
DB 1024 DUP(?)
STACK_SEG ENDS
;********** DATA SEGMENT **********
DATA_SEG SEGMENT PARA 'DATA'
MSG1 DB 0Dh,0Ah,"HELLO TO EVERYBODY!$"
MSG2 DB "QUIT NOW (Y/N)?$"
DATA_SEG ENDS
END MAIN

Figure 67 ISR Example

You can try to run the above four programs.

Section 9. Appendix 1: How to write and assemble my


assembly program?
• Which editor can I write my program?
In any editor, e.g. DOS editor, C editor, etc.
• In the PC Lab or your own computer DOS prompt 13 :

Without Debug (no error in your program):

1. Enter the DOS prompt (if in Win95)


2. Go to A drive, which contain your assembly program
Or your own directory for your own computer.
3. Type “TASM <filename.ASM>” 14
4. Type “TLINK <filename.OBJ>”
5. Execute your program by typing “<filename.EXE>”

With Debug:

6. Enter the DOS prompt (if in Win95)


7. Go to A drive, which contain your assembly program
Or your own directory for your own computer.
Add one more path: “C:\TASM\BIN”.
8. Type “TASM /zi /la <filename.ASM>”. Check how many
errors you made.
9. Type “TLINK /v <filename.OBJ>”.
10. Type “TD <filename.EXE>” and enter the assembly debugger. The
debugger is similar to C debugger in DOS prompt. You can use it to debug
your program by inspecting the variables, registers or memories, as you
like.

13
Use the 16-bit assembler. TASM32 will not work.
14
You can omit the bold extension.
*** Page 48 ***
☺ 49
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

With linking of C program:

Replace the two executions by:

1. Type "TASM /zi /la /mx /o <filename.ASM>".


2. Type "TCC /M -I<include-file directory> -L<libraries directory>
<filename.c> <filename.OBJ>".

Section 10. Appendix 2: Commands and syntax of


Assembly language
Segment Definition:

<Segment Name> segment (<align>) (<combine>) (<class>)


<code>
<Segment Name> ends

With:

ASSUME CS:<code segment name>, DS:<data segment name>, SS:<stack segment name>

Program Ending:

END <entry point>

Data Segment:

Data Definition:

<variable name> DB | DW <value>


<arrayname> DB | DW <size> dup (<element>)
<stringname> DB ‘<string>$’

Code Segment:

Label Definition:

<label name> :

Procedure Definition:

<procedure name> PROC {FAR | NEAR}


: : ;***your (main/ sub) program here***
<procedure name> ENDP

Data Movement:

*** Page 49 ***


☺ 50
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

MOV <destination>, <register | immediate>


MOV <destination>, <DISP | [BX | BP] | [SI | DI] >
XCHG <operand1>, <operand2>
LEA <destination>, <source>

Arithmetic Operation:

ADD {destination} , {source}


SUB {destination} , {source}
ADC {destination} , {source}
SBB {destination} , {source}
MUL {source}
IMUL {source}
DIV {source}
IDIV {<register> | <memory>}
NEG {<memory> | <register>}
INC {<memory> | <register>}
DEC {<memory> | <register>}

Program Control Flow:

JMP {<address> | <label> | <register>}


<type> PTR <expression>
CALL <label>
RET <immediate>
CMP {destination}, {source} ; destination – source (set flags)
JXX {<address> | <label>}
LOOP <label>

Logic Operation:

AND {destination}, {source}


OR {destination}, {source}
XOR {destination}, {source}
NOT {destination}
<expression> <relational operator> <expression>

Rotation and Shifting:

SHL {<register>, <memory>}, {1 | CL}


SAL {<register>, <memory>}, {1 | CL}
SAR {<register>, <memory>}, {1 | CL}
ROL {<register>, <memory>}, {1 | CL}
ROR {<register>, <memory>}, {1 | CL}
ROR {<register>, <memory>}, {1 | CL}
RCR {<register>, <memory>}, {1 | CL}

Interrupts:

*** Page 50 ***


☺ 51
Freshersworld.com 8086 Assembly Language Tutorial
www.Freshersworld.com.com

INT <special code>


IRET
CLI
STI

Stack Segment:

Stack Definition:

DW <size of stack> dup (<initial value>)

Stack Manipulation:

PUSH {<register> | <memory>}


POP {<register> | <memory>}

Macro Definition:

<Macro name> MACRO (arg1,arg2,....)


::::: ;***your macro here***
ENDM
LOCAL (label_1,label_2,....)

Directives:

REPT <expression>
<statements>
ENDM
IRP <<parameter>, <arguments>>
<statements>
ENDM
IRPC <<parameter>, <string argument>>
<statements>
ENDM
IFXX <condition>
<sequence of statements>
<ELSE> ;optional
<sequence of statements>
ENDIF

Calling Sequences:

EXTRN <subprogram name> : type


PUBLIC <subprogram name>

***** END of Assembly Programming *****

Provided By Freshersworld.com

*** Page 51 ***


☺ 1
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

GUIDE TO 80x86 ASSEMBLY


www.Freshersworld.com
OVERVIEW OF THE 80x86 FAMILY
The 80x86 family was first started in 1981 with the 8086 and the
newest member is the Pentium which was released thirteen years later
in 1994. They are all backwards compatible with each other but each
new generation has added features and more speed than the previous
chip. Today there are very few computers in use that have the 8088
and 8086 chips in them as they are very outdated and slow. There are
a few 286's but their numbers are declining as today's software
becomes more and more demanding. Even the 386, Intel's first 32-bit
CPU, is now declining and it seems that the 486 is now the entry
level system.

Representation of numbers in binary


Before we begin to understand how to program in assembly it is best
to try to understand how numbers are represented in computers.
Numbers are stored in binary, base two. There are several terms which
are used to describe different size numbers and I will describe
what these mean.

1 BIT: 0

One bit is the simplest piece of data that exists. Its either a one
or a zero.

1 NIBBLE: 0000 (4 BITS)

The nibble is four bits or half a byte. Note that it has a maximum
value of 15 (1111 = 15). This is the basis for the hexadecimal (base
16) number system which is used as it is far easier to understand.
Hexadecimal numbers go from 1 to F and are followed by a h to
state that the are in hex. i.e. Fh = 15 decimal. Hexadecimal numbers
that begin with a letter are prefixed with a 0 (zero).

1 BYTE: 00000000 ( 2 NIBBLES ) : ( 8 BITS )

A byte is 8 bits or 2 nibbles. A byte has a maximum value of FFh


(255 decimal). Because a byte is 2 nibbles the hexadecimal
representation is two hex digits in a row i.e. 3Dh. The byte is also
that size of the 8-bit registers which we will be covering later.

1 WORD: 0000000000000000 : (2 BYTES): (4 NIBBLES):(16 BITS)

A word is two bytes that are stuck together. A word has a maximum
value of FFFFh (65,536). Since a word is four nibbles, it is
represented by four hex digits. This is the size of the 16-bit
registers.

Registers
Registers are a place in the CPU where a number can be stored and
manipulated. There are three sizes of registers: 8-bit, 16-bit and
☺ 2
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
on 386 and above 32-bit.
There are four different types of registers
1) General purpose registers
2) Segment registers
3) Index registers
4) Stack registers
Firstly here are descriptions of the main registers.
Stack registers and segment registers will be covered later.

General Purpose Registers


These are 16-bit registers. There are four general purpose registers;
AX, BX, CX and DX. They are split up into 8-bit registers. AX is split
up into AH which contains the high byte and AL which contains the low
byte. On 386's and above there are also 32-bit registers, these have
the same names as the 16-bit registers but with an 'E' in front i.e.
EAX. You can use AL, AH, AX and EAX separatly and treat them as
separate registers for some tasks.

If AX contained 24689 decimal:

AH AL
01100000 01110001

AH would be 96 and AL would be 113. If you added one to AL it would


be 114 and AH would be unchanged.

SI, DI, SP and BP can also be used as general purpose registers but
have more specific uses. They are not split into two halves.

Index Registers
These are sometimes called pointer registers and they are 16-bit
registers. They are mainly used for string instructions. There are
three index registers SI (source index), DI (destination index) and
IP (instruction pointer). On 386's and above there are also 32-bit
index registers: EDI and ESI. You can also use BX to index strings.
IP is a index register but it can't be manipulated directly as it
stores the address of the next instruction.

Stack registers
BP and SP are stack registers and are used when dealing with the
stack. They will be covered when we talk about the stack later on.

Segments and offsets


The original designers of the 8088 decided that nobody will ever
need to use more that one megabyte of memory so they built the chip
so it couldn't access above that. The problem is to access a whole
megabyte 20 bits are needed. Registers only have 16 bits and they
didn't want to use two because that would be 32 bits and they
thought that this would be too much for anyone. They came up with
what they thought was a clever way to solve this problem: segments
and offsets. This is a way to do the addressing with two registers
but not 32 bits.

OFFSET = SEGMENT * 16
SEGMENT = OFFSET / 16 (the lower 4 bits are lost)

One register contains the segment and another register contains the
offset. If you put the two registers together you get a 20-bit
☺ 3
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
address.

SEGMENT 0010010000010000----
OFFSET ----0100100000100010
20-bit Address 00101000100100100010
====== DS ======
====== SI ======

Notice that DS and SI overlap. This is how DS:SI is used to make a


20 bit address. The segment is in DS and the offset is in SI. The
standard notation for a Segment/Offset pair is: SEGMENT:OFFSET

Segment registers are: CS, DS, ES, SS. On the 386+ there are also FS
and GS.

Offset registers are: BX, DI, SI, BP, SP, IP. In 386+ protected
mode1, ANY general register (not a segment register) can be used as
an Offset register. (Except IP, which you can't manipulate
directly).

If you are now thinking that assembly must be really hard and you
don't understand segments and offsets at all then don't worry. I
didn't understand them at first but I struggled on and found out
that they were not so hard to use in practice.

THE STACK
------------
As there are only six registers that are used for most operations,
you're probably wondering how do you get around that. It's easy.
There is something called a stack which is an area of memory which
you can save and restore values to.

This is an area of memory that is like a stack of plates. The last


one you put on is the first one that you take off. This is sometimes
refered to as Last On First Off (LOFO) or First In First Out (LIFO).
If another piece of data is put on the stack it grows downwards.

As you can see the stack starts at a high address and grows
downwards. You have to make sure that you don't put too much data in
the stack or it will overflow.

AN INTRODUCTION TO ASSEMBLY INSTRUCTIONS


There are a lot of instructions in assembly but there are only about
twenty that you have to know and will use very often. Most
instructions are made up of three characters and have an operand then
a comma then another operand. For example to put a data into a
register you use the MOV instruction.

mov ax,10 ;put 10 into ax


mov bx,20 ;put 20 into bx
mov cx,30 ;put 30 into cx
mov dx,40 ;put 40 into dx

Notice that in assembler anything after a ; (semicolon) is ignored.


This is very useful for commenting your code.
☺ 4
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

PUSH AND POP: TWO INSTRUCTIONS TO USE THE STACK

You know about the stack but not how to put data in an out of it.
There are two simple instructions that you need to know: push and
pop. Here is the syntax for their use:

PUSH Puts a piece of data onto the top of the stack

Syntax:
push data

POP Puts the piece of data from the top of the stack into a
specified register or variable.

Syntax:
pop register or variable

This example of code demonstrates how to use the push and pop
instructions

push cx ;put cx on the stack


push ax ;put ax on the stack
pop cx ;put value from stack into cx
pop ax ;put value from stack into ax

Notice that the values of CX and AX will be exchanged. There is an


instruction to exchange two registers: XCHG, which would reduce the
previous fragment to "xchg ax,cx".

TYPES OF OPERAND

There are three types of operands in assembler: immediate, register


and memory. Immediate is a number which will be known at compilation
and will always be the same for example '20' or 'A'. A register
operand is any general purpose or index register for example AX or
SI. A memory operand is a variable which is stored in memory which
will be covered later.

SOME INSTRUCTIONS THAT YOU WILL NEED TO KNOW


This is a list of some important instructions that you need to know
before you can understand or write assembly programs.

MOV moves a value from one place to another.

Syntax:
MOV destination, source

for example:
mov ax,10 ;moves an immediate value into ax
mov bx,cx ;moves value from cx into bx
mov dx,Number ;moves the value of Number into dx

INT calls a DOS or BIOS function which are subroutines to do


things that we would rather not write a function for e.g.
change video mode, open a file etc.
☺ 5
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Syntax:
INT interrupt number

For example:
int 21h ;Calls DOS service
int 10h ;Calls the Video BIOS interrupt

Most interrupts have more than one function, this means that you
have to pass a number to the function you want. This is usually put
in AH. To print a message on the screen all you need to do is this:

mov ah,9 ;subroutine number 9


int 21h ;call the interrupt

But first you have to specify what to print. This function needs
DS:DX to be a far pointer to where the string is. The string has to
be terminated with a dollar sign ($). This would be easy if DS could
be manipulated directly, to get round this we have to use AX.

This example shows how it works:

mov dx,OFFSET Message ;DX contains offset of message


mov ax,SEG Message ;AX contains segment of message
mov ds,ax ;DS:DX points to message
mov ah,9 ;function 9 - display string
int 21h ;call dos service

The words OFFSET and SEG tell the compiler that you want the
segment or the offset of the message put in the register not the
contents of the message. Now we know how to set up the code to
display the message we need to declare the message. In the data
segment1 we declare the message like this:

Message DB "Hello World!$"

Notice that the string is terminated with an dollar sign. What does
'DB' mean? DB is short for declare byte and the message is an array
of bytes (an ASCII character takes up one byte). Data can be
declared in a number of sizes: bytes (DB), words (DW) and double
words (DD). You don't have to worry about double words at the moment
as you need a 32-bit register, such as EAX, to fit them in.

Here are some examples of declaring data:

Number1 db ?
Number2 dw ?

The question mark (?) on the end means that the data isn't
initialised i.e. it has no value in to start with. That could as
easily be written as:

Number1 db 0
Number2 dw 1

This time Number1 is equal to 0 and Number2 is equal to 1 when you


program loads. Your program will also be three bytes longer. If you
declare a variable as a word you cannot move the value of this
variable into a 8-bit register and you can't declare a variable
as a byte and move the value into a 16-bit register. For examples:
☺ 6
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

mov al,Number1 ;ok


mov ax,Number1 ;error
mov bx,Number2 ;ok
mov bl,Number2 ;error

All you have to remember is that you can only put bytes into 8-bit
registers and words into 16-bit registers.

YOUR FIRST ASSEMBLY PROGRAM


Now that you know some basic instructions and a little about data it
is time that we looked at a full assembly program which can be
compiled.

Listing 1: 1STPROG.ASM

;This is a simple program which displays "Hello World!" on the


;screen.

.model small
.stack
.data

Message db "Hello World!$" ;message to be display

.code
mov dx,OFFSET Message ;offset of Message is in DX
mov ax,SEG Message ;segment of Message is in AX
mov ds,ax ;DS:DX points to string
mov ah,9 ;function 9 - display string
int 21h ;call dos service

mov ax,4c00h ;return to dos DOS


int 21h

END start ;end here

COMPILATION INSTRUCTIONS
These are some instructions to compile and link programs. If you
have a compiler other than TASM or A86 then see your instruction
manual.

Turbo Assembler:

tasm file.asm
tlink file [/t]

The /t switch makes a .COM file. This will only work if the memory
model is declared as tiny in the source file.

A86:

a86 file.asm

This will compile your program to a .COM file. It doesn't matter


what the memory model is.
☺ 7
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

SOME INSTRUCTIONS THAT YOU NEED TO KNOW


------------------------------------------------
This is just a list of some basic assembly instructions that are
very important and are used often.

ADD Add the contents of one number to another

Syntax:

ADD operand1,operand2

This adds operand2 to operand1. The answer is stored in operand1.


Immediate data cannot be used as operand1 but can be used as
operand2.

SUB Subtract one number from another

Syntax:
SUB operand1,operand2

This subtracts operand2 from operand1. Immediate data cannot be used


as operand1 but can be used as operand2.

MUL Multiplies two unsigned integers (always positive)


IMUL Multiplies two signed integers (either positive or negitive)

Syntax:
MUL register or variable
IMUL register or variable

This multiples AL or AX by the register or variable given. AL is


multiplied if a byte sized operand is given and the result is stored
in AX. If the operand is word sized AX is multiplied and the result
is placed in DX:AX.

On a 386, 486 or Pentium the EAX register can be used and the answer
is stored in EDX:EAX.

DIV Divides two unsigned integers (always positive)


IDIV Divides two signed integers (either positive or negitive)

Syntax:
DIV register or variable
IDIV register or variable

This works in the same way as MUL and IMUL by dividing the number in
AX by the register or variable given. The answer is stored in two
places. AL stores the answer and the remainder is in AH. If the
operand is a 16 bit register than the number in DX:AX is
divided by the operand and the answer is stored in AX and remainder
in DX.

MAKING THINGS EASIER


---------------------
The way we entered the address of the message we wanted to print was
a bit cumbersome. It took three lines and it isn't the easiest thing
to remember
☺ 8
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

mov dx,OFFSET MyMessage


mov ax,SEG MyMessage
mov ds,ax

We can replace all this with just one line. This makes the code
easier to read and it easier to remember.

mov dx,OFFSET MyMessage

To make this work at the beginning of your code add these lines:

mov ax,@data
mov ds,ax

Note: for A86 you need to change the first line to:

mov ax,data

This is because all the data in the segment has the same SEG value.
Putting this in DS saves us reloading this every time we want to
use another thing in the same segment.

KEYBOARD INPUT
--------------
We are going to use interrupt 16h, function 00h to read the
keyboard. This gets a key from the keyboard buffer. If there isn't
one, it waits until there is. It returns the SCAN code in AH and the
ASCII translation in AL.

xor ah,ah ;function 00h - get character


int 16h ;interrupt 16h

All we need to worry about for now is the ascii value which is in AL.

Note: XOR performs a Boolean Exclusive OR. It is commonly used to


erase a register or variable.

PRINTING A CHARACTER
----------------------
The problem is that we have the key that has been pressed in ah. How
do we display it? We can't use function 9h because for that we need
to have already defined the string which has to end with a dollar
sign. This is what we do instead:

;after calling function 00h of interrupt 16h

mov dl,al ;move al (ascii code) into dl


mov ah,02h ;function 02h of interrupt 21h
int 21h ;call interrupt 21h

If you want to save the value of AH then push AX before and pop it
afterwards.

CONTROL FLOW
----------------
☺ 9
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
In assembly there is a set of commands for control flow like in any
other language. Firstly the most basic command:

jmp label

All this does it to move to the label specified and start executing
the code there. For example:

jmp ALabel
.
.
.
ALabel:

What do we do if we want to compare something? We have just got a


key from the user but we want to do something with it. Lets print
something out if it is equal to something else. How do we do that?
It is easy. We use the jump on condition commands. Here is a list
of them:

JUMP ON CONDITION INSTRUCTIONS:

JA jumps if the first number was above the second number


JAE same as above, but will also jump if they are equal
JB jumps if the first number was below the second
JBE same as above, but will also jump if they are equal
JNA jumps if the first number was NOT above (JBE)
JNAE jumps if the first number was NOT above or the same as (JNB)
JNB jumps if the first number was NOT below (JAE)
JNBE jumps if the first number was NOT below or the same as (JA)
JZ jumps if the two numbers were equal
JE same as JZ, just a different name
JNZ jumps if the two numbers are NOT equal
JNE same as above
JC jump if carry flag is set

Note: the jump can only be a maximum of 127 bytes in either


direction.

Syntax:
CMP register or variable, value
jxx destination

An example of this is:

cmp al,'Y' ;compare the value in al with Y


je ItsYES ;if it is equal then jump to ItsYES

Every instruction takes up a certain amount of code space. You will


get a warning if you try and jump over 127 bytes in either direction
from the compiler. You can solve this by changing a sequence like this:
cmp ax,10 ;is AX 10?
je done ;yes, lets finish
to something like this:
cmp ax,10 ;is AX 10?
jne notdone ;no it is not
jmp done ;we are now done
☺ 10
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
notdone:

This solves the problem but you may want to think about reordering
your code or using procedures if this happens often.

Now we are going to look at a program which demonstrates input,


output and control flow.

Listing 2: PROGFLOW.ASM

;a program to demonstrate program flow and input/output


.model tiny
.code
org 100h
start:

mov dx,OFFSET Message ;display a message on the screen


mov ah,9 ;using function 09h
int 21h ;of interrupt 21h

mov dx,OFFSET Prompt ;display a message on the screen


mov ah,9 ;using function 09h
int 21h ;of interrupt 21h
jmp First_Time

Prompt_Again:
mov dx,OFFSET Another ;display a message on the screen
mov ah,9 ;using function 09h
int 21h ;of interrupt 21h

First_Time:
mov dx,OFFSET Again ;display a message on the screen
mov ah,9 ;using function 09h
int 21h ;of interrupt 21h

xor ah,ah ;function 00h of


int 16h ;interrupt 16h gets a character
mov bl,al ;save to bl

mov dl,al ;move al to dl


mov ah,02h ;function 02h - display character
int 21h ;call DOS service

cmp bl,'Y' ;is al=Y?


je Prompt_Again ;if yes then display it again
cmp bl,'y' ;is al=y?
je Prompt_Again ;if yes then display it again

TheEnd:
mov dx,OFFSET GoodBye ;print goodbye message
mov ah,9 ;using function 9
int 21h ;of interrupt 21h
mov ah,4Ch ;terminate program DOSusing
int 21h

.DATA
CR equ 13 ;enter
LF equ 10 ;line-feed
☺ 11
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Message DB "A Simple Input/Output Program$"
Prompt DB CR,LF,"Here is your first prompt.$"
Again DB CR,LF,"Do you want to be prompted again? $"
Another DB CR,LF,"Here is another prompt!$"
GoodBye DB CR,LF,"Goodbye then.$"
end start

INTRODUCTION TO PROCEDURES
--------------------------------
In assembly a procedure is the equivalent to a function in C or
Pascal. A procedure provides a easy way to encapsulate some
calculation which can then be used without worrying how it works.
With procedures that are properly designed you can ignore how a
job is done.

This is how a procedure is defined:

PROC AProcedure
.
. ;some code to do something
.
RET ;if this is not here then your computer will crash
ENDP AProcedure

It is equally easy to run a procedure all you need to do is this:

call AProcedure

This next program is an example of how to use a procedure. It is


like the first example we looked at, all it does is print "Hello
World!" on the screen.

Listing 3: SIMPPROC.ASM

;This is a simple program to demonstrate procedures. It should


;print Hello World! on the screen when ran.

.model tiny
.code
org 100h

Start:
call Display_Hi ;Call the procedure
mov ax,4C00h ;return to DOS
int 21h ;interrupt 21h function 4Ch

Display_Hi PROC
mov dx,OFFSET HI ;put offset of message into DX
mov ah,9 ;function 9 - display string
int 21h ;call DOS service
ret
Display_Hi ENDP
HI DB "Hello World!$" ;define a message
☺ 12
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
end Start

PROCEDURES THAT PASS PARAMETERS


--------------------------------------
Procedures wouldn't be so useful unless you could pass parameters to
modify or use inside the procedure. There are three ways of doing
this and I will cover all three methods: in registers, in memory and
in the stack.

There are three example programs which all accomplish the same task.
They print a square block (ASCII value 254) in a specified place.
The sizes of the files when compiled are: 38 for register, 69 for
memory and 52 for stack.

In registers
------------------
The advantages of this is that it is easy to do and is fast. All you
have to do is to is move the parameters into registers before
calling the procedure.

Listing 4: PROC1.ASM

;this a procedure to print a block on the screen using


;registers to pass parameters (cursor position of where to
;print it and colour).

.model tiny
.code
org 100h
Start:
mov dh,4 ;row to print character on
mov dl,5 ;column to print character on
mov al,254 ;ascii value of block to display
mov bl,4 ;colour to display character

call PrintChar ;print our character

mov ax,4C00h ;terminate program


int 21h

PrintChar PROC NEAR


push cx ;save registers to be destroyed

xor bh,bh ;clear bh - video page 0


mov ah,2 ;function 2 - move cursor
int 10h ;row and col are already in dx

pop bx ;restore bx
xor bh,bh ;display page - 0
mov ah,9 ;function 09h write char & attrib
mov cx,1 ;display it once
int 10h ;call bios service

pop cx ;restore registers


ret ;return to where it was called
PrintChar ENDP

end Start
☺ 13
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

PASSING THROUGH MEMORY


-----------------------
The advantages of this method is that it is easy to do but it makes
your program larger and can be slower.

To pass parameters through memory all you need to do is copy them to


a variable which is stored in memory. You can use a variable in the
same way that you can use a register but commands with registers are
a lot faster.

Listing 5: PROC2.ASM

;this a procedure to print a block on the screen using memory


;to pass parameters (cursor position of where to print it and
;colour).

.model tiny
.code
org 100h
Start:
mov Row,4 ;row to print character
mov Col,5 ;column to print character on
mov Char,254 ;ascii value of block to display
mov Colour,4 ;colour to display character

call PrintChar ;print our character

mov ax,4C00h ;terminate program


int 21h

PrintChar PROC NEAR


push ax cx bx ;save registers to be destroyed

xor bh,bh ;clear bh - video page 0


mov ah,2 ;function 2 - move cursor
mov dh,Row
mov dl,Col
int 10h ;call Bios service

mov al,Char
mov bl,Colour
xor bh,bh ;display page - 0
mov ah,9 ;function 09h write char & attrib
mov cx,1 ;display it once
int 10h ;call bios service

pop bx cx ax ;restore registers


ret ;return to where it was called
PrintChar ENDP

Row db ? ;variables to store data


Col db ?
Colour db ?
Char db ?

end Start
☺ 14
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

Passing through Stack


--------------------------
This is the most powerful and flexible method of passing parameters
the problem is that it is more complicated.

Listing 6: PROC3.ASM

;this a procedure to print a block on the screen using the


;stack to pass parameters (cursor position of where to print it
;and colour).

.model tiny
.code
org 100h
Start:
mov dh,4 ;row to print string on
mov dl,5 ;column to print string on
mov al,254 ;ascii value of block to display
mov bl,4 ;colour to display character

push dx ax bx ;put parameters onto the stack


call PrintString ;print our string
pop bx ax dx ;restore registers

mov ax,4C00h ;terminate program


int 21h

PrintString PROC NEAR


push bp ;save bp
mov bp,sp ;put sp into bp
push cx ;save registers to be destroyed

xor bh,bh ;clear bh - video page 0


mov ah,2 ;function 2 - move cursor
mov dx,[bp+8] ;restore dx
int 10h ;call bios service

mov ax,[bp+6] ;character


mov bx,[bp+4] ;attribute
xor bh,bh ;display page - 0
mov ah,9 ;function 09h write char & attrib
mov cx,1 ;display it once
int 10h ;call bios service

pop cx ;restore registers


pop bp
ret ;return to where it was called
PrintString ENDP

end Start

To get a parameter from the stack all you need to do is work out
where it is. The last parameter is at BP+2 and then the next and
BP+4.

WHAT ARE MEMORY MODELS?


---------------------------------------------------------------------
☺ 15
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
We have been using the .MODEL directive to specify what type of
memory model we use, but what does this mean?

Syntax:
.MODEL MemoryModel

Where MemoryModel can be SMALL, COMPACT, MEDIUM, LARGE, HUGE, TINY


OR FLAT.

Tiny
This means that there is only one segment for both code and data.
This type of program can be a .COM file.

Small
This means that by default all code is place in one segment and all
data declared in the data segment is also placed in one segment.
This means that all procedures and variables are addressed as NEAR
by pointing at offsets only.

Compact
This means that by default all elements of code are placed in one
segment but each element of data can be placed in its own physical
segment. This means that data elements are addressed by pointing at
both at the segment and offset addresses. Code elements (procedures)
are NEAR and variables are FAR.

Medium
This is the opposite to compact. Data elements are NEAR and
procedures are FAR.

Large
This means that both procedures and variables are FAR. You have to
point at both the segment and offset addresses.

Flat
This isn't used much as it is for 32 bit unsegmented memory space.
For this you need a DOS extender. This is what you would have to use
if you were writing a program to interface with a C/C++ program that
used a DOS extender such as DOS4GW or PharLap.

MACROS (in Turbo Assembler)


-------------------------------
(All code examples given are for macros in Turbo Assembler.)

Macros are very useful for doing something that is done often but
for which a procedure can't be use. Macros are substituted when the
program is compiled to the code which they contain.
This is the syntax for defining a macro:

Name_of_macro macro
;
;a sequence of instructions
☺ 16
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
;
endm

These two examples are for macros that take away the boring job of
pushing and popping certain registers:

SaveRegs macro
pop ax
pop bx
pop cx
pop dx
endm

RestoreRegs macro
pop dx
pop cx
pop bx
pop ax

endm

Note that the registers are popped in the reverse order to they were
pushed. To use a macro in you program you just use the name of the
macro as an ordinary instruction:

SaveRegs
;some other instructions
RestoreRegs

This example shows how you can use a macro to save typing in. This
macro simply prints out a message to the screen.

OutMsg macro SomeText


local PrintMe,SkipData
jmp SkipData

PrintMe db SomeText,'$'

SkipData:
push ax dx ds cs
pop ds
mov dx,OFFSET cs:PrintMe
mov ah,9
int 21h
pop ds dx ax
endm

endm

The only problems with macros is that if you overuse them it leads
to you program getting bigger and bigger and that you have problems
with multiple definition of labels and variables. The correct way to
solve this problem is to use the LOCAL directive for declaring names
inside macros.

Syntax:
LOCAL name

Where name is the name of a local variable or label.


☺ 17
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

Macros with parameters


---------------------------
Another useful property of macros is that they can have parameters.
The number of parameters is only restricted by the length of the
line.

Syntax:

Name_of_Macro macro par1,par2,par3


;
;commands go here
;
endm

This is an example that adds the first and second parameters and
puts the result in the third:

AddMacro macro num1,num2,result


push ax ;save ax from being destroyed
mov ax,num1 ;put num1 into ax
add ax,num2 ;add num2 to it
mov result,ax ;move answer into result
pop ax ;restore ax
endm

FILES AND HOW TO USE THEM


---------------------------------
Files can be opened, read and written to. DOS has some ways of doing
this which save us the trouble of writing our own routines. Yes,
more interrupts. Here is a list of helpful functions of interrupt
21h that deal with files.

Note: Bits are numbered from right to left.

Function 3Dh: open file

Opens an existing file for reading, writing or appending on the


specified drive and filename.

INPUT:
AH = 3Dh
AL = bits 0-2 Access mode
000 = read only
001 = write only
010 = read/write
bits 4-6 Sharing mode (DOS 3+)
000 = compatibility mode
001 = deny all
010 = deny write
011 = deny read
100 = deny none
DS:DX = segment:offset of ASCIIZ pathname

OUTPUT:
CF = 0 function is succesful
AX = handle
☺ 18
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
CF = 1 error has occured
AX = error code
01h missing file sharing software
02h file not found
03h path not found or file does not exist
04h no handle available
05h access denied
0Ch access mode not permitted

What does ASCIIZ mean? An ASCIIZ string like a ASCII string with a
zero on the end instead of a dollar sign.

Important: Remember to save the file handle it is needed for later.

How to save the file handle

It is important to save the file handle because this is needed to do


anything with the file. Well how is this done? There are two methods
we could use: copy the file handle into another register and don't
use that register or copy it to a variable in memory.

The disadvantages with the first method is that you will have to
remember not to use the register you saved it in and it wastes a
register that can be used for something more useful. We are going to
use the second. This is how it is done:

FileHandle DW 0 ;use this for saving the file handle


.
.
.
mov FileHandle,ax ;save the file handle

Function 3Eh: close file

Closes a file that has been opened.

INPUT:
AX = 3Eh
BX = file handle

OUTPUT:
CF = 0 function is successful
AX = destroyed
CF = 1 function not successful
AX = error code - 06h file not opened or unauthorised handle.

Important: Don't call this function with a zero handle because that
will close the standard input (the keyboard) and you won't be able
to enter anything.

Function 3Fh: read file/device

Reads bytes from a file or device to a buffer.

INPUT:
AH = 3Fh
BX = handle
CX = number of bytes to be read
DS:DX = segment:offset of a buffer
☺ 19
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

OUTPUT:
CF = 0 function is successful
AX = number of bytes read
CF = 1 an error has occurred
05h access denied
06h illegal handle or file not opened

If CF = 0 and AX = 0 then the file pointer was already at the end of


the file and no more can be read. If CF = 0 and AX is smaller than
CX then only part was read because the end of the file was reached
or an error occurred.

This function can also be used to get input from the keyboard. Use a
handle of 0, and it stops reading after the first carriage return,
or once a specified number of characters have been read. This is a
good and easy method to use to only let the user enter a certain
amount of characters.

Listing 7: READFILE.ASM

;a program to demonstrate creating a file and then writing to


;it

.model small
.stack
.code

mov ax,@data ;base address of data segment


mov ds,ax ;put this in ds

mov dx,OFFSET FileName ;put address of filename in dx


mov al,2 ;access mode - read and write
mov ah,3Dh ;function 3Dh -open a file
int 21h ;call DOS service
mov Handle,ax ;save file handle for later
jc ErrorOpening ;jump if carry flag set - error!

mov dx,offset Buffer ;address of buffer in dx


mov bx,Handle ;handle in bx
mov cx,100 ;amount of bytes to be read
mov ah,3Fh ;function 3Fh - read from file
int 21h ;call dos service
jc ErrorReading ;jump if carry flag set - error!

mov bx,Handle ;put file handle in bx


mov ah,3Eh ;function 3Eh - close a file
int 21h ;call DOS service

mov cx,100 ;length of string


mov si,OFFSET Buffer ;DS:SI - address of string
xor bh,bh ;video page - 0
mov ah,0Eh ;function 0Eh - write character

NextChar:
lodsb ;AL = next character in string
int 10h ;call BIOS service
loop NextChar
☺ 20
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
mov ax,4C00h ;terminate program
int 21h

ErrorOpening:
mov dx,offset OpenError ;display an error
mov ah,09h ;using function 09h
int 21h ;call DOS service
mov ax,4C01h ;end program with an errorlevel =1
int 21h

ErrorReading:
mov dx,offset ReadError ;display an error
mov ah,09h ;using function 09h
int 21h ;call DOS service

mov ax,4C02h ;end program with an errorlevel =2


int 21h

.data

Handle DW ? ;to store file handle


FileName DB "C:\test.txt",0 ;file to be opened

OpenError DB "An error has occured(opening)!$"


ReadError DB "An error has occured(reading)!$"

Buffer DB 100 dup (?) ;buffer to store data

END

Function 3Ch: Create file

Creates a new empty file on a specified drive with a specified pathname.

INPUT:
AH = 3Ch
CX = file attribute
bit 0 = 1 read-only file
bit 1 = 1 hidden file
bit 2 = 1 system file
bit 3 = 1 volume (ignored)
bit 4 = 1 reserved (0) - directory
bit 5 = 1 archive bit
bits 6-15 reserved (0)
DS:DX = segment:offset of ASCIIZ pathname

OUTPUT:
CF = 0 function is successful
AX = handle
CF = 1 an error has occurred
03h path not found
04h no available handle
05h access denied

Important: If a file of the same name exists then it will be lost.


Make sure that there is no file of the same name. This can be done
with the function below.
☺ 21
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Function 4Eh: find first matching file

Searches for the first file that matches the filename given.

INPUT:
AH = 4Eh
CX = file attribute mask (bits can be combined)
bit 0 = 1 read only
bit 1 = 1 hidden
bit 2 = 1 system
bit 3 = 1 volume label
bit 4 = 1 directory
bit 5 = 1 archive
bit 6-15 reserved
DS:DX = segment:offset of ASCIIZ pathname

OUTPUT:
CF = 0 function is successful
[DTA] Disk Transfer Area = FindFirst data block

The DTA block

Offset Size in bytes Meaning

0 21 Reserved
21 1 File attributes
22 2 Time last modified
24 2 Date last modified
26 4 Size of file (in bytes)
30 13 File name (ASCIIZ)

An example of checking if file exists:

File DB "C:\file.txt",0 ;name of file that we want

mov dx,OFFSET File ;address of filename


mov cx,3Fh ;file mask 3Fh - any file
mov ah,4Eh ;function 4Eh - find first file
int 21h ;call DOS service
jc NoFile

;print message saying file exists


NoFile:
;continue with creating file

This is an example of creating a file and then writing to it.

Listing 8: CREATE.ASM

;This example program creates a file and then writes to it.

.model small
.stack
.code

mov ax,@data ;base address of data segment


mov ds,ax ;put it in ds

mov dx,offset StartMessage ;display the starting message


☺ 22
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
mov ah,09h ;using function 09h
int 21h ;call dos service

mov dx,offset FileName ;put offset of filename in dx


xor cx,cx ;clear cx - make ordinary file
mov ah,3Ch ;function 3Ch - create a file
int 21h ;call DOS service
jc CreateError ;jump if there is an error

mov dx,offset FileName ;put offset of filename in dx


mov al,2 ;access mode -read and write
mov ah,3Dh ;function 3Dh - open the file
int 21h ;call dos service
jc OpenError ;jump if there is an error
mov Handle,ax ;save value of handle

mov dx,offset WriteMe ;address of information to write


mov bx,Handle ;file handle for file
mov cx,38 ;38 bytes to be written
mov ah,40h ;function 40h - write to file
int 21h ;call dos service
jc WriteError ;jump if there is an error
cmp ax,cx ;was all the data written?
jne WriteError ;no it wasn't - error!

mov bx,Handle ;put file handle in bx


mov ah,3Eh ;function 3Eh - close a file
int 21h ;call dos service

mov dx,offset EndMessage ;display the final message


mov ah,09h ;using function 09h
int 21h ;call dos service

ReturnToDOS:
mov ax,4C00h ;terminate program
int 21h

WriteError:
mov dx,offset WriteMessage ;display an error message
jmp EndError

OpenError:
mov dx,offset OpenMessage ;display an error message
jmp EndError

CreateError:
mov dx,offset CreateMessage ;display an error message

EndError:
mov ah,09h ;using function 09h
int 21h ;call dos service
mov ax,4C01h ;terminate program
int 21h

.data

CR equ 13
LF equ 10
☺ 23
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
StartMessage DB "This program creates a file called NEW.TXT"
DB ,"on the C drive.$"
EndMessage DB CR,LF,"File create OK, look at file to"
DB ,"be sure.$"

WriteMessage DB "An error has occurred (WRITING)$"


OpenMessage DB "An error has occurred (OPENING)$"
CreateMessage DB "An error has occurred (CREATING)$"

WriteMe DB "HELLO, THIS IS A TEST, HAS IT WORKED?",0

FileName DB "C:\new.txt",0 ;name of file to open


Handle DW ? ;to store file handle

END

This is an example of how to delete a file after checking it exists:

Listing 9: DELFILE.ASM

;a demonstration of how to delete a file. The file new.txt on


;c: is deleted (this file is created by create.exe). We also
;check if the file exits before trying to delete it

.model small
.stack
.data

CR equ 13
LF equ 10

File db "C:\new.txt",0

Deleted db "Deleted file c:\new.txt$"


NoFile db "c:\new.txt doesn't exits - exiting$"
ErrDel db "Can't delete file - probably write protected$"

.code
mov ax,@data ;set up ds as the segment for data
mov ds,ax ;use ax as we can't do it directly

mov dx,OFFSET File ;address of filename to look for


mov cx,3Fh ;file mask 3Fh - any file
mov ah,4Eh ;function 4Eh - find first file
int 21h ;call dos service
jc FileDontExist

mov dx,OFFSET File ;DS:DX points to file to be killed


mov ah,41h ;function 41h - delete file
int 21h ;call DOS service
jc ErrorDeleting ;jump if there was an error

jmp EndOk

EndOk:
mov dx,OFFSET Deleted ;display message
jmp Endit

ErrorDeleting:
☺ 24
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
mov dx,OFFSET ErrDel ;display message
jmp Endit

FileDontExist:
mov dx,OFFSET NoFile ;display message

EndIt:
mov ah,9
int 21h

mov ax,4C00h ;terminate program and exit to DOS


int 21h ;call DOS service

end

USING THE FINDFIRST AND FINDNEXT FUNCTIONS


---------------------------------------------
Listing 10: DIRC.ASM

;this program demonstrates how to look for files. It prints


;out the names of all the files in the c:\drive and names of
;the sub-directories

.model small
.stack
.data

FileName db "c:\*.*",0 ;file name


DTA db 128 dup(?) ;buffer to store the DTA
ErrorMsg db "An Error has occurred - exiting.$"

.code
mov ax,@data ;set up ds to be equal to the
mov ds,a ;data segment
mov es,ax ;also es

mov dx,OFFSET DTA ;DS:DX points to DTA


mov ah,1AH ;function 1Ah - set DTA
int 21h ;call DOS service

mov cx,3Fh ;attribute mask - all files


mov dx,OFFSET FileName ;DS:DX points ASCIZ filename
mov ah,4Eh ;function 4Eh - find first
int 21h ;call DOS service
jc error ;jump if carry flag is set

LoopCycle:
mov dx,OFFSET FileName ;DS:DX points to file name
mov ah,4Fh ;function 4fh - find next
int 21h ;call DOS service
jc exit ;exit if carry flag is set

mov cx,13 ;length of filename


mov si,OFFSET DTA+30 ;DS:SI points to filename in DTA
xor bh,bh ;video page - 0
mov ah,0Eh ;function 0Eh - write character

NextChar:
lodsb ;AL = next character in string
☺ 25
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
int 10h ;call BIOS service
loop NextChar

mov di,OFFSET DTA+30 ;ES:DI points to DTA


mov cx,13 ;length of filename
xor al,al ;fill with zeros
rep stosb ;erase DTA

jmp LoopCycle ;continue searching

error:
mov dx,OFFSET ErrorMsg ;display error message
mov ah,9
int 21h
exit:
mov ax,4C00h ;exit to DOS
int 21h

end

STRING INSTRUCTIONS
-------------------------
In assembly there are some very useful instructions for dealing with
strings. Here is a list of the instructions and the syntax for using
them:

MOV* Move String: moves byte, word or double word at DS:SI


to ES:DI

Syntax:

movsb ;move byte


movsw ;move word
movsd ;move double word

CMPS* Compare string: compares byte, word or double word at


DS:SI to ES:DI

Syntax:

cmpsb ;compare byte


cmpsw ;compare word
cmpsd ;compare double word

Note: This instruction is normally used with the REP prefix.

SCAS* Search string: search for AL, AX, or EAX in string at ES:DI

Syntax:

scasb ;search for AL


scasw ;search for AX
scasd ;search for EAX

Note: This instruction is usually used with the REPZ or REPNZ prefix.

REP Prefix for string instruction repeats instruction CX times


☺ 26
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

Syntax:

rep StringInstruction

STOS* Move byte, word or double word from AL, AX or EAX to ES:DI

Syntax:

stosb ;move AL into ES:DI


stosw ;move AX into ES:DI
stosd ;move EAX into ES:DI

LODS* Move byte, word or double word from DS:SI to AL, AX or EAX

Syntax:

lodsb ;move ES:DI into AL


lodsw ;move ES:DI into AX
lodsd ;move ES:DI into EAX

Listing 11: STRINGS.ASM

;This program demonstrates string examples

.model small
.stack
.code

mov ax,@data ;ax points to of data segment


mov ds,ax ;put it into ds
mov es,ax ;put it in es too

mov ah,9 ;function 9 - display string


mov dx,OFFSET Message1 ;ds:dx points to message
int 21h ;call dos function

cld ;clear direction flag

mov si,OFFSET String1 ;make ds:si point to String1


mov di,OFFSET String2 ;make es:di point to String2
mov cx,18 ;length of strings
rep movsb ;copy string1 into string2

mov ah,9 ;function 9 - display string


mov dx,OFFSET Message2 ;ds:dx points to message
int 21h ;call dos function

mov dx,OFFSET String1 ;display String1


int 21h ;call DOS service

mov dx,OFFSET Message3 ;ds:dx points to message


int 21h ;call dos function

mov dx,OFFSET String2 ;display String2


int 21h ;call DOS service
☺ 27
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
mov si,OFFSET Diff1 ;make ds:si point to Diff1
mov di,OFFSET Diff2 ;make es:di point to Diff2
mov cx,39 ;length of strings
repz cmpsb ;compare strings
jnz Not_Equal ;jump if they are not the same

mov ah,9 ;function 9 - display string


mov dx,OFFSET Message4 ;ds:dx points to message
int 21h ;call dos function

jmp Next_Operation

Not_Equal:
mov ah,9 ;function 9 - display string
mov dx,OFFSET Message5 ;ds:dx points to message
int 21h ;call dos function

Next_Operation:
mov di,OFFSET SearchString ;make es:di point to string
mov cx,36 ;length of string
mov al,'H' ;character to search for
repne scasb ;find first match
jnz Not_Found

mov ah,9 ;function 9 - display string


mov dx,OFFSET Message6 ;ds:dx points to message
int 21h ;call dos function

jmp Lodsb_Example

Not_Found:
mov ah,9 ;function 9 - display string
mov dx,OFFSET Message7 ;ds:dx points to message
int 21h ;call dos function

Lodsb_Example:
mov ah,9 ;function 9 - display string
mov dx,OFFSET NewLine ;ds:dx points to message
int 21h ;call dos function

mov cx,17 ;length of string


mov si,OFFSET Message ;DS:SI - address of string
xor bh,bh ;video page - 0
mov ah,0Eh ;function 0Eh - write character
NextChar:
lodsb ;AL = next character in string
int 10h ;call BIOS service
loop NextChar

mov ax,4C00h ;return to DOS


int 21h

.data

CR equ 13
LF equ 10

String1 db "This is a string!$"


String2 db 18 dup(0)
☺ 28
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com

Diff1 db "This string is nearly the same as Diff2$"


Diff2 db "This string is nearly the same as Diff1$"

Equal1 db "The strings are equal$"


Equal2 db "The strings are not equal$"

SearchString db "1293ijdkfjiu938uHello983fjkfjsi98934$"

Message db "This is a message"

Message1 db "Using String instructions example program.$"


Message2 db CR,LF,"String1 is now: $"
Message3 db CR,LF,"String2 is now: $"
Message4 db CR,LF,"Strings are equal!$"
Message5 db CR,LF,"Strings are not equal!$"
Message6 db CR,LF,"Character was found.$"
Message7 db CR,LF,"Character was not found.$"

NewLine db CR,LF,"$"

end

HOW TO FIND OUT THE DOS VERSION


----------------------------------
In many programs it is necessary to find out what the DOS version
is. This could be because you are using a DOS function that needs
the revision to be over a certain level.

Firstly this method simply finds out what the version is.

mov ah,30h ;function 30h - get MS-DOS version


int 21h ;call DOS function

This function returns the major version number in AL and the minor
version number in AH. For example if it was version 4.01, AL would
be 4 and AH would be 01. The problem is that if on DOS 5 and higher
SETVER can change the version that is returned. The way to get round
this is to use this method.

mov ah,33h ;function 33h - actual DOS version


mov al,06h ;subfunction 06h
int 21h ;call interrupt 21h

This will only work on DOS version 5 and above so you need to check
using the former method. This will return the actual version of DOS
even if SETVER has changed the version. This returns the major
version in BL and the minor version in BH.

MULTIPLE PUSHES AND POPS


----------------------------
You can push and pop more than one register on a line in TASM and
A86. This makes your code easier to understand.

push ax bx cx dx ;save registers


pop dx cx bx ax ;restore registers

When TASM (or A86) compiles these lines it translates it into


separate pushes an pops. This way just saves you time typing and
☺ 29
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
makes it easier to understand.

Note: To make these lines compile in A86 you need to put commas (,)
in between the registers.

THE PUSHA/PUSHAD AND POPA/POPAD INSTRUCTIONS


-----------------------------------------------
PUSHA is a useful instruction that pushes all general purpose
registers onto the stack. It accomplishes the same as the following:

temp = SP
push ax
push cx
push dx
push bx
push temp
push bp
push si
push di

The main advantage is that it is less typing, a smaller instruction


and it is a lot faster. POPA does the reverse and pops these
registers off the stack. PUSHAD and POPAD do the same but with the
32-bit registers ESP, EAX, ECX, EDX, EBX, EBP, ESI and EDI.

USING SHIFTS FOR FASTER MULTIPLICATION AND DIVISION


---------------------------------------------------------------
Using MUL's and DIV's is very slow and should be only used when
speed is not needed. For faster multiplication and division you can
shift numbers left or right one or more binary positions. Each shift
is to a power of 2. This is the same as the << and >> operators in
C. There are four different ways of shifting numbers either left or
right one binary position.

SHL Unsigned multiple by two


SHR Unsigned divide by two
SAR Signed divide by two
SAL same as SHL

The syntax for all four is the same.

Syntax:
SHL operand1,operand2

Note: The 8086 cannot have the value of opperand2 other than 1.
286/386 cannot have operand2 higher than 31.

LOOPS
-----------------
Using Loop is a better way of making a loop then using JMP's. You
place the amount of times you want it to loop in the CX register and
every time it reaches the loop statement it decrements CX (CX-1) and
then does a short jump to the label indicated. A short jump means
that it can only 128 bytes before or 127 bytes after the LOOP
instruction.
Syntax:
mov cx,100 ;100 times to loop
Label:
.
☺ 30
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
.
Loop Label: ;decrement CX and loop to Label

This is exactly the same as the following piece of code without


using loop:

mov cx,100 ;100 times to loop


Label:
dec cx ;CX = CX-1
jnz Label ;continue until done

Which do you think is easier to understand? Using DEC/JNZ is faster


on 486's and above and it is useful as you don't have to use CX.

This works because JNZ will jump if the zero flag has not been set.
Setting CX to 0 will set this flag.

HOW TO USE A DEBUGGER


------------------------------
This is a good time to use a debugger to find out what your program
is actually doing. I am going to demonstrate how to use Turbo
Debugger to check what the program is actually doing. First we need
a program which we can look at.

Listing 12: DEBUG.ASM

;example program to demonstrate how to use a debugger

.model tiny
.code
org 100h
start:

push ax ;save value of ax


push bx ;save value of bx
push cx ;save value of cx

mov ax,10 ;first parameter is 10


mov bx,20 ;second parameter is 20
mov cx,3 ;third parameter is 3

Call ChangeNumbers ;call procedure

pop cx ;restore cx
pop bx ;restore bx
pop ax ;restore dx

mov ax,4C00h ;exit to dos


int 21h

ChangeNumbers PROC
add ax,bx ;adds number in bx to ax
mul cx ;multiply ax by cx
mov dx,ax ;return answer in dx
ret
ChangeNumbers ENDP

end start
Now compile it to a .COM file and then type:
☺ 31
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
td name of file

Turbo Debugger then loads. You can see the instructions that make up
your programs, for example the first few lines of this program is
shown as:

cs:0000 50 push ax
cs:0001 53 push bx
cs:0002 51 push cx

Some useful keys for Turbo Debugger:

F5 Size Window
F7 Next Instruction
F9 Run
ALT F4 Step Backwards

The numbers that are moved into the registers are different that the
ones that in the source code because they are represented in their
hex form (base 16) as this is the easiest base to convert to and
from binary and that it is easier to understand than binary also.

At the left of this display there is a box showing the contents of


the registers. At this time all the main registers are empty. Now
press F7 this means that the first line of the program is run. As
the first line pushed the AX register into the stack, you can see
that the stack pointer (SP) has changed. Press F7 until the line
which contains mov ax,000A is highlighted. Now press it again. Now
if you look at the box which contains the contents of the registers
you can see that AX contains A. Press it again and BX now contains
14, press it again and CX contains 3. Now if you press F7 again you
can see that AX now contains 1E which is A+14. Press it again and
now AX contains 5A 1E multiplied by 3. Press F7 again and you will
see that DX now also contains 5A. Press it three more times and you
can see that CX, BX and AX are all set back to their original values
of zero.

MORE OUTPUT IN TEXT MODES


---------------------------------
I am going to cover some more ways of outputting text in text modes.
This first program is an example of how to move the cursor to
display a string of text where you want it to go.

Listing 12: TEXT1.ASM


.model tiny
.code
org 100h
start:
mov dh,12 ;cursor col
mov dl,32 ;cursor row
mov ah,02h ;move cursor to the right place
xor bh,bh ;video page 0
int 10h ;call bios service

mov dx,OFFSET Text ;DS:DX points to message


mov ah,9 ;function 9 - display string
int 21h ;call dos service
☺ 32
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
mov ax,4C00h ;exit to dos
int 21h

Text DB "This is some text$"

This next example demonstrates how to write to the screen using the
file function 40h of interrupt 21h.

Listing 13: TEXT2.ASM

end start
.model small
.stack
.code
mov ax,@data ;set up ds as the segment for data
mov ds,ax ;put this in ds

mov ah,40h ;function 40h - write file


mov bx,1 ;handle = 1 (screen)
mov cx,17 ;length of string
mov dx,OFFSET Text ;DS:DX points to string
int 21h ;call DOS service

mov ax,4C00h ;terminate program


int 21h

.data

Text DB "This is some text"

end

The next program shows how to set up and call function 13h of
interrupt 10h - write string. This has the advantages of being able
to write a string anywhere on the screen in a specified colour but
it is hard to set up.

Listing 14: TEXT3.ASM

.model small
.stack
.code
mov ax,@data ;set up ds as the segment for data
mov es,ax ;put this in es
mov bp,OFFSET Text ;ES:BP points to message

mov ah,13h ;function 13 - write string


mov al,01h ;attrib in bl,move cursor
xor bh,bh ;video page 0
mov bl,5 ;attribute - magenta
mov cx,17 ;length of string
mov dh,5 ;row to put string
mov dl,5 ;column to put string
int 10h ;call BIOS service

mov ax,4C00h ;return to DOS


int 21h

.data
☺ 33
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Text DB "This is some text"
end

The next program demonstrates how to write to the screen using rep
stosw to put the writing in video memory.

Listing 15: TEXT4.ASM

.model small
.stack
.code
mov ax,0B800h ;segment of video buffer
mov es,ax ;put this into es
xor di,di ;clear di, ES:DI points to video memory
mov ah,4 ;attribute - red
mov al,"G" ;character to put there
mov cx,4000 ;amount of times to put it there
cld ;direction - forwards
rep stosw ;output character at ES:[DI]

mov ax,4C00h ;return to DOS


int 21h

end

The next program demonstrates how to write a string to video memory.

Listing 15: DIRECTWR.ASM

;write a string direct to video memory

.model small
.stack
.code
mov ax,@data
mov ds,ax

mov ax,0B800h ;segment of video buffer


mov es,ax ;put this into es

mov ah,3 ;attribute - cyan


mov cx,17 ;length of string to print
mov si,OFFSET Text ;DX:SI points to string
xor di,di

Wr_Char:
lodsb ;put next character into al
mov es:[di],al ;output character to video memory
inc di ;move along to next column
mov es:[di],ah ;output attribute to video memory
inc di
loop Wr_Char ;loop until done

mov ax,4C00h ;return to DOS


int 21h

.data
☺ 34
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Text DB "This is some text"
end

It is left as an exercise to the reader to modify it so that only


one write is made to video memory.

MODE 13h
---------------------------------------------------------------------

Mode 13h is only available on VGA, MCGA cards and above. The reason
that I am talking about this card is that it is very easy to use for
graphics because of how the memory is arranged.

FIRST CHECK THAT MODE 13h IS POSSIBLE


---------------------------------------------------------------------

It would be polite to tell the user if his/her computer cannot


support mode 13h instead of just crashing his computer without
warning. This is how it is done.

Listing 16: CHECK13.ASM

.model small
.stack
.data

NoSupport db "Mode 13h is not supported on this computer."


db ,"You need either a MCGA or VGA video"
db ,"card/monitor.$"
Supported db "Mode 13h is supported on this computer.$"

.code

mov ax,@data ;set up DS to point to data segment


mov ds,ax ;use ax

call Check_Mode_13h ;check if mode 13h is possible


jc Error ;if cf=1 there is an error

mov ah,9 ;function 9 - display string


mov dx,OFFSET Supported ;DS:DX points to message
int 21h ;call DOS service

jmp To_DOS ;exit to DOS

Error:
mov ah,9 ;function 9 - display string
mov dx,OFFSET NoSupport ;DS:DX points to message
int 21h ;call DOS service

To_DOS:
mov ax,4C00h ;exit to DOS
int 21h

Check_Mode_13h PROC ;Returns: CF = 1 Mode 13h not possible

mov ax,1A00h ;Request video info for VGA


int 10h ;Get Display Combination Code
cmp al,1Ah ;Is VGA or MCGA present?
☺ 35
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
je Mode_13h_OK ;mode 13h is supported
stc ;mode 13h isn't supported CF=1

Mode_13h_OK:
ret

Check_Mode_13h ENDP

end

Just use this to check if mode 13h is supported at the beginning of


your program to make sure that you can go into that mode.

SETTING THE VIDEO MODE


--------------------------
It is very simple to set the mode. This is how it is done.

mov ax,13h ;set mode 13h


int 10h ;call BIOS service

Once we are in mode 13h and have finished what we are doing we need
to we need to set it to the video mode that it was in previously.
This is done in two stages. Firstly we need to save the video mode
and then reset it to that mode.

VideoMode db ?
....
mov ah,0Fh ;function 0Fh - get current mode
int 10h ;Bios video service call
mov VideoMode,al ;save current mode

;program code here

mov al,VideoMode ;set previous video mode


xor ah,ah ;clear ah - set mode
int 10h ;call bios service
mov ax,4C00h ;exit to dos
int 21h ;call dos function

Now that we can get into mode 13h lets do something. Firstly lets
put some pixels on the screen.

Function 0Ch: Write Graphics Pixel

This makes a colour dot on the screen at the specified graphics


coordinates.

INPUT:
AH = 0Ch
AL = Color of the dot
CX = Screen column (x coordinate)
DX = Screen row (y coordinate)

OUTPUT:
Nothing except pixel on screen.

Note: This function performs exclusive OR (XOR) with the new colour
value and the current context of the pixel of bit 7 of AL is set.
☺ 36
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
This program demonstrates how to plot pixels. It should plot four
red pixels into the middle of the screen.

Listing 17: PIXINT.ASM

;example of plotting pixels in mode 13 using bios services -


;INT 10h

.model tiny
.code
org 100h

start:
mov ax,13 ;mode = 13h
int 10h ;call bios service

mov ah,0Ch ;function 0Ch


mov al,4 ;color 4 - red
mov cx,160 ;x position = 160
mov dx,100 ;y position = 100
int 10h ;call BIOS service

inc dx ;plot pixel downwards


int 10h ;call BIOS service
inc cx ;plot pixel to right
int 10h ;call BIOS service
dec dx ;plot pixel up
int 10h ;call BIOS service

xor ax,ax ;function 00h - get a key


int 16h ;call BIOS service
mov ax,3 ;mode = 3
int 10h ;call BIOS service

mov ax,4C00h ;exit to DOS


int 21h

end start

SOME OPTIMIZATIONS
---------------------------------------------------------------------

This method isn't too fast and we could make it a lot faster. How?
By writing direct to video memory. This is done quite easily.

The VGA segment is 0A000h. To work out where each pixel goes you use
this simple formula to get the offset.

Offset = X + ( Y x 320 )

All we do is to put a number at this location and there is now a


pixel on the screen. The number is what colour it is.

There are two instructions that we can use to put a pixel on the
screen, firstly we could use stosb to put the value in AL to ES:DI
or we can use a new form of the MOV instruction like this:

mov es:[di], color


☺ 37
Freshersworld.com Guide to 80x86 Assembly
www.Freshersworld.com
Which should we use? When we are going to write pixels to the screen
we need to do so as fast as it is possible.

Instruction Pentium 486 386 286 86

STOSB 3 5 4 3 11
MOV AL to SEG:OFF 1 1 4 3 10

If you use the MOV method you may need to increment DI (which STOSB
does).

[ put pixel instruction]

If we had a program which used sprites which need to be continuously


draw, erased and then redraw you will have problems with flicker. To
avoid this you can use a 'double buffer'. This is another part of
memory which you write to and then copy all the information onto the
screen.

Provided by
www.Freshersworld.com
First Job ….. ! Dream Job ….! Freshersworld.com
Some Sample 8086 Programs with Source Codes
1. Sort an array of signed integers and search for the presence of an item in the
sorted array using binary search
SourceCode

2. Given a string of characters terminated by 00H, determine if it is a palindrome.


If 'Yes' output the message " The given string is a palindrome.
If 'No' output the message "No, it is not a palindrome"
SourceCode

3. Find the factorial of a given integer using a recursive procedure.


SourceCode

4. Using BIOS software interrupts for printer interface, write a program to print a file
SourceCode

5. Display the ASCII characters set on the screen using DOS int10h
SourceCode

6. Accept names from kryboard and display them on the screen using Int21h
SourceCode

7. Using BIOS software interrrupts for video services, write a program to draw a
rectangle on the screen given the diagonal co-ordinates
SourceCode
1. Sort an array of signed integers and search for the presence of an item in the sorted
array using binary search
SourceCode
.MODEL SMALL
.STACK 64
DATA SEGMENT
KEY DB 04H
NUM DB 05H
ARRAY DB 05H
DB 04H
DB 03H
DB 02H
DB 01H

MID DB 00H
MSG1 DB 'PRESENT$'
MSG2 DB 'ABSENT$'
MSG3 DB 'SORTED LIST > $'
MSG4 DB 'KEY > $'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: CALL CLS
MOV DX,0000H
CALL CURSOR
MOV AX,DATA
MOV DS,AX
;Bubble Sort
MOV DL,NUM ;counter1
LIN1: DEC DL
JZ LOUT1
MOV CL,DL ;counter2
LEA BX,ARRAY ;pointer to first number
LIN2: MOV AL,[BX]
CMP AL,[BX+1]
JS LESS ;ARRAY(I)<ARRAY(I+1)
XCHG AL,[BX+1];
MOV [BX],AL
LESS: INC BX
DEC CL
JNZ LIN2
JMP LIN1
;Display
LOUT1: LEA DX,MSG3
MOV AH,09H
INT 21H

LEA BX,ARRAY
MOV CH,00H
MOV CL,NUM
DISP1: MOV AL,[BX]
MOV AH,AL
PUSH BX
PUSH CX
CALL SHOW
POP CX
POP BX
INC BX
LOOP DISP1

MOV DX,0200H
CALL CURSOR
LEA DX,MSG4
MOV AH,09H
INT 21H
MOV AL,KEY
MOV AH,AL
CALL SHOW
;Binary Search
MOV CX,01H ;lower
MOV DH,00H
MOV DL,NUM ;upper

LOOP1: CMP DX,CX


JC NFOUND
MOV AX,CX
ADD AX,DX
SHR AX,1
MOV MID,AL
LEA BX,ARRAY
ADD BX,AX
DEC BX
MOV AL,[BX]
CMP AL,KEY
JE FOUND
JC LHALF
UHALF: MOV DH,00H
MOV DL,MID
DEC DX
JMP LOOP1
LHALF: MOV CH,00H
MOV CL,MID
INC CX
JMP LOOP1
FOUND: LEA DX,MSG1
MOV AH,09H
INT 21H
JMP HALT

NFOUND: LEA DX,MSG2


MOV AH,09H
INT 21H
HALT: MOV AX,4C00H
INT 21H

;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET
;SET CURSOR
CURSOR: MOV AH,02H
MOV BH,00H
INT 10H
RET

SHOW: MOV BX,AX


AND BX,0F00FH
MOV CL,04H
SHR BH,CL
ADD BX,3030H
MOV AH,02H
MOV DL,BH
INT 21H
MOV AH,02H
MOV DL,BL
INT 21H
MOV AH,02H
MOV DL,' '
INT 21H
RET

CODE ENDS
END START
2. Given a string of characters terminated by 00H, determine if it is a palindrome.
If 'Yes' output the message " The given string is a palindrome.
If 'No' output the message "No, it is not a palindrome"
SourceCode

.MODEL SMALL
.STACK 64

DATA SEGMENT
MSG DB 'ENTER STRING TO BE CHECKED FOR PALINDROME > $'
MSG1 DB 'YES ,A PALINDROME $'
MSG2 DB 'NOT A PALINDROME $'
STRING LABEL BYTE
MAXLEN DB 20
STRLEN DB ?
STRFLD DB 20 DUP(' ')
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX

CALL CLS ;clear screen


CALL CURSOR ;set cursor at (0,0)
CALL READ

CALL CLS
CALL CURSOR

LEA BX,STRFLD
MOV CH,00H
MOV CL,STRLEN
CMP CX,02H
JC PAL
MOV DX,BX
ADD DX,CX
DEC DX
SHR CX,1

AGAIN: MOV AL,[BX]


XCHG BX,DX
CMP AL,[BX]
JNE NOTPAL
XCHG BX,DX
INC BX
DEC DX
LOOP AGAIN

PAL: MOV AH,09H


LEA DX,MSG1
INT 21H
JMP HALT
NOTPAL: MOV AH,09H
LEA DX,MSG2
INT 21H

HALT: MOV AX,4C00H ;terminate program


INT 21H

;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET

;SET CURSOR
CURSOR: MOV DX,0000H
MOV AH,02H
MOV BH,00H
INT 10H
RET

READ: MOV AH,09H ;display message


LEA DX,MSG
INT 21H

MOV AH,0AH
LEA DX,STRING
INT 21H
RET

WRITE: MOV AH,09H


LEA DX,STRFLD
INT 21H
RET

CODE ENDS
END START
3. Find the factorial of a given integer using a recursive procedure.
SourceCode
.MODEL SMALL
.STACK 64

DATA SEGMENT
MSG1 DB 'ENTER A DIGIT > $'
NUM DB 00H
MSG2 DB '!=(hexadecimal) $'
MSG3 DB 'INVALID INPUT or OVERFLOW $'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: CALL CLS ;clears screen
MOV DX,0000H
CALL CURSOR ;set cursor at (0,0) for number
MOV AX,DATA
MOV DS,AX
CALL INPUT
CALL CLS
MOV DX,0000H
CALL CURSOR

CMP NUM,30H
JC INVALID
CMP NUM,39H
JNC INVALID
SUB NUM,30H

MOV CL,NUM ;CX=NUM


MOV CH,00H
MOV AX,0001H ;AX=1 (AX used to hold factorial value)
CALL FACT
PUSH AX
MOV AL,NUM ;print number
CALL PCHAR
MOV DX,0001H
CALL CURSOR ;set cursor at (1,0) for message
LEA DX,MSG2
MOV AH,09H
INT 21H
POP AX
PUSH AX
AND AX,0F000H
MOV CL,0CH
SHR AX,CL ;first digit
CALL PCHAR ;print first digit
MOV DX,0012H
CALL CURSOR ;set cursor at (18,0) for digit2
POP AX
PUSH AX
AND AX,0F00H
MOV AL,AH ;second digit
CALL PCHAR ;print second digit
MOV DX,0013H
CALL CURSOR ;set cursor at (19,0) for digit3
POP AX
PUSH AX
AND AX,00F0H
MOV CL,04H
SHR AX,CL ;third digit
CALL PCHAR ;print third digit
MOV DX,0014H
CALL CURSOR ;set cursor at (20,0) for digit4
POP AX
AND AX,000FH ;fourth digit
CALL PCHAR ;print fourth digit
JMP HALT

INVALID:LEA DX,MSG3
MOV AH,09H
INT 21H
HALT: MOV AX,4C00H ;terminate digit
INT 21H

;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET

;SETS CURSOR POSITION AT (DL,DH)


CURSOR: MOV AH,02H
MOV BH,00H
INT 10H
RET

INPUT: LEA DX,MSG1


MOV AH,09H
INT 21H

MOV AH,01H
INT 21H
MOV NUM,AL
RET

FACT: CMP CX,02H


JC EXIT
PUSH CX
DEC CX
CALL FACT
POP CX
MUL CX
EXIT: RET

;PRINTS CHARACTER AT CURRENT CURSOR POSITION


PCHAR: ADD AL,30H
CMP AL,3AH
JC L1
ADD AL,07H
L1: MOV AH,09H
MOV BX,0007H
MOV CX,01H
INT 10H
RET

CODE ENDS
END START
5. Display the ASCII characters set on the screen using DOS int10h
SourceCode
.MODEL SMALL
.STACK 64

DATA SEGMENT
NUM DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;initialize Data Segment register
MOV DS,AX
CALL CLS ;clear screen
MOV CX,0100H ;counter=256(number of ascii characters)
MOV DX,0000H ;cursor at top-left corner
AGAIN: PUSH CX
PUSH DX
CALL CURSOR ;cursor set for d1
MOV AL,NUM
AND AL,0F0H
MOV CL,04H
SHR AL,CL ;higher nibble of ascii index
ADD AL,30H
CMP AL,3AH
JC L1
ADD AL,07H ;ascii equivalent of higher nibble
L1: CALL PCHAR ;print higher nibble
POP DX
INC DL
PUSH DX
CALL CURSOR ;cursor set for d2
MOV AL,NUM
AND AL,0FH ;lower nibble of ascii index
ADD AL,30H
CMP AL,3AH
JC L2
ADD AL,07H ;ascii equivalent of lower nibble
L2: CALL PCHAR ;print lower nibble
POP DX
ADD DL,02H
PUSH DX
CALL CURSOR ;cursor set for ascii character
MOV AL,NUM
CALL PCHAR ;print ascii character
POP DX
POP CX
ADD DL,02H
CMP DL,50H
JC L3
MOV DL,00H ;new line
INC DH
L3: INC NUM ;NUM holds next ascii character
LOOP AGAIN
MOV AX,4C00H ;terminate program
INT 21H
;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET

;SETS CURSOR POSITION AT (DL,DH)


CURSOR: MOV AH,02H
MOV BH,00H
INT 10H
RET

;PRINTS CHARACTER AT CURRENT CURSOR POSITION


PCHAR: MOV AH,09H
MOV BX,0007H
MOV CX,01H
INT 10H
RET
CODE ENDS
END START
6. Accept names from kryboard and display them on the screen using Int21h
SourceCode
.MODEL SMALL
.STACK 64

DATA SEGMENT
NUM DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;initialize Data Segment register
MOV DS,AX
CALL CLS ;clear screen
MOV CX,0100H ;counter=256(number of ascii characters)
MOV DX,0000H ;cursor at top-left corner
AGAIN: PUSH CX
PUSH DX
CALL CURSOR ;cursor set for d1
MOV AL,NUM
AND AL,0F0H
MOV CL,04H
SHR AL,CL ;higher nibble of ascii index
ADD AL,30H
CMP AL,3AH
JC L1
ADD AL,07H ;ascii equivalent of higher nibble
L1: CALL PCHAR ;print higher nibble
POP DX
INC DL
PUSH DX
CALL CURSOR ;cursor set for d2
MOV AL,NUM
AND AL,0FH ;lower nibble of ascii index
ADD AL,30H
CMP AL,3AH
JC L2
ADD AL,07H ;ascii equivalent of lower nibble
L2: CALL PCHAR ;print lower nibble
POP DX
ADD DL,02H
PUSH DX
CALL CURSOR ;cursor set for ascii character
MOV AL,NUM
CALL PCHAR ;print ascii character
POP DX
POP CX
ADD DL,02H
CMP DL,50H
JC L3
MOV DL,00H ;new line
INC DH
L3: INC NUM ;NUM holds next ascii character
LOOP AGAIN
MOV AX,4C00H ;terminate program
INT 21H
;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET

;SETS CURSOR POSITION AT (DL,DH)


CURSOR: MOV AH,02H
MOV BH,00H
INT 10H
RET

;PRINTS CHARACTER AT CURRENT CURSOR POSITION


PCHAR: MOV AH,09H
MOV BX,0007H
MOV CX,01H
INT 10H
RET
CODE ENDS
END START
7. Using BIOS software interrrupts for video services, write a program to draw a
rectangle on the screen given the diagonal co-ordinates
SourceCode

.MODEL SMALL
.STACK 64

DATA SEGMENT
MSG DB 'ENTER(xleft,ytop,xright,ybottom) OF RECTANGLE > $'
TEN DB 0AH
XL DW 00H
YT DW 00H
XR DW 00H
YB DW 00H
POINTS LABEL BYTE
MAXPLEN DB 20
PLEN DB ?
POINTSFLD DB 20 DUP(' ')
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CALL CLS
CALL CURSOR
CALL INPUT

CALL CONVERT

MOV AH,0FH
INT 10H
PUSH AX

CALL SETMODE
CALL DRAW
CALL GETCH

POP AX
MOV AH,00H
INT 10H

MOV AX,4C00H
INT 21H

;CLEARS SCREEN
CLS: MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET
;SET CURSOR
CURSOR: MOV DX,0000H
MOV AH,02H
MOV BH,00H
INT 10H
RET

;READ CO-ORDINATES STRING


INPUT: MOV AH,09H
LEA DX,MSG
INT 21H

MOV AH,0AH
LEA DX,POINTS
INT 21H
RET

;SAVES INTEGER VALUES OF CO-ORDINATES INTO XL,YT,XR,YB FIELDS


CONVERT:LEA SI,POINTSFLD
MOV CL,PLEN
NEXTNUM:MOV AX,0000H
NEXTDIG:MOV DL,[SI]
CMP DL,' '
JE BLANK
MUL TEN
MOV DH,00H
SUB DL,30H
ADD AX,DX
INC SI
DEC CL
JNZ NEXTDIG
JZ SAVE
BLANK: INC SI
PUSH AX
DEC CL
JNZ NEXTNUM
SAVE: LEA BX,YB
MOV [BX],AX ;yb
SUB BX,02H
POP AX
MOV [BX],AX ;xr
SUB BX,02H
POP AX
MOV [BX],AX ;yt
SUB BX,02H
POP AX
MOV [BX],AX ;xl
RET

SETMODE:MOV AH,00H
MOV AL,04H
INT 10H
MOV AH,0BH
MOV BH,07
MOV BL,02
INT 10H
RET

;DRAWS RECTANGLE
DRAW: MOV CX,XL
MOV DX,YT
CALL DROW
MOV CX,XL
MOV DX,YB
CALL DROW
MOV CX,XL
MOV DX,YT
CALL DCOL
MOV CX,XR
MOV DX,YT
CALL DCOL
RET

;DRAWS HORIZONTAL EDGE OF RECTANGLE


DROW: MOV AH,0CH
MOV AL,01H
L1: INT 10H
INC CX
CMP CX,XR
JNE L1
RET

;DRAWS VERTICAL EDGE OF RECTANGLE


DCOL: MOV AH,0CH
MOV AL,01H
L2: INT 10H
INC DX
CMP DX,YB
JNE L2
RET

;GET CHARACTER FROM KEYBOARD


GETCH: MOV AH,10H
INT 16H
RET

CODE ENDS
END START

Anda mungkin juga menyukai