Professional Documents
Culture Documents
56. What is join dependency and inclusion dependency? 64. Brief theory of Network, Hierarchical schemas and their
Join Dependency: properties
A Join dependency is generalization of Multivalued Network schema uses a graph data structure to organize
dependency.A JD {R1, R2, ..., Rn} is said to hold over a records example for such a database management system is
relation R if R1, R2, R3, ..., Rn is a lossless-join CTCG while a hierarchical schema uses a tree data structure
decomposition of R . There is no set of sound and complete example for such a system is IMS.
inference rules for JD.
Inclusion Dependency: 65. What is a query?
An Inclusion Dependency is a statement of the form that A query with respect to DBMS relates to user commands
some columns of a relation are contained in other columns. that are used to interact with a data base. The query language
A foreign key constraint is an example of inclusion can be classified into data definition language and data
dependency. manipulation language.
57. What is durability in DBMS? 66. What do you mean by Correlated subquery?
Once the DBMS informs the user that a transaction has Subqueries, or nested queries, are used to bring back a set of
successfully completed, its effects should persist even if the rows to be used by the parent query. Depending on how the
system crashes before all its changes are reflected on disk. subquery is written, it can be executed once for the parent
This property is called durability. query or it can be executed once for each row returned by
the parent query. If the subquery is executed for each row of
58. What do you mean by atomicity and aggregation? the parent, this is called a correlated subquery.
Atomicity: A correlated subquery can be easily identified if it contains
Either all actions are carried out or none are. Users should any references to the parent subquery columns in its
not have to worry about the effect of incomplete WHERE clause. Columns from the subquery cannot be
transactions. DBMS ensures this by undoing the actions of referenced anywhere else in the parent query. The following
incomplete transactions. example demonstrates a non-correlated subquery.
Aggregation: E.g. Select * From CUST Where '10/03/1990' IN (Select
A concept which is used to model a relationship between a ODATE From ORDER Where CUST.CNUM =
collection of entities and relationships. It is used when we ORDER.CNUM)
need to express a relationship among relationships.
67. What are the primitive operations common to all record
59. What is a Phantom Deadlock? management systems?
Addition, deletion and modification.
68. Name the buffer in which all the commands that are SQL is a nonprocedural language that is designed
typed in are stored specifically for data access operations on normalized
‘Edit’ Buffer relational database structures. The primary difference
between SQL and other conventional programming
69. What are the unary operations in Relational Algebra? languages is that SQL statements specify what data
PROJECTION and SELECTION. operations should be performed rather than how to perform
them.
70. Are the resulting relations of PRODUCT and JOIN
operation the same? 78. Name the three major set of files on disk that compose a
No. database in Oracle
PRODUCT: Concatenation of every row in one relation with There are three major sets of files on disk that compose a
every row in another. database. All the files are binary. These are
JOIN: Concatenation of rows from one relation and related Ø Database files
rows from another. Ø Control files
Ø Redo logs
71. What is RDBMS KERNEL? The most important of these are the database files where the
Two important pieces of RDBMS architecture are the kernel, actual data resides. The control files and the redo logs
which is the software, and the data dictionary, which consists support the functioning of the architecture itself.
of the system-level data structures used by the kernel to All three sets of files must be present, open, and available to
manage the database Oracle for any data on the database to be useable. Without
You might think of an RDBMS as an operating system (or these files, you cannot access the database, and the database
set of subsystems), designed specifically for controlling data administrator might have to recover some or all of the
access; its primary functions are storing, retrieving, and database using a backup, if there is one.
securing data. An RDBMS maintains its own list of
authorized users and their associated privileges; manages 79. What is an Oracle Instance?
memory caches and paging; controls locking for concurrent The Oracle system processes, also known as Oracle
resource usage; dispatches and schedules user requests; and background processes, provide functions for the user
manages space usage within its table-space structures processes—functions that would otherwise be done by the
. user processes themselves
72. Name the sub-systems of a RDBMS Oracle database-wide system memory is known as the SGA,
I/O, Security, Language Processing, Process Control, the system global area or shared global area. The data and
Storage Management, Logging and Recovery, Distribution control structures in the SGA are shareable, and all the
Control, Transaction Control, Memory Management, Lock Oracle background processes and user processes can use
Management them.
The combination of the SGA and the Oracle background
73. Which part of the RDBMS takes care of the data processes is known as an Oracle instance
dictionary? How
Data dictionary is a set of tables and database objects that is 80. What are the four Oracle system processes that must
stored in a special area of the database and maintained always be up and running for the database to be useable
exclusively by the kernel. The four Oracle system processes that must always be up
and running for the database to be useable include DBWR
74. What is the job of the information stored in data- (Database Writer), LGWR (Log Writer), SMON (System
dictionary? Monitor), and PMON (Process Monitor).
The information in the data dictionary validates the existence 81. What are database files, control files and log files. How
of the objects, provides access to them, and maps the actual many of these files should a database have at least? Why?
physical storage location. Database Files
The database files hold the actual data and are typically the
75. Not only RDBMS takes care of locating data it also largest in size. Depending on their sizes, the tables (and
determines an optimal access path to store or retrieve the other objects) for all the user accounts can go in one
data database file—but that's not an ideal situation because it does
not make the database structure very flexible for controlling
76. How do you communicate with an RDBMS? access to storage for different users, putting the database on
You communicate with an RDBMS using Structured Query different disk drives, or backing up and restoring just part of
Language (SQL) the database.
You must have at least one database file but usually, more
77. Define SQL and state the differences between SQL and than one files are used. In terms of accessing and using the
other conventional programming Languages 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 Each Oracle block is numbered sequentially for each
than the size at which they were created database file starting at 1. Two blocks can have the same
Control Files block address if they are in different database files.
The control files and redo logs support the rest of the
architecture. Any database must have at least one control 84. What is database Trigger?
file, although you typically have more than one to guard A database trigger is a PL/SQL block that can defined to
against loss. The control file records the name of the automatically execute for insert, update, and delete
database, the date and time it was created, the location of the statements against a table. The trigger can e defined to
database and redo logs, and the synchronization information execute once for the entire statement or once for every row
to ensure that all three sets of files are always in step. Every that is inserted, updated, or deleted. For any one table, there
time you add a new database or redo log file to the database, are twelve events for which you can define database triggers.
the information is recorded in the control files. A database trigger can call database procedures that are also
Redo Logs written in PL/SQL.
Any database must have at least two redo logs. These are the
journals for the database; the redo logs record all changes to 85. Name two utilities that Oracle provides, which are use
the user objects or system objects. If any type of failure for backup and recovery.
occurs, the changes recorded in the redo logs can be used to Along with the RDBMS software, Oracle provides two
bring the database to a consistent state without losing any utilities that you can use to back up and restore the database.
committed transactions. In the case of non-data loss failure, These utilities are Export and Import.
Oracle can apply the information in the redo logs The Export utility dumps the definitions and data for the
automatically without intervention from the DBA. specified part of the database to an operating system binary
The redo log files are fixed in size and never grow file. The Import utility reads the file produced by an export,
dynamically from the size at which they were created. recreates the definitions of objects, and inserts the data
If Export and Import are used as a means of backing up and
82. What is ROWID? recovering the database, all the changes made to the database
The ROWID is a unique database-wide physical address for cannot be recovered since the export was performed. The
every row on every table. Once assigned (when the row is best you can do is recover the database to the time when the
first inserted into the database), it never changes until the export was last performed.
row is deleted or the table is dropped.
The ROWID consists of the following three components, the 86. What are stored-procedures? And what are the
combination of which uniquely identifies the physical advantages of using them.
storage location of the row. Stored procedures are database objects that perform a user
Ø Oracle database file number, which contains the block defined operation. A stored procedure can have a set of
with the rows compound SQL statements. A stored procedure executes the
Ø Oracle block address, which contains the row SQL commands and returns the result to the client. Stored
Ø The row within the block (because each block can hold procedures are used to reduce network traffic.
many rows)
The ROWID is used internally in indexes as a quick means 87. How are exceptions handled in PL/SQL? Give some of
of retrieving rows with a particular key value. Application the internal exceptions' name
developers also use it in SQL statements as a quick way to PL/SQL exception handling is a mechanism for dealing with
access a row once they know the ROWID run-time errors encountered during procedure execution. Use
of this mechanism enables execution to continue if the error
83. What is Oracle Block? Can two Oracle Blocks have the is not severe enough to cause procedure termination.
same address? The exception handler must be defined within a subprogram
Oracle "formats" the database files into a number of Oracle specification. Errors cause the program to raise an exception
blocks when they are first created—making it easier for the with a transfer of control to the exception-handler block.
RDBMS software to manage the files and easier to read data After the exception handler executes, control returns to the
into the memory areas. block in which the handler was defined. If there are no more
The block size should be a multiple of the operating system executable statements in the block, control returns to the
block size. Regardless of the block size, the entire block is caller.
not available for holding data; Oracle takes up some space to User-Defined Exceptions
manage the contents of the block. This block header has a PL/SQL enables the user to define exception handlers in the
minimum size, but it can grow. declarations area of subprogram specifications. User
These Oracle blocks are the smallest unit of storage. accomplishes this by naming an exception as in the
Increasing the Oracle block size can improve performance, following example:
but it should be done only when the database is first created. ot_failure EXCEPTION;
In this case, the exception name is ot_failure. Code a) Are totally unnormalised
associated with this handler is written in the EXCEPTION b) Are always in 1NF
specification area as follows: c) Can be further denormalised
EXCEPTION d) May have multi-valued attributes
when OT_FAILURE then
out_status_code := g_out_status_code; (b) Are always in 1NF
out_msg := g_out_msg;
The following is an example of a subprogram exception: 90. Spurious tuples may occur due to
EXCEPTION i. Bad normalization
when NO_DATA_FOUND then ii. Theta joins
g_out_status_code := 'FAIL'; iii. Updating tables from join
RAISE ot_failure; a) i & ii b) ii & iii
Within this exception is the RAISE statement that transfers c) i & iii d) ii & iii
control back to the ot_failure exception handler. This
technique of raising the exception is used to invoke all user- (a) i & iii because theta joins are joins made on keys that are
defined exceptions. not primary keys.
System-Defined Exceptions
Exceptions internal to PL/SQL are raised automatically upon 91. A B C is a set of attributes. The functional dependency is
error. NO_DATA_FOUND is a system-defined exception. as follows
Table below gives a complete list of internal exceptions. AB -> B
AC -> C
PL/SQL internal exceptions. C -> B
PL/SQL internal exceptions. a) is in 1NF
b) is in 2NF
Exception Name Oracle Error c) is in 3NF
CURSOR_ALREADY_OPEN ORA-06511 d) is in BCNF
DUP_VAL_ON_INDEX ORA-00001
INVALID_CURSOR ORA-01001 (a) is in 1NF since (AC)+ = { A, B, C} hence AC is the
INVALID_NUMBER ORA-01722 primary key. Since C B is a FD given, where neither C is a
LOGIN_DENIED ORA-01017 Key nor B is a prime attribute, this it is not in 3NF. Further
NO_DATA_FOUND ORA-01403 B is not functionally dependent on key AC thus it is not in
NOT_LOGGED_ON ORA-01012 2NF. Thus the given FDs is in 1NF.
PROGRAM_ERROR ORA-06501
STORAGE_ERROR ORA-06500 92. In mapping of ERD to DFD
TIMEOUT_ON_RESOURCE ORA-00051 a) entities in ERD should correspond to an existing
TOO_MANY_ROWS ORA-01422 entity/store in DFD
TRANSACTION_BACKED_OUT ORA-00061 b) entity in DFD is converted to attributes of an entity in
VALUE_ERROR ORA-06502 ERD
ZERO_DIVIDE ORA-01476 c) relations in ERD has 1 to 1 correspondence to processes in
DFD
In addition to this list of exceptions, there is a catch-all d) relationships in ERD has 1 to 1 correspondence to flows
exception named OTHERS that traps all errors for which in DFD
specific error handling has not been established.
(a) entities in ERD should correspond to an existing
88. Does PL/SQL support "overloading"? Explain entity/store in DFD
The concept of overloading in PL/SQL relates to the idea
that you can define procedures and functions with the same 93. A dominant entity is the entity
name. PL/SQL does not look only at the referenced name, a) on the N side in a 1 : N relationship
however, to resolve a procedure or function call. The count b) on the 1 side in a 1 : N relationship
and data types of formal parameters are also considered. c) on either side in a 1 : 1 relationship
PL/SQL also attempts to resolve any procedure or function d) nothing to do with 1 : 1 or 1 : N relationship
calls in locally defined packages before looking at globally
defined packages or internal functions. To further ensure (b) on the 1 side in a 1 : N relationship
calling the proper procedure, you can use the dot notation. 94. Select 'NORTH', CUSTOMER From CUST_DTLS
Prefacing a procedure or function name with the package Where REGION = 'N' Order By
name fully qualifies any procedure or function reference. CUSTOMER Union Select 'EAST', CUSTOMER From
CUST_DTLS Where REGION = 'E' Order By CUSTOMER
89. Tables derived from the ERD The above is
a) Not an error If a cold backup is performed, the only option available in
b) Error - the string in single quotes 'NORTH' and 'SOUTH' the event of data file loss is restoring all the files from the
c) Error - the string should be in double quotes latest backup. All work performed on the database since the
d) Error - ORDER BY clause last backup is lost.
Ø Hot Backup:
(d) Error - the ORDER BY clause. Since ORDER BY clause Some sites (such as worldwide airline reservations systems)
cannot be used in UNIONS cannot shut down the database while making a backup copy
of the files. The cold backup is not an available option.
95. What is Storage Manager? So different means of backing up database must be used —
It is a program module that provides the interface between the hot backup. Issue a SQL command to indicate to Oracle,
the low-level data stored in database, application programs on a tablespace-by-tablespace basis, that the files of the
and queries submitted to the system. tablespace are to backed up. The users can continue to make
full use of the files, including making changes to the data.
96. What is Buffer Manager? Once the user has indicated that he/she wants to back up the
It is a program module, which is responsible for fetching tablespace files, he/she can use the operating system to copy
data from disk storage into main memory and deciding what those files to the desired backup destination.
data to be cache in memory. The database must be running in ARCHIVELOG mode for
the hot backup option.
97. What is Transaction Manager? If a data loss failure does occur, the lost database files can be
It is a program module, which ensures that database, remains restored using the hot backup and the online and offline redo
in a consistent state despite system failures and concurrent logs created since the backup was done. The database is
transaction execution proceeds without conflicting. restored to the most consistent state without any loss of
committed transactions.
98. What is File Manager?
It is a program module, which manages the allocation of 103. What are Armstrong rules? How do we say that they are
space on disk storage and data structure used to represent complete and/or sound
information stored on a disk. The well-known inference rules for FDs
Ø Reflexive rule :
99. What is Authorization and Integrity manager? If Y is subset or equal to X then X Y.
It is the program module, which tests for the satisfaction of Ø Augmentation rule:
integrity constraint and checks the authority of user to access If X Y then XZ YZ.
data. Ø Transitive rule:
If {X Y, Y Z} then X Z.
Ø Decomposition rule :
100. What are stand-alone procedures?
Procedures that are not part of a package are known as stand- If X YZ then X Y.
alone because they independently defined. A good example Ø Union or Additive rule:
of a stand-alone procedure is one written in a SQL*Forms If {X Y, X Z} then X YZ.
application. These types of procedures are not available for Ø Pseudo Transitive rule :
reference from other Oracle tools. Another limitation of If {X Y, WY Z} then WX Z.
stand-alone procedures is that they are compiled at run time, Of these the first three are known as Amstrong Rules. They
which slows execution. are sound because it is enough if a set of FDs satisfy these
three. They are called complete because using these three
101. What are cursors give different types of cursors. rules we can generate the rest all inference rules.
PL/SQL uses cursors for all database information accesses
statements. The language supports the use two types of 104. How can you find the minimal key of relational
cursors schema?
Ø Implicit Minimal key is one which can identify each tuple of the
Ø Explicit given relation schema uniquely. For finding the minimal key
it is required to find the closure that is the set of all attributes
102. What is cold backup and hot backup (in case of that are dependent on any given set of attributes under the
Oracle)? given set of functional dependency.
Ø Cold Backup: Algo. I Determining X+, closure for X, given set of FDs F
It is copying the three sets of files (database files, redo logs, 1. Set X+ = X
and control file) when the instance is shut down. This is a 2. Set Old X+ = X+
straight file copy, usually from the disk directly to tape. You 3. For each FD Y Z in F and if Y belongs to X+ then add Z
must shut down the instance to guarantee a consistent copy. to X+
4. Repeat steps 2 and 3 until Old X+ = X+
7. What are the wildcards used for pattern matching?
Algo.II Determining minimal K for relation schema R, given _ for single character substitution and % for multi-character
set of FDs F substitution
1. Set K to R that is make K a set of all attributes in R
2. For each attribute A in K 8. State true or false. EXISTS, SOME, ANY are operators in
a. Compute (K – A)+ with respect to F SQL.
b. If (K – A)+ = R then set K = (K – A)+ True
2. What operator performs pattern matching? 16. What command is used to create a table by copying the
LIKE operator structure of another table?
Answer :
3. What operator tests column for the absence of data? CREATE TABLE .. AS SELECT command
IS NULL operator Explanation :
To copy only the structure, the WHERE clause of the
4. Which command executes the contents of a specified file? SELECT command should contain a FALSE statement as in
START <filename> or @<filename> the following.
CREATE TABLE NEWTABLE AS SELECT * FROM
5. What is the parameter substitution symbol used with EXISTINGTABLE WHERE 1=2;
INSERT INTO command? 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?
6. Which command displays the SQL command in the SQL SELECT REPLACE(TRANSLATE(LTRIM(RTRIM('!!
buffer, and then executes it? ATHEN !!','!'), '!'), 'AN', '**'),'*','TROUBLE') FROM
RUN DUAL;
TROUBLETHETROUBLE FLOOR
18. What will be the output of the following query? 28. What is the output of the following query?
SELECT SELECT TRUNC(1234.5678,-2) FROM DUAL;
DECODE(TRANSLATE('A','1234567890','1111111111'), 1200
'1','YES', 'NO' );
Answer :
NO
Explanation :
The query checks whether a given string is a numerical digit.
SQL – QUERIES
19. What does the following query do?
SELECT SAL + NVL(COMM,0) FROM EMP; I. SCHEMAS
This displays the total salary of all employees. The null
values in the commission column will be replaced by 0 and Table 1 : STUDIES
added to salary.
PNAME (VARCHAR), SPLACE (VARCHAR), COURSE
(VARCHAR), CCOST (NUMBER)
20. Which date function is used to find the difference
between two dates? Table 2 : SOFTWARE
MONTHS_BETWEEN
PNAME (VARCHAR), TITLE (VARCHAR), DEVIN
21. Why does the following command give a compilation (VARCHAR), SCOST (NUMBER), DCOST (NUMBER),
error? SOLD (NUMBER)
DROP TABLE &TABLE_NAME;
Variable names should start with an alphabet. Here the table Table 3 : PROGRAMMER
name starts with an '&' symbol.
PNAME (VARCHAR), DOB (DATE), DOJ (DATE), SEX
22. What is the advantage of specifying WITH GRANT (CHAR), PROF1 (VARCHAR), PROF2 (VARCHAR), SAL
OPTION in the GRANT command? (NUMBER)
The privilege receiver can further grant the privileges he/she LEGEND :
has obtained from the owner to any other user.
PNAME – Programmer Name, SPLACE – Study Place,
23. What is the use of the DROP option in the ALTER CCOST – Course Cost, DEVIN – Developed in, SCOST –
TABLE command? Software Cost, DCOST – Development Cost, PROF1 –
It is used to drop constraints specified on the table. Proficiency 1
24. What is the value of ‘comm’ and ‘sal’ after executing the QUERIES :
following query if the initial value of ‘sal’ is 10000?
UPDATE EMP SET SAL = SAL + 1000, COMM = 1. Find out the selling cost average for packages developed
SAL*0.1; in Oracle.
sal = 11000, comm = 1000 2. Display the names, ages and experience of all
programmers.
25. What is the use of DESC in SQL? 3. Display the names of those who have done the PGDCA
Answer : course.
DESC has two purposes. It is used to describe a schema as 4. What is the highest number of copies sold by a package?
well as to retrieve rows from table in descending order. 5. Display the names and date of birth of all programmers
Explanation : born in April.
The query SELECT * FROM EMP ORDER BY ENAME 6. Display the lowest course fee.
DESC will display the output sorted on ENAME in 7. How many programmers have done the DCA course.
descending order. 8. How much revenue has been earned through the sale of
packages developed in C.
26. What is the use of CASCADE CONSTRAINTS? 9. Display the details of software developed by Rakesh.
When this clause is used with the DROP command, a parent 10. How many programmers studied at Pentafour.
table can be dropped even when a child table exists. 11. Display the details of packages whose sales crossed the
5000 mark.
27. Which function is used to find the largest integer less
than or equal to a specific value?
12. Find out the number of copies which should be sold in 8. SELECT SUM(SCOST*SOLD-DCOST) FROM
order to recover the development cost of each package. SOFTWARE GROUP BY DEVIN HAVING DEVIN = 'C';
13. Display the details of packages for which the
development cost has been recovered. 9. SELECT * FROM SOFTWARE WHERE PNAME =
14. What is the price of costliest software developed in VB? 'RAKESH';
15. How many packages were developed in Oracle ?
16. How many programmers studied at PRAGATHI? 10. SELECT * FROM STUDIES WHERE SPLACE =
17. How many programmers paid 10000 to 15000 for the 'PENTAFOUR';
course?
18. What is the average course fee? 11. SELECT * FROM SOFTWARE WHERE
19. Display the details of programmers knowing C. SCOST*SOLD-DCOST > 5000;
20. How many programmers know either C or Pascal?
21. How many programmers don’t know C and C++? 12. SELECT CEIL(DCOST/SCOST) FROM SOFTWARE;
22. How old is the oldest male programmer?
23. What is the average age of female programmers? 13. SELECT * FROM SOFTWARE WHERE
24. Calculate the experience in years for each programmer SCOST*SOLD >= DCOST;
and display along with their names in descending order.
25. Who are the programmers who celebrate their birthdays 14. SELECT MAX(SCOST) FROM SOFTWARE GROUP
during the current month? BY DEVIN HAVING DEVIN = 'VB';
26. How many female programmers are there?
27. What are the languages known by the male 15. SELECT COUNT(*) FROM SOFTWARE WHERE
programmers? DEVIN = 'ORACLE';
28. What is the average salary?
29. How many people draw 5000 to 7500? 16. SELECT COUNT(*) FROM STUDIES WHERE
30. Display the details of those who don’t know C, C++ or SPLACE = 'PRAGATHI';
Pascal.
31. Display the costliest package developed by each 17. SELECT COUNT(*) FROM STUDIES WHERE
programmer. CCOST BETWEEN 10000 AND 15000;
32. Produce the following output for all the male
programmers 18. SELECT AVG(CCOST) FROM STUDIES;
Programmer
Mr. Arvind – has 15 years of experience 19. SELECT * FROM PROGRAMMER WHERE PROF1 =
'C' OR PROF2 = 'C';
KEYS:
20. SELECT * FROM PROGRAMMER WHERE PROF1
1. SELECT AVG(SCOST) FROM SOFTWARE WHERE IN ('C','PASCAL') OR PROF2 IN ('C','PASCAL');
DEVIN = 'ORACLE';
21. SELECT * FROM PROGRAMMER WHERE PROF1
2. SELECT NOT IN ('C','C++') AND PROF2 NOT IN ('C','C++');
PNAME,TRUNC(MONTHS_BETWEEN(SYSDATE,DOB)
/12) "AGE", 22. SELECT
TRUNC(MONTHS_BETWEEN(SYSDATE,DOJ)/12) TRUNC(MAX(MONTHS_BETWEEN(SYSDATE,DOB)/1
"EXPERIENCE" FROM PROGRAMMER; 2)) FROM PROGRAMMER WHERE SEX = 'M';
6. SELECT MIN(CCOST) FROM STUDIES; 25. SELECT PNAME FROM PROGRAMMER WHERE
TO_CHAR(DOB,'MON') = TO_CHAR(SYSDATE,'MON');
7. SELECT COUNT(*) FROM STUDIES WHERE
COURSE = 'DCA'; 26. SELECT COUNT(*) FROM PROGRAMMER WHERE
SEX = 'F';
27. SELECT DISTINCT(PROF1) FROM PROGRAMMER 10. Which department has the highest annual remuneration
WHERE SEX = 'M'; bill?
11. Write a query to display a ‘*’ against the row of the most
28. SELECT AVG(SAL) FROM PROGRAMMER; recently hired employee.
12. Write a correlated sub-query to list out the employees
29. SELECT COUNT(*) FROM PROGRAMMER WHERE who earn more than the average salary of their department.
SAL BETWEEN 5000 AND 7500; 13. Find the nth maximum salary.
14. Select the duplicate records (Records, which are inserted,
30. SELECT * FROM PROGRAMMER WHERE PROF1 that already exist) in the EMP table.
NOT IN ('C','C++','PASCAL') AND PROF2 NOT 15. Write a query to list the length of service of the
IN ('C','C++','PASCAL'); employees (of the form n years and m months).
DEPTNO (NOT NULL , NUMBER(2)), DNAME 4. SELECT * FROM EMP WHERE EMPNO IN ( SELECT
(VARCHAR2(14)), EMPNO FROM EMP MINUS SELECT MGR FROM
LOC (VARCHAR2(13) EMP);
> Normal completion 47. What are DDks? Name an operating system that includes
> Time limit exceeded this feature.
> Memory unavailable DDks are device driver kits, which are equivalent to SDKs
> Bounds violation for writing device drivers. Windows NT includes DDks.
> Protection error
> Arithmetic error 48. What level of security does Windows NT meets?
> Time overrun C2 level security.
> I/O failure
> Invalid instruction
> Privileged instruction
> Data misuse
> Operator or OS intervention @------> C LANGUAGE
> Parent termination. @@@@@@@@@@@@@@@@@@@@@@@@@@
38. What are the reasons for process suspension? @@@@
> swapping C is interviewer’s favorite language. If you have good
> interactive user request command on C language you can get through Technical
> timing Interview easily. Most of the interviewers ask basic
> parent process request questions in C. Some times they may ask you to write small
programs like reversal of a string, determining whether the
39. What is process migration? given number is a palindrome or not and finding factorial of
It is the transfer of sufficient amount of the state of process a given number using recursion etc. You should be able to
from one machine to the target machine write these programs quickly.
40. What is mutant? Most favorite question for interviewers is interchanging two
In Windows NT a mutant provides kernel mode or user variables with out using the third variable. Another favorite
mode mutual exclusion with the notion of ownership. topic for interviewers is Pointers. Please go through pointers
once before going to the interview.
41. What is an idle thread?
The special thread a dispatcher will execute when no ready Many interviewers look for logic in your program rather
thread is found. than syntax. Once you write the program you should be able
to explain the logic to the interviewer with the help of flow-
42. What is FtDisk? chart or algorithm. If there are more than one logic for a
It is a fault tolerance disk driver for Windows NT. single program, choose the logic that is simple and easy to
understand at the same time it should efficient one.
43. What are the possible threads a thread can have?
> Ready Below are around 100 FAQ in C language. Try to answer
> Standby these questions on your own. I believe that if you are able to
> Running answer these questions, you can easily get through the
> Waiting technical interview.
> Transition
1.What will be the output of the following code? 5. How do I write code that reads data at memory location
specified by segment and offset?
void main ()
{ int i = 0 , a[3] ; Ans: Use peekb( ) function. This function returns byte(s)
a[i] = i++; read from specific segment and offset locations in memory.
printf (“%d",a[i]) ; The following program illustrates use of this function. In this
} program from VDU memory we have read characters and its
Ans: The output for the above code would be a garbage attributes of the first row. The information stored in file is
value. In the statement a[i] = i++; the value of the variable i then further read and displayed using peek( ) function.
would get assigned first to a[i] i.e. a[0] and then the value of
i would get incremented by 1. Since a[i] i.e. a[1] has not #include <stdio.h>
been initialized, a[i] will have a garbage value. #include <dos.h>
main( )
2. Why doesn't the following code give the desired result? {
char far *scr = 0xB8000000 ;
int x = 3000, y = 2000 ; FILE *fp ;
long int z = x * y ; int offset ;
Ans: Here the multiplication is carried out between two ints char ch ;
x and y, and the result that would overflow would be if ( ( fp = fopen ( "scr.dat", "wb" ) ) == NULL )
truncated before being assigned to the variable z of type long {
int. However, to get the correct output, we should use an printf ( "\nUnable to open file" ) ;
explicit cast to force long arithmetic as shown below: exit( ) ;
}
long int z = ( long int ) x * y ; // reads and writes to file
Note that ( long int )( x * y ) would not give the desired for ( offset = 0 ; offset < 160 ; offset++ )
effect. fprintf ( fp, "%c", peekb ( scr, offset ) ) ;
fclose ( fp ) ;
3.Why doesn't the following statement work? if ( ( fp = fopen ( "scr.dat", "rb" ) ) == NULL )
{
char str[ ] = "Hello" ; printf ( "\nUnable to open file" ) ;
strcat ( str, '!' ) ; exit( ) ;
Ans: The string function strcat( ) concatenates strings and }
not a character. The basic difference between a string and a // reads and writes to file
character is that a string is a collection of characters, for ( offset = 0 ; offset < 160 ; offset++ )
represented by an array of characters whereas a character is a {
single character. To make the above statement work writes
the statement as shown below: fscanf ( fp, "%c", &ch ) ;
strcat ( str, "!" ) ; printf ( "%c", ch ) ;
}
4. How do I know how many elements an array can hold? fclose ( fp ) ;
}
Ans: The amount of memory an array can consume depends
on the data type of an array. In DOS environment, the 6. How do I compare character data stored at two different
amount of memory an array can consume depends on the memory locations?
current memory model (i.e. Tiny, Small, Large, Huge, etc.).
In general an array cannot consume more than 64 kb. Ans: Sometimes in a program we require to compare
Consider following program, which shows the maximum memory ranges containing strings. In such a situation we can
number of elements an array of type int, float and char can use functions like memcmp( ) or memicmp( ). The basic
have in case of Small memory model. difference between two functions is that memcmp( ) does a
main( ) case-sensitive comparison whereas memicmp( ) ignores case
{ of characters. Following program illustrates the use of both
int i[32767] ; the functions.
float f[16383] ;
char s[65535] ; #include <mem.h>
} main( )
{
char *arr1 = "Kicit" ;
char *arr2 = "kicitNagpur" ; is then restarted. The following program demonstrates use of
int c ; spawnl( ) function.
c = memcmp ( arr1, arr2, sizeof ( arr1 ) ) ;
if ( c == 0 ) /* Mult.c */
printf ( "\nStrings arr1 and arr2 compared using memcmp
are identical" ) ; int main ( int argc, char* argv[ ] )
else {
printf ( "\nStrings arr1 and arr2 compared using memcmp int a[3], i, ret ;
are not identical" if ( argc < 3 || argc > 3 )
); {
printf ( "Too many or Too few arguments..." ) ;
c = memicmp ( arr1, arr2, sizeof ( arr1 ) ) ; exit ( 0 ) ;
if ( c == 0 ) }
printf ( "\nStrings arr1 and arr2 compared using memicmp
are identical" ) for ( i = 1 ; i < argc ; i++ )
; a[i] = atoi ( argv[i] ) ;
else ret = a[1] * a[2] ;
printf ( "\nStrings arr1 and arr2 compared using memicmp return ret ;
are not }
identical" ) ;
} /* Spawn.c */
#include <process.h>
#include <stdio.h>
7. Fixed-size objects are more appropriate as compared to
variable size data objects. Using variable-size data objects main( )
saves very little space. Variable size data objects usually {
have some overhead. Manipulation of fixed-size data objects int val ;
is usually faster and easier. Use fixed size when maximum val = spawnl ( P_WAIT, "C:\\Mult.exe", "3", "10",
size is clearly bounded and close to average. And use "20", NULL ) ;
variable-size data objects when a few of the data items are printf ( "\nReturned value is: %d", val ) ;
bigger than the average size. For example, }
char *num[10] = { "One", "Two", "Three", "Four", Here, there are two programs. The program 'Mult.exe' works
"Five", "Six", "Seven", "Eight", "Nine", "Ten" } ; as a child process whereas 'Spawn.exe' works as a parent
process. On execution of 'Spawn.exe' it invokes 'Mult.exe'
Instead of using the above, use and passes the command-line arguments to it. 'Mult.exe' in
turn on execution, calculates the product of 10 and 20 and
char num[10][6] = { "One", "Two", "Three", "Four", returns the value to val in 'Spawn.exe'. In our call to
"Five", "Six", "Seven", "Eight", "Nine", "Ten" } ; spawnl( ) function, we have passed 6 parameters, P_WAIT
as the mode of execution, path of '.exe' file to run as child
The first form uses variable-size data objects. It allocates 10 process, total number of arguments to be passed to the child
pointers, which are pointing to 10 string constants of process, list of command line arguments and NULL.
variable size. Assuming each pointer is of 4 bytes, it requires P_WAIT will cause our application to freeze execution until
90 bytes. On the other hand, the second form uses fixed size the child process has completed its execution. This
data objects. It allocates 10 arrays of 6 characters each. It parameter needs to be passed as the default parameter if you
requires only 60 bytes of space. So, the variable-size in this are working under DOS. under other operating systems that
case does not offer any advantage over fixed size. support multitasking, this parameter can be P_NOWAIT or
P_OVERLAY. P_NOWAIT will cause the parent process to
8. The Spawnl( ) function... execute along with the child process, P_OVERLAY will
load the child process on top of the parent process in the
DOS is a single tasking operating system, thus only one memory.
program runs at a time. The Spawnl( ) function provides us -------------------------------------------------------------------------
with the capability of starting the execution of one program ------------------------
from within another program. The first program is called the 9.
parent process and the second program that gets called from
within the first program is called a child process. Once the Are the following two statements identical?
second program starts execution, the first is put on hold until
the second program completes execution. The first program char str[6] = "Kicit" ;
char *str = "Kicit" ; How do I change the type of cursor and hide a cursor?
Ans: No! Arrays are not pointers. An array is a single, pre-
allocated chunk of contiguous elements (all of the same Ans: We can change the cursor type by using function
type), fixed in size and location. A pointer on the other hand, _setcursortype( ). This function can change the cursor type
is a reference to any data element (of a particular type) to solid cursor and can even hide a cursor. Following code
located anywhere. A pointer must be assigned to point to shows how to change the cursor type and hide cursor.
space allocated elsewhere, but it can be reassigned any time.
The array declaration char str[6] ; requests that space for 6 #include <conio.h>
characters be set aside, to be known main( )
by name str. In other words there is a location named str at {
which six characters are stored. The pointer declaration char /* Hide cursor */
*str ; on the other hand, requests a place that holds a pointer, _setcursortype ( _NOCURSOR ) ;
to be known by the name str. This pointer can point almost
anywhere to any char, to any contiguous array of chars, or /* Change cursor to a solid cursor */
nowhere. _setcursortype ( _SOLIDCURSOR ) ;
-------------------------------------------------------------------------
------------------------ /* Change back to the normal cursor */
10. _setcursortype ( _NORMALCURSOR ) ;
}
Is the following code fragment correct? -------------------------------------------------------------------------
------------------------
const int x = 10 ; 13.
int arr[x] ;
Ans: No! Here, the variable x is first declared as an int so How do I write code that would get error number and display
memory is reserved for it. Then it is qualified by a const error message if any standard error occurs?
qualifier. Hence, const qualified object is not a constant
fully. It is an object with read only attribute, and in C, an Ans: Following code demonstrates this.
object associated with memory cannot be used in array
dimensions. #include <stdio.h>
#include <stdlib.h>
#include <errno.h>
11. main( )
{
How do I write code to retrieve current date and time from char *errmsg ;
the system and display it as a string? FILE *fp ;
fp = fopen ( "C:\file.txt", "r" ) ;
Ans: Use time( ) function to get current date and time and if ( fp == NULL )
then ctime( ) function to display it as a string. This is shown {
in following code snippet. errmsg = strerror ( errno ) ;
printf ( "\n%s", errmsg ) ;
#include <sys\types.h> }
}
void main( ) Here, we are trying to open 'file.txt' file. However, if the file
{ does not exist, then it would cause an error. As a result, a
time_t curtime ; value (in this case 2) related to the error generated would get
char ctm[50] ; set in errno. errno is an external int variable declared in
'stdlib.h' and also in 'errno.h'. Next, we have called sterror( )
time ( &curtime ) ; //retrieves current time & function which takes an error number and returns a pointer
stores in curtime to standard error message related to the given error number.
printf ( "\nCurrent Date & Time: %s", ctime ( -------------------------------------------------------------------------
&curtime ) ) ; ------------------------
} 14.
------------------------------------------------------------------------- How do I write code to get the current drive as well as set
------------------------ the current drive?
12.
Ans: The function getdisk( ) returns the drive number of show ( result ) ;
current drive. The drive number 0 indicates 'A' as the current }
drive, 1 as 'B' and so on. The Setdisk( ) function sets the
current drive. This function takes one argument which is an show ( int r )
integer indicating the drive to be set. Following program {
demonstrates use of both the functions. if ( r == 0 )
printf ( "\nThe buffer str1 and str2 hold
#include <dir.h> identical data" ) ;
if ( r > 0 )
main( ) printf ( "\nThe buffer str1 is bigger than buffer
{ str2" ) ;
int dno, maxdr ; if ( r < 0 )
printf ( "\nThe buffer str1 is less than buffer
dno = getdisk( ) ; str2" ) ;
printf ( "\nThe current drive is: %c\n", 65 + dno }
); -------------------------------------------------------------------------
------------------------
maxdr = setdisk ( 3 ) ;
dno = getdisk( ) ; 16.
printf ( "\nNow the current drive is: %c\n", 65 +
dno ) ; How do I write code to find an amount of free disk space
} available on current drive?
-------------------------------------------------------------------------
------------------------ Ans: Use getdfree( ) function as shown in follow code.
15.
#include <stdio.h>
The functions memcmp( ) and memicmp( ) #include <stdlib.h>
#include <dir.h>
The functions memcmp( ) and memicmp( ) compares first n #include <dos.h>
bytes of given two blocks of memory or strings. However,
memcmp( ) performs comparison as unsigned chars whereas main( )
memicmp( ) performs comparison as chars but ignores case {
(i.e. upper or lower case). Both the functions return an int dr ; struct dfree disk ;
integer value where 0 indicates that two memory buffers long freesp ;
compared are identical. If the value returned is greater than 0
then it indicates that the first buffer is bigger than the second dr = getdisk( ) ;
one. The value less than 0 indicate that the first buffer is less getdfree ( dr + 1 , &disk ) ;
than the second buffer. The following code snippet
demonstrates use of both if ( disk.df_sclus == 0xFFFF )
{
#include <stdio.h> printf ( "\ngetdfree( ) function failed\n");
#include <mem.h> exit ( 1 ) ;
}
main( )
{ freesp = ( long ) disk.df_avail
char str1[] = "This string contains some * ( long ) disk.df_bsec
characters" ; * ( long ) disk.df_sclus ;
char str2[] = "this string contains" ; printf ( "\nThe current drive %c: has %ld bytes
int result ; available as free space\n", 'A' + dr, freesp ) ;
}
result = memcmp ( str1, str2, strlen ( str2 ) ) ;
printf ( "\nResult after comapring buffer using
memcmp( )" ) ; 17.
show ( result ) ;
Use of array indices...
result = memicmp ( str1, str2, strlen ( str2 ) ) ; If we wish to store a character in a char variable ch and the
printf ( "\nResult after comapring buffer using character to be stored depends on the value of another
memicmp( )" ) ;
variable say color (of type int), then the code would be as 19.
shown below:
How do I write a user-defined function, which deletes each
switch ( color ) character in a string str1, which matches any character in
{ string str2?
case 0 :
ch = 'R' ; Ans: The function is as shown below:
break ;
case 1 : Compress ( char str1[], char str2[] )
ch = 'G' ; {
break ; int i, j, k ;
case 2 :
ch = 'B' ; for ( i = k = 0 ; str1[i] != ‘\0’ ; i++ )
break ; {
} for ( j = 0 ; str2[j] != ‘\0’ && str2[j] !=
In place of switch-case we can make use of the value in str1[i] ; j++ )
color as an index for a character array. How to do this is ;
shown in following code snippet. if ( str2[j] == ‘\0’ )
str1[k++] = str1[I] ;
char *str = "RGB' ; }
char ch ; str1[k] = ‘\0’
int color ; }
// code -------------------------------------------------------------------------
ch = str[ color ] ; ------------------------
-------------------------------------------------------------------------
------------------------ 20.
18.
How does free( ) know how many bytes to free?
Function atexit( ) recevies parameter as the address of
function of the type void fun ( void ). The function whose Ans: The malloc( ) / free( ) implementation remembers the
address is passed to atexit( ) gets called before the size of each block allocated and returned, so it is not
termination of program. If atexit( ) is called for more than necessary to remind it of the size when freeing.
one function then the functions are called in "first in last out" -------------------------------------------------------------------------
order. You can verify that from the output. ------------------------
21.
#include <stdio.h>
#include <stdlib.h> What is the use of randomize( ) and srand( ) function?
void fun1( )
{ Ans: While generating random numbers in a program,
printf("Inside fun1\n"); sometimes we require to control the series of numbers that
} random number generator creates. The process of assigning
the random number generators starting number is called
void fun2( ) seeding the generator. The randomize( ) and srand( )
{ functions are used to seed the random number generators.
printf("Inside fun2\n"); The randomize( ) function uses PC's clock to produce a
} random seed, whereas the srand( ) function allows us to
main( ) specify the random number generator's starting value.
{
atexit ( fun1 ) ; -------------------------------------------------------------------------
/* some code */ ------------------------
atexit ( fun2 ) ; 22.
printf ( "This is the last statement of
program?\n" ); How do I determine amount of memory currently available
} for allocating?
How does a C program come to know about command line s = FP_SEG ( ptr ) ;
arguments? o = FP_OFF ( ptr ) ;
printf ( "\n%u %u", s, o ) ;
Ans: When we execute our C program, operating system }
loads the program into memory. In case of DOS, it first loads
256 bytes into memory, called program segment prefix. This -------------------------------------------------------------------------
contains file table, environment segment, and command line ------------------------
information. When we compile the C program the compiler 27.
inserts additional code that parses the command, assigning it
to the argv array, making the arguments easily accessible How do I write a program to convert a string containing
within our C program. number in a hexadecimal form to its equivalent decimal?
24. Ans: The following program demonstrates this:
main( )
When we open a file, how does functions like fread( )/fwrite( {
), etc. get to know from where to read or to write the data? char str[] = "0AB" ;
int h, hex, i, n ;
Ans: When we open a file for read/write operation using n=0;h=1;
function like fopen( ), it returns a pointer to the structure of for ( i = 0 ; h == 1 ; i++ )
type FILE. This structure stores the file pointer called {
position pointer, which keeps track of current location within if ( str[i] >= '0' && str[i] <= '9' )
the file. On opening file for read/write operation, the file hex = str[i] - '0' ;
pointer is set to the start of the file. Each time we read/write else
a character, the position pointer advances one character. If {
we read one line of text at a step from the file, then file if ( str[i] >= 'a' && str[i] <= 'f' )
pointer advances to the start of the next line. If the file is hex = str[i] - 'a' + 10 ;
opened in append mode, the file pointer is placed at the very else
end of the file. Using fseek( ) function we can set the file if ( str[i] >= 'A' && str[i] <= 'F' )
pointer to some other place within the file. hex = str[i] - 'A' + 10 ;
------------------------------------------------------------------------- else
------------------------ h=0;
}
if ( h == 1 )
n = 16 * n + hex ;
25. }
printf ( "\nThe decimal equivalent of %s is %d",
The sizeof( ) function doesn’t return the size of the block of str, n ) ;
memory pointed to by a pointer. Why? }
The output of this program would be the decimal equivalent
Ans: The sizeof( ) operator does not know that malloc( ) has of 0AB is 171.
been used to allocate a pointer. sizeof( ) gives us the size of -------------------------------------------------------------------------
pointer itself. There is no handy way to find out the size of a ------------------------
block allocated by malloc( ). 28.
-------------------------------------------------------------------------
------------------------ How do I write code that reads the segment register settings?
26.
FP_SEG And FP_OFF… Ans: We can use segread( ) function to read segment register
settings. There are four segment registers—code segment,
data segment, stack segment and extra segment. Sometimes time_t dtime ;
when we use DOS and BIOS services in a program we need
to know the segment register's value. In such a situation we char str[30] ;
can use segread( ) function. The following program
illustrates the use of this function. time ( &dtime ) ;
#include <dos.h> curtime = localtime ( &dtime ) ;
main( ) strftime ( str, 30, "%A %B %d, %Y", curtime ) ;
{
struct SREGS s ; printf ( "\n%s", str ) ;
segread ( &s ) ; }
printf ( "\nCS: %X DS: %X SS: %X ES: %X",s.cs, Here we have called time( ) function which returns current
s.ds, s.ss, s.es ) ; time. This time is returned in terms of seconds, elapsed since
} 00:00:00 GMT, January 1, 1970. To extract the week day,
------------------------------------------------------------------------- day of month, etc. from this value we need to break down
------------------------ the value to a tm structure. This is done by the function
29. localtime( ). Then we have called strftime( ) function to
format the time and store it in a string str.
What is environment and how do I get environment for a
specific entry? 31.
Ans: While working in DOS, it stores information in a If we have declared an array as global in one file and we are
memory region called environment. In this region we can using it in another file then why doesn't the sizeof operator
place configuration settings such as command path, system works on an extern array?
prompt, etc. Sometimes in a program we need to access the
information contained in environment. The function Ans: An extern array is of incomplete type as it does not
getenv( ) can be used when we want to access environment contain the size. Hence we cannot use sizeof operator, as it
for a specific entry. Following program demonstrates the use cannot get the size of the array declared in another file. To
of this function. resolve this use any of one the following two solutions:
#include <stdio.h> 1. In the same file declare one more variable that holds the
#include <stdlib.h> size of array. For example,
main( ) array.c
{
char *path = NULL ; int arr[5] ;
int arrsz = sizeof ( arr ) ;
path = getenv ( "PATH" ) ;
if ( *path != NULL ) myprog.c
printf ( "\nPath: %s", path ) ;
else extern int arr[] ;
printf ( "\nPath is not set" ) ; extern int arrsz ;
} 2. Define a macro which can be used in an array
declaration. For example,
-------------------------------------------------------------------------
------------------------ myheader.h
30.
#define SZ 5
How do I display current date in the format given below?
array.c
Saturday October 12, 2002
Ans: Following program illustrates how we can display date #include "myheader.h"
in above given format. int arr[SZ] ;
This above figure shows two binary trees, but these binary printf ( "The number %lf is ", number ) ;
trees are different. The first has an empty right subtree while printf ( "%lf times two to the ", mantissa ) ;
the second has an empty left subtree. If the above are printf ( "power of %d\n", exponent ) ;
regarded as trees (not the binary trees), then they are same
despite the fact that they are drawn differently. Also, an return 0 ;
empty binary tree can exist, but there is no tree having zero }
nodes. -------------------------------------------------------------------------
------------------------------------------------------------------------- ------------------------
------------------------ 40.
38.
How do I use the function ldexp( ) in a program? How do I write code that executes certain function only at
program termination?
Ans: Use atexit( ) function as shown in following program.
operators like most operators, yields a value, and we cannot
#include <stdlib.h> assign the value of an _expression to a value. However, we
main( ) can use conditional operators as shown in following code
{ snippet.
int ch ;
void fun ( void ) ; main( )
atexit ( fun ) ; {
// code int i, j, k, l ;
} i = 5 ; j = 10 ; k = 12, l = 1 ;
void fun( void ) * ( ( i < 10 ) ? &j : &k ) = l * 2 + 14 ;
{ printf ( "i = %d j = %d k = %d l = %d", i, j, k, l ) ;
printf ( "\nTerminate program......" ) ; }
getch( ) ;
} The output of the above program would be as given below:
------------------------------------------------------------------------- i = 5 j = 16 k = 12 l = 1
------------------------ -------------------------------------------------------------------------
41. ------------------------
What are memory models? 44.
Ans: The compiler uses a memory model to determine how
much memory is allocated to the program. The PC divides How can I find the day of the week of a given date?
memory into blocks called segments of size 64 KB. Usually,
program uses one segment for code and a second segment Ans: The following code snippet shows how to get the day
for data. A memory model defines the number of segments of week from the given date.
the compiler can use for each. It is important to know which
memory model can be used for a program. If we use wrong dayofweek ( int yy, int mm, int dd )
memory model, the program might not have enough memory {
to execute. The problem can be solved using larger memory /*Monday = 1 and Sunday = 0 */
model. However, larger the memory model, slower is your /* month number >= 1 and <= 12, yy > 1752 or so */
program execution. So we must choose the smallest memory static int arr[ ] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 } ;
model that satisfies our program needs. Most of the yy = yy - mm < 3 ;
compilers support memory models like tiny, small, medium, return ( yy + yy / 4 - yy / 100 + yy / 400 + arr[ mm - 1] +
compact, large and huge. dd ) % 7 ;
}
42.
How does C compiler store elements in a multi-dimensional void main( )
array? {
printf ( "\n\n\nDay of week : %d ", dayofweek ( 2002, 5, 18 )
Ans: The compiler maps multi-dimensional arrays in two );
ways—Row major order and Column order. When the }
compiler places elements in columns of an array first then it -------------------------------------------------------------------------
is called column-major order. When the compiler places ------------------------
elements in rows of an array first then it is called row-major
order. C compilers store multidimensional arrays in row-
major order. For example, if there is a multi-dimensional
array a[2][3], then according row-major order, the elements
would get stored in memory following order:
a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], a[1][2] 45.
-------------------------------------------------------------------------
------------------------ What's the difference between these two declarations?
43.
struct str1 { ... } ;
If the result of an _expression has to be stored to one of two typedef struct { ... } str2 ;
variables, depending on a condition, can we use conditional Ans : The first form declares a structure tag whereas the
operators as shown below? second declares a typedef. The main difference is that the
second declaration is of a slightly more abstract type -- its
( ( i < 10 ) ? j : k ) = l * 2 + p ; users don't necessarily know that it is a structure, and the
Ans: No! The above statement is invalid. We cannot use the keyword struct is not used when declaring instances of it.
conditional operators in this fashion. The conditional
------------------------------------------------------------------------- Ans: For the above given program, we expect the output as
------------------------ Good Evening and Good Afternoon, for the second and third
46. printf( ). However, the output would be as shown below.
How do I print the contents of environment variables? First string = Good MorningGood EveningGood Afternoon
Second string = ( null )
Ans:. The following program shows how to achieve this: Third string =
main( int argc, char *argv[ ], char *env[ ] )
{ What is missing in the above given code snippet is a comma
int i = 0 ; separator which should separate the strings Good Morning,
clrscr( ) ; Good Evening and Good Afternoon. On adding comma, we
while ( env[ i ] ) would get the output as shown below.
printf ( "\n%s", env[ i++ ] ) ;
} First string = Good Morning
Second string = Good Evening
main( ) has the third command line argument env, which is Third string = Good Afternoon
an array of pointers to the strings. Each pointer points to an -------------------------------------------------------------------------
environment variable from the list of environment variables. ------------------------
------------------------------------------------------------------------- 49.
------------------------
47. How do I use scanf( ) to read the date in the form 'dd-mm-
div( )... yy' ?
Ans: There are two ways to read the date in the form of 'dd-
The function div( ) divides two integers and returns the mm-yy' one possible way is...
quotient and remainder. This function takes two integer
values as arguments; divides first integer with the second int dd, mm, yy ;
one and returns the answer of division of type div_t. The char ch ; /* for char '-' */
data type div_t is a structure that contains two long ints, printf ( "\nEnter the date in the form of dd-mm-yy : " ) ;
namely quot and rem, which store quotient and remainder of scanf( "%d%c%d%c%d", &dd, &ch, &mm, &ch, &yy ) ;
division respectively. The following example shows the use
of div( ) function. And another best way is to use suppression character * as...
The comparison trees also called decision tree or search tree unsigned oldpsp, newpsp, far *eb_seg, i ;
of an algorithm, is obtained by tracing through the actions of char far *eb_ptr ;
the algorithm, representing each comparison of keys by a
vertex of the tree (which we draw as a circle). Inside the main( )
{ corresponding file names until the program reaches
oldpsp = _psp ; COMMAND.COM.
i=0; 80.
while ( 1 )
{ Variably Dimensioned Arrays
if ( eb_ptr[i] == 0 )
{ While dealing with Scientific or Engineering problems one
if ( eb_ptr[i + 1] == 0 && eb_ptr[i + 2] == 1 ) is often required to make use of multi-dimensioned array.
{ However, when it comes to passing multidimensional arrays
i += 4 ; to a function C is found wanting. This is because the C
break ; compiler wants to know the size of all but the first dimension
} of any array passed to a function. For instance, we can define
} a function compute ( int n, float x[] ), but not compute ( int
i++ ; n, x[][]).
}
Thus, C can deal with variably dimensioned 1-D arrays, but
fnsplit ( eb_ptr + i, drive, dir, name, ext ) ; when an array has more than one dimension, the C compiler
strcat ( name, ext ) ; has to know the size of the last dimensions expressed as a
printf ( "%-20s (%04X)", name, oldpsp ) ; constant. This problem has long been recognized, and some
} of the solutions that are often used are:
On running the program from within TC the output obtained Declare the arrays in the functions to be big enough to tackle
is shown below. SPWAN.EXE (58A9) spawned by TC.EXE all possible situations. This can lead to a wastage of lot of
(0672) TC.EXE (0672) spawned by COMMAND.COM precious memory in most cases. Another solution is to
(05B8). The program simply copies its own process ID in the construct multiple-dimension array as an array of pointers.
variable oldpsp and then uses it to extract its own filename For example, a matrix (2-D array) of floats can be declared
from its environment block. This is done by the function as a 1-D array of float pointers, with each element pointing
printname( ). The value in oldpsp is then used to retrieve the to an array of floats. The problem with this method is that
parent's PID in newpsp. From there the program loops the calling function has to define all arrays in this fashion.
reporting the values of oldpsp, newpsp and the
This means that any other computations done on the arrays for ( j = 0 ; j < p ; j++ )
must take this special structure into account. *ptrtoc++ += *a * *ptrtob++ ;
a++ ;
Another easy solution, though seldom used, exists. This is }
based on the following method: c += p ;
}
Pass the array to the function as though it is a pointer to an }
array of floats (or the appropriate data type), no matter how
many dimensions the array actually has, along with the We know that C stores array elements in a row-major order.
dimensions of the array. Reference individual array elements Hence to ensure that the elements are accessed in the storage
as offsets from this pointer. order the above program uses a variation of the normal
Write your algorithm so that array elements are accessed in matrix-multiplication procedure. The pseudo code for this is
storage order. The following program for multiplying two given below:
matrices illustrates this for i = 1 to m
procedure. for j = 1 to p
# define M 3 c[i][j] = 0
# define N 2 end
# define P 4 for k = 1 to n
for j = 1 to p
float a[M][N], b[N][P], c[M][P] ; c[i][j] = c[i][j] + a[i][k] * b[k][j]
void mulmat ( int, int, int, float*, float*, float* ) ; end
end
main( ) end
{ -------------------------------------------------------------------------
int i, j ; ------------------------
for ( i = 0 ; i < M ; i++ ) 81.
for ( j = 0 ; j < N ; j++ )
a[i][j] = i + j ; Why is it not possible to scan strings from keyboard in case
of array of pointers to string?
for ( i = 0 ; i < N ; i++ )
for ( j = 0 ; j < P ; j++ ) Ans: When an array is declared, dimension of array should
b[i][j] = i + j ; be specified so that compiler can allocate memory for the
array. When array of pointers to strings is declared its
mulmat ( M, N, P, a, b, c ) ; elements would contain garbage addresses. These addresses
for ( i = 0 ; i < M ; i++ ) would be passed to scanf( ). So strings can be received but
{ they would get stored at unkown locations. This is unsafe.
printf ( "\n" ) ; -------------------------------------------------------------------------
for ( j = 0 ; j < P ; j++ ) ------------------------
printf ( "%f\t", c[i][j] ) ; 82.
} Bit Arrays
}
If in a program a variable is to take only two values 1 and 0,
void mulmat ( int m, int n, int p, float *a, float *b, float *c ) we really need only a single bit to store it. Similarly, if a
{ variable is to take values from 0 to 3, then two bits are
float *ptrtob, *ptrtoc ; sufficient to store these values. And if a variable is to take
int i, j, k, nc ; values from 0 through 7, then three bits will be enough, and
so on. Why waste an entire integer when one or two or three
/* set all elements of matrix c to 0 */ bits will do? Because there aren't any one bit or two bit or
for ( i = 0 ; i < m * p ; i++ ) three bit data types available in C. However, when there are
*( c + i ) = 0 ; several variables whose maximum values are small enough
to pack into a single memory location, we can use `bit fields'
for ( i = 0 ; i < m ; i++ ) to store several values in a single integer. Bit fields are
{ discussed in most standard C texts. They are usually used
ptrtob = b ; when we want to store assorted information which can be
for ( k = 0 ; k < n ; k++ ) accommodated in 1, 2, 3 bits etc.
{
ptrtoc = c ; For example, the following data about an employee can be
easily stored using bit fields.
main( )
male or female {
single, married, divorced or widowed char arr[NUMSLOTS( MAX )] ;
have one of the eight different hobbies int i, j ;
can choose from any of the fifteen different schemes
proposed by the company to pursue his/her hobby. memset ( arr, 0, NUMSLOTS( MAX ) ) ;
for ( i = 2 ; i < MAX ; i++ )
This means we need one bit to store gender, two to store {
marital status, three for hobby, and four for scheme (with if ( !TEST ( arr, i ) )
one value used for those who are not desirous of availing any {
of the schemes). We need ten bits altogether, which means printf ( "\n%d", i ) ;
we can pack all this information into a single integer, since for ( j = i + i ; j < MAX ; j += i )
an integer is 16 bits long. SET ( arr, j ) ;
}
At times we may need to store several True or False statuses. }
In such cases instead of using bit fields using an array of bits }
would be more sensible. On this array we may be required to -------------------------------------------------------------------------
perform the following operations: ------------------------
83.
Set a bit (make it 1). Information Hiding in C
Clear a bit (make it 0).
Test the status of a bit in the array. Though C language doesn't fully support encapsulation as
Reach the appropriate bit slot in the array. C++ does, there is a simple technique through which we can
Generate a bit mask for setting and clearing a bit. implement encapsulation in C. The technique that achieves
We can implement these operations using macros given this is modular programming in C. Modular programming
below: requires a little extra work from the programmer, but pays
for itself during maintenance. To understand this technique
#define CHARSIZE 8 let us take the example of the popular stack data structure.
#define MASK ( y ) ( 1 << y % CHARSIZE ) There are many methods of implementing a stack (array,
#define BITSLOT ( y ) ( y / CHARSIZE ) linked list, etc.). Information hiding teaches that users should
#define SET ( x, y ) ( x[BITSLOT( y )] |= MASK( y ) ) be able to push and pop the stack's elements without
#define CLEAR ( x, y ) ( x[BITSLOT( y )] &= knowing about the stack's implementation. A benefit of this
~MASK( y ) ) sort of information hiding is that users don't have to change
#define TEST ( x, y ) ( x[BITSLOT( y )] & MASK( y ) ) their code even if the implementation details change.
#define NUMSLOTS ( n ) ( ( n + CHARSIZE - 1) /
CHARSIZE ) Consider the following scenario:
Using these macros we can declare an array of 50 bits be To be able to appreciate the benefits of modular
saying, programming and thereby information hiding, would first
show a traditional implementation of the stack data structure
char arr[NUMSLOTS(50)] ; using pointers and a linked list of structures. The main( )
To set the 20th bit we can say, function calls the push( ) and pop( ) functions.
Pointers main( )
{
What does the error "Null Pointer Assignment" mean and printf ( "%f", fmod ( 5.15, 3.0 ) ) ;
what causes this error? }
Ans: The Null Pointer Assignment error is generated only in The above code snippet would give the output as 2.150000.
small and medium memory models. This error occurs in -------------------------------------------------------------------------
programs which attempt to change the bottom of the data ------------------------
segment. In Borland's C or C++ compilers, Borland places 93.
four zero bytes at the bottom of the data segment, followed
by the Borland copyright notice "Borland C++ - Copyright How to extract the integer part and a fractional part of a
1991 Borland Intl.". In the small and medium memory floating point number?
models, a null pointer points to DS:0000. Thus assigning a
value to the memory referenced by this pointer will Ans: C function modf( ) can be used to get the integer and
overwrite the first zero byte in the data segment. At program fractional part of a floating point.
termination, the four zeros and the copyright banner are
checked. If either has been modified, then the Null Pointer #include "math.h"
Assignment error is generated. Note that the pointer may not
truly be null, but may be a wild pointer that references these main( )
key areas in the data segment. {
double val, i, f ;
Data Structures val = 5.15 ;
f = modf ( val, &i ) ;
How to build an expression trees ? printf ( "\nFor the value %f integer part = %f and fractional
part = %f",
Ans: An expression tree is a binary tree which is built from val, i, f ) ;
simple operands and operators of an (arithmetic or logical ) }
expression by placing simple operands as the leaves of a
binary tree and the operators as the interior nodes. If an The output of the above program will be:
operator is binary , then it has two nonempty subtrees, that
are its left and right operands (either simple operands or sub For the value 5.150000 integer part = 5.000000 and
expressions). If an operator is unary, then only one of its fractional part =
subtrees is nonempty, the one on the left or right according 0.150000
as the operator is written on the right or left of its operand.
We traditionally write some unary operators to the left of 94.
their operands, such as "-" ( unary negation) or the standard
functions like log( ), sin( ) etc. Others are written on the How do I define a pointer to a function which returns a char
right, such as the factorial function ()!. If the operator is pointer?
written on the left, then in the expression tree we take its left Ans:
subtree as empty. If it appears on the right, then its right char * ( *p )( ) ;
subtree will be empty. An example of an expression tree is or
shown below for the expression ( -a < b ) or ( c + d ) . typedef char * ( * ptrtofun )( ) ;
ptrtofun p ;
Here is a sample program which uses this definition.
main( ) Can we use scanf( ) function to scan a multiple words string
{ through keyboard?
typedef char * ( * ptrtofun ) ( ) ;
char * fun( ) ; Ans: Yes. Although we usually use scanf( ) function to
ptrtofun fptr ; receive a single word string and gets( ) to receive a multi-
char *cptr ; word string from keyboard we can also use scanf( ) function
fptr = fun ; for scanning a multi-word string from keyboard. Following
cptr = (*fptr) ( ) ; program shows how to achieve this.
printf ( "\nReturned string is \"%s\"", cptr ) ;
} main( )
char * fun( ) {
{ char buff[15] ;
static char s[ ] = "Hello!" ; scanf ( "%[^\n]s", buff ) ;
printf ( "\n%s", s ) ; puts ( buff ) ;
return s ; }
}
------------------------------------------------------------------------- In the scanf( ) function we can specify the delimiter in
------------------------ brackets after the ^ character. We have specified '\n' as the
95. delimiter. Hence scanf( ) terminates only when the user hits
What's wrong with the following declaration: char* ptr1, Enter key.
ptr2 ; get errors when I try to use ptr2 as a pointer. -------------------------------------------------------------------------
------------------------
Ans: char * applies only to ptr1 and not to ptr2. Hence ptr1 99.
is getting declared as a char pointer, whereas, ptr2 is being How to set the system date through a C program ?
declared merely as a char. This can be rectified in two ways :
char *ptr1, *ptr2 ; Ans: We can set the system date using the setdate( ) function
typedef char* CHARPTR ; CHARPTR ptr1, ptr2 ; as shown in the following program. The function assigns the
------------------------------------------------------------------------- current time to a
------------------------ structure date.
96.
#include "stdio.h"
How to use scanf( ) to read the date in the form of dd-mm- #include "dos.h"
yy?
main( )
Ans: To read the date in the form of dd-mm-yy one possible {
way is, struct date new_date ;
int dd, mm, yy ;
char ch ; /* for char '-' */ new_date.da_mon = 10 ;
printf ( "\nEnter the date in the form of dd-mm-yy : " ) ; new_date.da_day = 14 ;
scanf( "%d%c%d%c%d", &dd, &ch, &mm, &ch, &yy ) ; new_date.da_year = 1993 ;
Another way is to use suppression character * is as follows:
int dd, mm, yy ; setdate ( &new_date ) ;
scanf( "%d%*c%d%*c%d", &dd, &mm, &yy ) ; }
The suppression character '*' suppresses the input read from -------------------------------------------------------------------------
the standard input buffer for the assigned control character. ------------------------
-------------------------------------------------------------------------
------------------------ 100.
97.
How can I write a general-purpose swap without using
Why the output of sizeof ( 'a' ) is 2 and not 1 ? templates?
Ans: Character constants in C are of type int, hence sizeof
( 'a' ) is equivalent to sizeof ( int ), i.e. 2. Hence the output Ans: Given below is the program which uses the stringizing
comes out to be 2 bytes. preprocessor directive ## for building a general purpose
------------------------------------------------------------------------- swap macro which can swap two integers, two floats, two
------------------------ chars, etc.
#define swap( a, b, t ) ( g ## t = ( a ), ( a ) = ( b ), ( b ) = g ##
98. t)
int gint; process id. uniquely identifies a program. Under DOS, the
char gchar; getpid( ) returns the Program Segment Prefix as the process
float gfloat ; id. Following program illustrates the use of this macro.
main( ) #include <stdio.h>
{ #include <process.h>
int a = 10, b = 20 ;
char ch1 = 'a' , ch2 = 'b' ; void main( )
float f1 = 1.12, f2 = 3.14 ; {
swap ( a, b, int ) ; printf ( "The process identification number of this program is
printf ( "\na = %d b = %d", a, b ) ; %X\n",
swap ( ch1, ch2, char ) ; getpid( ) ) ;
printf ( "\nch1 = %c ch2 = %c", ch1, ch2 ) ; }
swap ( f1, f2, float ) ;
printf ( "\nf1 = %4.2f f2 = %4.2f", f1, f2 ) ; -------------------------------------------------------------------------
} ------------------------
swap ( a, b, int ) would expand to,
( gint = ( a ), ( a ) = ( b ), ( b ) = gint )
-------------------------------------------------------------------------
------------------------ 104.
101.
What is a heap ? How do I write a function that takes variable number of
arguments?
Ans : Heap is a chunk of memory. When in a program
memory is allocated dynamically, the C run-time library gets Ans: The following program demonstrates this.
the memory from a collection of unused memory called the
heap. The heap resides in a program's data segment. #include <stdio.h>
Therefore, the amount of heap space available to the #include <stdarg.h>
program is fixed, and can vary from one program to another.
void main( )
{
102. int i = 10 ;
float f = 2.5 ;
How to obtain a path of the given file? char *str = "Hello!" ;
vfpf ( "%d %f %s\n", i, f, str ) ;
Ans: The function searchpath( ) searches for the specified vfpf ( "%s %s", str, "Hi!" ) ;
file in the subdirectories of the current path. Following }
program shows how to make use of the searchpath( )
function. void vfpf ( char *fmt, ... )
{
#include "dir.h" va_list argptr ;
va_start ( argptr, fmt ) ;
void main ( int argc, char *argv[] ) vfprintf ( stdout, fmt, argptr ) ;
{ va_end ( argptr ) ;
char *path ; }
if ( path = searchpath ( argv[ 1 ] ) )
printf ( "Pathname : %s\n", path ) ; Here, the function vfpf( ) has called vfprintf( ) that take
else variable argument lists. va_list is an array that holds
printf ( "File not found\n" ) ; information required for the macros va_start and va_end.
} The macros va_start and va_end provide a portable way to
------------------------------------------------------------------------- access the variable argument lists. va_start would set up a
------------------------ pointer argptr to point to the first of the variable arguments
103. being passed to the function. The macro va_end helps the
called function to perform a normal return.
Can we get the process identification number of the current -------------------------------------------------------------------------
program? ------------------------
105.
Ans: Yes! The macro getpid( ) gives us the process Can we change the system date to some other date?
identification number of the program currently running. The
Ans: Yes, We can! The function stime( ) sets the system date On including a file twice I get errors reporting redefinition of
to the specified date. It also sets the system time. The time function.
and date is measured in seconds from the 00:00:00 GMT, How can I avoid duplicate inclusion?
January 1, 1970. The following program shows how to use
this function. Ans: Redefinition errors can be avoided by using the
#include <stdio.h> following macro definition. Include this definition in the
#include <time.h> header file.
#if !defined filename_h
void main( ) #define filename_h
{ /* function definitions */
time_t tm ; #endif
int d ; Replace filename_h with the actual header file name. For
example, if name of file to be included is 'goto.h' then
tm = time ( NULL ) ; replace filename_h with 'goto_h'.
-------------------------------------------------------------------------
printf ( "The System Date : %s", ctime ( &tm ) ) ; ------------------------
printf ( "\nHow many days ahead you want to set the date : 108.
"); How to write a swap( ) function which swaps the values of
scanf ( "%d", &d ) ; the variables using bitwise operators.
7. What is frame relay, in which layer it comes? 16. What is point-to-point protocol
Frame relay is a packet switching technology. It will operate A communications protocol used to connect computers to
in the data link layer. remote networking services including Internet service
providers.
8.What is terminal emulation, in which layer it comes?
17. How Gateway is different from Routers?
Telnet is also called as terminal emulation. It belongs to
application layer. A gateway operates at the upper levels of the OSI model and
translates information between two completely different
9. What is Beaconing? network architectures or data formats
The process that allows a network to self-repair networks 18. What is attenuation?
problems. The stations on the network notify the other
stations on the ring when they are not receiving the The degeneration of a signal over distance on a network
transmissions. Beaconing is used in Token ring and FDDI cable is called attenuation.
networks.
19. What is MAC address?
10. What is redirector?
The address for a device as it is identified at the Media
Redirector is software that intercepts file or prints I/O Access Control (MAC) layer in the network architecture.
requests and translates them into network requests. This MAC address is usually stored in ROM on the network
comes under presentation layer. adapter card and is unique.
13. What is passive topology? 22. What are the types of Transmission media?
Signals are usually transmitted over some transmission 26. What are the different type of networking /
media that are broadly classified in to two categories. internetworking devices?
These are those that provide a conduit from one device to Also called a regenerator, it is an electronic device that
another that include twisted-pair, coaxial cable and fiber- operates only at physical layer. It receives the signal in the
optic cable. A signal traveling along any of these media is network before it becomes weak, regenerates the original bit
directed and is contained by the physical limits of the pattern and puts the refreshed copy back in to the link.
medium. Twisted-pair and coaxial cable use metallic that
accept and transport signals in the form of electrical current. Bridges:
Optical fiber is a glass or plastic cable that accepts and
transports signals in the form of light. These operate both in the physical and data link layers of
LANs of same type. They divide a larger network in to
b) Unguided Media: smaller segments. They contain logic that allow them to
keep the traffic for each segment separate and thus are
This is the wireless media that transport electromagnetic repeaters that relay a frame only the side of the segment
waves without using a physical conductor. Signals are containing the intended recipent and control congestion.
broadcast either through air. This is done through radio
communication, satellite communication and cellular Routers:
telephony.
They relay packets among multiple interconnected networks
24. What is Project 802? (i.e. LANs of different type). They operate in the physical,
data link and network layers. They contain software that
It is a project started by IEEE to set standards to enable enable them to determine which of the several possible paths
intercommunication between equipment from a variety of is the best for a particular transmission.
manufacturers. It is a way for specifying functions of the
physical layer, the data link layer and to some extent the Gateways:
network layer to allow for interconnectivity of major LAN
protocols. They relay packets among networks that have different
protocols (e.g. between a LAN and a WAN). They accept a
It consists of the following: packet formatted for one protocol and convert it to a packet
formatted for another protocol before forwarding it. They
* 802.1 is an internetworking standard for compatibility of operate in all seven layers of the OSI model.
different LANs and MANs across protocols.
* 802.2 Logical link control (LLC) is the upper sublayer 27. What is ICMP?
of the data link layer which is non-architecture-specific, that
is remains the same for all IEEE-defined LANs. ICMP is Internet Control Message Protocol, a network layer
* Media access control (MAC) is the lower sublayer of the protocol of the TCP/IP suite used by hosts and gateways to
data link layer that contains some distinct modules each send notification of datagram problems back to the sender. It
carrying proprietary information specific to the LAN product uses the echo test / reply to test whether a destination is
being used. The modules are Ethernet LAN (802.3), Token reachable and responding. It also handles both control and
ring LAN (802.4), Token bus LAN (802.5). error messages.
* 802.6 is distributed queue dual bus (DQDB) designed to
be used in MANs. 28. What are the data units at different layers of the TCP / IP
25. What is Protocol Data Unit? protocol suite?
The data unit in the LLC level is called the protocol data unit The data unit created at the application layer is called a
(PDU). The PDU contains of four fields a destination service message, at the transport layer the data unit created is called
access point (DSAP), a source service access point (SSAP), either a segment or an user datagram, at the network layer
a control field and an information field. DSAP, SSAP are the data unit created is called the datagram, at the data link
addresses used by the LLC to identify the protocol stacks on layer the datagram is encapsulated in to a frame and finally
the receiving and sending machines that are generating and transmitted as signals along the transmission media.
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). 29. What is difference between ARP and RARP?
The address resolution protocol (ARP) is used to associate * BUS topology:
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 In this each computer is directly connected to primary
host on its network by sending a ARP query packet that network cable in a single line.
includes the IP address of the receiver.
Advantages:
The reverse address resolution protocol (RARP) allows a
host to discover its Internet address when it knows only its Inexpensive, easy to install, simple to understand, easy to
physical address. extend.
30. What is the minimum and maximum length of the header STAR topology:
in the TCP segment and IP datagram?
In this all computers are connected using a central hub.
The header should have a minimum length of 20 bytes and
can have a maximum length of 60 bytes. Advantages:
31. What is the range of addresses in the classes of internet Can be inexpensive, easy to install and reconfigure and easy
addresses? to trouble shoot physical problems.
Class D 224.0.0.0 - 239.255.255.255 All computers have equal access to network media,
installation can be simple, and signal does not degrade as
Class E 240.0.0.0 - 247.255.255.255 much as in other topologies because each computer
regenerates it.
32. What is the difference between TFTP and FTP
application layer protocols? 35. What is mesh network?
The Trivial File Transfer Protocol (TFTP) allows a local host A network in which there are multiple network links
to obtain files from a remote host but does not provide between computers to provide multiple paths for data to
reliability or security. It uses the fundamental packet travel.
delivery services offered by UDP.
36. What is difference between baseband and broadband
The File Transfer Protocol (FTP) is the standard mechanism transmission?
provided by TCP / IP for copying a file from one host to
another. It uses the services offer by TCP and so is reliable In a baseband transmission, the entire bandwidth of the cable
and secure. It establishes two connections (virtual circuits) is consumed by a single signal. In broadband transmission,
between the hosts, one for data transfer and another for signals are sent on multiple frequencies, allowing multiple
control information. signals to be sent simultaneously.
33. What are major types of networks and explain? 37. Explain 5-4-3 rule?
34. What are the important topologies for networks? 39. What is the difference between routable and non-
routable protocols?
the details about how to route packets to destinations within
Routable protocols can work with a router and can be used to its own region, but knowing nothing about the internal
build large networks. Non-Routable protocols are designed structure of other regions.
to work on small, local networks and cannot be used with a
router 48. What is silly window syndrome?
40. Why should you care about the OSI Reference Model? It is a problem that can ruin TCP performance. This problem
occurs when data are passed to the sending TCP entity in
It provides a framework for discussing network operations large blocks, but an interactive application on the receiving
and design. side reads 1 byte at a time.
41. What is logical link control? 49. What are Digrams and Trigrams?
One of two sublayers of the data link layer of OSI reference The most common two letter combinations are called as
model, as defined by the IEEE 802 standard. This sublayer is digrams. e.g. th, in, er, re and an. The most common three
responsible for maintaining the link between computers letter combinations are called as trigrams. e.g. the, ing, and,
when they are sending data across the physical network and ion.
connection.
50. Expand IDEA.
42. What is virtual channel?
IDEA stands for International Data Encryption Algorithm.
Virtual channel is normally a connection from one source to
one destination, although multicast connections are also 51. What is wide-mouth frog?
permitted. The other name for virtual channel is virtual
circuit. Wide-mouth frog is the simplest known key distribution
center (KDC) authentication protocol.
43. What is virtual path? 52. What is Mail Gateway?
Along any transmission path from a given source to a given It is a system that performs a protocol translation between
destination, a group of virtual circuits can be grouped different electronic mail delivery protocols.
together into what is called path.
53. What is IGP (Interior Gateway Protocol)?
44. What is packet filter?
It is any routing protocol used within an autonomous system.
Packet filter is a standard router equipped with some extra
functionality. The extra functionality allows every incoming 54. What is EGP (Exterior Gateway Protocol)?
or outgoing packet to be inspected. Packets meeting some
criterion are forwarded normally. Those that fail the test are It is the protocol the routers in neighboring autonomous
dropped. systems use to identify the set of networks that can be
reached within or via each autonomous system.
45. What is traffic shaping?
55. What is autonomous system?
One of the main causes of congestion is that traffic is often
busy. If hosts could be made to transmit at a uniform rate, It is a collection of routers under the control of a single
congestion would be less common. Another open loop administrative authority and that uses a common Interior
method to help manage congestion is forcing the packet to Gateway Protocol.
be transmitted at a more predictable rate. This is called
traffic shaping. 56. What is BGP (Border Gateway Protocol)?
46. What is multicast routing? It is a protocol used to advertise the set of networks that can
be reached with in an autonomous system. BGP enables this
Sending a message to a group is called multicasting, and its information to be shared with the autonomous system. This
routing algorithm is called multicast routing. is newer than EGP (Exterior Gateway Protocol).
When hierarchical routing is used, the routers are divided It is a protocol formerly used to exchange routing
into what we will call regions, with each router knowing all information between Internet core routers.
Since the static functions are not any way related to objects,
58. What is NVT (Network Virtual Terminal)? they cannot be declared as virtual.
-------------------------------------------------------------------------
It is a set of rules defining a very simple virtual terminal ------------------------
interaction. The NVT is used in the start of a Telnet session. 2.
59. What is a Multi-homed Host?
Can user-defined object be declared as static data member of
It is a host that has a multiple network interfaces and that another class?
requires multiple IP addresses is called as a Multi-homed
Host. Ans: Yes. The following code shows how to initialize a user-
defined object.
60. What is Kerberos?
#include
It is an authentication service developed at the
Massachusetts Institute of Technology. Kerberos uses class test
encryption to prevent intruders from discovering passwords {
and gaining unauthorized access to files. int i ;
public :
61. What is OSPF? test ( int ii = 0 )
{
It is an Internet routing protocol that scales well, can route i = ii ;
traffic along multiple paths, and uses knowledge of an }
Internet's topology to make accurate routing decisions. };
63. What is SLIP (Serial Line Interface Protocol)? Here we have initialized the object s by calling the one-
argument constructor. We can use the same convention to
It is a very simple protocol used for transmission of IP initialize the object by calling multiple-argument
datagrams across a serial line. constructor.
// file2.h 9 or 7
class sample { ... } ; 9 or 7
Garbage
With these definitions, it is impossible to use both header Garbage
files in a single program; the sample classes will clash.A Garbage
namespace is a declarative region that attaches an additional
identifier to any names declared inside it. The additional Since the user class contains three elements, int, float and
identifier thus avoids the possibility that a name will conflict char its size would be 9 bytes (int-4, float-4, char-1) under
with names declared elsewhere in the program. It is possible Windows and 7 bytes (int-2, float-4, char-1) under DOS.
to use the same name in separate namespaces without Second output is again the same because u1 is an object of
conflict even if the names appear in the same translation the class user. Finally three garbage values are printed out
unit. As long as they appear in separate namespaces, each because i, f and c are not initialized anywhere in the
name will be unique because of the addition of the program.
namespace identifier. For example:
Note that if you run this program you may not get the answer
// file1.h shown here. This is because packing is done for an object in
namespace file1 memory to increase the access efficiency. For example,
{ under DOS, the object would be aligned on a 2-byte
float f ( float, int ) ; boundary. As a result, the size of the object would be
class sample { ... } ; reported as 6 bytes. Unlike this, Windows being a 32-bit OS
} the object would be aligned on a 4-byte boundary. Hence the
size of the object would be reported as 12 bytes. To force the
// file2.h alignment on a 1-byte boundary, write the following
namespace file2 statement before the class declaration.
{ #pragma pack ( 1 )
class sample { ... } ; -------------------------------------------------------------------------
} ------------------------
39.
Now the class names will not clash because they become
file1::sample and file2::sample, respectively. Write a program that will convert an integer pointer to an
------------------------------------------------------------------------- integer and vice-versa.
------------------------
38. Ans: The following program demonstrates this.
What would be the output of the following program? #include
void main( )
#include {
class user int i = 65000 ;
{
int i ; int *iptr = reinterpret_cast ( i ) ;
float f ; cout << endl << iptr ;
char c ;
public : iptr++ ;
void displaydata( ) cout << endl << iptr ;
{
cout << endl << i << endl << f << endl << c ; i = reinterpret_cast ( iptr ) ;
} cout << endl << i ;
};
i++ ;
void main( ) cout << endl << i ;
} fun ( s, t ) ;
}
40. On compiling this program it gives error on the following
What is a const_cast? statement of test class. It gives an error that sample is
undeclared identifier. friend void fun ( sample, test ) ;
Ans. The const_cast is used to convert a const to a non- This is so because the class sample is defined below the class
const. This is shown in the following test and we are using it before its definition. To overcome
program: this error we need to give forward reference of the class
#include sample before the definition of class test. The following
void main( ) statement is the forward reference of class sample.
{ class sample ;
const int a = 0 ; -------------------------------------------------------------------------
int *ptr = ( int * ) &a ; //one way ------------------------
ptr = const_cast_ ( &a ) ; //better way 42.
} How would you give an alternate name to a namespace?
Here, the address of the const variable a is assigned to the
pointer to a non-const variable. The const_cast is also used Ans: An alternate name given to namespace is called a
when we want to change the data members of a class inside namespace-alias. namespace-alias is generally used to save
the const member functions. The following code snippet the typing effort when the names of namespaces are very
shows this: long or complex. The following syntax is used to give an
class sample alias to a namespace.
{ namespace myname =
private: my_old_very_long_name ;
int data;
public: -------------------------------------------------------------------------
void func( ) const ------------------------
{ 43.
(const_cast (this))->data = 70 ; Using a smart pointer can we iterate through a container?
}
}; Ans: Yes. A container is a collection of elements or objects.
------------------------------------------------------------------------- It helps to properly organize and store the data. Stacks,
------------------------ linked lists, arrays are examples of containers. Following
41. program shows how to iterate through a container using a
What is forward referencing and when should it be used? smart pointer.
Ans: Forward referencing is generally required when we #include
make a class or a function as a friend.
Consider following program: class smartpointer
class test {
{ private :
public: int *p ; // ordinary pointer
friend void fun ( sample, test ) ; public :
}; smartpointer ( int n )
{
class sample p = new int [ n ] ;
{ int *t = p ;
public: for ( int i = 0 ; i <= 9 ; i++ )
friend void fun ( sample, test ) ; *t++ = i * i ;
}; }
#include
#include
58. template
How to obtain type information using typeid( ) operator? class base
{
Ans: typeid( ) operator takes an object, a reference or a public :
pointer and returns its type. Following program shows how base( )
to use the typeid( ) operator. {
cout << typeid ( *this ).name( ) << "Constructor" << endl
#include ;
#include }
#include #include
class base
{ class A
public : {
int data ; public :
};
int fun ( int f )
class d1 : public base {
{ cout << "in fun\n" ;
};
return f * f ;
class d2 : public base }
{ };
};
typedef int ( A:: *pfun ) ( int ) ;
class der : public d1, public d2
{ void main( )
public : {
void showdata( ) pfun p = A::fun ;
{ Aa;
cout << data ; int s = ( a.*p ) ( 6 ) ;
} cout << s ;
}; }
Ans: Consider the following statement, Here the operator *( ) function takes two parameters. This is
s2 = s1 * 2 ; because the operator function is no longer a member
where, s1 and s2 are objects of sample class. This statement function of the class. It is a friend of the class sample. Thus
would work if the overloaded operator * ( sample s ) or the statement s2 = s1 * 2 ; would not take the form
conversion function is provided in the class. Internally this s2.operator * ( 2 ). This example shows that using friend
statement would get converted to, permits the overloaded operators to be more versatile.
s2 = s1.operator * ( 2 ) ; 97.
class sample Here, the address of the const variable a is assigned to the
{ pointer to a non-const variable. The const_cast is also used
private : when we want to change the data members of a class inside
int i ; the const member functions. The following code snippet
public : shows how to do this.
sample ( int ii = 0 ) class sample
{ {
i = ii ; private :
} int data ;
public :
void showdata( ) void fun( ) const
{ {
cout << i << endl ; ( const_cast ( this ) ) -> data = 70 ;
} }
};
friend sample operator * ( sample, sample ) ; -------------------------------------------------------------------------
}; ------------------------
98.
sample operator * ( sample s1, sample s2 ) Using a smart pointer we can make an object appear like a
{ pointer.
sample temp ;
temp.i = s1.i * s2.i ; If a class overloads the operator -> then any object of that
return ( temp ) ; class can appear like a pointer when the operator -> ( ) is
} called. The following program illustrates this.
#include
void main( )
{ class test
sample s1 ( 10 ), s2 ; {
public :
s2 = s1 * 2 ; void fun( )
s2.showdata( ) ; {
cout << "fun of smart pointer" ;
s1 = 2 * s2 ; }
}; Why can't data members of a class be initialized at the time
of declaration as given in the following code?
class smartpointer class emp
{ {
test t ; private :
public : int j = 10 ;
test* operator ->( ) };
{ Ans: Memory for data members of a class is allocated only
return &t ; when object of that class is created. One cannot store data in
} a memory location, which does not exist at all. Therefore
}; initialization at the time of declaration
is not possible.
void main( ) -------------------------------------------------------------------------
{ ------------------------
smartpointer sp ; 101.
sp -> fun( ) ;
} Why in a copy constructor an object is collected in a
The beauty of overloading operator -> is that even though sp reference to object as shown below?
is an object we can make it work like a pointer. The operator #include
-> ( ) returns the address of the object of the type test. Using class emp
this address of the test object the function fun( ) of the class {
test gets called. Thus even though fun( ) is not a member of public :
smartpointer class we can still call it using sp. emp( )
{
------------------------------------------------------------------------- }
------------------------ emp ( emp& )
99. {
Can we apply delete on this pointer inside a member cout << "copy" ;
function? }
};
Ans : Yes! If the member function of a class is called using a void main( )
pointer to an object, which is allocated dynamically, the {
object would get deleted. But if the member function is emp e ;
called using the object, which is allocated statically, then a emp e1 = e ;
runtime error would occur. This is because we cannot call }
delete on statically allocated objects. This is illustrated in the Ans: A copy constructor is called when an object is created
following example. and initialised at the same time. It is also called when object
class sample is passed to a function. So, If we pass the object to copy
{ constructor copy constructor would get called recursively.
private : Thus it will stuck up in an infinite loop.
int i ; -------------------------------------------------------------------------
public : ------------------------
void fun( ) 102.
{
delete this ; What is Early Binding and Dynamic Binding?
} Ans: The term binding refers to the connection between a
}; function call and the actual code executed as a result of the
call. Early Binding: If which function is to be called is
void main( ) known at the compile-time it is known as static or early
{ binding. Dynamic Binding: If which function is to be called
sample *s = new sample ; is decided at run time it is called as late or dynamic binding.
s -> fun( ) ; // no error Dynamic binding is so called because the actual function
called at run-time depends on the contents of the pointer. For
sample s1 ; example, call to virtual functions, call to functions to be
s1.fun( ) ; // would throw a runtime error linked from dlls use late binding.
} -------------------------------------------------------------------------
100. ------------------------
103.
When can we use the function ostrstream::freeze( )?
4. How are Observer and Observable used?
Ans: While outputting data to memory in the in-memory Objects that subclass the Observable class maintain a list of
formatting we need to create an object of the class observers. When an Observable object is updated it invokes
ostrstream. The constructor of ostrstream receives the the update() method of each of its observers to notify the
address of the buffer but if we want that the ostrstream observers that it has changed state. The Observer interface is
object should do its own memory management then we need implemented by objects that observe Observable objects.
to create an ostrstream object with no constructor arguments
as: 5. What is synchronization and why is it important?
ostrstream s ; With respect to multithreading, synchronization is the
Now s will do its own memory management. We can stuff as capability to control the access of multiple threads to shared
many bytes into it as we want. If it falls short of memory, it resources. Without synchronization, it is possible for one
will allocate more memory. If it cannot, it may even move thread to modify a shared object while another thread is in
the block of memory. When the object goes out of scope, the the process of using or updating that object's value. This
heap storage is automatically released. This is a more often leads to significant errors.
flexible approach if we do not know how much space we are
going to need. If we want the physical address of the 6. Can a lock be acquired on a class?
memory used by s we can obtain it by calling the str( ) Yes, a lock can be acquired on a class. This lock is acquired
member function: on the class's Class object..
char* p = s.str( ) ;
Once str( ) has been called then the block of memory 7. What's new with the stop(), suspend() and resume()
allocated by ostrstream cannot be moved. This is logical. It methods in JDK 1.2?
can't move the block since we are now expecting it to be at a The stop(), suspend() and resume() methods have been
particular location. In such a case we deprecated in JDK 1.2.
say that ostrstream has freezed itself. Once frozen we can't
add any more characters to it. Adding characters to a frozen 8. Is null a keyword?
ostrstream results in undefined behavior. In addition, the The null value is not a keyword.
ostrstream is no longer responsible for cleaning up the
storage. You took over that responsibility when you asked 9. What is the preferred size of a component?
for the char * with str( ). We can clean the storage in two The preferred size of a component is the minimum
ways: Using the delete operator as shown below: component size that will allow the component to display
ostrstream s ; normally.
char *p ;
p = s.str( ) ; 10. What method is used to specify a container's layout?
delete p ; The setLayout() method is used to specify a container's
By unfreezing the ostrstream. You do this by calling layout.
freeze( ), with an argument 1. During freezing it is called
with the default argument of 0. 11. Which containers use a FlowLayout as their default
layout?
The Panel and Applet classes use the FlowLayout as their
default layout.
java 12. What state does a thread enter when it terminates its
#############3 processing?
FAQ In Core Java When a thread terminates its processing, it enters the dead
1.what is a transient variable? state.
A transient variable is a variable that may not be serialized. 13. What is the Collections API?
The Collections API is a set of classes and interfaces that
2.which containers use a border Layout as their default support operations on collections of objects.
layout?
The window, Frame and Dialog classes use a border layout 14. Which characters may be used as the second character of
as their default layout. an identifier,
but not as the first character of an identifier?
3.Why do threads block on I/O? The digits 0 through 9 may not be used as the first character
Threads block on i/o (that is enters the waiting state) so that of an identifier but they may be used after the first character
other threads may execute while the i/o Operation is of an identifier.
performed.
15. What is the List interface?
The List interface provides support for ordered collections of Garbage collection does not guarantee that a program will
objects. not run out of memory. It is possible for programs to use up
memory resources faster than they are garbage collected. It
16. How does Java handle integer overflows and is also possible for programs to create objects that are not
underflows? subject to garbage collection
It uses those low order bytes of the result that can fit into the
size of the type allowed by the operation. 28. What restrictions are placed on the location of a package
statement
17. What is the Vector class? within a source code file?
The Vector class provides the capability to implement a A package statement must appear as the first line in a source
growable array of objects code file (excluding blank lines and comments).
18. What modifiers may be used with an inner class that is a 29. Can an object's finalize() method be invoked while it is
member of an outer class? reachable?
A (non-local) inner class may be declared as public, An object's finalize() method cannot be invoked by the
protected, private, static, final, or abstract. garbage collector while the object is still reachable.
However, an object's finalize() method may be invoked by
19. What is an Iterator interface? other objects.
The Iterator interface is used to step through the elements of
a Collection. 30. What is the immediate superclass of the Applet class?
Panel
20. What is the difference between the >> and >>>
operators? 31. What is the difference between preemptive scheduling
The >> operator carries the sign bit when shifting right. The and time slicing?
>>> zero-fills bits that have been shifted out. Under preemptive scheduling, the highest priority task
executes until it enters the waiting or dead states or a higher
21. Which method of the Component class is used to set the priority task comes into existence. Under time slicing, a task
position and executes for a predefined slice of time and then reenters the
size of a component? pool of ready tasks. The scheduler then determines which
setBounds() task should execute next, based on priority and
other factors.
22. How many bits are used to represent Unicode, ASCII,
UTF-16, and UTF-8 characters? 32. Name three Component subclasses that support painting.
Unicode requires 16 bits and ASCII require 7 bits. Although The Canvas, Frame, Panel, and Applet classes support
the ASCII character set uses only 7 bits, it is usually painting.
represented as 8 bits. UTF-8 represents characters using 8,
16, and 18 bit patterns. UTF-16 uses 16-bit and larger bit 33. What value does readLine() return when it has reached
patterns. the end of a file?
The readLine() method returns null when it has reached the
23What is the difference between yielding and sleeping? end of a file.
When a task invokes its yield() method, it returns to the
ready state. When a task invokes its sleep() method, it 34. What is the immediate superclass of the Dialog class?
returns to the waiting state. Window
24. Which java.util classes and interfaces support event
handling? 35. What is clipping?
The EventObject class and the EventListener interface Clipping is the process of confining paint operations to a
support event processing. limited area or shape.
46. Can an anonymous class be declared as implementing an 58. What is the purpose of the Runtime class?
interface and extending a class? The purpose of the Runtime class is to provide access to the
An anonymous class may implement an interface or extend a Java runtime system.
superclass, but may not be declared to do both.
59. How many times may an object's finalize() method be
47. What is the range of the short type? invoked by the
The range of the short type is -(2^15) to 2^15 - 1. garbage collector?
An object's finalize() method may only be invoked once by
48. What is the range of the char type? the garbage collector.
The range of the char type is 0 to 2^16 - 1.
60. What is the purpose of the finally clause of a try-catch-
49. In which package are most of the AWT events that finally statement?
support the event-delegation The finally clause is used to provide the capability to execute
model defined? code no matter whether or not an exception is thrown or
Most of the AWT-related events of the event-delegation caught.
model are defined in the java.awt.event package. The
AWTEvent class is defined in the java.awt package. 61. What is the argument type of a program's main()
method?
50. What is the immediate superclass of Menu?
A program's main() method takes an argument of the String[] resource. When a thread executes an object's wait() method,
type. it enters the waiting state. It only enters the ready state after
another thread invokes the object's notify() or notifyAll()
62. Which Java operator is right associative? methods..
The = operator is right associative.
73. What is an abstract method?
63. What is the Locale class? An abstract method is a method whose implementation is
The Locale class is used to tailor program output to the deferred to a subclass.
conventions of a particular geographic, political, or cultural
region. 74. How are Java source code files named?
A Java source code file takes the name of a public class or
64. Can a double value be cast to a byte? interface that is defined within the file. A source code file
Yes, a double value can be cast to a byte. may contain at most one public class or interface. If a public
class or interface is defined within a source code file, then
65. What is the difference between a break statement and a the source code file must take the name of the public class or
continue statement? interface. If no public class or interface is defined within a
A break statement results in the termination of the statement source code file, then the file must take on a name that is
to which it applies (switch, for, do, or while). A continue different than its classes and interfaces. Source code files use
statement is used to end the current loop iteration and return the .java extension.
control to the loop statement.
75. What is the relationship between the Canvas class and
66. What must a class do to implement an interface? the Graphics class?
It must provide all of the methods in the interface and A Canvas object provides access to a Graphics object via its
identify the interface in its implements clause. paint() method.
67. What method is invoked to cause an object to begin 76. What are the high-level thread states?
executing as a separate thread? The high-level thread states are ready, running, waiting, and
The start() method of the Thread class is invoked to cause an dead.
object to begin executing as a separate thread.
77. What value does read() return when it has reached the
68. Name two subclasses of the TextComponent class. end of a file?
TextField and TextArea The read() method returns -1 when it has reached the end of
a file.
69. What is the advantage of the event-delegation model
over the earlier event-inheritance model? 78. Can a Byte object be cast to a double value?
The event-delegation model has two advantages over the No, an object cannot be cast to a primitive value.
event-inheritance model. First, it enables event handling to
be handled by objects other than the ones that generate the 79. What is the difference between a static and a non-static
events (or their containers). This allows a clean separation inner class?
between a component's design and its use. The other A non-static inner class may have object instances that are
advantage of the event-delegation model is that it performs associated with instances of the class's outer class. A static
much better in applications where many events are inner class does not have any object instances.
generated. This performance improvement is due to the fact 80. What is the difference between the String and
that the event-delegation model does not have to repeatedly StringBuffer classes?
process unhandled events, as is the case of the event- String objects are constants. StringBuffer objects are not.
inheritance model.
70. Which containers may have a MenuBar? 81. If a variable is declared as private, where may the
Frame variable be accessed?
A private variable may only be accessed within the class in
71. How are commas used in the intialization and iteration which it is declared.
parts of a for statement?
Commas are used to separate multiple statements within the 82. What is an object's lock and which object's have locks?
initialization and iteration parts of a for statement. An object's lock is a mechanism that is used by multiple
threads to obtain synchronized access to the object. A thread
72. What is the purpose of the wait(), notify(), and may execute a synchronized method of an object only after it
notifyAll() methods? has acquired the object's lock. All objects and classes have
The wait(),notify(), and notifyAll() methods are used to locks. A class's lock is acquired on the class's Class object.
provide an efficient way for threads to wait for a shared
83. What is the Dictionary class? 95. What classes of exceptions may be caught by a catch
The Dictionary class provides the capability to store key- clause?
value pairs. A catch clause can catch any exception that may be assigned
to the Throwable type. This includes the Error and Exception
84. How are the elements of a BorderLayout organized? types.
The elements of a BorderLayout are organized at the borders
(North, South, East, and West) and the center of a container. 96. If a class is declared without any access modifiers, where
may the class be accessed?
85. What is the % operator? A class that is declared without any access modifiers is said
It is referred to as the modulo or remainder operator. It to have package access. This means that the class can only
returns the remainder of dividing the first operand by the be accessed by other classes and interfaces that are defined
second operand. within the same package.
86. When can an object reference be cast to an interface 97. What is the SimpleTimeZone class?
reference? The SimpleTimeZone class provides support for a Gregorian
An object reference be cast to an interface reference when calendar.
the object implements the referenced interface.
98. What is the Map interface?
87. What is the difference between a Window and a Frame? The Map interface replaces the JDK 1.1 Dictionary class and
The Frame class extends Window to define a main is used associate keys with values.
application window that can have a menu bar.
99. Does a class inherit the constructors of its superclass?
88. Which class is extended by all other classes? A class does not inherit constructors from any of its
The Object class is extended by all other classes. superclasses.
89. Can an object be garbage collected while it is still 100. For which statements does it make sense to use a label?
reachable? The only statements for which it makes sense to use a label
A reachable object cannot be garbage collected. Only are those statements that can enclose a break or continue
unreachable objects may be garbage collected.. statement.
90. Is the ternary operator written x : y ? z or x ? y : z ? 101. What is the purpose of the System class?
It is written x ? y : z. The purpose of the System class is to provide access to
system resources.
91. What is the difference between the Font and FontMetrics
classes? 102. Which TextComponent method is used to set a
The FontMetrics class is used to define implementation- TextComponent to the read-only state?
specific properties, such as ascent and descent, of a Font setEditable()
object.
103. How are the elements of a CardLayout organized?
92. How is rounding performed under integer division? The elements of a CardLayout are stacked, one on top of the
The fractional part of the result is truncated. This is known other, like a deck of cards.
as rounding toward zero.
104. Is &&= a valid Java operator?
93. What happens when a thread cannot acquire a lock on an No, it is not.
object?
If a thread attempts to execute a synchronized method or 105. Name the eight primitive Java types.
synchronized statement and is unable to acquire an object's The eight primitive types are byte, char, short, int, long,
lock, it enters the waiting state until the lock becomes float, double, and boolean.
available.
106. Which class should you use to obtain design
94. What is the difference between the Reader/Writer class information about an object?
hierarchy and the The Class class is used to obtain information about an
InputStream/OutputStream class hierarchy? object's design.
The Reader/Writer class hierarchy is character-oriented, and
the InputStream/OutputStream class hierarchy is byte- 107. What is the relationship between clipping and
oriented. repainting?
When a window is repainted by the AWT painting thread, it Java uses layout managers to lay out components in a
sets the clipping regions to the area of the window that consistent manner across all windowing platforms. Since
requires repainting. Java's layout managers aren't tied to absolute sizing and
positioning, they are able to accomodate platform-specific
108. Is "abc" a primitive value? differences among windowing systems.
The String literal "abc" is not a primitive value. It is a String
object. 119. What is the Collection interface?
The Collection interface provides support for the
109. What is the relationship between an event-listener implementation of a mathematical bag - an unordered
interface and an collection of objects that may contain duplicates.
event-adapter class?
An event-listener interface defines the methods that must be 120. What modifiers can be used with a local inner class?
implemented by an event handler for a particular kind of A local inner class may be final or abstract.
event. An event adapter provides a default implementation of
an event-listener interface. 121. What is the difference between static and non-static
variables?
110. What restrictions are placed on the values of each case A static variable is associated with the class as a whole
of a switch statement? rather than with specific instances of a class. Non-static
During compilation, the values of each case of a switch variables take on unique values with each object instance.
statement must evaluate to a value that can be promoted to
an int value. 122. What is the difference between the paint() and repaint()
methods?
111. What modifiers may be used with an interface The paint() method supports painting via a Graphics object.
declaration? The repaint() method is used to cause paint() to be invoked
An interface may be declared as public or abstract. by the AWT painting thread.
112. Is a class a subclass of itself? 123. What is the purpose of the File class?
A class is a subclass of itself. The File class is used to create objects that provide access to
the files and directories of a local file system.
113. What is the highest-level event class of the event-
delegation model? 124. Can an exception be rethrown?
The java.util.EventObject class is the highest-level class in Yes, an exception can be rethrown.
the event-delegation class hierarchy. 125. Which Math method is used to calculate the absolute
value of a number?
114. What event results from the clicking of a button? The abs() method is used to calculate absolute values.
The ActionEvent event is generated as the result of the
clicking of a button. 126. How does multithreading take place on a computer with
a single CPU?
115. How can a GUI component handle its own events? The operating system's task scheduler allocates execution
A component can handle its own events by implementing the time to multiple tasks. By quickly switching between
required event-listener interface and adding itself as its own executing tasks, it creates the impression that tasks execute
event listener. sequentially.
116. What is the difference between a while statement and a
do statement? 127. When does the compiler supply a default constructor
A while statement checks at the beginning of a loop to see for a class?
whether the next loop iteration should occur. A do statement The compiler supplies a default constructor for a class if no
checks at the end of a loop to see whether the next iteration other constructors are provided.
of a loop should occur. The do statement will always execute
the body of a loop at least once. 128. When is the finally clause of a try-catch-finally
statement executed?
117. How are the elements of a GridBagLayout organized? The finally clause of the try-catch-finally statement is always
The elements of a GridBagLayout are organized according executed unless the thread of execution terminates or an
to a grid. However, the elements are of different sizes and exception occurs within the execution of the finally clause.
may occupy more than one row or column of the grid. In
addition, the rows and columns may have different sizes. 129. Which class is the immediate superclass of the
Container class?
118. What advantage do Java's layout managers provide over Component
traditional windowing systems?
130. If a method is declared as protected, where may the The ObjectInputStream class supports the reading of objects
method be accessed? from input streams.
A protected method may only be accessed by classes or
interfaces of the same package or by subclasses of the class 141. What is the difference between a field variable and a
in which it is declared. local variable?
A field variable is a variable that is declared as a member of
131. How can the Checkbox class be used to create a radio a class. A local variable is a variable that is declared local to
button? a method.
By associating Checkbox objects with a CheckboxGroup.
142. Under what conditions is an object's finalize() method
132. Which non-Unicode letter characters may be used as invoked by the garbage collector?
the first character The garbage collector invokes an object's finalize() method
of an identifier? when it detects that the object has become unreachable.
The non-Unicode letter characters $ and _ may appear as the
first character of an identifier 143. How are this() and super() used with constructors?
this() is used to invoke a constructor of the same class.
133. What restrictions are placed on method overloading? super() is used to invoke a superclass constructor.
Two methods may not have the same name and argument list
but different return types. 144. What is the relationship between a method's throws
clause and the exceptions
134. What happens when you invoke a thread's interrupt that can be thrown during the method's execution?
method while it is A method's throws clause must declare any checked
sleeping or waiting? exceptions that are not caught within the body of the method.
When a task's interrupt() method is executed, the task enters
the ready state. The next time the task enters the running 145. What is the difference between the JDK 1.02 event
state, an InterruptedException is thrown. model and the event-delegation
model introduced with JDK 1.1?
135. What is casting? The JDK 1.02 event model uses an event inheritance or
There are two types of casting, casting between primitive bubbling approach. In this model, components are required
numeric types and casting between object references. to handle their own events. If they do not handle a particular
Casting between numeric types is used to convert larger event, the event is inherited by (or bubbled up to) the
values, such as double values, to smaller values, such as byte component's container. The container then either handles the
values. Casting between object references is used to refer to event or it is bubbled up to its container and so on, until the
an object by a compatible class, interface, or array type highest-level container has been tried..
reference. In the event-delegation model, specific objects are
designated as event handlers for GUI components. These
136. What is the return type of a program's main() method? objects implement event-listener interfaces. The event-
A program's main() method has a void return type. delegation model is more efficient than the event-inheritance
model because it eliminates the processing required to
137. Name four Container classes. support the bubbling of unhandled events.
Window, Frame, Dialog, FileDialog, Panel, Applet, or 146. How is it possible for two String objects with identical
ScrollPane values not to be equal
under the == operator?
138. What is the difference between a Choice and a List? The == operator compares two objects to determine if they
A Choice is displayed in a compact form that requires you to are the same object in memory. It is possible for two String
pull it down to see the list of available choices. Only one objects to have the same value, but located indifferent areas
item may be selected from a Choice. A List may be of memory.
displayed in such a way that several List items are visible. A
List supports the selection of one or more List items. 147. Why are the methods of the Math class static?
So they can be invoked as if they are a mathematical code
139. What class of exceptions are generated by the Java run- library.
time system?
The Java runtime system generates RuntimeException and 148. What Checkbox method allows you to tell if a
Error exceptions. Checkbox is checked?
getState()
140. What class allows you to read objects directly from a
stream? 149. What state is a thread in when it is executing?
An executing thread is in the running state.
If you are running Java on English Windows platforms, it is
150. What are the legal operands of the instanceof operator? probably Cp1252. If you are running Java on English Solaris
The left operand is an object reference or null value and the platforms, it is most likely 8859_1..
right operand is a class, interface, or array type.
163. Which package is always imported by default?
151. How are the elements of a GridLayout organized? The java.lang package is always imported by default.
The elements of a GridBad layout are of equal size and are
laid out using the squares of a grid. 164. What interface must an object implement before it can
be written to a
152. What an I/O filter? stream as an object?
An I/O filter is an object that reads from one stream and An object must implement the Serializable or Externalizable
writes to another, usually altering the data in some way as it interface before it can be written to a stream as an object.
is passed from one stream to another.
165. How are this and super used?
153. If an object is garbage collected, can it become this is used to refer to the current object instance. super is
reachable again? used to refer to the variables and methods of the superclass
Once an object is garbage collected, it ceases to exist. It can of the current object instance.
no longer become reachable again.
166. What is the purpose of garbage collection?
154. What is the Set interface? The purpose of garbage collection is to identify and discard
The Set interface provides methods for accessing the objects that are no longer needed by a program so that their
elements of a finite mathematical set. Sets do not allow resources may be reclaimed and reused.
duplicate elements. 167. What is a compilation unit?
A compilation unit is a Java source code file.
155. What classes of exceptions may be thrown by a throw
statement? 168. What interface is extended by AWT event listeners?
A throw statement may throw any expression that may be All AWT event listeners extend the java.util.EventListener
assigned to the Throwable type. interface.
156. What are E and PI?
E is the base of the natural logarithm and PI is mathematical 169. What restrictions are placed on method overriding?
value pi. Overridden methods must have the same name, argument
list, and return type.
157. Are true and false keywords? The overriding method may not limit the access of the
The values true and false are not keywords. method it overrides.
The overriding method may not throw any exceptions that
158. What is a void return type? may not be thrown
A void return type indicates that a method does not return a by the overridden method.
value.
170. How can a dead thread be restarted?
159. What is the purpose of the enableEvents() method? A dead thread cannot be restarted.
The enableEvents() method is used to enable an event for a
particular object. Normally, an event is enabled when a 171. What happens if an exception is not caught?
listener is added to an object for a particular event. The An uncaught exception results in the uncaughtException()
enableEvents() method is used by objects that handle events method of the thread's ThreadGroup being invoked, which
by overriding their event-dispatch methods. eventually results in the termination of the program in which
it is thrown.
160. What is the difference between the File and
RandomAccessFile classes? 172. What is a layout manager?
The File class encapsulates the files and directories of the A layout manager is an object that is used to organize
local file system. The RandomAccessFile class provides the components in a container.
methods needed to directly access data contained in any part
of a file. 173. Which arithmetic operations can result in the throwing
of an ArithmeticException?
161. What happens when you add a double value to a String? Integer / and % can result in the throwing of an
The result is a String object. ArithmeticException.
162. What is your platform's default character encoding? 174. What are three ways in which a thread can enter the
waiting state?
A thread can enter the waiting state by invoking its sleep() A statement block is used to organize a sequence of
method, by blocking on I/O, by unsuccessfully attempting to statements as a single statement group.
acquire an object's lock, or by invoking an object's wait()
method. It can also enter the waiting state by invoking its 185. What is a Java package and how is it used?
(deprecated) suspend() method. A Java package is a naming context for classes and
interfaces. A package is used to create a separate name space
175. Can an abstract class be final? for groups of classes and interfaces. Packages are also used
An abstract class may not be declared as final. to organize related classes and interfaces into a single API
unit and to control accessibility to these classes and
176. What is the ResourceBundle class? interfaces.
The ResourceBundle class is used to store locale-specific
resources that can be loaded by a program to tailor the 186. What modifiers may be used with a top-level class?
program's appearance to the particular locale in which it is A top-level class may be public, abstract, or final.
being run.
187. What are the Object and Class classes used for?
177. What happens if a try-catch-finally statement does not The Object class is the highest-level class in the Java class
have a catch clause to handle an exception that is thrown hierarchy. The Class class is used to represent the classes
within the body of the try statement? and interfaces that are loaded by a Java program..
The exception propagates up to the next higher level try- 188. How does a try statement determine which catch clause
catch statement (if any) or results in the program's should be used to handle an exception?
termination. When an exception is thrown within the body of a try
statement, the catch clauses of the try statement are
178. What is numeric promotion? examined in the order in which they appear. The first catch
Numeric promotion is the conversion of a smaller numeric clause that is capable of handling the exception is executed.
type to a larger numeric type, so that integer and floating- The remaining catch clauses are ignored.
point operations may take place. In numerical promotion,
byte, char, and short values are converted to int values. The 189. Can an unreachable object become reachable again?
int values are also converted to long values, if necessary. An unreachable object may become reachable again. This
The long and float values are converted to double values, as can happen when the object's finalize() method is invoked
required. and the object performs an operation which causes it to
become accessible to reachable objects.
179. What is the difference between a Scrollbar and a
ScrollPane? 190. When is an object subject to garbage collection?
A Scrollbar is a Component, but not a Container. A An object is subject to garbage collection when it becomes
ScrollPane is a Container. A ScrollPane handles its own unreachable to the program in which it is used.
events and performs its own scrolling.
191. What method must be implemented by all threads?
180. What is the difference between a public and a non- All tasks must implement the run() method, whether they are
public class? a subclass of Thread or implement the Runnable interface.
A public class may be accessed outside of its package. A
non-public class may not be accessed outside of its package. 192. What methods are used to get and set the text label
displayed by a Button object?
181. To what value is a variable of the boolean type getLabel() and setLabel()
automatically initialized?
The default value of the boolean type is false. 193. Which Component subclass is used for drawing and
painting?
182. Can try statements be nested? Canvas
Try statements may be tested.
194. What are synchronized methods and synchronized
183. What is the difference between the prefix and postfix statements?
forms of the ++ operator? Synchronized methods are methods that are used to control
The prefix form performs the increment operation and access to an object. A thread only executes a synchronized
returns the value of the increment operation. The postfix method after it has acquired the lock for the method's object
form returns the current value all of the expression and then or class. Synchronized statements are similar to
performs the increment operation on that value. synchronized methods. A synchronized statement can only
be executed after a thread has acquired the lock for the
184. What is the purpose of a statement block? object or class referenced in the synchronized statement.
195. What are the two basic ways in which classes that can · What is the difference between "overloading" and
be run as threads may be defined? "overridding"?
A thread class may be declared as a subclass of Thread, or it · Explain the need for "Virtual Destructor".
may implement the Runnable interface. · Can we have "Virtual Constructors"?
· What are the different types of polymorphism?
196. What are the problems faced by Java programmers who · What are Virtual Functions? How to implement virtual
don't use layout managers? functions in "C"
Without layout managers, Java programmers are faced with · What are the different types of Storage classes?
determining how their GUI will be displayed across multiple · What is Namespace?
windowing systems and finding a common sizing and · What are the types of STL containers?.
positioning that will work within the constraints imposed by · Difference between "vector" and "array"?
each windowing system. · How to write a program such that it will delete itself after
exectution?
197. What is the difference between an if statement and a · Can we generate a C++ source code from the binary file?
switch statement? · What are inline functions?
The if statement is used to select among two alternatives. It · Talk sometiming about profiling?
uses a boolean expression to decide which alternative should · How many lines of code you have written for a single
be executed. The switch statement is used to select among program?
multiple alternatives. It uses an int expression to determine · What is "strstream" ?
which alternative should be executed. · How to write Multithreaded applications using C++?
· Explain "passing by value", "passing by pointer" and
198. What happens when you add a double value to a String? "passing by reference"
The result is a String object. · Write any small program that will compile in "C" but not in
"C++"
199. What is the List interface? · Have you heard of "mutable" keyword?
The List interface provides support for ordered collections of · What is a "RTTI"?
objects.
· 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
FAQ In Object Oriented Concepts free it using "free" or allocate sing "calloc" and free it using
********************************* "delete"?
· How do you write a program which produces its own · What is Memory Alignment?
source code as its output? · Explain working of printf.
· How can I find the day of the week given the date? · Difference between "printf" and "sprintf".
· Why doesn't C have nested functions? · What is "map" in STL?
· What is the most efficient way to count the number of bits · When shall I use Multiple Inheritance?
which are set in a value? · What are the techniques you use for debugging?
· How can I convert integers to binary or hexadecimal? · How to reduce a final size of executable?
· How can I call a function, given its name as a string? · Give 2 examples of a code optimization.
· How do I access command-line arguments? · What is inheritance?
· How can I return multiple values from a function? · Difference between Composition and Aggregation.
· How can I invoke another program from within a C · Difference: Sequence Diagrams, Collaboration Diagrams.
program? · Difference: 'uses', 'extends', 'includes'
· How can I access memory located at a certain address? · What shall I go for Package Diagram?
· How can I allocate arrays or structures bigger than 64K? · What is Polymorphism?
· How can I find out how much memory is available? · Is class an Object? Is object a class?
· How can I read a directory in a C program? · Comment: C++ "includes" behavior and java "imports"
· How can I increase the allowable number of simultaneously · What do you mean by "Realization"?
open files? · What is a Presistent, Transient Object?
· What's wrong with the call "fopen("c:\newdir\file.dat", · What is the use of Operator Overloading?
"r")"? · Does UML guarantee project success?
· What is the output of printf("%d") · Difference: Activity Diagram and Sequence Diagram.
· What will happen if I say delete this · What is association?
· Difference between "C structure" and "C++ structure". · How to resolve many to many relationship?
· Diffrence between a "assignment operator" and a "copy · How do you represent static members and abstract classes
constructor" in Class Diagram?
· What does static variable mean? · How can we check whether the contents of two structure
· What is a pointer? variables are same or not?
· What is a structure? · How are Structure passing and returning implemented by
· What are the differences between structures and arrays? the complier?
· In header files whether functions are declared or defined? · How can we read/write Structures from/to data files?
· What are the differences between malloc() and calloc()? · What is the difference between an enumeration and a set of
· What are macros? what are its advantages and pre-processor # defines?
disadvantages? · what do the 'c' and 'v' in argc and argv stand for?
· Difference between pass by reference and pass by value? · Are the variables argc and argv are local to main?
· What is static identifier? What is the maximum combined length of command line
· Where are the auto variables stored? arguments including the space between adjacent arguments?
· Where does global, static, local, register variables, free · If we want that any wildcard characters in the command
memory and C Program instructions get stored? line arguments should be appropriately expanded, are we
· Difference between arrays and linked list? required to make any special provision? If yes, which?
· What are enumerations? · Does there exist any way to make the command line
· Describe about storage allocation and scope of global, arguments available to other functions without passing them
extern, static, local and register variables? as arguments to the function?
· What are register variables? What are the advantage of · What are bit fields? What is the use of bit fields in a
using register variables? Structure declaration?
· What is the use of typedef? · To which numbering system can the binary number
· Can we specify variable field width in a scanf() format 1101100100111100 be easily converted to?
string? If possible how? · Which bit wise operator is suitable for checking whether a
· Out of fgets() and gets() which function is safe to use and particular bit is on or off?
why? · Which bit wise operator is suitable for turning off a
· Difference between strdup and strcpy? particular bit in a number?
· What is recursion? · Which bit wise operator is suitable for putting on a
· Differentiate between a for loop and a while loop? What particular bit in a number?
are it uses? · Which bit wise operator is suitable for checking whether a
· What are the different storage classes in C? particular bit is on or off?
· Write down the equivalent pointer expression for referring · which one is equivalent to multiplying by 2:Left shifting a
the same element a[i][j][k][l]? number by 1 or Left shifting an unsigned int or char by 1?
· What is difference between Structure and Unions? · Write a program to compare two strings without using the
· What the advantages of using Unions? strcmp() function.
· What are the advantages of using pointers in a program? · Write a program to concatenate two strings.
· What is the difference between Strings and Arrays? · Write a program to interchange 2 variables without using
· In a header file whether functions are declared or defined? the third one.
· What is a far pointer? where we use it? · Write programs for String Reversal & Palindrome check
· How will you declare an array of three function pointers · Write a program to find the Factorial of a number
where each function receives two ints and returns a float? · Write a program to generate the Fibinocci Series
· what is a NULL Pointer? Whether it is same as an · Write a program which employs Recursion
uninitialized pointer? · Write a program which uses Command Line Arguments
· What is a NULL Macro? What is the difference between a · Write a program which uses functions like strcmp(),
NULL Pointer and a NULL Macro? strcpy()? etc
· What does the error 'Null Pointer Assignment' mean and · What are the advantages of using typedef in a program?
what causes this error? · How would you dynamically allocate a one-dimensional
· What is near, far and huge pointers? How many bytes are and two-dimensional array of integers?
occupied by them? · How can you increase the size of a dynamically allocated
· How would you obtain segment and offset addresses from a array?
far address of a memory location? · How can you increase the size of a statically allocated
· Are the expressions arr and &arr same for an array of array?
integers? · When reallocating memory if any other pointers point into
· Does mentioning the array name gives the base address in the same piece of memory do you have to readjust these
all the contexts? other pointers or do they get readjusted automatically?
· Explain one method to process an entire string as one unit? · Which function should be used to free the memory
· What is the similarity between a Structure, Union and allocated by calloc()?
enumeration? · How much maximum can you allocate in a single call to
· Can a Structure contain a Pointer to itself? malloc()?
· Can you dynamically allocate arrays in expanded memory?
· What is object file? How can you access object file? · What do you mean by public, private, protected and
Which header file should you include if you are to develop a friendly?
function which can accept variable number of arguments? · When is an object created and what is its lifetime?
· Can you write a function similar to printf()? · What do you mean by multiple inheritance and multilevel
· How can a called function determine the number of inheritance? Differentiate between them.
arguments that have been passed to it? · Difference between realloc() and free?
· Can there be at least some solution to determine the number · What is a template?
of arguments passed to a variable argument list function? · What are the main differences between procedure oriented
· How do you declare the following: languages and object oriented languages?
· An array of three pointers to chars · What is R T T I ?
· An array of three char pointers · What are generic functions and generic classes?
· A pointer to array of three chars · What is namespace?
· A pointer to function which receives an int pointer and · What is the difference between pass by reference and pass
returns a float pointer by value?
· A pointer to a function which receives nothing and returns · Why do we use virtual functions?
nothing · What do you mean by pure virtual functions?
· What do the functions atoi(), itoa() and gcvt() do? · What are virtual classes?
· Does there exist any other function which can be used to · Does c++ support multilevel and multiple inheritance?
convert an integer or a float to a string? · What are the advantages of inheritance?
· How would you use qsort() function to sort an array of · When is a memory allocated to a class?
structures? · What is the difference between declaration and definition?
· How would you use qsort() function to sort the name stored · What is virtual constructors/destructors?
in an array of pointers to string? · In c++ there is only virtual destructors, no constructors.
· How would you use bsearch() function to search a name Why?
stored in array of pointers to string? · What is late bound function call and early bound function
· How would you use the functions sin(), pow(), sqrt()? call? Differentiate.
· How would you use the functions memcpy(), memset(), · How is exception handling carried out in c++?
memmove()? · When will a constructor executed?
· How would you use the functions fseek(), freed(), fwrite() · What is Dynamic Polymorphism?
and ftell()? · Write a macro for swapping integers.
· 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 FAQ In Testing Tools
a sub string from a given string?
· What is the difference between the functions rand(), ************************
random(), srand() and randomize()? Click here for Winrunner Interview Questions.
· What is the difference between the functions memmove()
and memcpy()? Software QA and Testing Frequently-Asked-Questions
· How do you print a string on the printer?
· Can you use the function fprintf() to display the output on 1.What is 'Software Quality Assurance'?
the screen?
· What is an object? Software QA involves the entire software development
· What is the difference between an object and a class? PROCESS - monitoring and improving the process, making
· What is the difference between class and structure? sure that any agreed- upon standards and procedures are
· What is public, protected, private? followed, and ensuring that problems are found and dealt
· What are virtual functions? with. It is oriented to 'prevention'.
· What is friend function?
· What is a scope resolution operator? 2.What is 'Software Testing'?
· What do you mean by inheritance?
· What is abstraction? Testing involves operation of a system or application under
· What is polymorphism? Explain with an example. controlled conditions and evaluating the results (eg, 'if the
· What is encapsulation? user is in interface A of the application while using hardware
· What do you mean by binding of data and functions? B, and does C, then D should happen'). The controlled
· What is function overloading and operator overloading? conditions should include both normal and abnormal
· What is virtual class and friend class? conditions. Testing should intentionally attempt to make
· What do you mean by inline function? things go wrong to determine if things happen when they
shouldn't or things don't happen when they should. It is school district decided to reinstate it's original 25-year old
oriented to 'detection'. system for at least a year until the bugs were worked out of
the new system by the software vendors.
3.What are some recent major computer system failures
caused by software bugs? In October of 1999 the $125 million NASA Mars Climate
Orbiter spacecraft was believed to be lost in space due to a
In April of 2003 it was announced that the largest student simple data conversion error. It was determined that
loan company in the U.S. made a software error in spacecraft software used certain data in English units that
calculating the monthly payments on 800,000 loans. should have been in metric units. Among other tasks, the
Although borrowers were to be notified of an increase in orbiter was to serve as a communications relay for the Mars
their required payments, the company will still reportedly Polar Lander mission, which failed for unknown reasons in
lose $8 million in interest. The error was uncovered when December 1999. Several investigating panels were convened
borrowers began reporting inconsistencies in their bills. to determine the process failures that allowed the error to go
undetected.
News reports in February of 2003 revealed that the U.S.
Treasury Department mailed 50,000 Social Security checks Bugs in software supporting a large commercial high-speed
without any beneficiary names. A spokesperson indicated data network affected 70,000 business customers over a
that the missing names were due to an error in a software period of 8 days in August of 1999. Among those affected
change. Replacement checks were subsequently mailed out was the electronic trading system of the largest U.S. futures
with the problem corrected, and recipients were then able to exchange, which was shut down for most of a week as a
cash their Social Security checks. result of the outages.
In March of 2002 it was reported that software bugs in In April of 1999 a software bug caused the failure of a $1.2
Britain's national tax system resulted in more than 100,000 billion military satellite launch, the costliest unmanned
erroneous tax overcharges. The problem was partly attibuted accident in the history of Cape Canaveral launches. The
to the difficulty of testing the integration of multiple failure was the latest in a string of launch failures, triggering
systems. a complete military and industry review of U.S. space launch
programs, including software integration and testing
A newspaper columnist reported in July 2001 that a serious processes. Congressional oversight hearings were requested.
flaw was found in off-the-shelf software that had long been
used in systems for tracking certain U.S. nuclear materials. A small town in Illinois received an unusually large monthly
The same software had been recently donated to another electric bill of $7 million in March of 1999. This was about
country to be used in tracking their own nuclear materials, 700 times larger than its normal bill. It turned out to be due
and it was not until scientists in that country discovered the to bugs in new software that had been purchased by the local
problem, and shared the information, that U.S. officials power company to deal with Y2K software issues.
became aware of the problems. According to newspaper
stories in mid-2001, a major systems development contractor
was fired and sued over problems with a large retirement
plan management system. According to the reports, the
client claimed that system deliveries were late, the software
had excessive defects, and it caused other systems to crash.