3rd Sem C Programing
3rd Sem C Programing
Subject- C Programming
UNIT — I
Computer programming:
Computer programs are written using one of the programming language. A program has a set of
instructions written in correct order to get the desired result. The method of writing the
instructions to solve the given problem is called programming.
Programming techniques:
There are two types of programming techniques commonly used:
1. Procedural or structural programming
2. Object oriented programming
Object-oriented programming :-
Object-oriented programming (OOP) is a programming paradigm that represents concepts as
"objects" that have data fields (attributes that describe the object) and associated procedures known
as methods. Objects, which are usually instances of classes, are used to interact with one another to
design applications and computer programs. Objective-C, Smalltalk, and Java are examples of object-
oriented programming languages.
Structured programming :-
Structured programming is a programming paradigm aimed on improving the clarity, quality, and
development time of a computer program by making extensive use of subroutines, block
structures and for and while loops—in contrast to using simple tests and jumps such as the go to
statement which could lead to "spaghetti code" which is both difficult to follow and to maintain.
At a low level, structured programs are often composed of simple, hierarchical program flow
structures. These are sequence, selection, and repetition:
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
1
B.Com 3rd Sem. Subject- C Programming
Features of Algorithm:-
According to D.E.Knuth, a pioneer in the computer science discipline, an algorithm has five important
features they are as follows
1. Finiteness
2. Definiteness
3. Effectiveness
4. Input
5. Output
Advantages of algorithm
it is a step-by-step rep. of a solution to a given prblem ,which is very easy to understand
it has got a definite procedure.
it easy to first develope an algorithm,&then convert it into a flowchart &then into a computer
program.
it is independent of programming language.
it is easy to debug as every step is got its own logical sequence.
Disadvantages of algorithm
It is time consuming & cubersome as an algorithm is developed first which is converted into flowchart
&then into a computer program.
Example :-
Write an algorithm that reads two values, determines the largest value and prints the largest value with
an identifying message.
Step 1: Input VALUE1, VALUE2
Step 2: if (VALUE1 > VALUE2) then
MAX VALUE1
else
MAX VALUE2
endif
Step 3: Print “The largest value is”, MAX
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
2
B.Com 3rd Sem. Subject- C
Programming
Flowchart:-
A flowchart is a type of diagram that represents an algorithm or process, showing the steps as
boxes of various kinds, and their order by connecting them with arrows.This
diagrammatic representation illustrates a solution to a given problem. Process operations are
represented in these boxes, and arrows; rather, they are implied by the sequencing of operations.
Flowcharts are used in analyzing, designing, documenting or managing a process or program in
various fields.[
(Dictionary) A schematic representation of a sequence of operations, as in a
manufacturing process or computer program.
(Technical) A graphical representation of the sequence of operations in an
information system or program. Information system flowcharts show how data flows
from source documents through the computer to final distribution to users. Program
flowcharts show the sequence of instructions in a single program or subroutine.
Symbols:-
Different symbols are used to draw each type of flowchart.
Name Symbol Use in Flowchart
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
3
B.Com 3rd Sem. Subject- C
Programming
2. Additional Symbols
Related to more advanced programming
Types of flowchart:-
Sterneckert (2003) suggested that flowcharts can be modeled from the perspective of different user
groups (such as managers, system analysts and clerks) and that there are four general types:
Document flowcharts, showing controls over a document-flow through a system
Data flowcharts, showing controls over a data-flow in a system
System flowcharts showing controls at a physical or resource level
Program flowchart, showing the controls in a program within a system
Program Flowchart
- shows the sequence of instructions in a program or subroutine. These instructions are
followed to procedure the needed output.
START
INPUT
PROCESS
OUTPUT
DECISION
END
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
4
B.Com 3rd Sem. Subject- C
Programming
Write an algorithm and draw a flowchart to convert the length in feet to centimeter
Limitation of flowchart:-
1. Flowchart are very time consuming and laborious to draw.
2. There are no standards determining the amount of detail that should be included in
flowchart.
3. Owing to the symbol-string nature of flowcharting, any change or modification in the
program logic will usually require a completely new flowchart.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
5
B.Com 3rd Sem. Subject- C
Programming
Looping
Sequence:-
The general requirement for the sequence structure is that one or more actions may be performed
in sequence after entry and before exit.
With the exception discussed below, there may not be any branches or loops between the entry and
the exit.
All actions must be taken in sequence.
Enter
Perform one or more actions in sequence
Exit
Selection or decision:-
There is only one entry point and one exit point.
The first thing that happens following entry is that some condition is tested for true or false.
If the condition is true, one or more actions are taken in sequence and control exits the structure.
If the condition is false, none, one or more actions are taken in sequence and control exits the
structure.
Enter
Test a condition for true or false
On true
Take one or more actions in sequence
On false
Take none, one, or more actions in sequence
Exit
Iteration:-
Perform the test and exit on false
Perform some actions and repeat the test on true
Each action element may be another structure
Need to avoid infinite loops
Enter
Test a condition for true or false
Exit on false
On true
Perform one or more actions in sequence
Go back and test the condition again
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
6
B.Com 3rd Sem. Subject- C
Programming
Translator:-
Assembler
An assembler translates assembly language into machine code. Assembly language consists of
mnemonics for machine opcodes so assemblers perform a 1:1 translation from mnemonic to a
direct instruction. For example:
LDA #4 converts to 0001001000100100
Conversely, one instruction in a high level language will translate to one or more instructions at
machine level.
Compiler
A Compiler is a computer program that translates code written in a high level language to a lower
level language, object/machine code. The most common reason for translating source code is to
create an executable program (converting from a high level language into machine language).
Advantages of using a compiler
ource code is not included, therefore compiled code is more secure than interpreted code
Tends to produce faster code than interpreting source code
Produces an executable file, and therefore the program can be run without need of the
source code
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
7
B.Com 3rd Sem. Subject- C
Programming
Compilation process
Interpreter
An interpreter program executes other programs directly, running through program code and
executing it line-by-line. As it analyses every line, an interpreter is slower than running compiled
code but it can take less time to interpret program code than to compile and then run it — this is
very useful when prototyping and testing code. Interpreters are written for multiple platforms, this
means code written once can be run immediately on different systems without having to recompile
for each. Examples of this include flash based web programs that will run on your PC, MAC, games
console and Mobile phone.
Absolute loader:- No linking or relocation. All functions are performed in one pass.
E.g. a Bootstrap Loader
Computer programs typically comprise several parts or modules; all these parts/modules need not
be contained within a single object file, and in such case refer to each other by means of symbols.
Typically, an object file can contain three kinds of symbols:
defined symbols, which allow it to be called by other modules,
undefined symbols, which call the other modules where these symbols are defined, and
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
8
B.Com 3rd Sem. Subject- C
Programming
local symbols, used internally within the object file to facilitate relocation.
For most compilers, each object file is the result of compiling one input source code file. When a
program comprises multiple object files, the linker combines these files into a unified executable
program, resolving the symbols as it goes along.
Linkers can take objects from a collection called a library. Some linkers do not include the whole
library in the output; they only include its symbols that are referenced from other object files or
libraries. Libraries exist for diverse purposes, and one or more system libraries are usually linked
in by default.
The linker also takes care of arranging the objects in a program's address space. This may
involve relocating code that assumes a specific base address to another base. Since a compiler
seldom knows where an object will reside, it often assumes a fixed base location (for example,
zero). Relocating machine code may involve re-targeting of absolute jumps, loads and stores.
The executable output by the linker may need another relocation pass when it is finally loaded into
memory (just before execution). This pass is usually omitted on hardware offering virtual memory:
every program is put into its own address space, so there is no conflict even if all programs load at
the same base address. This pass may also be omitted if the executable is a position
independent executable.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
9
B.Com 3rd Sem. Subject- C
Programming
Unit II
History of C:-
C language is a structure oriented programming language, was developed at Bell Laboratories in
1972 by Dennis Ritchie
C language features were derived from earlier language called “B” (Basic Combined
Programming Language – BCPL)
C language was invented for implementing UNIX operating system
In 1978, Dennis Ritchie and Brian Kernighan published the first edition “The C Programming
Language” and commonly known as K&R C
In 1983, the American National Standards Institute (ANSI) established a committee to provide a
modern, comprehensive definition of C. The resulting definition, the ANSI standard, or “ANSI
C”, was completed late 1988.
C standards
C89/C90 standard – First standardized specification for C language was developed by
American National Standards Institute in 1989. C89 and C90 standards refer to the same
programming language.
C99 standard – Next revision was published in 1999 that introduced new futures like advanced
data types and other changes.
Features of C language:
Reliability
Portability
Flexibility
Interactivity
Modularity
Efficiency and Effectiveness
Uses of C language:
C language is used for developing system applications that forms major portion of operating
systems such as Windows, UNIX and Linux. Below are some examples of C being used.
Database systems
Graphics packages
Word processors
Spread sheets
Operating system development
Compilers and Assemblers
Network drivers
Interpreters
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
10
B.Com 3rd Sem. Subject- C
Programming
We are going to learn a simple “Hello World” program in this section. Functions, syntax and
the basics of a C program are explained below.
C Basic Program:
#include <stdio.h>
#include <conio.h>
void main()
{
/* Our first simple C basic program */
printf("Hello World! ");
getch();
}
Output:
Hello World!
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
11
B.Com 3rd Sem. Subject- C
Programming
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
12
B.Com 3rd Sem. Subject- C
Programming
C scanf :
scanf() function is used to read a character, string, numeric data from keyboard.
Consider the below example where the user enters a character and assign it to the variable ch and
enters a string and assign it to the variable str.
The format specifier %d is used in scanf statement so that the value entered is received as an
integer and %s for string.
Ampersand is used before the variable name ch in scanf statement as &ch. It is just like in a
pointer which is to point to the variable.
Data Types
C data types are defined as the data storage format that a variable can store a data to perform
a specific operation.
Data types are used to define a variable before to use in a program.
Size of variable, constant and array are determined by data types.
C – data types:
There are four data types in C language. They are,
S.no Types Data Types
1 Basic data types int, char, float, double
2 Enumeration data type enum
3 Derived data type pointer, array, structure, union
4 Void data type void
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
13
B.Com 3rd Sem. Subject- C
Programming
double:
Double data type is also same as float data type which allows upto 10 digits after decimal. and
the range is from 1E–37 to 1E+37.
C – sizeof() function:
sizeof () operator is used to find the memory space allocated for each C data types.
1 #include <stdio.h>
2 #include <limits.h>
3
4 int main()
5 {
6
7 int a;
8 char b;
9 float c;
10 double d;
11 printf("Storage size for int data type:%d \n",sizeof(a));
12 printf("Storage size for char data type:%d \n",sizeof(b));
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
14
B.Com 3rd Sem. Subject- C
Programming
Output:
Storage size for int data type:4
Storage size for char data type:1
Storage size for float data type:4
Storage size for double data type:8
C – Modifiers
The
amount of memory space to be allocated for a variable is derived by modifiers. Modifiers are
prefixed with basic data types to modify (either increase or decrease) the amount of storage space
allocated to a variable.
For example, storage space for int data type is 4 byte for 32 bit processor.
We can increase the range by using long int which is 8 byte.
We can decrease the range by using short int which is 2 byte.
1. short
2. long
3. signed
4. unsigned
5. long long
Below table gives the detail about the storage size of each C basic data type in 16 bit processor.
Please keep in mind that storage size and range for int and float will vary depend on the CPU
processor (8,16, 32 and 64 bit)
storage
S.No C Data types Range
Size
1 char 1 –127 to 127
2 unsigned char 1 0 to 255
3 int 2 –32,767 to 32,767
4 float 4 1E–37 to 1E+37 with six digits of precision
5 double 8 1E–37 to 1E+37 with ten digits of precision
6 long double 10 1E–37 to 1E+37 with ten digits of precision
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
15
B.Com 3rd Sem. Subject- C
Programming
The first part declares the data type and specifies its possible values
The second part declares variable of this data type.
We can give values
Person1=married;
Person2=divorced;
C Tokens: These are the basic buildings blocks in C language which are constructed together to
write a C program.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
16
B.Com 3rd Sem. Subject- C
Programming
C – Identifiers:
Each program elements in a C program are given a name called identifiers.
Names given to identify Variables, functions and arrays are examples for identifiers. eg. x is a
name given to integer variable in above program.
C – Keywords
Keywords are pre-defined words in a C compiler.
Each keyword is meant to perform a specific function in a C program.
Since keywords are referred names for compiler, they can‟t be used as variable name.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
17
B.Com 3rd Sem. Subject- C
Programming
They may be belonging to any of the data type. Please see below table for constants with respect
to their data type.
Types of C constant:
1. Integer constants
2. Real or Floating point constants
3. Octal & Hexadecimal constants
4. Character constants
5. String constants
6. Backslash character constants
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
18
B.Com 3rd Sem. Subject- C
Programming
\t Horizontal tab
C – Variable
C variable is a named location in a memory where a program can manipulate the data. This
location is used to hold the value of the variable.
The value of the C variable may get change in the program.
C variable might be belonging to any of the data type like int, float, char etc.
Rules for naming C variable:
1. Variable name must begin with letter or underscore.
2. Variables are case sensitive
3. They can be constructed with digits, letters.
4. No special symbols are allowed other than underscore.
5. sum, height, _value are some examples for variable name
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
19
B.Com 3rd Sem. Subject- C
Programming
Types of C operators:
C language offers many types of operators. They are,
1. Arithmetic operators
2. Assignment operators
3. Relational operators
4. Logical operators
5. Bit wise operators
6. Conditional operators (ternary operators)
7. Increment/decrement operators
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
20
B.Com 3rd Sem. Subject- C
Programming
8. Special operators
1) Arithmetic Operators:
These operators are used to perform mathematical calculations like addition, subtraction,
multiplication, division and modulus.
S.No. Operator Operation
1 + Addition
2 - Subtraction
3 * multiplication
4 / Division
5 % Modulus
2) Assignment operators: The symbol = is also an operators, and it is evaluated last. Here the
equal TO (=) symbol should not be treated as in mathematics. Here it means that the value of the
expression in the right-hand side is taken by the variable to the left side.
eg : a=2+7*3
3) Increment and Decrement Operator: C provides two special operators not generally found
in other languages. These are the increment (++) and decrement the value of a variable by l.
These operators are called unary operators and require only one operand. They are of equal
precedence.
Eg. ++ variable
Variable ++
-- variable
variable --
4) Relational operators : In C there are 6 operators which are used to compare two values or
expressions. The values of two expressions with the relational operator forms a relational
expressions. These 6 operators.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
21
B.Com 3rd Sem. Subject- C
Programming
These operators are used to find the relation between two variables. That is, used to compare the
value of two variables.
Operator Example
> x>y
< x<y
>= x >= y
<= x <= y
== x == y
!= x != y
5) Logical operators: The logical operators are sued to support the basic logical operations of
AND, OR C NOT according to the truth table. For combining expressions into logical expression
logical operators are used. These are
Symbol Name
&& logical AND
!! logical OR
! logical Not
(a) Logical AND operators: This is used to combine two expressions in the form exp 1 &
& exp 2.
If both exp 1 and exp 2 are true then the whole expression is considered as true. If any one of
them is false, the whole expression will considered as false.
(b) Logical OR operator: It also combines the two expressions. If any one of the expression
is true the whole expression is considered as true.
Exp1 !! Exp2
! Exp
6) Bitwise operators: One of C‟s powerful features is a set of bit manipulation operators. These
permit the programmer to access and manipulate individual bits within a piece of data. The
various bitwise operators available in C are :
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
22
B.Com 3rd Sem. Subject- C
Programming
Operator Meaning
& bitwise AND
! bitwise OR
^ bitwise exclusive OR
<< shift left
~ one’s complement
Bitwise operators can operator upon int and char but not on float and double. All are
binary operators except ~ which is unary.
(a) Bitwise AND (&): The bitwise AND (&) operator yields 1 if the corresponding bits in
both values are 1 otherwise, it yields 0.
eg. 1010
& 0110
0010
The use of AND operator is to check whether a particular bit of an operand is ON/OFF.
Eg. #include <stdio.h>
int main()
{
int a = 12, b = 25;
printf("Output = %d", a&b);
}
12 = 00001100 (In Binary)
25 = 00011001 (In Binary)
Output - 00001000 = 8
(b) Bitwise OR (!): Another important bitwise operator is OR operator which is represented
by ! The rules that given the value of the resulting bit obtained after OR of two bits is shown
below :
! 0 1
0 0 1
1 1 1
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
23
B.Com 3rd Sem. Subject- C
Programming
eg. 1010
0110
1110
Output - 00011101 = 29
(c) Bitwise XOR (^): The XOR operator is represented as ^ and is also called on exclusive
OR operator. The OR operator returns 1, when any one of the two bits or bith the bits are 1,
whereas XOR returns 1 only if one of the two bits is 1. The truth table for the XOR operator is
given below :
^ 0 1
0 0 1
1 1 0
Output - 00010101 = 21
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
24
B.Com 3rd Sem. Subject- C
Programming
(e) Right Shift Operator: Like one‟s complement operator right shift operator also operates
on a single variable. It‟s represented by >> and it shifts each bit in the operand to right. The
number of places the bits are shifted depends on the number following the operand.
Thus, num >>3 would shift all bits three places to the right. Similarly num >> would shift
all bits five places to the right.
While bits are shifted to right blanks are created on the left. These left blanks must be
filled with zeros.
(e) Left Shift operator: This is similar to the right shift operator the only difference being
that the bits are shifted to the left and for each bit shifted, added to the right of the number.
(f) Bitwise compliment operator: This is an unary operator (works on only one operand). It
changes 1 to 0 and 0 to 1. It is denoted by ~.
35 = 00100011 (In Binary)
7) Conditional operators:
Conditional operators return one value if condition is true and returns other value is
condition is false.
This operator is also called as ternary operator.
Syntax : (Condition? true_value: false_value);
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
25
B.Com 3rd Sem. Subject- C
Programming
Preprocessor directives
Preprocessor Directives extends the power of C programming language. C Preprocessors
Directives is a special set of instruction in program which is processed before handing over the
program to the compiler. These instructions are always preceded by a pound sign (#) and NOT
terminated by a semicolon. The preprocessor directives are executed before the actual
compilation of code begins. Different preprocessor directives (commands) tell the preprocessor
to perform different actions. We can categorize the Preprocessor Directives as follows:
File inclusion directives
Macro substitution directives
Conditional compilation directives
Advantages:
It make program development easy
It enhance the readability of the program
It make modification easy
It increase the transportability of the program between different machine architectures.
File inclusion directives
The file inclusion directive is used to include files into the current file. When the preprocessor
encounters an #include directive it replaces it by the entire content of the specified file.The file
inclusion directive (#include) can be used in following two ways:
#include “file-name”
#include <file-name>
We can see that #include can be used in two ways angular brackets (<>)and inverted commas
(“”). The only difference between both expressions is the location (directories) where the
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
26
B.Com 3rd Sem. Subject- C
Programming
compiler is going to look for the file. In the first case where the file name is specified between
double-quotes, the compiler will look for the in the current directory that includes the file
containing the directive. In case if it is not there the compiler will look the file in the default
include directories where it is configured to look for the standard header files. When #include is
written with <> it means the file is searched directly where the compiler is configured to look for
the standard header files. Therefore, standard header files are usually included in angle-brackets,
while other specific header files are included using quotes.
Header Files
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
27
B.Com 3rd Sem. Subject- C
Programming
A header file is a file with extension .h which contains C function declarations and macro
definitions and to be shared between several source files. There are two types of header files: the
files that the programmer writes and the files that come with your compiler.
You request the use of a header file in your program by including it, with the C preprocessing
directive#include like you have seen inclusion of stdio.h header file, which comes along with
your compiler.
Including a header file is equal to copying the content of the header file but we do not do it
because it will be very much error-prone and it is not a good idea to copy the content of header
file in the source files, specially if we have multiple source file comprising our program.
A simple practice in C or C++ programs is that we keep all the constants, macros, system wide
global variables, and function prototypes in header files and include that header file wherever it
is required.
Include Syntax
Both user and system header files are included using the preprocessing directive #include. It has
following two forms:
#include <file>
This form is used for system header files. It searches for a file named file in a standard list of
system directories. You can prepend directories to this list with the -I option while compiling
your source code.
#include "file"
This form is used for header files of your own program. It searches for a file named file in the
directory containing the current file. You can pretend directories to this list with the -I option
while compiling your source code.
45, Anurag Nagar, Behind Press Complex, Indore (M.P.) Ph.: 4262100, www.rccmindore.com
28