Psuc Unit Ii
Psuc Unit Ii
UNIT - II
Topics of Unit-2:
Digits: 0123456789
Special Characters:
’ " ( ) * + - / : = ! & $ ; < > % ? , . ˆ# @ ˜‘ { } [ ] \ |
y2x5__fg7h Legal
#include<stdio.h>
void main()
{
float area,radius=3.0;
const float pi=3.14;
area=pi*radius*radius;
printf(“area of a circle= %f”,
area);
}
Single character constants
A single character constants are enclosed in single quotes.
Example: ‘1’ ‘X’ ‘%’ ‘ ‘
Character constants have integer values called ASCII values.
char ch=‘A’;
printf(“%d”,ch); Output: 65
similarly printf(“%c”,65) Output: A
string Constants
String is a collection of characters or sequence of
characters enclosed in double quotes.
The characters may be letters, numbers, special
characters and blank space.
Example: “snist” “2011” “A” “ “.
Backslash \escape characters
constant meaning
‘\a’ Alert(bell)
‘\b’ Back space
‘\f’ Form feed
Backslash characters are ‘\n’ New line
used in output functions.
‘\r’ Carriage return
These backslash
characters are preceded ‘\v’ Vertical tab
with the \ symbol. ‘\t’ Horizontal tab
‘\’’ Single quote
‘\”’ Double quotes
‘\?’ Question mark
‘\\’ Backslash
‘\0’ null
Numeric Constants
integer constant: It is a sequence of digits that consists
numbers from
0 to 9.
Example: 23 -678 0 +78
Rules:
1. integer constant have at least one digit.
2. No decimal points.
3. No commas or blanks are allowed.
4. The allowable range for integer constant is -32768 to
32767.
To store the larger integer constants on 16 bit machine use
the qualifiers such as U,L,UL.
Mantissa e
exponent
A number is written as the combination of the mantissa,
which is followed by the prefix e or E, and the exponent.
Example:
87000000 = 8.7e7
- 550 = -5.5e2
0.00000000031 = 3.1e-10.
Examples of real constants
Type Representation Value
double 0. 0.0
double 0.0 .0
Defined constants:
By using the preprocessor command you can create a
constant.
Example: #define pi 3.14
Memory constants:
Memory constants use a C type qualifier, const, to
indicate that the data can not be changed.
Its format is: const type identifier = value;
Example: const float PI = 3.14159;
Key Words
C word is classified as either keywords or identifiers.
Operators: =, Operands: x, y,
+ z
Unary operators are used on a single operand (- -, +, ++, -
-)
Binary operators are used to apply in between two
operands
(+, -, /,*, %)
Conditional (or ternary) operator can be applied on three
Types of Operators
C operators can be classified into a number of
categories.
They include:
Arithmetic Operators
Relational Operators
Logical Operators
Assignment Operator
Increment and Decrement Operators
Conditional Operators
Bitwise Operators
Special Operators
Arithmetic Operators
C Operation Binary C
Operator Expressio
n
Addition + a+b
Subtraction - a-b
Multiplication * a*b
Division(second operand must be / a/b
nonzero)
Modulus (Remainder both operands % a%b
must Syntax:
be integer operand1
and second operand
arithmetic_operator
must be non zero)
operand2
Examples:
10 + 10 = 20 (addition on integer numbers)
10.0 + 10.0= 20.0 (addition on real numbers)
10 + 10.0 = 20.0 (mixed mode)
14 / 3 = 4 (ignores fractional part)
Relational Operators
Relational operators are used to compare the relationship
between two operands.
Syntax: exp1 relational_operator exp2
The value of a relational expression is either one or zero.
It is one if the specified relation is true and zero if the
relation is false.
Relational operators are used by if , while and for
statements.
C operation Relationa C
l expression
Operator
greater than > x >y
less than < x<y
greater than or equal >= x >= y
to
less than or equal to <= x <= y
Equality == x == y
Logical Operators
Logical operators used to test more than one condition and
make decision. Yields a value either one or zero.
Syntax: operand1 logical_operator operand2
or
logical_operator operand
Example: (x<y) && (x= = 8)
Operator Meaning
&& Logical AND (true only if both the operands
are true)
|| Logical OR (true if either one operand is true)
! Logical NOT (negate the operand)
A B A && B A || B
A !A
0 0 0 0
0 1 0 1 0 1
1 0 0 1 1 0
1 1 1 1
Assignment Operators
Assignment operators are used to assign the result of an
expression to a variable.
Assignment Operator is =
Syntax: variable = expression;
Types of assignment:
– Single Assignment Ex: a = 10;
– Multiple Assignment Ex: a=b=c=0;
– Compound Assignment Ex: c = a + b;
Example: a=1;
b=2;
x = (a<b)?a:b;
This is like
if(a<b)
x=a;
else
Bitwise Operators
C has a special operator known as Bitwise operator for
manipulation of data at bit level.
Bitwise operator may not be applied for float and double.
Manipulates the data which is in binary form.
Syntax: operand1 bitwise_operator operand2
Bitwise Meaning
Operators
& Bitwise AND
| Bitwise OR
^ Exclusive OR
<< Shift left
>> Shift right
~ One’s compliment
A B A&B A|B A^B
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
Examples:
& Bitwise AND 0110 & 0011 0010
| Bitwise OR 0110 | 0011 0111
^ Bitwise XOR 0110 ^ 0011 0101
<< Left shift 01101110 << 2 10111000
>> Right shift 01101110 >> 3 00001101
~ One's complement ~0011 1100
sizeof Operator :
It is a unary operator (operates on a single value).
Produces a result that represent the size in bytes.
Syntax: sizeof(datatype);
Example: int a = 5;
sizeof (a); //produces 2
sizeof(char); // produces 1
sizeof(int); // produces 2
Precedence and Association rules among
operators
Precedence is used to determine the order in which
different operators in a complex expression are evaluated.
Expression Categories
An expression is a sequence of operands and operators
that reduces to a single value.
Example: a++; a- -;
expressi
on
#include<stdio.h>
void main()
{
a=10;
x=a++;
printf(“x=%d, a=%d”, x,
a);
}
Output:
x=10, a=11
Pre fix expression:
It is an expression which contains operator followed by an
operand.
Example: ++a; - -a;
The operand of a prefix expression must be a variable.
(++a) has the same effect as (a = a + 1)
Prefix Expression
Result of prefix ++a
Example on pre fix expression
#include<stdio.h>
void main()
{
a=10;
x=++a;
printf(“x=%d, a=%d”,x,a);
}
Output:
x=11, a=11
Unary expression: It is an expression which consists of unary
operator followed by the operand
Binary Expressions
Example for Binary Expressions
Example for Binary Expressions
(continued)
Example for Binary Expressions
(continued)
The left operand in an assignment expression must be a
single variable.
Example: int x;
x=(int)7.5;
Conversion Rank (C Promotion Rules)
Example program for Implicit Type Conversion
Example program for Implicit Type Conversion (contd…)
Example program for Implicit Type Conversion (contd…)
Example program for Explicit Casts
Example program for Explicit Casts (contd…)
Example program for Explicit Casts (contd…)
Stateme
A statement causes an action to be performed by the
nts
program.
Compound Statement
Decision Control Structures
The decision is described to the computer as a conditional
statement that can be answered either true or false.
Nested if…else means within the if…else you can include another if…else
either in
if block or else block.
Nested if…else Statements
Decision Control Statement: nested if…else
Decision Control Statement: nested if…else
Decision Control Statement: else if
if (condition1)
statements1;
else if (condition2)
statements2;
else if (condition3)
statements3;
else if (condition4)
statements4;
……
else if(condition n)
statements n;
else
default_statement;
statement x;
The conditions are evaluated from the top to down.
As soon as a true condition is found the statement associated with it is
executed
and the control is transferred to the statement x by skipping the rest of
the ladder.
When all n conditions become false, final else containing default_statement
main() { Example program for nested if…else
float m1,m2,m3,m4;
float perc;
printf(“Enter marks\n”);
scanf(“%f%f%f%f”,&m1,&m2,&m3,&m4);
perc=(m1+m2+m3+m4)/4;
if(perc>=75)
printf(“\nDistinction”);
else {
if(per<75 && per>=60)
printf(“\nFirst Class”);
else {
if(per<60 && per>=50)
printf(“\nSecond Class”);
else {
if(per<50 && per>=40)
printf(“\nThird Class”);
else
printf(“\nFail”);
}//else
}//else
}//else
}//main
Example program for else if
main()
{
float m1,m2,m3,m4;
float perc;
printf(“enter marks\n”);
scanf(“%f%f%f%f”,&m1,&m2,&m3,&m4);
perc=(m1+m2+m3+m4)/4;
if(perc>=75)
printf(“\nDistinction”);
else if(per<75 && per>=60)
printf(“\nFirst Class”);
else if(per<60 && per>=50)
printf(“\nSecond Class”);
else if(per<50 && per>=40)
printf(“\nThird Class”);
else
printf(“\nFail”);
}//main
Dangling else
else is always paired with the most recent unpaired if.
Dangling else
Dangling else (contd…)
To avoid dangling else problem place the inner if
statement with in the curly braces.
Conditional Expression
Decision Control Statement: switch
It is a multi-way conditional statement generalizing the if…else
statement.
A case label cannot appear more than once and there can only
be one
default expression.
Decision Control Statement: switch
Note: switch statement does not allow less than ( < ),
greater than ( > ).
ONLY the equality operator (==) is used with a switch
statement.
The control variable must be integral (int or char) only.
When the switch statement is encountered, the control
variable is evaluated.
Then, if that evaluated value is equal to any of the values
specified in a case clause, the statements immediately
following the colon (“:”) begin to run.
Default case is optional and if specified, default
statements will be executed, if there is no match for the
case labels.
Once the program flow enters a case label, the
statements associated with case have been executed,
the program flow continues with the statement for the
Decision Control Statement: switch
General format of
switch:
Decision Control Statement: switch
Example1 for switch
statement:
Decision Control Statement: switch
Post-test Loop
In each iteration, the loop action(s) are executed. Then
the control expression is tested. If it is true, a new
iteration is started; otherwise, the loop terminates.
Pretest and Post-test Loops
Minimum Number of Iterations in Two Loops
In
Initialization and Updating
addition to the loop control expression, two other
processes,
initialization and updating, are associated with almost all
loops.
Loop Initialization
Loop Update
#include<stdio.h>
void main()
{
int i=1;
while (i<=10)
{
printf(“%d\n”,i);
i++;
}
}
Example 2: To print the reverse of the given number.
#include<stdio.h>
void main()
{
int n, rem,p, rev = 0;
printf("\n Enter a positive number: ");
scanf("%d",&n);
p = n;
while(n != 0)
{
rem = n%10;
rev = rev*10+rem;
n = n/10;
#include<stdio.h>
void main()
{
int a=0,b=1,c,i;
i=1;
printf("%d %d",a,b);
do
{
c=a+b;
i++;
printf("%3d",c);
a=b;
b=c;
}while(i<10);
}
Example 4: To print multiplication table for 5.
#include <stdio.h>
void main()
{
int i = 1, n=5;
do
{
printf(“ %d * %d = %d “, n, i, n*i);
i = i + 1;
} while ( i<= 5);
}
//Program to print 5 4 3 2 1 using while and do…while
Pre- and Post-test Loops
for
A for loop is used when a loop is to be executed a known
number
of times.
We can do the same thing with a while loop, but the for loop
is
easier to read and more natural for counting loops.
Option 1:
for (k= 1; k< = 10 ;)
{
printf(“%d”, k);
k = k + 1;
}
Here the increment is done within the body of the for loop
and not in
the for statement. Note that the semicolon after the
condition is
necessary.
Option 2:
int k = 1;
for (; k< = 10; k++)
{
printf(“, k);
}
Here the initialization is done in the declaration statement
itself, but
Option 3: The infinite loop
One of the most interesting uses of the for loop is the creation of the
infinite loop. Since none of the three expressions that form the for loop
are required, it is possible to make an endless loop by leaving the
conditional expression empty.
For example: for (; ;)
printf(“The loop will run forever\n”);
Program control then picks up the code following the loop, as shown
here:
for (; ;)
{
ch = getchar( ); /* get a character */
if (ch = = ‘A’)
break ;
}
printf (“you typed an A”);
This loop will run until A is typed at the keyboard.
Option 3: For loop with no body
When loop are nested break only exit from the inner loop
containing it.
#include<stdio.h>
void main()
{
int i;
i=1;
while(i<=10)
{
if(i==8)
break;
printf(“%d\t”,i);
i=i+1;
}
printf(“\n Thanking You”);
}
continue
When a continue statement is enclosed inside a block or loop,
the loop is
to be continued with the next iteration.
#include<stdio.h>
void main()
{
int i;
for(i=1;i<=5;i++)
{
if(i = = 3)
continue;
printf(" %d",i);
}
}
goto statement
• It is also an unconditional statement which allows us
to transfer control of the program to the
specified label.
Syntax:
goto label;
... .. ...
... .. ...
label:
statement;
#include <stdio.h>
int main() Output:
{ 000
int i, j, k;
for(i=0;i<10;i++) { 001
for(j=0;j<5;j++) { 002
for(k=0;k<3;k++) { 010
printf("%d %d %d\n",i,j,k); 011
if(j == 3)
{ goto out; } 012
} 020
} 021
} 022
out:
printf("came out of the loop"); 030
} came out of the
loop