163
INTRODUCTION TO C

INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Embed Size (px)

Citation preview

Page 1: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

INTRODUCTION TO C

Page 2: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

INTRODUCTION TO C

• C was developed by Dennis Ritchie at Bell laboratory in 1972

• It is an upgrade version of languages B and BCPL.

Page 3: 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,.

Page 4: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Steps in learning C

CharacterSet

ProgramsInstructionsTokens

Page 5: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

C Character Set

C Character Set

Execution Character Set

Source Character Set

SpecialCharacters

DigitsAlphabets EscapeSequence

WhiteSpaces

Page 6: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 7: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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,.

Page 8: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Special characters• Comma , • Period or dot .• Semicolon ;• Colon :• Apostrophe ‘• Quotation mark “• Exclamation mark !• Vertical bar | • Back Slash \• Tilde ~• Underscore -• Dollar $• Question mark ?

Page 9: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

• Ampersand &• Caret ^• Asterisk *• Minus -• Addition +• Lesser than <• Greater than >• Parenthesis ()• Bracket []• Braces {}• Percentage %• Hash #• Equal to =• At the rate @

Page 10: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Executable Character Set

Characters Escape Sequence

Back Space \b

Horizontal Space \t

Vertical Space \v

Newline \n

Page 11: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

C Tokens

• The smallest element in the C language is the token.

• It may be a single character or a sequence of characters.

Page 12: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

C Tokens (Cont)

C Tokens

Identifiers

Eg:main,avg

Keywords

Eg: int,for

operators

Eg: + -

Strings

Eg: “ab”

spIsymbol

Eg: #$ %

Constants

Eg:17,15.5

Page 13: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Executing a C Program

Creating the Program

Compilation

Linking

Execution

Page 14: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 15: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 16: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Structure of C programDOCUMENTATION SECTION

PREPROCESSOR SECTION

DEFINITION SECTION

GLOBAL DECLARATION SECTION

main() {

Declaration part;Executable Part;

} sub program section {

Body of the subprogram; }

Page 17: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

• 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.

Page 18: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 19: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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>

Page 20: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 21: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 22: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 23: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

C Tokens

• Identifiers

• Keywords

• Constants

• Operators

• Special symbols

Page 24: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 25: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 26: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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 */

Page 27: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Variables

• Variable is an identifier that is used to represent some specified type of information.

• Eg: x=3

• Here x is variable.

Page 28: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Keywords

• It is a reserved words.

• Cannot be used for anything else.

• Examples:– int– while– for etc,.

Page 29: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Keywords

Auto register ContinueDouble typedef ForInt Char signedStruct extern void Break return Default Else union GotoLong Const sizeof Switch Float doCase short IfEnum unsignedStatic While

Page 30: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Constants

• It is an entity whose value does not changes during the execution.

• Eg: x=3

• Here 3 is a constant.

Page 31: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Types

• Numeric constants

• Character constant

Page 32: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Constants

Constants

Character Constants Numeric Constants

RealConstant

IntegerConstant

String Constant

SingleCharacter Constant

Page 33: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Numeric constantsInteger constants

• It is formed using a sequence of digits.Decimal - 0 to 9 .

Octal - 0 to 7.

Hexa - 0 to 9 ,A to F

Eg: 10,75 etc.

Page 34: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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,.

Page 35: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 36: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 37: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Character constants

String constants• String constant are sequence of characters

enclosed with in double quote.• Eg: “Hello” ,”444”,”a” etc,.

Page 38: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 39: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Data Types

A Data type is the type of data that are going to access within the program.

Page 40: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Standard Data Types

These Standard type can be used to build more complex data types called Derived Types (e.g. pointers, array, union etc.).

Page 41: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 42: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

integer A number without a fraction part : integral

number. C supports three different sizes of the

integer data type :short intintlong int

Page 43: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 44: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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)

Page 45: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

void The void type has no values and no

operations. Both the set of values and the set of

operations are empty.

Page 46: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Variable’s Declaration

To create a variable, you must specify the type and then its identifier :

float price;int a,b;

char code;

Page 47: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 48: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Types of Operator

• Arithmetic operator

• Relational operator

• Logical operator

• Assignment operator

• Increment or decrement operator(unary)

• Bitwise operator

• Conditional operator

Page 49: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Arithmetic operator

• It is used to carry out arithmetic operations like addition, subtraction etc,

Eg: + , - , * , / etc,

Page 50: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample program

#include<stdio.h> // Header File#include <conio.h>int b=10; //Global Declarationvoid main ( ) /* main is the starting of every c program */{int a,c; //Local Declarationclrscr( );scanf(“%d”,&a);printf(“ \n The sum of the two values:”);c = a+b;printf(“%d”,c);getch( );}

Page 51: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 52: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample program

#include<stdio.h>#include <conio.h>void main ( ){int a=10,b=4,c;float d=3,e;clrscr( );c = a/b;printf(" \n value a/b is:%d",c);e = a/d;printf("\n value a/d is:%f",e);getch( );}

Page 53: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

value a/b is:2

value a/d is:3.333333

Page 54: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Relational operator

• It is used to compare two or more operands.

• Eg :< , > , <= , >=, != etc,.

• 5 < 9 which will return 1

Page 55: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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,.

Page 56: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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( );}

Page 57: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

a is bigger than b

a is biggest

Page 58: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Assignment operator

• It is used to assign a value or expression etc to a variable.

• Eg: a =10.

a = b

a = b + c etc,.

Page 59: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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;

Page 60: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample program#include<stdio.h> #include <conio.h>int b=10;void main ( ){int a=3,b=5;clrscr( );a+=b; // a= a+bprintf(" \n The sum of the two values:%d",a);getch( );}

Page 61: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

The sum of the two values:8

Page 62: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 63: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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( );

}

Page 64: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Post increment Value:5

Pre increment Value:7

Pre decrement Value:6

Post decrement Value:6

Page 65: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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,.

Page 66: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample program

#include<stdio.h>#include <conio.h>void main ( ){int a=5,b=4,c;//char a=5,b=4,c;clrscr( );c = a&b;printf(" \n value a&b is:%d",c);getch( );}

Page 67: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

value a&b is:4

Page 68: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 69: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample Program#include<stdio.h>

#include <conio.h>

void main ( )

{

int a=5,b=8,c;

clrscr( );

c = a>b?a:b; //Conditional operator

printf(" \n The Larger Value is%d",c);

getch( );

}

Page 70: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

The Larger Value is 8

Page 71: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Special Operator

• comma operator ( , )

• sizeof operator

• pointer operator (& , *) etc,.

Page 72: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

#include<stdio.h>#include <conio.h>void main ( ){int c;clrscr( );printf(" \n size of int is:%d",sizeof c);getch( );}

Page 73: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

size of int is: 2

Page 74: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 75: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 76: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Precedence Operator

High * , / , %

Low + , -

Page 77: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example

• 5 - 20/4 + 3*3 – 1

= 5 - 5 + 9 – 1

= 0 + 9 – 1

= 9 – 1

= 8

Page 78: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example

• 5 – (20/4) + 3*(3 – 1)

= 5 - 5 + 3*2

= 5 - 5 + 6

= 6

Page 79: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Type Conversion

• Converting the type of an expression from one type to another type.

Eg: x = (int)10.45

Page 80: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sample Program#include<stdio.h>#include <conio.h>void main ( ){int c;clrscr( );c=(int)10.45;printf("\nOutput is:%d",c);getch( );}OUTPUTOutput is:10

Page 81: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Input/Output Function

Input/Output Function

Unformatted Formatted

Output

printf()fprintf()

Input

scanf()fscanf()

Input

getc()gets()

getchar()

Output

putc()puts()

putchar()

Page 82: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 83: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Formatted Input and Output

Page 84: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 85: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Format of printf Statement

Page 86: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 87: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Format of scanf Statement

Page 88: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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,.

Page 89: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL
Page 90: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Decision Making

• It is used to change the order of the program based on condition.

• Categories:– Sequential structure– Selection structure– Iteration structure– Encapsulation structure

Page 91: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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.

Page 92: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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

Page 93: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

IF Statement

SyntaxIF (condition is true)

{

Statements;

}

If condition

False

True

Statements

Page 94: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example#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");}

getch( );}

Page 95: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the number: 12

a is greater than 10

Page 96: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

IF…ELSE Statement

SyntaxIF (condition) {

True statements;}ELSE{

False statements;}

If Condition

True False

True statements

False statements

Page 97: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

#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( );}

Page 98: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

NESTED IF… ELSE

If Condition

2

True False

True statements

False statements

IfCondition

1False

StatementsTrue

Page 99: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

NESTED IF… ELSESyntaxIF (condition1) {

IF (condition2) {

True statements;}ELSE{

False statements;}

}ELSE{

False statements;}

Page 100: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

IF…ELSE LADDER

Condition1

Statements

Condition2

Statements

Condition3

Statements Statements

TRUE

TRUE

TRUE FALSE

FALSE

FALSE

Page 101: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

IF…ELSE LADDERSyntaxIF (condition1) {statements;}

else if (condition2) {statements;}

else if (condition3){statements;}

else{statements;}

Page 102: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example#include<stdio.h>#include<conio.h>void main(){ int m1,m2,m3; float avg; printf("\nEnter the marks:"); scanf("%d%d%d",&m1,&m2,&m3); avg=(m1+m2+m3)/3; printf("\n The average is:%f",avg); printf("\n The Grade is:"); if(avg>=60) {

printf("First class"); }

Page 103: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

else if(avg>=50) {

printf("Second class"); } else if(avg>=35) {

printf("Thrid class"); } else {

printf("Fail"); }

getch();}

Page 104: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the marks:65

75

70

The average is:70.000000

The Grade is: First class

Page 105: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Looping structure

• It is used to execute some instructions several time based on some condition.– WHILE – Do…WHILE – For

Page 106: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

WHILE Loop

Syntax.

WHILE (condition){

.Body of the loop;

. } Body of The loop

conditionFalse

True

Page 107: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example#include<stdio.h>#include<conio.h>void main(){ int i=1,fact=1,n; printf("\nEnter the Number:"); scanf("%d",&n); while(i<=n) {

fact =fact *i; i++; // i=i+1

} printf("\n The value of %d! is:%d",n,fact); getch();}

Page 108: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the Number:3

The value of 3! is: 6

Page 109: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

DO…WHILE Loop

Syntax

do

{

Body of the loop

}while (condition);

Body of The loop

condition

False

True

Page 110: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

for loop

Syntax

for (initialization; test condition; Increment/Decrement)

{

Body of the loop

}

Page 111: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

for loop

Initialization

condition False

Body of the loop

Inc / Decrement

Page 112: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example#include<stdio.h>#include<conio.h>void main(){ int i,fact=1,n; printf("\nEnter the Number:"); scanf("%d",&n); for(i=1;i<=n;i++) {

fact =fact *i; } printf("\n The value of %d! is:%d",n,fact); getch();}

Page 113: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the Number:3

The value of 3! is: 6

Page 114: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Nested for loop

Syntaxfor (initi; cond; Inc/Dec)

{

for (initi; cond; Inc/Dec){

Body of the loop

}

}

Page 115: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

CASE structure

Case 1

Case 2

Defaultcase

Switch

Page 116: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

CASE structureSyntaxswitch (expression){case constant 1:

block1;break;

case constant 2:block2;break;..

default :default block;break;

}

Page 117: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example#include<stdio.h>#include<conio.h>void main(){ int i,n; printf("\nEnter the Number:"); scanf("%d",&n);

switch(n) {

case 1:{printf("\n Its in case 1");break;}

Page 118: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

case 2:{printf("\n Its in case 2");break;}

default:{printf("\n Its in default");break;}

} getch();}

Page 119: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the Number:2

Its in case 2

Page 120: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

break Statement

• It is used to terminate the loop

• When a break statement is encountered inside a loop, then the loop is terminated.

Page 121: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Loops with break Statement

while(cond)

{

…………

if(cond)

break;

…………

}

Page 122: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

do

{

…………

if(cond)

break;

…………

} while(cond);

Page 123: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

for (initi; condt; Inc/Dec)

{

…………

if(cond)

break;

…………

}

Page 124: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Continue Statement

• When a continue statement is encountered inside a loop, the control is transferred to the beginning.

Page 125: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Loops with continue Statement

while(cond)

{

…………

if(cond)

continue;

…………

}

Page 126: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

do

{

…………

if(cond)

continue;

…………

} while(cond);

Page 127: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

for (initi; condt; Inc/Dec)

{

…………

if(cond)

continue;

…………

}

Page 128: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

goto Statement

• When a goto statement is encountered inside a loop, the control is transferred to the beginning.

Page 129: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Syntax for goto Statement

label:

…………

…………

…………

goto label;

…………

Page 130: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

goto label;

…………

…………

…………

label:

…………

Page 131: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

getchar() Example

#include<stdio.h>

#include<conio.h>

#include<ctype.h>

void main()

{

char x;

printf("enter the character:");

x=getchar();

Page 132: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

if(islower(x))

putchar(toupper(x));

else

putchar(tolower(x));

getch();

}

Output:

enter the character:ABC

a

Page 133: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

getche() Example

#include <stdio.h>

#include <conio.h>

void main()

{

char c ;

clrscr();

printf("\nInput a string:");

c = getche();

Page 134: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

printf("\nstring is:");

putch(c);

getch();

}

Output:

Input a string:k

string is:k

Page 135: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Getch() Example

#include <stdio.h>

#include <conio.h>

void main()

{

char c;

clrscr();

printf("\nInput a string:");

c = getch();

Page 136: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

printf("\nstring is:");

putch(c);

getch();

}

Output:

Input a string:

string is:h

Page 137: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

getc Example

#include<stdio.h>

#include<conio.h>

#include<ctype.h>

void main()

{

char x;

printf("enter the character:");

x=getc(stdin);

Page 138: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

if(islower(x))

putc(toupper(x),stdout);

else

putc(tolower(x),stdout);

getch();

}

Output:

enter the character:abc

A

Page 139: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

gets() Example

#include <stdio.h>

#include<conio.h>

void main()

{

char c[80];

clrscr();

printf("Input a string:");

gets(c);

Page 140: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

printf("The string is:");

puts(c);

getch();

}

Output:

Input a string:qwerty

The string is:qwerty

Page 141: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Example #include<stdio.h> #include<conio.h> void main() {

int a,b,c,n;clrscr();printf("\nEnter the value of a,b:");scanf("%d%d",&a,&b);printf("\nMENU");printf("\n1.ADD\n2.SUB\n3.MULTIPLY\n0.EXIT");printf("\nEnter the choice:");scanf("%d",&n);

Page 142: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

switch(n){ case 1:

c=a+b;printf("\nThe result of Addition is:%d",c);break;

case 2:c=a-b;printf("\nThe result of Subtraction is:

%d",c);break;

Page 143: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

case 3:c=a*b;printf("\nThe result of Multiplication is:%d",c);break;

case 0:exit(0);break;

}getch();

}

Page 144: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the value of a,b:56MENU1.ADD2.SUB3.MULTIPLY0.EXITEnter the choice:1The result of Addition is:11

Page 145: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Finding Armstrong No#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n,a; printf("\nEnter the number:"); scanf("%d",&n); a=n;

while(n>0){

r=n%10;sum=sum+r*r*r;n=n/10;

}

Page 146: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

if(a==sum){ printf("\nIt is an armstrong number");}else{ printf("\nIt is not an armstrong number");}

getch();}

Page 147: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the number:153

It is an armstrong number

Page 148: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Sum of the Digits

#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n; printf("\nEnter the no:"); scanf("%d",&n); while(n>0) { r=n%10;

Page 149: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

sum=sum+r;

n=n/10;

}

printf("sum of the digits is:%d",sum);

}

Page 150: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the no:156

sum of the digits is:12

Page 151: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Reverse of a number

#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n; printf("\nEnter the no:"); scanf("%d",&n); while(n>0)

Page 152: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

{

r=n%10;

sum=sum*10+r;

n=n/10;

}

printf("Reverse of the number is:%d",sum);

getch();

}

Page 153: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the no:567

Reverse of the number is:765

Page 154: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Fibonacci Series

#include<stdio.h>

#include<conio.h>

void main()

{

int f=0,f1=-1,f2=1,n,i;

printf("\nEnter the number:");

scanf("%d",&n);

Page 155: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

while(f<n){ f=f1+f2;

f1=f2; f2=f;

printf("\t%d",f);}

getch();}

Page 156: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the number:5

0 1 1 2 3 5

Page 157: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Swapping #include<stdio.h>#include <conio.h>void main ( ){int a,b,c;clrscr( );printf(" \nEnter the value of a:");scanf("%d",&a);printf(" \nEnter the value of b:");scanf("%d",&b);c=a;a=b;b=c;

Page 158: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

printf(" \nThe value of a is:%d",a);printf(" \nThe value of b is:%d",b);getch( );}

Output:Enter the value of a:5Enter the value of b:4

The value of a is:4The value of b is:5

Page 159: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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);

Page 160: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

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:5Enter the value of b:6

The value of a is:6The value of b is:5

Page 161: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Quadratic Equation#include<stdio.h>#include <conio.h>#include<math.h>void main ( ){int a,b,c,d,r1,r2;clrscr( );printf(" \nEnter the value of a:");scanf("%d",&a);printf(" \nEnter the value of b:");scanf("%d",&b);printf(" \nEnter the value of c:");scanf("%d",&c);d=b*b-4*a*c;

Page 162: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

if(d>=0){

r1=(-b+sqrt(d))/(2*a);r2=(-b-sqrt(d))/(2*a);

printf(" \nThe roots are %d,%d",r1,r2);}else{ printf(" \nThe roots are imaginary");}getch( );}

Page 163: INTRODUCTION TO C. C was developed by Dennis Ritchie at Bell laboratory in 1972 It is an upgrade version of languages B and BCPL

Output

Enter the value of a:4

Enter the value of b:5

Enter the value of c:6

The roots are imaginary