Nothing Special   »   [go: up one dir, main page]

0% found this document useful (0 votes)
61 views44 pages

C Programming Unit-I - Introduntion

Download as doc, pdf, or txt
Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1/ 44

C PROGRAMMING

UNIT-I ---INTRODUNTION

Introduction: Computer systems, Hardware & Software concepts.


Problem Solving: Algorithm / Pseudo code, flow chart, program development steps.
Computer Languages: Machine language, symbolic (assembly) language and
high level language
Creating and running programs: Writing, editing, compiling, linking and
executing.
Basics of C: Structure of a C program, identifiers, basic data types and sizes.
Constants, variables, arithmetic, relational and logical operators, increment and
decrement operators, conditional operator, assignment operators, expressions, type
conversions, conditional expressions, precedence and order of evaluation, sample
programs.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
*-*-*-

INTRODUCTION:

COMPUTER SYSTEMS, HARDWARE & SOFTWARE CONCEPTS.


A basic computer system is defined as a device that accepts input, processes data,
stores data, and produces output. A personal computer system includes a computer,
peripheral devices, and software. Microcomputers can range in size from hand-held
models like the Palm Pilot to laptop or notebooks to desktop models. The following
diagram illustrates the fundamental computer functions and components that help the
computer accomplish its tasks.

COMPUTER HARWARE CONCEPTS :


Computer hardware refers to the physical components of a computer
system. Hardware appears both inside and outside the computer. Peripheral devices
are equipment used with a computer to enhance its functionality. They are devices
that are “outside” of or in addition to, the computer (i.e. printer, scanner, and
modem).
System Unit, Central Processing Unit, and Random Access Memory:

The system unit is the cabinet that contains many of the computer’s working
components. One of the most important of these components is the central
processing unit (normally referred to as the CPU). The CPU, a small electronic
circuit chip, is the heart of the computer system and is the device that allows the
machine to perform its complex mathematical and logic functions. The CPU is
considered the “brains” of the computer system.

Storage Devices and Storage Medium


Since RAM is volatile and everything is lost when you turn off your computer,
you need a
way to store the information you enter and the documents you create. A fairly
permanent way to store information is to use one or more storage devices, found
both internally and externally on most personal computer systems. Examples of
storage devices include hard disk drives, floppy disk drives, CD-writers, DVD drives,
Zip drives, and flash drives. Each storage device (except for the hard drive) also
requires a storage medium that actually holds the data. These storage medium
devices include
floppy disks, CDs, DVDs, Zip® disks, flash drive, and tapes.
The main storage device on a personal computer system is the internal hard drive. It
holds both data and program files. Hard drives come in different sizes, measured in
megabytes or gigabytes (billions of bytes). Sample sizes of hard drives include 40GB,
80GB, 100GB. The hard drive is generally referred to as drive C:.

Floppy disk drives can hold 3.5” floppy disks. The floppy drive is generally referred
to as drive A:. Since most new computers have omitted the floppy drive as a storage
medium option, those computers do not contain an A: drive. High-capacity Zip
drives holds 750 MB of data. A CD (compact disk) provides 650-700 MB of storage.
A DVD (digital video disk or digital versatile disk) has a capacity of 4.7 GB. CDs
and DVDs are durable storage and have a higher tolerance for temperature
fluctuations then hard disk, floppy disks, and tapes. They are unaffected by magnetic
fields and dust and dirt can be cleaned off easily.

CDs and DVDs come in several varieties:


• Read only (ROM) – permanent data stored during manufacturing
• Recordable (R) – A writable drive can store data but it can’t be changed
• Rewritable (RW) – can be changed many times, much like a hard drive but much
Slower

BASIC INPUT DEVICES:


Keyboard
The keyboard is the standard device used to enter information into the computer’s
memory.
It looks and operates much like a standard typewriter keyboard and includes the 26
letters of the alphabet, the 10 digits used for numbers, and some special characters. In
addition to these standard keys, the keyboard also has special sets of keys. On the
right-hand side of the keyboard is the numeric keypad. To the left of the
numeric keypad are the arrow keys, Home, End, Pg Up, and Pg Down keys, which
allow movement around the computer screen. At the top or left-hand side of the
keyboard are keys labeled F1, F2, F3,…F12. They are referred to as function keys.
These keys perform special functions depending on the program you are working in.
The Mouse
A mouse is a special pointing device that helps you manipulate objects and select
menu and
toolbar options. The bottom of the mouse contains a small ball that rolls when you
move the mouse. As the ball rolls, it causes a special signal to be sent to the
computer, moving the mouse pointer in the direction you are moving the mouse.
The PC mouse contains two buttons – with right mouse button used primarily for
shortcuts.

BASIC OUTPUT DEVICES:


Video Monitor
The video monitor (also called the screen or display) serves as the standard output
device for
the computer system. Most monitors are full-color monitors and are available in
different resolution levels, or clarity. A higher-resolution monitor will provide the
sharpest picture, but will be more expensive than a lower-resolution monitor. Most
monitors can display at least
256 colors. Monitors are also available in different sizes such as 15”, 17”, or 20”
screens. Flat-panel monitors which use LCD (liquid crystal technology) are much
thinner than CRT monitors and range in depth from one to four inches. The more
expensive flat-panel models can function as a computer monitor, a TV and a video
monitor - all in one.

Printers
A printer is used to produce a “hard” or printed copy of the information
stored in the
computer system. Ink-jet printers produce characters by spraying ink onto the
paper. The print head is a matrix of fine spray nozzles. Color ink-jet printers have
excellent resolution and print at a respectable rate. Ink-jet printers provide low-cost,
high-quality print on plain paper.

COMPUTER SOFTWARE CONCEPTS:


The term software refers to the programs or instructions that enable the computer to
perform its tasks. There are basically two types of software programs that the
computer uses of which you need to be aware: the operating system programs and the
application system programs.

Operating System
An operating system controls the resources and components of the computer. It
consists of
many specialized programs, each of which performs a special task. One task
controlled by the operating system is the allocation of the computer’s RAM to
application programs. The operating system is also responsible for the
synchronization of hardware components such as the monitor, printer, and disk
drives.
Applications Software
Application software refers to the programs written to perform useful functions.
The most
popular application programs are described below:
• Word processing software, such as Microsoft Word, is used for producing reports,
letters, papers, and manuscripts.
• Desktop publishing software, such as Adobe In-Design, helps you use graphic
design techniques to enhance the format and appearance of documents such as
newsletters, brochures, newspapers, and magazines.
• Web authoring software, such as Microsoft FrontPage or Macromedia
Dreamweaver, helps you design and develop customized Web pages.
• Spreadsheet software, such as Microsoft Excel, helps you create worksheets to
perform calculations, create “what-if” analyses, and graph data.
• Database software, such as Microsoft Access, helps you keep track of related data
and records. Other functions include finding, organizing, updating, and reporting
information stored in more than one file.
• Presentation software, such as Microsoft PowerPoint, helps you to combine text,
graphics, animation, and sound into a series of electronic slides.
• E-mail software, such as Microsoft Outlook, helps you to send and receive e-mail
messages over the Internet.
ALGORITHM
An Algorithm is a step by step procedure to solve a given problem

An algorithm consists of a set of explicit and unambiguous finite steps which,


when carried out for a given set of initial conditions, produce the
corresponding output and terminate in a fixed amount of time. By unambiguity it is
meant that each step should be defined precisely i.e., it should have only one
meaning. This definition is further classified with some more features.

According to D.E.Knuth, a pioneer in the computer science discipline, an algorithm


has five important features.

i. Finiteness: An algorithm terminates after a fixed number of steps.


ii. Definiteness: Each step of the algorithm is precisely defined, i.e.,
the actions to be carried out should be specified
unambiguously.
iii. Effectiveness: All the operations used in the algorithm are basic (division,
multiplication, comparison, etc.) and can be performed exactly
in a fixed duration of time.
iv. Input: An algorithm has certain precise inputs, i.e. quantities,
which are specified to it initially, before the execution of the
algorithm begins.
v. Output: An algorithm has one or more outputs, that is, the results of
operations which have a specified relation to the inputs.

Let us take one example to illustrate all the features of an algorithm.

Example: Suppose, we have to develop an algorithm to convert an integer numerical


score (0 to 100) scored by a student in a particular test into letter grades (A, B, C, D,
E) using the following procedures.
Numerical Score Letter grade
Less than 40 E
40 to 54 D
55 to 69 C
70 to 85 B More than 85 A

Algorithm is defined as follows:

Step1 Input the score of a student.


Step2 If the score is less than 40 then print “E”: END
Step3 If the score is greater than or equal to 40 and less than 55,
then print “D”:END of a program.
Step4 If the score is greater than or equal to 55 and less than 70 print “C” :END
Step5 If the score is greater than or equal to 70 and less than or equal to 85 print
“B”
:END
Step6 If the score is greater than 85 print “A”
Step7 End of a program.
The algorithm terminates after 7 steps. This explains the features of finiteness. Action
of each step is precisely defined. In our example, each step requires simple
comparison and printing operation. This explains the feature of definiteness and
effectiveness. Input of our algorithm is marks scored by a student and output is the
grade awarded to the range.
PROGRAM : Set of instructions is called a Program.
A Program may also be thought of as an algorithm expressed in a
programming Language. An algorithm therefore corresponds to a solution to a
problem that is independent of any programming language. There are many ways to
solve most problems and also many solutions to most problems.

Example 1) Algorithm to add two numbers.


Step 1 : Read two numbers n1 and n2. Step 2 : sum = n1 + n2
Step 3 : Print sum
Step 4 : Stop

Example 2) Algorithm to find largest number from two numbers.


Step 1 : Read two numbers n1 and n2. Step 2 : If n1 > n2 then
Big = n1
else
Big = n2
Step 3 : Print Big
Step 4 : Stop
Example 3) Algorithm to find largest number from three numbers
Step 1 : Read three numbers n1, n2 and n3. Step 2 : If n1 > n2 and n1 > n3 then
Big = n1
Else
If n2 > n1 and n2 > n3 then
Big = n2
else Big = n3
Step 3 : Print Big
Step 4 : Stop
Example 4) Algorithm to find largest number from N numbers.
Step 1 : Read N Step 2: Large = 0, Step 3 : Count = 0
Step 4 : Read num
Step 5 : If num > Large then
Large = num
Step 6 : count = count +1
Step 7 : If Count < N then Goto step 4
Step 8 : Print Large
Step 9 : Stop

Example 5) Algorithm to find smallest number from two numbers.


Step 1 : Read two numbers n1 and n2. Step 2 : If n1 < n2 then
Small = n1
else
Small = n2
Step 3 : Print Small
Step 4 : Stop
Example 6) Algorithm to find smallest number from three numbers.
Step 1 : Read three numbers n1, n2 and n3. Step 2 : If n1 < n2 and n1 < n3 then
Small = n1
Else
If n2 < n1 and n2 < n3 then
Small = n2
else
Small = n3
Step 3 : Print Small
Step 4 : Stop

Example 7) Algorithm to find smallest number from N numbers.


Step 1 : Read N Step
2: Read Num Step
3 : Small = Num Count = 1
Step 4 : Read Num
Step 5 : If Num < Small then
Small = Num
Step 6 : Count = Count +1
Step 7 : If Count < N then Goto step 4
Step 8 : Print Small
Step 9 : Stop

Example 8) Algorithm to find factorial of a given Number


Step 1 : Read N Step
2: Fact=1
Step 3 : Count = 1
Step 4 : Fact = Fact * Count
Step 5 : Count = Count +1
Step 7 : If Count < = N then Goto step 4
Step 8 : Print Fact
Step 9 : Stop
Example 9) Algorithm to find sum of N positive integer numbers
Step 1 : Read N Step 2: Sum = 0, Step 3 : Count = 0
Step 4 : Read Num
Step 5 : Sum=Sum + Num
Step 6 : count = count +1
Step 7 : If Count < N then Goto step 4
Step 8 : Print Sum
Step 9 : Stop
Example 10) Algorithm to find GCD of two given numbers
Step 1 : Read M,N
Step 2: temp = Remainder of M / N i.e. temp = M%N Step 3 : M=N
Step 4 : N=temp
Step 5 : if N > 0 then goto Step 2
Step 6 : GCD = M Step 7 : Print GCD Step 8 : Stop
Example 11) Algorithm to find whether the given number is Prime Number or not
Step 1 : Read Num Step 2: Prime = True Step 3 : I = 2
Step 4 : Rem = Num % I
Step 5 : If Rem = 0 then Prime =False
Step 6 : I = I + 1
Step 7 : If I < N then Goto step 4
Step 8 : If Prime = True then
Print Num is a prime number
Else
Print Num is not a prime number
Step 9 : Stop
Example 12) Algorithm to print Fibonacci series upto 15 terms
Step 1 : Previous=0
Present = 1
Step 2: Print Previous,Present
Step 3 : Count = 2
Step 4 : Next = Previous + Present
Step 5 : Print Next
Step 6 : Count = Count + 1
Step 7 : Previous = Present
Step 8 : Present = Next
Step 9 : If Count < 15 then Goto step 4
Step 10 : Stop

Example 13) Algorithm to find Largest and Second Largest of N numbers


Step 1 : Read N
Step 2: Large = 0, SecLarge = 0, Count = 0
Step 3 : Read Num
Step 4 : If Num > Large then SecLarge = Large Large = Num
Else
If Num > SecLarge then
SecLarge = Num
Step 5 : Count = Count + 1
Step 6 : If Count < N then Goto step 3
Step 7 : Print Large , SecLarge
Step 8 : Stop

Example 14) Algorithm to find the sum of digits of a given integer number
Step 1 : Read N Step 2: Sum = 0
Step 3 : Digit = N % 10
Step 4 : Sum = Sum + Digit
Step 5 : N = N / 10
Step 6 : If N > 0 then Goto step 3
Step 7 : Print Sum
Step 8 : Stop
Example 15) Algorithm to find LCM of two given numbers
Step 1: Read M, N
Step 2: A = M, B = N Step 3: Temp = M % N Step 4: M = N
Step 5: N = Temp
Step 6: if N > 0 then goto Step 2
Step 7: GCD = M
Step8: LCM = A*B/GCD Step 9: Print LCM
Step 10: Stop
Example 16) Algorithm to find total marks, average and result of a student
Step 1 : Read stno,m1,m2,m3
Step 2: Tot=m1+m2+m3
Step 3 : Avg=tot/3
Step 4 : if m1<35 or m2<35 or m3<35 then
Result = Fail
Else
Result = pass
Step 5 : Print Tot,Avg,Result
Step 6 : Stop
FLOWCHART

The most difficult and important task within programming is the systematic and
careful analysis of a whole problem. Therefore, before going to actual
programming, a programmer should always go through the following steps in a
sequential order.

The most difficult and important task within programming is the systematic and
careful analysis of a whole problem. Therefore, before going to actual
programming, a programmer should always go through the following steps in a
sequential order.

i) Design an algorithm representing the process of solution of problem.


ii) Represent the algorithm through flowchart for better understanding of the
algorithm.
iii) Code the flowchart i.e. write instruction in a programming language that a
specific computer will accept.
iv) Run/Execute the program on the computer for the given data (Input) and get
the output.

Flowcharting: Flowcharting is a graphical representation of an algorithm. The


pictorial representation of algorithm is called flowchart. A flowchart is a picture, which
shows the sequence in which data are read, Computing is performed, decisions are
made and results are obtained. It makes use of the basic operations in programming. All
symbols are connected among themselves to indicate the flow of information and
processing.
i) Terminal:

The oval represents any terminal point in a program and generally contains such
words as BEGIN, START, END or STOP.

ii) Input/Output:

The parallelogram represents the Input/Output function i.e. making data availiable for
processing (input) or recording of the processed information (output). This step
implies obtaining a number from an Input device (say, the keyboard and storing it in the
storage location names ‘A’).

iii) Process: The rectangle represents the processing operation. A process


changes or moves data. An assignment is normally represented by this symbol.
iv) Flow direction: Lines or arrows represent the flow direction function – the
flow of control. Normal flow direction is from left to right or from top to bottom.

v) Annotation: A broken line and bracket represent the annotation


function – the addition of descriptive comments or explanatory notes for clarification
of some statements.

vi) Decision making symbol: The diamond represents a decision or switching


type of operations that determines which of the alternative paths is to be followed.

vii) Connector: The circle represents a function in a flow line.

viii) Pre-defined process:


The double sided rectangle represents a named process that consists of one or
more
operations or programming steps that are specified elsewhere, such as a
module or subroutine. We will use these flowcharting symbols for representing
algorithms.
START Start

READ Read a,b


a,b,c
no Is yes
a>b
Sum = a+b+c

Big b Big a
Display
sum

STOP Print big

Flowchart to find sum of


three numbers
Stop

Flowchart to find largest of two


numbers
The First block in the flowchart labeled START signals the beginning of the procedure.
A rectangle with rounded edges is used to depict START and STOP operations
in a flowchart.
The next operation is to read the three elements a, b and c . A parallelogram is used to
depict the operation of reading.
Rectangle shaped box is used for statements in the flowchart. Parallelogram is used for
both reading and displaying purpose. A line with an arrow connects any two blocks in a
flowchart.
Beginning at start we follow the arrow and perform subsequent operations. In the
next
block we compute the sum and assign the value to sum.
The symbol in the chart is to be read ‘becomes’. Sum becomes a+b+c.” This
block is a computational block. A rectangle is used depict it.
In the next block we use a parallelogram to print sum.
After printing the sum the next block in flowchart is a symbol to stop.

A diamond shaped box is used to show a comparison. If the answer is “yes” the
path named with yes will be chosen otherwise the path named with “no” will be
chosen.
Start

Read a, b, c

Big a
Is b>big T

F Big

Is c>big
T
Large

Big c
F
T

Display big

Stop
Is
Count< n

Flowchart to find largest of


3 numbers

Stop

Flowchart to find large and second large from n numbers


Start START

Read n Input the


Value of N

Big 0
X=1
Count 0 Y=1

Print X,Y
Read

I=2

Is
num > big T
Z=X+Y

F Big
Print Z

Count X=YY=Z

Is
T I=I+1
Count <n

Yes
I <= N
F
No
Display
STOP

Stop

Flowchart to find largest of n Flowchart to print Fibonacci Series up to


numbers n terms
INTRODUCTION TO C:
C is a general purpose programming language. C compilers are commonly available for
computers of all sizes. The compilers are usually compact and they generate object
programs that are small and highly efficient, when compared with programs compiled from other
high level languages. C programs are highly portable.

History of C:
C was originally developed in the 1970’s by Dennis Ritchie at Bell Telephone
Laboratories, Inc. It is an outgrowth of two earlier languages, called BCPL and B, which
were also developed at Bell Laboratories.

PROGRAM DEVELOPMENT STEPS


Executing a Program written in c involves a series of steps. These are:
1. Creating the program.
2. Compiling the program.
3. Linking the program with functions that are needed from C library.
4. Executing the program.
The Following Figure shows the process of creating, compiling and executing a C Program
Creating a Program:
Once we load the Operating system into the memory, the computer is ready to receive the
program. The program must be entered into a file. The file name can consist of letters, digits and
special characters, followed by a dot and a letter c.
Ex: hello.c program.c ex1.c
The file is created with the help of a text editor, we use tc.exe. double click the icon TC on the
desktop. TURBOC editor will be opened. If the file is existed before, it can be loaded. If it does
not exist, the file has to be created. After typing the instructions save it with file extension .c.

When editing is over, the file is saved on disk which can be referred later by its name. the
program that is entered into the file is known as the source program.

Compiling the program: to compile the program press ALT + F9


Now the source program instructions are transformed into a form suitable for execution by
the computer. If mistakes in syntax or semantics of the language are discovered, they are
listed out and the compilation process ends right there. The errors should be corrected in the
source program with the help of the editor and the compilation is done again.

Linking the program: Linking is the process of putting together other program files and
functions that are required by the program. The compiled and linked program is called the
executable object code

Executing the program: to execute the program press CTRL+F9


would load the executable object code into the computer memory and execute the
instructions.

Some times the program may request for some data to be entered through the keyboard.
When there is wrong with the program logic or data, then it is necessary to correct the source
program or data.

In case the source program is modified the entire process of compiling, linking and executing the
program should be repeated.
STRUCTURE OF A C PROGRAM:
Every C program consists of one or more functions, one of, which must be called main().
The program will always begin by executing the main() function. Additional
function definitions may precede or follow main.

Documentation Section:
The Documentation Section consists of a set of comment lines giving the name of the
program, the author and other details, which the programmer would like to use later.
Link Section:
The link Section provides instructions to the compiler to link functions from the system
library.
Definition section:
The definition section defines all symbolic constants.
Global Declaration Section:
The Global declaration section declares all the global variables that are used in more than one
function. This section also declares all the user-defined functions.
Every C Program must have one main() function section. This Section consists of two parts.
1. Declaration part
2. Executable part
The Declaration part declares all the variables used in the executable part. There is at least one
statement in the executable part. These two parts must appear between the opening brace and
closing braces.

The program execution begins at the opening brace and ends at the closing brace. The closing
brace of the main function is the logical end of the program. All Statements in the declaration and
executable parts end with a semicolon (;).

The sub program section contains all the user-defined functions that are called in the main
function. User defined functions are generally placed immediately after the main function,
although they may appear in any order.
All functions except the main function may be absent when they are not required. Sample C

Program:

/*-------------- Program to calculate area of a circle ---------------- */


#include <stdio.h>
#include <conio.h>
main()
{
float radius, area;
clrscr();
printf(“Enter Radius? ”);
scanf(“%f”, &radius);
area = 3.1415 * radius * radius;
printf(“area=%f”, area);
getch();
}
C Character Set:
The characters that can be used to form words, numbers and expressions are called as the
C character set which are grouped into the following categories.
1. Letters.
2. Digits.
3. Special characters.
4. White spaces.
The compiler ignores the white spaces unless they are a part of string constant.
C TOKENS:
In the passage of a text individual words and punctuation marks are called tokens. In C, the
smallest individual units are called as c Tokens. C has Six types of tokens that are used to
write the c programs.

KEYWORDS:
Every c word is classified as either a keyword or an identifier. All keywords have a fixed
meanings and these meanings cannot be changed. All keywords must be written in lower
case. The list of all keywords in ANSI C are listed below
IDENTIFIERS:
Identifiers are names given to various program elements, such as variables, functions and
arrays. Identifiers consist of letters and digits, in any order, except that the first character must be
a letter. Both uppercase and lowercase are permitted. Upper and lowercase letters are not
interchangeable. i.e. upper case letter is not equivalent to the corresponding lowercase letter.
The under score character ( _ ) can also be included, and is considered to be a letter. An
underscore is often used in the middle of an identifier.

Valid Identifiers:
x y12 sum
sum area name
TABLE tax_rate

Invalid Identifiers:
4th “x”
St no

DATA TYPES: C supports several different types of data, each of which may be
represented differently within the computer’s memory.
int integer
char single character
float floating-point number
double double precision floating point number
Number containing a decimal point and/or an exponent. Exponent which may be larger in
magnitude.
Qualifiers: Short Long Signed Unsigned
Integer quantities can be defined as
Short int
long int or unsigned int
Short integer may require less memory than an ordinary int. Similarly long int may require
more memory but it will never be less than an ordinary int.
RANGE
Signed -32,768 +32,767
Unsigned 0 65,535
Character type is used to represent individual characters requires 1 byte of memory.
CONSTANTS:
C has 4 basic types of constants. They are
1. Integer constants
2. Real or Floating-point constants
3. Single Character constants
4. String constants

Integer constant:--
0 1 456 5467
Floating constants:--
0. 1. 0.2 345.602 2E-8 0.06E-3
5
3*10 can be represented as follows
300000. 3E5 3E+5 3.0E+5 .3E+6 30E4
-17
5.026*10 can be represented as follows
5.026E-17
Character constants:
A character constant is a single character enclosed in apostrophes.
‘A’ , ‘X’ , ‘3’ , ‘$’
String constants:
A string constant of any number of consecutive characters enclosed in double quotations.
“green”
“C programming language”
VARIABLE: A variable is an identifier that is used to represent some specified type of
information
int a, b, c;
char d;

a = 4;
b = 3;
d = ‘a’;
All variables must be declared before they can appear in executable statements. int a,b,c;
float root1, root2; Char flag;

Expressions: An expression represents a single data item, such as a number or a character. It


may also consist of some combination of such entities interconnected by one or more operators.
c=a+bx=y
x <= y x == y
++i;
STATEMENTS: A statement causes the computer to carry out some action. There are
three different classes of statements in C.
Expression Statement Compound Statement Control Statement
An expression Statement consists of an expression followed by a semicolon.
a=3;
c = a+b;
a++;
printf(“welcome to C programming ”);
A compound statement consists of several individual statements enclosed within a pair of
braces{ }.
Example) {
pi=3.1415;
area=pi*radius*radius;
}
Control Statements are used to create special program features, such as logical tests, loops and
branches.

Symbolic Constants:
A symbolic Constant is a name that substitutes for a sequence of characters. The characters
may represent a numeric constant, a character constant or a string constant.
# define name text
Where name represents a symbolic name, typically written in uppercase letters, and text
represents the sequence of characters associated with the symbolic name. Note that text does not
end with a semicolon.

# define TAXRATE 0.25


# define PI 3.1415
# define TRUE 1
# define FALSE 0
# define FRIEND “rama”
Notice that the symbolic names are written in uppercase, to distinguish them from ordinary C
identifiers.

OPERATORS
C supports rich set of operators. An operator is a symbol that tells the computer to perform
certain mathematical or logical manipulations.
C operators can be classified into a number of categories. They include
1) Arithmetic operators
2) Relational operators
3) Logical operators
4) Assignment operators
5) Increment and decrement operators
6) Conditional operators
7) Cast operators
8) Bitwise operators
9) Special operators
1)Arithmeticoperators : C provides all basic arithmetic operators. Operator used with only one
operand is called unary operator. For example -5. The number preceded by a minus sign changes
its sign.
Operator Purpose/Meaning
+ Addition
- Subtraction or unary minus
* Multiplication
/ Division
% Modulo division. Reminder after integer division
Integer division truncates any fractional part. The modulo division produces the remainder of an
integer division. The modulo division operator % cannot be used on floating point data. C does not
have an operator for exponentiation.
If an expression has both integer operands then the result is an integer. An arithmetic
operation involving only integer operands is called integer arithmetic.

Example 1) Suppose a and b are integer variables such as a=10 and b=3
Expression Value a+b 13
a-b 7 a*b 30
a/b 3 (decimal part truncated)
a%b 1 (remainder of division)
An arithmetic operation involving only real operands is called real arithmetic. Example 2) v1 v2
are floating points variables whose values are 12.5 and 2.0
Expression Value
v1+v2 14.5
v1-v2 10.5
v1*v2 25.0
v1/v2 6.25
When one of the operands is real and the other is integer, the expression is called a mixed
mode arithmetic expression. For example
15 / 10.0 = 1.5 where as
15 / 10 =1
2)Relational Operators: We often compare two quantities, and depending on their relation, take
certain decisions. For example we may compare the age of two persons, or price of two items and
so on. These comparisons can be done with the help of relational operators.

Operator Purpose/Meaning
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal to
!= Not equal to

3) Logical Operators: The logical operators are used when we want to test more than one
condition and make decisions.
Operator Purpose/Meaning
&& Logical AND
|| Logical OR
! Logical NOT
Example 1)
if ((m1>=40)&&(m2>=40)&&(m3>=40))
printf(“pass”);
else
printf(“fail”);
Example 2)
if ((m1<40)||(m2<40)||(m3<40))
printf(“Fail”);
else
printf(“pass”);

4.ASSIGNMENT OPERATORS:
identifier = expression a=3
x=y sum=a+b
Are used to assign the result of an expression to a variable in addition to = c has a set of short
assignment operators.
v op=exp;
Where v is a variable. exp is expression op is a c binary operator. op = is known as Shorthand
assignment operator.
v op = exp;
is equivalent to v = v op(exp);
a = a+1; a+=1 a=a-1 a-=1 a=a * (n+1) a*=n+1 a = a/(n+1) a/=n+1 a
= a%b a%=b

5. INCREMENT AND DECREMENT OPERATORS (Unary Operator)


++
__
++i equivalent to i =i +1
--i equivalent to i =i –1
The increment and decrement operators can each be utilized in the different ways,
depending ways, depending on whether before or after the operand.
++ i
i ++
i=5; output
printf(“%d”, i); 5
printf(“%d”, i++); 5
printf(“%d”, i); 6
printf(“%d”, ++i); 7
printf(“%d”, i); 7
printf(“%d”, i--); 7
printf(“%d”, i); 6
printf(“%d”, --i); 5
printf(“%d”, i); 5

C has two very useful operators not generally found in other languages. Theses are the
increment and decrement Operators.
++ and - -
The operator ++ adds 1 to the operand while - - subtracts 1.
Both are unary operators and take the following form.
++m; or m++;
--m; or m--;
++m; is equivalent to m=m+1 or m+=1;
--m, is equivalent to m=m-1 or m-=1;

m++ and ++m mean the same thing when they form statements independently.
They behave differently when they are used in expressions on the right hand side of an
assignment statement.
m = 5;
y = ++m;
The value of y and m would be 6.
uppose if we rewrite the above statements as m = 5;
y = m ++;
The value of y would be 5 and m would be 6. A prefix operator first adds 1 to the operand and
then the result is assigned to the variable on left. On the other hand, a postfix operator first
assigns the value to the variable on the left and then increments the operand.

6. Conditional Operator: The ?: operator


This operator is useful for making two way decisions. This operator is a
combination of ? and : and takes three operands: This operator is popularly known as the
conditional operator. The general form:

Conditional expression ? expression1 : expression2 ;

The conditional expression is evaluated first. If the result is non zero exp1 is evaluated
and returned as the value of conditional expression. Otherwise expression2 is evaluated and
its value is returned.
For example:
if (x<0) Flag=0;
else
Flag=1; Can be written as
Flag= (x<0) ? 0: 1;
Ex 2) Finding largest from two integers: int n1,n2,big; scanf(“%d%d”,&n1,&n2); big=(n1>n2) ?
n1 : n2;
Ex 3 ) evaluate
Y=1.5x+3 for x<=2
Y=2x+5 for x>2
Y=(x>2) ? (2*x + 5) : (1.5*x + 3);

Ex 4)
4x+100 for x<40
Salary y = 300 for x=40
4.5x+150 for x>40
7. Cast operator (Type Conversions)
The value of an expression can be converted to a different data type if desired. To do so
the expression must be preceded by the name of the desired data type enclosed in parentheses.
(data type)Expression
int a=10;
int b=3;
a/b becomes 3
(float)a/(float)b becomes 3.33 int 10+15.5 becomes 25

int n=123; float m; m=(float)n;


the operator (float) converts n to floating point. n=123
m=123.0
Example Output
1. x = (int)7.5 7

2. a = (int)21.3/(int)4.5
= 21/4 5

3. b = (double) sum/n Division is done in floating point mode

4. y = (int)a+b Result of (a+b) is converted to int

a is converted to integer and then added to b.


6. p = cos((double)x) Converts x to double before using it.

8. Bit wise Operators:


Bitwise Operators are used for manipulation of data at bit level. These operators are used for
testing the bits, or shifting them right or left. Bitwise Operators may not be applied to float or
double.
Operator Meaning
& Bitwise and
| Bitwise or
^ Bitwise exclusive or shift left
<< shift right
>> One’s complement
~
The function showbits( ) displays the binary representation of any integer or character value.

Ex: /* program for left shifting a decimal integer number */


#include <stdio.h> void main()
/* displays the bits of a given number */ {
showbits(n) int k; clrscr(); for(k=0;k<=5;k++)
int n; {
{ printf("decimal number %d is same as ",k);
int a,m,i,andmask; showbits(k);
for (i=15;i>=0;i--) }
{ getch();
m=1<<i; andmask=m&n; }
a=(andmask==0 ? 0 : 1); printf("%d",a);
}
printf("\n");
} /* end of showbits() function */

One’s complement:
/* program complementing a number */ main()
#include <stdio.h> {
showbits(n) int a=25,b;
int n; clrscr();
{
int a,m,i,andmask; printf("decimal number %d is same as ",a);
for (i=15;i>=0;i--) showbits(a);
{ b=~a;
m=1<<i; andmask=m&n; a=(andmask==0 printf("ones complement ");
? 0 : 1); printf("%d",a); showbits(b);
} getch();
printf("\n"); }
}
Right shift:
/* program for right shifting a decimal main()
integer number */ {
#include <stdio.h> int i=25,j,k;
showbits(n) clrscr();
int n; printf("decimal number %d is same as ",i);
{ showbits(i);
int a,m,i,andmask; for(j=0;j<=5;j++)
for (i=15;i>=0;i--) {
{ k=i>>j;
m=1<<i; andmask=m&n; a=(andmask==0 ? 0 printf("%d right shift %d gives ",i,j);
: 1); printf("%d",a); showbits(k);
} }
printf("\n"); getch();
}
}
int n, k; 64 >>1 …. 32 n=5; 64 >> 2
…. 16 k=n>>1 64 >> 3 …. 8
27 >> 1 … 13
49 >> 1 … 24
Left shift: K = i << j
Value i is shifted left j No of positions
64 << 1 128
64 << 2 256
/* program for left shifting a decimal integer number */
#include <stdio.h> main()
showbits(n) {
int n; int i=25,j,k;
{ printf("decimal number %d is same as ",i);
int a,m,i,andmask; showbits(i);
for (i=15;i>=0;i--) for(j=0;j<=5;j++)
{ {
m=1<<i; andmask=m&n; a=(andmask==0 ? k=i<<j;
0 : 1); printf("%d",a); printf("%d left shift %d gives ",i,j);
} showbits(k);
printf("\n"); }
} /* end of showbits() function */ getch();
}
Bitwise And: This operator is different from logical And (&&). & operates on two operands.
While operating upon these two operands they are compared on a bit by bit basis. Hence both the
operands must be of the same type. The second operand is often called AND MASK. The
& operator operates on a pair of bits to yield a resultant bit.
n3= n1 & n2 Ex: 3 ------- 0011 n1
5 ------- 0101 n2
0001
/* program to explain bitwise ANDing two integer numbers */
#include <stdio.h> main()
showbits(n) {
int n; int a,b,c; a=25; b=15; clrscr();
{ printf("decimal number %d is same as ",a);
int a,m,i,andmask; showbits(a);
for (i=15;i>=0;i--) printf("decimal number %d is same as ",b);
{ showbits(b);
m=1<<i; andmask=m&n; a=(andmask==0 ? c=a&b;
0 : 1); printf("%d",a); printf("%d and %d is ",a,b);
} showbits(c);
printf("\n"); getch();
} /* end of showbits() function */ }
Bitwise Or:- 3 ------- 0011 3|5
5 ------- 0101
0111
Bitwise xor:- 3 ------ 0011 3^5
5 ------ 0101
0110
9. Special Operators: -
C supports some special operators of interest such as comma operator, size of operator,
pointer operators (& and *) and number selection operators ( . and )
The comma permits two different expressions to appear in situations where only one
expression would ordinarily be used
a,b,c
c=(a=10, b=20, a+b);
printf(“%d”,c);
first 10 is assigned to a.
20 is assigned to b.
10+20 is assigned to c.
sizeof () operator returns the number of bytes the operand occupies in memory. The operand
may be a variable, a constant or a data type qualifier
Sizeof (int); ---------------- 2 bytes
Sizeof (float); ------------- 4 bytes Sizeof (sum); -------------- 2 bytes Sizeof (2345); ------------- 4
bytes Sizeof (‘A’); --------------- 1 bytes
READING A CHARACTER:
getchar( ): Reading a single character can be done by using the function getchar( );
varname = getchar( );
Ex: Where varname is a valid C identifier. When this statement is encountered, the computer
waits until a key is pressed and then assigns this character as a value to getchar function.
Since getchar() is used on the right hand side of an assignment statement, the character is assign to
the variable.
char ch; ch=getchar( ); putchar(ch); putchar(‘\n’);

putchar (var-name)
is used to write character on the terminal. Where var-name is a character var or char
constant.
putchar (‘\n’); would cause the cursor on the screen to move to the beginning of the next line. char c= ‘a’;
putchar(c);

scanf( ) Function :
Input data can be entered into the computer from a standard input device by means of the
C library function scanf(). This function can be used to enter any combination of
numerical values, single characters and strings.
scanf (control_string, &arg1, &arg2,……&argn);

Where control string refers to a string containing certain required formatting information and
arg1, arg2,…. argn are arguments that represent the individual input data items.
%c single character
%d decimal integer
%e floating point value
%f floating point value
%s string
%x Hexa decimal
%o Octal integer
%u unsigned decimal integer
Each variable name must be preceded by an ampersand (&). The arguments are actually
pointers, which indicate where the data items are stored in the computer memory.
int a;
float b; char name[20]
char c; scanf(“%s”, name);

scanf(“%d”, &a); scanf(“%f”,&b);


scanf(“%c”,&c);

scanf(“%d%f%c”,&a,&b,&c);

printf( ) Function
Output data can be written from the computer on to a standard output device using the
library printf(). This function can be used to output any combination of numerical values,
single characters and strings.
printf (control-string, arg1, arg2,……..);
Where control string refers to a string that contains formatting information, and arg1, arg2 are
arguments that represent individual output data items.
%c single character
%d decimal integer
%e floating point value
%f floating point value
%s string
%x Hexa decimal
%o Octal
int x;
x=20; output printf (“%d”,x);
20 printf (“x=%d”,x);
x=20
printf(“value of x=%d”,x) value of x=20

int a,b; a=10; b=20;


printf(“%d %d”,a,b); 10 20 printf(“a=%d
b=%d”,a,b); a=10 b=20
Assume i=integer; d=double; c=character pow() is a library function for exponential
abs(i) returns positive value of the given integer
ceil(d) returns the nearest integer greater than the number cos(d) returns cosine of the
given value
exp(d) returns e to the power d
fabs(d) returns positive value of the given integer floor(d) returns the nearest integer less than
the number log(d) returns the logarithm of the given value
tolower(c) returns the lowercase character of the given character toupper(c) returns the upper
case character of the given character toascii(c) returns the ASCII value of the given character
sqrt(d) returns the square root of the given number
PRECEDENCE OF OPERATORS:
While executing an arithmetic statement, which has two or more operators, we may have
some problems about how exactly does it get executed
For example does the expression
a+b*c correspond to (a+b) * c or a + (b*c)
The order of priority in which the operations are performed in an expression is called
precedence.
An arithmetic expression with out parenthesis will be evaluated from left to right. using the rules
of precedence of operators
High priority * / % Low priority + -

The basic evaluation procedure includes two passes from left to right through the expression.
During the first pass the high priority operators (if any) are applied as they are encountered.
During the second pass the low priority operators (if any) are applied as they are encountered.
float a,b,c,x,y,z;
a=9; b=12; c=3;
x = a-b / 3+c * 2 – 1;
y = a-b / (3+c) * (2-1); z = a-(b/ (3+c) * 2) –1; printf (“x = %f\n”,x); printf(“y = %f\n”,y);
printf(“z = %f\n”,z);
…………
Whenever parenthesis are used the expressions within parenthesis assume highest priority. If two
or more sets of parenthesis appear one after the another as 9-12/(3+3)*(2-1). The expression
contained in the left most set is evaluated first and the right most in the last.
9-12/(3+3)*(2-1)
9-12/6*(2-1)
9-12/6*1
9-2*1
9-2
7.
Parenthesis may be nested, and in such cases, evaluation of the expression will proceed outward
from the innermost set of parenthesis.
9-(12/(3+3)*2)-1 9-((12/3)+3*2)-1
9-(12/6*2)-1 9-(4+3*2)-1
9-(2*2)-1 9-(4+6)-1
9-4-1 9-10-1
4. -2.
PRECEDENCE AND ASSOCIATIVITY
Each operator in C has precedence associated with it. This precedence is used to determine how
an expression involving more than one operator is evaluated. The operators at the higher level of
precedence are evaluated first. The operators of same precedence are evaluated either from left to
right or from right to left depending on the level. This is known as associativity property of an
operator.

Consider the following conditional statement


If (x = =10+15 && y<10)
Addition operator has higher priority than logical operator && and relational operators = =
and <. Therefore the addition of 10 and 15 is executed first. This is equal to
if(x = = 25 && y<10)

The next step is to determine whether x is equal to 25 and y is less than 10. Assume x as 20 and y
as 5 then
x = = 25 is false y<10 is true.
The operator < has higher priority compared to = =, y<10 is tested first and then x = =25 is tested.
Similarly we get if (false && true) because one of the condition is false the compare condition is
false.
SIMPLE PROGRAMS
/* -------------------------Temperature conversion Centigrade to Fahrenheat C=(F-32)/1.8 */
#include <stdio.h>
#include <conio.h>
void main()
{
float c,f;
clrscr();
printf("enter temperature in centigrade ");
scanf("%f",&c);
f = c * 1.8 +32.0;
printf("Fahrenheat temperature =%f\n",f);
getch();
}

/* --------------------------------Program to find Area of a Circle */


#include <stdio.h>
#include <conio.h>
#define PI 3.1415 void main()
{
float r,a;
clrscr();
printf("enter radius ");
scanf("%f",&r);
a = PI * r * r;
printf("Area of circle= %f\n",a);
getch();
}

/*----------------------------------- Program to find Area of a Triangle */


#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float a,b,c,s,area;
clrscr();
printf("enter the tree sides of a triangle ");
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("Area of a Triangle = %f\n",area); getch();
}
/* ----------------------------------Program to add two numbers */
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,sum;
clrscr();
printf("enter a and b "); scanf("%d%d",&a,&b); sum=a+b;
printf("sum of two numbers = %d\n",sum);
getch();
}

/* -----------------------------------Program to multiply two numbers */


#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,product;
clrscr();
printf("enter a and b "); scanf("%d%d",&a,&b); product=a*b;
printf("product of two numbers = %d\n",product);
getch();
}

/*---------------------------------------- Program to process student information */


#include <stdio.h>
#include <conio.h>
void main()
{
int stno,m1,m2,m3,tot;
float avg;
clrscr();
printf("enter student number ");
scanf("%d",&stno);
printf("Enter marks in 3 subjects "); scanf("%d%d%d",&m1,&m2,&m3); tot=m1+m2+m3;
avg=(float)tot/3.0;

printf("student number =%d \n",stno); printf("m1=%d m2=%d m3=%d\n",m1,m2,m3);


printf("Total marks =%d\n",tot);
printf("Average Marks =%f\n",avg);
if ((m1<40)||(m2<40)||(m3<40))
printf("Result=Fail\n");
else printf("Result=Pass\n");
getch();
}
/* -------------------------------------Program to find electricity bill */
#include <stdio.h>
#include <conio.h>
void main()
{
int sno,pmr,cmr,units; float unitcost,amount; clrscr();
printf("Enter service number ");
scanf("%d",&sno);
printf("Enter Previous meter reading");
scanf("%d",&pmr);
printf("Enter current meter reading");
scanf("%d",&cmr); units = cmr-pmr; printf("Enter unit cost "); scanf("%f",&unitcost); amount =
units * unitcost;
printf("no of units =%d\n",units); printf("electricity bill=%f\n",amount); getch();
}

/* --------------Program to find Area of a Triangle when base and height are given*/
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float b,h,area;
clrscr();
printf("enter the base and height of a triangle ");
scanf("%f%f",&b,&h);
area=b*h/2;
printf("Area of a Triangle = %f\n",area);
getch();
}

/*----------------------------------- Program to interchange values of two variables */


#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,temp;
clrscr();
printf("enter two numbers ");
scanf("%d%d",&a,&b);
printf("Before interchange a=%d b=%d \n",a,b);
temp=a; a=b; b=temp;
printf("After interchange a=%d b=%d \n",a,b);
getch();
}
Problem) Write a program to find compound interest. Given amount p, years n and rate per
n
year r. Compound interest = p (1+i) where i= r / 100.
/* ------------------------------------------------------ Program to find compound interest */
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float principle,ci;
int rate,n;

clrscr();
printf("enter principle amount "); scanf("%f",&principle); printf("enter rate of interest ");
scanf("%d",&rate);
printf("enter number of years ");
scanf("%d",&n);

ci=principle*pow((1+(float)rate/100.0),n); printf("compound interest = %f\n",ci); getch();


}

You might also like