INTRODUCTION TO C
• C was developed by Dennis Ritchie at Bell
laboratory in 1972
• It is an upgrade version of languages B and
BCPL.
Features of C
• It is a structured programming language.
• It is highly portable.
• It is a middle level language.
• It is a case sensitive language.
• It uses Top-Down approach.
• It is a Free form language.etc,.
C Character Set
C Character Set
Execution
Character Set
Source
Character Set
Special
Characters
DigitsAlphabets Escape
Sequence
White
Spaces
C Character Set (Cont)
• Source Character Set
– It is used to construct the statements in the
program.
• Executable Character Set
– These characters are employed at the time of
execution i.e. they have effects only when the
program is being executed.
Source Character Set
Letters a to z ,A to Z
Digits 0 to 9
Special Characters ! @ # $ % ^ & * ( ) _ - +
= | { } [ ] etc,.
White Spaces Blank Space ,Horizontal
tab, New line, Vertical
tab etc,.
Special characters
• Comma ,
• Period or dot .
• Semicolon ;
• Colon :
• Apostrophe ‘
• Quotation mark “
• Exclamation mark !
• Vertical bar |
• Back Slash
• Tilde ~
• Underscore -
• Dollar $
• Question mark ?
• Ampersand &
• Caret ^
• Asterisk *
• Minus -
• Addition +
• Lesser than <
• Greater than >
• Parenthesis ()
• Bracket []
• Braces {}
• Percentage %
• Hash #
• Equal to =
• At the rate @
C Tokens
• The smallest element in the C language is
the token.
• It may be a single character or a
sequence of characters.
C Tokens (Cont)
C Tokens
Identifiers
Eg:main,
avg
Keywords
Eg: int,
for
operators
Eg: +
-
Strings
Eg: “ab”
spI
symbol
Eg: #
$ %
Constants
Eg:17,
15.5
Executing a C Program
Creating the Program
Compilation
Linking
Execution
Executing a C Program (Cont)
• Enter the program in a C editor.
• Save the program (File Save) or F2.
Use the extension .c for saving the file.
Eg: sample.c
• Compile the program(Compile
Compile) or Alt+F9.
• Run the program(Run Run) or Ctrl+F9.
Executing C program using UNIX
• Enter the program in vi editor.
• Save the file using :wq
Use the extension .c for saving the file.
Eg: sample.c
• Compile the program.
Eg: cc sample.c (or) gcc sample.c
• Run the program using a.out.
Structure of C program
DOCUMENTATION SECTION
PREPROCESSOR SECTION
DEFINITION SECTION
GLOBAL DECLARATION SECTION
main()
{
Declaration part;
Executable Part;
}
sub program section
{
Body of the subprogram;
}
• Documentation Section
– It contains the comment lines.
• Preprocessor Section
– It is used to link library files.
• Global Declaration Section
– The Global declaration section comes at the
beginning of the program and they are visible
to all parts of the program.
• Declaration Section
– It describes the data to be used within the
function.
• Executable Part
– It contains the valid statements.
C Programs
• C program may have many functions.
• One and only one of the functions MUST BE
named main.
• main is the starting point for the program.
• main and other functions in a program are
divided into two sections, declaration
section and statement section.
Preprocessor Directives
• Special instructions to the preprocessor
that tells how to prepare the program for
compilation
• E.g: include : tells the processor to
include information from selected libraries
known as header files e.g. <stdio.h>
Comments (Program documentation)
The compiler simply ignores comments
when it translates the program into
executable code.
To identify a comments, C uses
opening /* and closing */ comment
tokens.
Comments (Cont)
Comments can appear anywhere in a
program.
Comments are also found wherever it is
necessary to explain a point about a code.
Comments cannot be nested in C i.e. you
cannot have comments inside comments.
C program
/* Example program in C*/ Comments
# include <stdio.h> Preprocessor Section
Global Declaration
void main ()
{ Local declaration
printf (“Hello World! n”); Statements
}
Output :
Hello World
Identifiers
• Identifiers are names given to various
program elements such as variables,
functions and arrays etc,.
• Eg: #define N 10
#define a 15
Here N and a are user defined identifiers.
Rules for naming identifier
• First character must be alphabetic or
underscore.
• Must consist only of alphabetic characters,
digits, or underscores.
• Only the first 31 characters of an identifier are
significant and are recognized by the compiler.
• Cannot use a keywords or reserved word (e.g.
main, include, printf & scanf etc.).
• No space are allowed between the identifiers
etc,.
• C is case sensitive, e.g. My_name ≠ my_name.
Examples of Valid and Invalid Names
Valid Names Invalid Names
a a1 $sum /* $ is illegal */
student_name stdntNm 2names /* Starts with 2 */
_aSystemName _anthrSysNm stdnt Nmbr /* no spaces */
TRUE FALSE int /* reserved word */
Variables
• Variable is an identifier that is used to
represent some specified type of
information.
• Eg: x=3
• Here x is variable.
Keywords
• It is a reserved words.
• Cannot be used for anything else.
• Examples:
– int
– while
– for etc,.
Keywords
Auto register Continue
Double typedef For
Int Char signed
Struct extern void
Break return Default
Else union Goto
Long Const sizeof
Switch Float do
Case short If
Enum unsigned
Static While
Constants
• It is an entity whose value does not
changes during the execution.
• Eg: x=3
• Here 3 is a constant.
Rules for defining Integer Constant
• It must have atleast one digit.
• Decimal point are not allowed.
• No blank space or commas are allowed.
• It can be either positive or negative. Etc,.
Numeric constants
Real constants
• It is formed using a sequence of digits but
it contain decimal point.
• length, height, price distance measured in
real number
Eg: 2.5, 5.11, etc.
Character constants
Single character constant
– A character constant is a single character
they also represented with single digit or a
single special symbol which is enclosed in
single quotes.
– Eg: ‘a’, ‘8’,’_’etc.
Operators
• An operator is a symbol that specifies an
operation to be performed on the
operands.
• Eg: a + b
+ is an operator.
a,b are operands.
Data Types
• A Data type is the type of data that are
going to access within the program.
Standard Data Types
These Standard type can be used to build
more complex data types called Derived
Types (e.g. pointers, array, union etc.).
Data types
Data type Size(bytes) Range Format string
Char 1 -128 to 127 %c
int 2 -32,768 to 32,767 %d
Float 4 3.4 e-38 to 3.4 e+38 %f
Double 8 1.7 e-308 to 1.7 e+308 %lf
integer
A number without a fraction part : integral
number.
C supports three different sizes of the
integer data type :
short int
int
long int
Floating Point
A floating-point type is a number with a
fractional part, e.g. 56.78
Floating point numbers are stored using
4 Byte.
Types
Float
Double
long double
character
• Character are generally stored using 8
bits(1 Byte) of the internal storage.
Character ASCII code value
a 97(decimal) or 01100001(binary)
x 120(decimal) or 01111000(binary)
void
The void type has no values and no
operations.
Both the set of values and the set of
operations are empty.
Variable’s Declaration
To create a variable, you must specify
the type and then its identifier :
float price;
int a,b;
char code;
Entire Data types in c:
Data type Size(bytes) Range Format string
Char 1 128 to 127 %c
Unsigned char 1 0 to 255 %c
Short or int 2 -32,768 to 32,767 %i or %d
Unsigned int 2 0 to 65535 %u
Long 4 -2147483648 to 2147483647 %ld
Unsigned long 4 0 to 4294967295 %lu
Float 4 3.4 e-38 to 3.4 e+38 %f or %g
Double 8 1.7 e-308 to 1.7 e+308 %lf
Long Double 10 3.4 e-4932 to 1.1 e+4932 %lf
Arithmetic operator
• It is used to carry out arithmetic
operations like addition, subtraction etc,
Eg: + , - , * , / etc,
Sample program
#include<stdio.h> // Header File
#include <conio.h>
int b=10; //Global Declaration
void main ( ) /* main is the starting of every c program */
{
int a,c; //Local Declaration
clrscr( );
scanf(“%d”,&a);
printf(“ n The sum of the two values:”);
c = a+b;
printf(“%d”,c);
getch( );
}
Division operator on Different
Data Type
Operation Result Example
int/int int 5/2 = 2
int/real real 5/2.0 = 2.5
real/int real 5.0/2 = 2.5
real/real real 5.0/2.0 = 2.5
Relational operator
• It is used to compare two or more
operands.
• Eg :< , > , <= , >=, != etc,.
• 5 < 9 which will return 1
Logical operator
• It is used to combine the result of two or
more condition.
• AND(&&)
• OR (||)
• NOT (!) are Logical operators.
• Eg: (i>10)&&(j>5).
(i>10)||(j>5) etc,.
Sample program
#include<stdio.h>
#include <conio.h>
void main ( )
{
int a=10,b=3,c=5,e;
clrscr( );
if(a>b) // relational operator
{
printf(" n a is bigger than b");
}
if((a>b)&&(a>c)) //Logical operator
{
printf(" n a is biggest");
}
getch( );
}
Assignment operator
• It is used to assign a value or
expression etc to a variable.
• Eg: a =10.
a = b
a = b + c etc,.
Assignment operator(Cont)
• Compound operator
It is also used to assign a value to a
variable.
Eg: x + = y means x = x + y
• Nested operator
It is used for multiple assignment.
Eg: i = j = k = 0;
Increment or decrement
operator(Unary)
• It is used to Increment or decrement an
operand.
• Eg: ++x (Pre Increment),
x++ (Post Increment),
--x (Pre Decrement),
x-- (Post Decrement).
Sample Program
#include<stdio.h>
#include <conio.h>
void main ( )
{
int a=5;
clrscr( );
printf(" n Post increment Value:%d",a++);
printf(" n Pre increment Value:%d",++a);
printf(" n Pre decrement Value:%d",--a);
printf(" n Post decrement Value:%d",a--);
getch( );
Bitwise operator
• It is used to manipulate data at bit level.
• Eg: a=5 i.e 0000 0101
b=4 i.e 0000 0100
Then a & b = 0000 0100
a | b = 0000 0101 etc,.
Conditional Operator (or)
Ternary Operator
• It is used to checks the condition and
execute the statement depending on the
condition.
• Eg: C = a > b ? a:b
Expression
• An expression represent data item such
as variable, constant are interconnected
using operators.
• Eg:
Expression C Expression
a + b + c a + b + c
a2
+b2
a*a + b*b
Operator Precedence & Associativity
• The arithmetic expressions evaluation are
carried out based on the precedence and
associativity.
• The evaluation are carried in two phases.
– First Phase: High Priority operators are
evaluated.
– Second Phase: Low Priority operators are
evaluated.
Formatted Input/Output
C uses two functions for formatted
input and output.
Formatted input : reads formatted
data from the keyboard.
Formatted output : writes formatted
data to the monitor.
Standard Output
The standard output file is the monitor.
Like the keyboard, it is a text file.
When you need to display data that is
not text, it must be converted into to the
text before it is written to the screen.
Formatted Input (scanf)
• The standard formatted input function in C is
scanf (scan formatted).
• scanf consists of :
a format string .
an address list that identifies where data
are to be placed in memory.
scanf ( format string, address list );
(“%c….%d…..%f…..”, &a,….&i,…..,&x…..)
Character Test Function
• It is used to test the character taken from
the input.
• isalpha(ch)
• isdigit(ch)
• islower(ch)
• isupper(ch)
• tolower(ch)
• toupper(ch) etc,.
Decision Making
• It is used to change the order of the
program based on condition.
• Categories:
– Sequential structure
– Selection structure
– Iteration structure
– Encapsulation structure
Decision Making (cont)
• Sequential structure
– In which instructions are executed in
sequence.
• Selection structure
– In which instruction are executed based on
the result of some condition.
• Iteration structure
– In which instruction are executed repeatedly.
• Encapsulation structure
– In which some compound structure are used.
SELECTION STRUCTURE
• It allows the program to make a choice
from alternative paths.
• C provide the following selection
structures
– IF statement
– IF … ELSE statement
– Nested IF … ELSE statement
– IF … ELSE ladder
#include<stdio.h>
#include <conio.h>
void main ( )
{
int a;
clrscr( );
printf("nEnter the number:");
scanf("%d",&a);
if(a>10)
{
printf(" n a is greater than 10");
}
else
{
printf(" n a is less than 10");
}
getch( );
}
printf(" nThe value of a is:%d",a);
printf(" nThe value of b is:%d",b);
getch( );
}
Output:
Enter the value of a:5
Enter the value of b:4
The value of a is:4
The value of b is:5
Swapping without using third
variable
#include<stdio.h>
#include <conio.h>
void main ( )
{
int a,b;
clrscr( );
printf(" nEnter the value of a:");
scanf("%d",&a);
printf(" nEnter the value of b:");
scanf("%d",&b);
a=a+b;
b=a-b;
a=a-b;
printf(" nThe value of a is:%d",a);
printf(" nThe value of b is:%d",b);
getch( );
}
Output:
Enter the value of a:5
Enter the value of b:6
The value of a is:6
The value of b is:5