0% found this document useful (0 votes)
6 views

C Language

C is a general-purpose high-level programming language developed by Dennis Ritchie for the Unix operating system in 1972, known for its efficiency and ease of learning. It has a structured approach and is widely used for system programming, including operating systems and compilers. The document covers the history, basic structure, compilation process, tokens, keywords, identifiers, constants, variables, and operators in C programming.

Uploaded by

jhamatdamini
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

C Language

C is a general-purpose high-level programming language developed by Dennis Ritchie for the Unix operating system in 1972, known for its efficiency and ease of learning. It has a structured approach and is widely used for system programming, including operating systems and compilers. The document covers the history, basic structure, compilation process, tokens, keywords, identifiers, constants, variables, and operators in C programming.

Uploaded by

jhamatdamini
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

INTRODUCTION TO C LANGUAGE

C is a general-purpose high level language that was originally developed by Dennis Ritchie for
the Unix operating system. It was first implemented on the Digital Eqquipment Corporation
PDP-11 computer in 1972.

The Unix operating system and virtually all Unix applications are written in the C language. C
has now become a widely used professional language for various reasons.
• Easy to learn
• Structured language
• It produces efficient programs.
• It can handle low-level activities.
• It can be compiled on a variety of computers.
Facts about C
• C was invented to write an operating system called UNIX.
• C is a successor of B language which was introduced around 1970
• The language was formalized in 1988 by the American National Standard Institue
(ANSI).
• By 1973 UNIX OS almost totally written in C.
• Today C is the most widely used System Programming Language.
• Most of the state of the art software have been implemented using C
Why to use C?
C was initially used for system development work, in particular the programs that make-up the
operating system. C was adoped as a system development language because it produces code that
runs nearly as fast as code written in assembly language. Some examples of the use of C might
be:
• Operating Systems
• Language Compilers
• Assemblers
• Text Editors
• Print Spoolers
• Network Drivers
• Modern Programs
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
• Data Bases
• Language Interpreters
• Utilities
C Program File

All the C programs are writen into text files with extension ".c" for example hello.c. You can use
"vi" editor to write your C program into a file.

HISTORY TO C LANGUAGE
C is a general-purpose language which has been closely associated with the UNIX operating
system for which it was developed - since the system and most of the programs that run it are
written in C.
Many of the important ideas of C stem from the language BCPL, developed by Martin Richards.
The influence of BCPL on C proceeded indirectly through the language B, which was written by
Ken Thompson in 1970 at Bell Labs, for the first UNIX system on a DEC PDP-
7. BCPL and B are "type less" languages whereas C provides a variety of data types.
In 1972 Dennis Ritchie at Bell Labs writes C and in 1978 the publication of The C Programming
Language by Kernighan & Ritchie caused a revolution in the computing world.
In 1983, the American National Standards Institute (ANSI) established a committee to provide a
modern, comprehensive definition of C. The resulting definition, the ANSI standard, or "ANSI
C", was completed late 1988.
BASIC STRUCTURE OF C PROGRAMMING

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
1. 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.
2. Link section: The link section provides instructions to the compiler to link functions
from the system library such as using the #include directive.
3. Definition section: The definition section defines all symbolic constants such using
the #define directive.
4. Global declaration section: There are some variables that are used in more than one
function. Such variables are called global variables and are declared in the global
declaration section that is outside of all the functions. This section also declares all
the user-defined functions.
5. main () function section: Every C program must have one main function section. This
section contains two parts; declaration part and executable part
1. Declaration part: The declaration part declares all the variables used in the
executable part.
2. Executable part: There is at least one statement in the executable part. These two
parts must appear between the opening 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 part end with a semicolon.
6. Subprogram section: If the program is a multi-function program then the subprogram
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.

PROCESS OF COMPILING AND RUNNING C PROGRAM


We will briefly highlight key features of the C Compilation model here.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
The C Compilation Model
The Preprocessor
The Preprocessor accepts source code as input and is responsible for
• removing comments
• Interpreting special preprocessor directives denoted by #.
For example
• #include -- includes contents of a named file. Files usually called header files. e.g
o #include <math.h> -- standard library maths file.
o #include <stdio.h> -- standard library I/O file
• #define -- defines a symbolic name or constant. Macro substitution.
o #define MAX_ARRAY_SIZE 100
C Compiler
The C compiler translates source to assembly code. The source code is received from the
preprocessor.
Assembler
The assembler creates object code. On a UNIX system you may see files with a .o suffix
(.OBJ on MSDOS) to indicate object code files.
Link Editor
If a source file references library functions or functions defined in other source files the link
editor combines these functions (with main()) to create an executable file.
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
C TOKENS
C tokens are the basic buildings blocks in C language which are constructed together to write a C
program.
Each and every smallest individual unit in a C program is known as C tokens.
C tokens are of six types. They are
Keywords (eg: int, while),
Identifiers (eg: main, total),
Constants (eg: 10, 20),
Strings (eg: ―total‖, ―hello‖),
Special symbols (eg: (), {}),
Operators (eg: +, /,-,*)

C KEYWORDS
C keywords are the words that convey a special meaning to the c compiler. The keywords
cannot be used as variable names.
The list of C keywords is given below:

auto break case char const

continue default do double else

enum extern float for goto

if int long register return

short signed sizeof static struct

switch typedef union unsigned void

volatile while

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
C IDENTIFIERS
Identifiers are used as the general terminology for the names of variables, functions and arrays.
These are user defined names consisting of arbitrarily long sequence of letters and digits with
either a letter or the underscore(_) as a first character.
There are certain rules that should be followed while naming c identifiers:
They must begin with a letter or underscore (_).
They must consist of only letters, digits, or underscore. No other special character is allowed.
It should not be a keyword.
It must not contain white space.
It should be up to 31 characters long as only first 31 characters are significant.
Some examples of c identifiers:
Name Remark
_A9 Valid
Temp.var Invalid as it contains special character other than the underscore
void Invalid as it is a keyword

C CONSTANTS
A C constant refers to the data items that do not change their value during the program
execution. Several types of C constants that are allowed in C are:
Integer Constants
Integer constants are whole numbers without any fractional part. It must have at least one digit
and may contain either + or – sign. A number with no sign is assumed to be positive.
There are three types of integer constants:
Decimal Integer Constants
Integer constants consisting of a set of digits, 0 through 9, preceded by an optional – or + sign.
Example of valid decimal integer constants
341, -341, 0, 8972
Octal Integer Constants
Integer constants consisting of sequence of digits from the set 0 through 7 starting with 0 is said
to be octal integer constants.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Example of valid octal integer constants
010, 0424, 0, 0540
Hexadecimal Integer Constants
Hexadecimal integer constants are integer constants having sequence of digits preceded by 0x or
0X. They may also include alphabets from A to F representing numbers 10 to 15.
Example of valid hexadecimal integer constants
0xD, 0X8d, 0X, 0xbD
It should be noted that, octal and hexadecimal integer constants are rarely used in programming.
Real Constants
The numbers having fractional parts are called real or floating point constants. These may be
represented in one of the two forms called fractional form or the exponent form and may also
have either + or – sign preceding it.
Example of valid real constants in fractional form or decimal notation
0.05, -0.905, 562.05, 0.015
Representing a real constant in exponent form
The general format in which a real number may be represented in exponential or scientific form
is
mantissa e exponent
The mantissa must be either an integer or a real number expressed in decimal notation.
The letter e separating the mantissa and the exponent can also be written in uppercase i.e. E
And, the exponent must be an integer.
Examples of valid real constants in exponent form are:
252E85, 0.15E-10, -3e+8
Character Constants
A character constant contains one single character enclosed within single quotes.
Examples of valid character constants
‗a‘ , ‗Z‘, ‗5‘
It should be noted that character constants have numerical values known as ASCII values, for
example, the value of ‗A‘ is 65 which is its ASCII value.
Escape Characters/ Escape Sequences

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
C allows us to have certain non graphic characters in character constants. Non graphic characters
are those characters that cannot be typed directly from keyboard, for example, tabs, carriage
return, etc.
These non graphic characters can be represented by using escape sequences represented by a
backslash() followed by one or more characters.
NOTE: An escape sequence consumes only one byte of space as it represents a single character.
Escape Sequence Description
a Audible alert(bell)
b Backspace
f Form feed
n New line
r Carriage return
t Horizontal tab
v Vertical tab
\ Backslash
― Double quotation mark
‗ Single quotation mark
? Question mark
Null

STRING CONSTANTS
String constants are sequence of characters enclosed within double quotes. For example,
―hello‖
―abc‖
―hello911‖
Every sting constant is automatically terminated with a special character „‟ called thenull
character which represents the end of the string.
For example, ―hello‖ will represent ―hello‖ in the memory.
Thus, the size of the string is the total number of characters plus one for the null character.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Special Symbols
The following special symbols are used in C having some special meaning and thus, cannot be
used for some other purpose.
[] () {} , ; : * … = #
Braces{}: These opening and ending curly braces marks the start and end of a block of code
containing more than one executable statement.
Parentheses(): These special symbols are used to indicate function calls and function
parameters.
Brackets[]: Opening and closing brackets are used as array element reference. These indicate
single and multidimensional subscripts.

VARIABLES

A variable is nothing but a name given to a storage area that our programs can manipulate. Each
variable in C has a specific type, which determines the size and layout of the variable's memory;
the range of values that can be stored within that memory; and the set of operations that can be
applied to the variable.

The name of a variable can be composed of letters, digits, and the underscore character. It must
begin with either a letter or an underscore. Upper and lowercase letters are distinct because C is
case-sensitive. Based on the basic types explained in the previous chapter, there will be the
following basic variable types −

Type Description

char Typically a single octet(one byte). This is an integer type.

int The most natural size of integer for the machine.

float A single-precision floating point value.

double A double-precision floating point value.

void Represents the absence of type.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
C programming language also allows defining various other types of variables like
Enumeration, Pointer, Array, Structure, Union, etc.

Variable Definition in C
A variable definition tells the compiler where and how much storage to create for the variable.
A variable definition specifies a data type and contains a list of one or more variables of that
type as follows −

type variable_list;
Here, type must be a valid C data type including char, w_char, int, float, double, bool, or any
user-defined object; and variable_list may consist of one or more identifier names separated by
commas. Some valid declarations are shown here −

int i, j, k;
char c, ch;
float f, salary;
double d;
The line int i, j, k; declares and defines the variables i, j, and k; which instruct the compiler to
create variables named i, j and k of type int.

Variables can be initialized (assigned an initial value) in their declaration. The initializer
consists of an equal sign followed by a constant expression as follows −

type variable_name = value;


Some examples are −

extern int d = 3, f = 5; // declaration of d and f.


int d = 3, f = 5; // definition and initializing d and f.
byte z = 22; // definition and initializes z.
char x = 'x'; // the variable x has the value 'x'.
For definition without an initializer: variables with static storage duration are implicitly
initialized with NULL (all bytes have the value 0); the initial value of all other variables are
undefined.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Variable Declaration in C
A variable declaration provides assurance to the compiler that there exists a variable with the
given type and name so that the compiler can proceed for further compilation without requiring
the complete detail about the variable. A variable definition has its meaning at the time of
compilation only; the compiler needs actual variable definition at the time of linking the
program. A variable declaration is useful when multiple files are used.

OPERATORS AND EXPRESSIONS


C language offers many types of operators. They are,
1. Arithmetic operators
2. Assignment operators
3. Relational operators
4. Logical operators
5. Bit wise operators
6. Conditional operators (ternary operators)
7. Increment/decrement operators
8. Special operators

S.no Types of Operators Description

These are used to perform mathematical calculations


like addition, subtraction, multiplication, division
1 Arithmetic_operators and modulus

These are used to assign the values for the variables


2 Assignment_operators in C programs.

These operators are used to compare the value of two


3 Relational operators variables.

4 Logical operators
These operators are used to perform logical

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
operations on the given two variables.

These operators are used to perform bit operations on


5 Bit wise operators given two variables.

Conditional (ternary) Conditional operators return one value if condition is


6 operators true and returns another value is condition is false.

Increment/decrement These operators are used to either increase or


7 operators decrease the value of the variable by one.

8 Special operators &, *, sizeof( ) and ternary operators.

ARITHMETIC OPERATORS IN C
C Arithmetic operators are used to perform mathematical calculations like addition,
subtraction, multiplication, division and modulus in C programs.

Arithmetic
S.no Operators Operation Example

1 + Addition A+B

2 – Subtraction A-B

3 * multiplication A*B

4 / Division A/B

5 % Modulus A%B

EXAMPLE PROGRAM FOR C ARITHMETIC OPERATORS


In this example program, two values ―40‖ and ―20‖ are used to perform arithmetic operations
such as addition, subtraction, multiplication, division, modulus and output is displayed for each
operation.
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
#include <stdio.h>

int main()

int a=40,b=20, add,sub,mul,div,mod;

add = a+b;

sub = a-b;

mul = a*b;

div = a/b;

mod = a%b;

printf("Addition of a, b is : %d\n", add);

printf("Subtraction of a, b is : %d\n", sub);

printf("Multiplication of a, b is : %d\n", mul);

printf("Division of a, b is : %d\n", div);

printf("Modulus of a, b is : %d\n", mod);

OUTPUT:

Addition of a, b is : 60
Subtraction of a, b is : 20
Multiplication of a, b is : 800
Division of a, b is : 2
Modulus of a, b is : 0

ASSIGNMENT OPERATORS IN C
In C programs, values for the variables are assigned using assignment operators.
For example, if the value ―10‖ is to be assigned for the variable ―sum‖, it can be assigned as
―sum = 10;‖

Other assignment operators in C language are given below.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Operators Example Explanation

Simple
assignment 10 is assigned
operator = sum = 10 to variable sum

sum += This is same as


+= 10 sum = sum + 10

This is same as
-= sum -= 10 sum = sum – 10

sum *= This is same as


*= 10 sum = sum * 10

This is same as
/+ sum /= 10 sum = sum / 10

This is same as
sum %= sum = sum %
%= 10 10

This is same as
sum = sum &
&= sum&=10 10
Compound
assignment sum ^= This is same as
operators ^= 10 sum = sum ^ 10

EXAMPLE PROGRAM FOR C ASSIGNMENT OPERATORS:


In this program, values from 0 – 9 are summed up and total ―45‖ is displayed as output.
Assignment operators such as ―=‖ and ―+=‖ are used in this program to assign the values and to
sum up the values.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
# include <stdio.h>

int main()

int Total=0,i;

for(i=0;i<10;i++)

Total+=i; // This is same as Total = Toatal+i

printf("Total = %d", Total);

OUTPUT:

Total = 45

RELATIONAL OPERATORS IN C
Relational operators are used to find the relation between two variables. i.e. to compare the
values of two variables in a C program.

S.no Operators Example Description

x is greater than
1 > x>y y

2 < x<y x is less than y

x is greater than
3 >= x >= y or equal to y

x is less than or
4 <= x <= y equal to y

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
5 == x == y x is equal to y

x is not equal to
6 != x != y y

EXAMPLE PROGRAM FOR RELATIONAL OPERATORS IN C


In this program, relational operator (==) is used to compare 2 values whether they are equal
are not.
If both values are equal, output is displayed as ‖ values are equal‖. Else, output is displayed
as ―values are not equal‖.
Note: double equal sign (==) should be used to compare 2 values. We should not single
equal sign (=).
#include <stdio.h>

int main()

int m=40,n=20;

if (m == n)

printf("m and n are equal");

else

printf("m and n are not equal");

OUTPUT:

m and n are not equal

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
LOGICAL OPERATORS IN C
These operators are used to perform logical operations on the given expressions.
There are 3 logical operators in C language. They are, logical AND (&&), logical OR (||) and
logical NOT (!).

S.no Operators Name Example Description

It returns true
when both
logical conditions
1 && AND (x>5)&&(y<5) are true

It returns true
when at-least
one of the
logical condition is
2 || OR (x>=10)||(y>=10) true

It reverses the
state of the
operand
―((x>5) &&
(y<5))‖

If ―((x>5)
&& (y<5))‖
is true,
logical NOT
logical operator
3 ! NOT !((x>5)&&(y<5)) makes it false

EXAMPLE PROGRAM FOR LOGICAL OPERATORS IN C:


#include <stdio.h>

int main()

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
int m=40,n=20;

int o=20,p=30;

if (m>n && m !=0)

printf("&& Operator : Both conditions are true\n");

if (o>p || p!=20)

printf("|| Operator : Only one condition is true\n");

if (!(m>n && m !=0))

printf("! Operator : Both conditions are true\n");

else

printf("! Operator : Both conditions are true. " \

"But, status is inverted as false\n");

OUTPUT:

&& Operator : Both conditions are true


|| Operator : Only one condition is true
! Operator : Both conditions are true. But, status is inverted as false

In this program, operators (&&, || and !) are used to perform logical operations on the given
expressions.
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
&& operator – ―if clause‖ becomes true only when both conditions (m>n and m! =0) is true.
Else, it becomes false.
|| Operator – ―if clause‖ becomes true when any one of the condition (o>p || p!=20) is true. It
becomes false when none of the condition is true.
! Operator – It is used to reverses the state of the operand.
If the conditions (m>n && m!=0) is true, true (1) is returned. This value is inverted by ―!‖
operator.
So, ―! (m>n and m! =0)‖ returns false (0).

BIT WISE OPERATORS IN C


These operators are used to perform bit operations. Decimal values are converted into binary
values which are the sequence of bits and bit wise operators work on these bits.
Bit wise operators in C language are & (bitwise AND), | (bitwise OR), ~ (bitwise OR), ^ (XOR),
<< (left shift) and >> (right shift).

TRUTH TABLE FOR BIT WISE OPERATION BIT WISE OPERATORS

x x
& ^
x y x|y y y Operator_symbol Operator_name

0 0 0 0 0 & Bitwise_AND

0 1 1 0 1 | Bitwise OR

1 0 1 0 1 ~ Bitwise_NOT

1 1 1 1 0 ^ XOR

<< Left Shift

>> Right Shift

Consider x=40 and y=80. Binary form of these values are given below.
x = 00101000
y= 01010000

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
All bit wise operations for x and y are given below.
x&y = 00000000 (binary) = 0 (decimal)
x|y = 01111000 (binary) = 120 (decimal)
~x = 11111111111111111111111111 11111111111111111111111111111111010111
.. ..= -41 (decimal)
x^y = 01111000 (binary) = 120 (decimal)
x << 1 = 01010000 (binary) = 80 (decimal)
x >> 1 = 00010100 (binary) = 20 (decimal)

Note:
Bit wise NOT: Value of 40 in binary
is0000000000000000000000000000000000000000000000000010100000000000. So, all 0‘s are
converted into 1‘s in bit wise NOT operation.
Bit wise left shift and right shift : In left shift operation ―x << 1 ―, 1 means that the bits will be
left shifted by one place. If we use it as ―x << 2 ―, then, it means that the bits will be left shifted
by 2 places.

EXAMPLE PROGRAM FOR BIT WISE OPERATORS IN C


In this example program, bit wise operations are performed as shown above and output is
displayed in decimal format.
#include <stdio.h>

int main()

int m = 40,n = 80,AND_opr,OR_opr,XOR_opr,NOT_opr ;

AND_opr = (m&n);

OR_opr = (m|n);

NOT_opr = (~m);

XOR_opr = (m^n);

printf("AND_opr value = %d\n",AND_opr );

printf("OR_opr value = %d\n",OR_opr );

printf("NOT_opr value = %d\n",NOT_opr );

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
printf("XOR_opr value = %d\n",XOR_opr );

printf("left_shift value = %d\n", m << 1);

printf("right_shift value = %d\n", m >> 1);

OUTPUT:

AND_opr value = 0
OR_opr value = 120
NOT_opr value = -41
XOR_opr value = 120
left_shift value = 80
right_shift value = 20

CONDITIONAL OR TERNARY OPERATORS IN C


Conditional operators return one value if condition is true and returns another value is condition
is false.
This operator is also called as ternary operator.
Syntax : (Condition? true_value: false_value);

Example : (A > 100 ? 0 : 1);

In above example, if A is greater than 100, 0 is returned else 1 is returned. This is equal to if else
conditional statements.

EXAMPLE PROGRAM FOR CONDITIONAL/TERNARY OPERATORS IN C


#include <stdio.h>

int main()

int x=1, y ;

y = ( x ==1 ? 2 : 0 ) ;

printf("x value is %d\n", x);

printf("y value is %d", y);

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
}

OUTPUT:

x value is 1
y value is 2

C – Increment/decrement Operators
PREVNEXT
Increment operators are used to increase the value of the variable by one and decrement
operators are used to decrease the value of the variable by one in C programs.
Syntax:
Increment operator: ++var_name ;( or) var_name++;
Decrement operator: – -var_name; (or) var_name – -;

Example:
Increment operator : ++ i ; i ++ ;
Decrement operator : – – i ; i – – ;
EXAMPLE PROGRAM FOR INCREMENT OPERATORS IN C
In this program, value of ―i‖ is incremented one by one from 1 up to 9 using ―i++‖ operator and
output is displayed as ―1 2 3 4 5 6 7 8 9‖.
//Example for increment operators

#include <stdio.h>

int main()

int i=1;

while(i<10)

printf("%d ",i);

i++;

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
OUTPUT:
123456789

EXAMPLE PROGRAM FOR DECREMENT OPERATORS IN C


In this program, value of ―I‖ is decremented one by one from 20 up to 11 using ―i–‖ operator and
output is displayed as ―20 19 18 17 16 15 14 13 12 11‖.

//Example for decrement operators

#include <stdio.h>

int main()

int i=20;

while(i>10)

printf("%d ",i);

i--;

OUTPUT:
20 19 18 17 16 15 14 13 12 11

DIFFERENCE BETWEEN PRE/POST INCREMENT & DECREMENT OPERATORS


IN C
Below table will explain the difference between pre/post increment and decrement operators in
C.
S.no Operator type Operator Description

1 Pre increment
++i Value of i is

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
incremented before
assigning it to variable
i.

Value of i is
incremented after
i++ assigning it to variable
2 Post–increment i.

Value of i is
decremented before
— –i assigning it to variable
3 Pre decrement i.

Value of i is
decremented after
i– — assigning it to variable
4 Post_decrement i.

EXAMPLE PROGRAM FOR PRE – INCREMENT OPERATORS IN C


//Example for increment operators

#include <stdio.h>

int main()

int i=0;

while(++i < 5 )

printf("%d ",i);

return 0;

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
OUTPUT:
1234

Step 1 : In above program, value of ―i‖ is incremented from 0 to 1 using pre-increment


operator.
Step 2 : This incremented value ―1‖ is compared with 5 in while expression.
Step 3 : Then, this incremented value ―1‖ is assigned to the variable ―i‖.
Above 3 steps are continued until while expression becomes false and output is displayed as
―1 2 3 4‖.

EXAMPLE PROGRAM FOR POST – INCREMENT OPERATORS IN C


#include <stdio.h>

int main()

int i=0;

while(i++ < 5 )

printf("%d ",i);

return 0;

OUTPUT:
12345

Step 1 : In this program, value of i ―0‖ is compared with 5 in while expression.


Step 2 : Then, value of ―i‖ is incremented from 0 to 1 using post-increment operator.
Step 3 : Then, this incremented value ―1‖ is assigned to the variable ―i‖.
Above 3 steps are continued until while expression becomes false and output is displayed as
―1 2 3 4 5‖.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
EXAMPLE PROGRAM FOR PRE – DECREMENT OPERATORS IN C
#include <stdio.h>

int main()

int i=10;

while(--i > 5 )

printf("%d ",i);

return 0;

OUTPUT:
9876

Step 1 : In above program, value of ―i‖ is decremented from 10 to 9 using pre-decrement


operator.
Step 2 : This decremented value ―9‖ is compared with 5 in while expression.
Step 3 : Then, this decremented value ―9‖ is assigned to the variable ―i‖.
Above 3 steps are continued until while expression becomes false and output is displayed as
―9 8 7 6‖.

EXAMPLE PROGRAM FOR POST – DECREMENT OPERATORS IN C:


#include <stdio.h>

int main()

int i=10;

while(i-- > 5 )

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
printf("%d ",i);

return 0;

OUTPUT:
98765

Step 1 : In this program, value of i ―10‖ is compared with 5 in while expression.


Step 2 : Then, value of ―i‖ is decremented from 10 to 9 using post-decrement operator.
Step 3 : Then, this decremented value ―9‖ is assigned to the variable ―i‖.
Above 3 steps are continued until while expression becomes false and output is displayed as
―9 8 7 6 5‖.

SPECIAL OPERATORS IN C:
Below are some of special operators that C language offers.

S.no Operators Description

This is used to get the address


of the variable.

Example : &a will give address


1 & of a.

This is used as pointer to a


variable.

Example : * a where, * is
2 * pointer to the variable a.

This gives the size of the


variable.

Example : size of (char) will


3 Sizeof () give us 1.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
EXAMPLE PROGRAM FOR & AND * OPERATORS IN C
In this program, ―&‖ symbol is used to get the address of the variable and ―*‖ symbol is
used to get the value of the variable that the pointer is pointing to. Please refer C –
pointer topic to know more about pointers.
#include <stdio.h>

int main()

int *ptr, q;

q = 50;

/* address of q is assigned to ptr */

ptr = &q;

/* display q's value using ptr variable */

printf("%d", *ptr);

return 0;

OUTPUT:

50

EXAMPLE PROGRAM FOR SIZEOF() OPERATOR IN C


sizeof() operator is used to find the memory space allocated for each C data types.
#include <stdio.h>

#include <limits.h>

int main()

int a;

char b;

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
float c;

double d;

printf("Storage size for int data type:%d \n",sizeof(a));

printf("Storage size for char data type:%d \n",sizeof(b));

printf("Storage size for float data type:%d \n",sizeof(c));

printf("Storage size for double data type:%d\n",sizeof(d));

return 0;

OUTPUT:

Storage size for int data type:4


Storage size for char data type:1
Storage size for float data type:4
Storage size for double data type:8

EXPRESSIONS
Arithmetic expression in C is a combination of variables, constants and operators written in a
proper syntax. C can easily handle any complex mathematical expressions but these
mathematical expressions have to be written in a proper syntax. Some examples of mathematical
expressions written in proper syntax of C are
Note: C does not have any operator for exponentiation.

C OPERATOR PRECEDENCE AND ASSOCIATIVITY

C operators in order of precedence (highest to lowest). Their associativity indicates in what order
operators of equal precedence in an expression are applied.
Operator Description Associativity
() Parentheses (function call) (see Note 1) left-to-right
[] Brackets (array subscript)
. Member selection via object name
-> Member selection via pointer
++ -- Postfix increment/decrement (see Note 2)

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
++ -- Prefix increment/decrement right-to-left
+- Unary plus/minus
!~ Logical negation/bitwise complement
(type) Cast (convert value to temporary value of type)
* Dereference
& Address (of operand)
sizeof Determine size in bytes on this implementation
*/ % Multiplication/division/modulus left-to-right
+ - Addition/subtraction left-to-right
<< >> Bitwise shift left, Bitwise shift right left-to-right
< <= Relational less than/less than or equal to left-to-right
> >= Relational greater than/greater than or equal to
== != Relational is equal to/is not equal to left-to-right
& Bitwise AND left-to-right
^ Bitwise exclusive OR left-to-right
| Bitwise inclusive OR left-to-right
&& Logical AND left-to-right
|| Logical OR left-to-right
?: Ternary conditional right-to-left
= Assignment right-to-left
+= -= Addition/subtraction assignment
*= /= Multiplication/division assignment
%= &= Modulus/bitwise AND assignment
^= |= Bitwise exclusive/inclusive OR assignment
<<= >>= Bitwise shift left/right assignment
, Comma (separate expressions) left-to-right

Note 1:
Parentheses are also used to group sub-expressions to force a different
precedence; such parenthetical expressions can be nested and are
evaluated from inner to outer.
Note 2:
Postfix increment/decrement have high precedence, but the actual
increment or decrement of the operand is delayed (to be accomplished
sometime before the statement completes execution). So in the
statement y = x * z++; the current value of z is used to evaluate the
expression (i.e., z++ evaluates to z) and z only incremented after all else
is done.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
FORMATTED INPUT AND OUTPUT
The C Programming Language is also called the Mother of languages. The C language was
developed by Dennis Ritchie between 1969 and 1973 and is a second and third generation of
languages. The C language provides both low and high level features it provides both the power
of low-level languages and the flexibility and simplicity of high-level languages.
C provides standard functions scanf() and printf(), for performing formatted input and output.
These functions accept, as parameters, a format specification string and a list of variables.
The format specification string is a character string that specifies the data type of each variable to
be input or output and the size or width of the input and output.
Now to discuss formatted output in functions.
Formatted Output
The function printf() is used for formatted output to standard output based on a format
specification. The format specification string, along with the data to be output, are the parameters
to the printf() function.
Syntax:
printf (format, data1, data2,… ..... );

In this syntax format is the format specification string. This string contains, for each variable to
be output, a specification beginning with the symbol % followed by a character called the
conversion character.
Example:
printf (―%c‖, data1);
The character specified after % is called a conversion character because it allows one data type to
be converted to another type and printed.
See the following table conversion character and their meanings.
Conversion Meaning
Character
d The data is converted to decimal (integer)
c The data is taken as a character.
s The data is a string and character from the string , are printed until a NULL,
character is reached.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
f The data is output as float or double with a default Precision 6.
Symbols Meaning
\n For new line (linefeed return)
\t For tab space (equivalent of 8 spaces)
Example
printf (―%c\n‖,data1);
The format specification string may also have text.
Example
printf (―Character is:‖%c\n‖, data1);
The text "Character is:" is printed out along with the value of data1.
Example with program
#include<stdio.h>
#include<conio.h>
Main()
{
Char alphabh="A";
int number1= 55;
float number2=22.34;
printf(―char= %c\n‖,alphabh);
printf(―int= %d\n‖,number1);
printf(―float= %f\n‖,number2);
getch();
clrscr();
retrun 0;
}
Output Here…
char =A
int= 55
flaot=22.340000

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
UNIT-II
CONTROL STRUCTURES, ARRAYS AND STRINGS

DECISION STATEMENTS
If statement:
Syntax :
if(expression)
statement1;
Explanation :
• Expression is Boolean Expression
• It may have true or false value

Meaning of If Statement :
• It Checks whether the given Expression is Boolean or not !!
• If Expression is True Then it executes the statement otherwise jumps to next_instruction
Sample Program Code :
void main()
{
int a=5,b=6,c;
c=a+b;

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
if (c==11)
printf("Execute me 1");

printf("Execute me 2");
}
Output :
Execute me 1

If Statement :
if(conditional)
{
Statement No 1
Statement No 2
Statement No 3
.
.
.
Statement No N
}
Note :
More than One Conditions can be Written inside If statement.
1. Opening and Closing Braces are required only when ―Code‖ after if statement
occupies multiple lines.

if(conditional)
Statement No 1
Statement No 2
Statement No 3
In the above example only Statement 1 is a part of if Statement.
1. Code will be executed if condition statement is True.
2. Non-Zero Number Inside if means “TRUE Condition”
if(100)
printf("True Condition");

if-else Statement :

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
We can use if-else statement in c programming so that we can check any condition and
depending on the outcome of the condition we can follow appropriate path. We have true path as
well as false path.

Syntax :
if(expression)
{
statement1;
statement2;
}
else
{
statement1;
statement2;
}

next_statement;
Explanation :
If expression is True then Statement1 and Statement2 are executed
Otherwise Statement3 and Statement4 are executed.
Sample Program on if-else Statement :
void main()
{
int marks=50;
if(marks>=40)
{
printf("Student is Pass");
}
else
{
printf("Student is Fail");
}
}
Output :
Student is Pass
Flowchart : If Else Statement

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Consider Example 1 with Explanation:
Consider Following Example –
int num = 20;

if(num == 20)
{
printf("True Block");
}
else
{
printf("False Block");
}
If part Executed if Condition Statement is True.
if(num == 20)
{
printf("True Block");
}
True Block will be executed if condition is True.
Else Part executed if Condition Statement is False.
else
{
printf("False Block");
}
Consider Example 2 with Explanation :

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
More than One Conditions can be Written inside If statement.
int num1 = 20;
int num2 = 40;

if(num1 == 20 && num2 == 40)


{
printf("True Block");
}
Opening and Closing Braces are required only when ―Code‖ after if statement occupies multiple
lines. Code will be executed if condition statement is True. Non-Zero Number Inside
if means “TRUE Condition”
If-Else Statement :
if(conditional)
{
//True code
}
else
{
//False code
}
Note :
Consider Following Example –
int num = 20;

if(num == 20)
{
printf("True Block");
}
else
{
printf("False Block");
}
If part Executed if Condition Statement is True.
if(num == 20)
{
printf("True Block");
}
True Block will be executed if condition is True.
Else Part executed if Condition Statement is False.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
else
{
printf("False Block");
}
More than One Conditions can be Written inside If statement.
int num1 = 20;
int num2 = 40;

if(num1 == 20 && num2 == 40)


{
printf("True Block");
}
Opening and Closing Braces are required only when ―Code‖ after if statement occupies multiple
lines.
Code will be executed if condition statement is True.
Non-Zero Number Inside if means “TRUE Condition”

Switch statement
Why we should use Switch Case?
• One of the classic problem encountered in nested if-else / else-if ladderis
called problem of Confusion.
• It occurs when no matching else is available for if .
• As the number of alternatives increases the Complexity of program increases
drastically.
• To overcome this , C Provide a multi-way decision statement called ‗Switch
Statement‗
See how difficult is this scenario?
if(Condition 1)
Statement 1
else
{
Statement 2
if(condition 2)
{
if(condition 3)

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
statement 3
else
if(condition 4)
{
statement 4
}
}
else
{
statement 5
}
}
First Look of Switch Case
switch(expression)
{
case value1 :
body1
break;

case value2 :
body2
break;

case value3 :
body3
break;

default :
default-body
break;
}
next-statement;
Flow Diagram :

*Steps are Shown in Circles.


HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
How it works?
• Switch case checks the value of expression/variable against the list of case values and
when the match is found , the block of statement associated with that case is executed
• Expression should be Integer Expression / Character
• Break statement takes control out of the case.
• Break Statement is Optional.
#include<stdio.h>
void main()
{
int roll = 3 ;
switch ( roll )
{
case 1:
printf ( " I am Pankaj ");
break;
case 2:
printf ( " I am Nikhil ");
break;
case 3:
printf ( " I am John ");
break;
default :
printf ( "No student found");
break;
}
}
As explained earlier –
3 is assigned to integer variable ‗roll‗
On line 5 switch case decides – ―We have to execute block of code specified in 3rd case―.
Switch Case executes code from top to bottom.
It will now enter into first Case [i.e case 1:]
It will validate Case number with variable Roll.
If no match found then it will jump to Next Case..
When it finds matching case it will execute block of code specified in that case.

LOOP CONTROL STATEMENTS


While statement:
While Loop Syntax:
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
initialization;
while(condition)
{

incrementation;
}

Note :
For Single Line of Code – Opening and Closing braces are not needed.
while(1) is used for Infinite Loop
Initialization , Incrementation and Condition steps are on different Line.
While Loop is also Entry Controlled Loop.[i.e conditions are checked if found true then and then
only code is executed ]

Do while:
Do-While Loop Syntax :
initialization;
do
{

incrementation;
}while(condition);

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Note :
It is Exit Controlled Loop.
Initialization , Incrementation and Condition steps are on different Line.
It is also called Bottom Tested [i.e Condition is tested at bottom and Body has to execute at least
once ]
For statement:
We have already seen the basics of Looping Statement in C. C Language provides us different
kind of looping statements such as For loop, while loop and do-while loop. In this chapter we
will be learning different flavors of for loop statement.
Different Ways of Using For Loop in C Programming
In order to do certain actions multiple times, we use loop control statements.
For loop can be implemented in different verities of using for loop –
• Single Statement inside For Loop
• Multiple Statements inside For Loop
• No Statement inside For Loop
• Semicolon at the end of For Loop
• Multiple Initialization Statement inside For
• Missing Initialization in For Loop
• Missing Increment/Decrement Statement
• Infinite For Loop
• Condition with no Conditional Operator.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Way 1 : Single Statement inside For Loop
for(i=0;i<5;i++)
printf("Hello");
Above code snippet will print Hello word 5 times.
We have single statement inside for loop body.
No need to wrap printf inside opening and closing curly block.
Curly Block is Optional.

Way 2 : Multiple Statements inside For Loop


for(i=0;i<5;i++)
{
printf("Statement 1");
printf("Statement 2");
printf("Statement 3");

if(condition)
{

}
}
If we have block of code that is to be executed multiple times then we can use curly braces to
wrap multiple statement in for loop.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Way 3 : No Statement inside For Loop
for(i=0;i<5;i++)
{

}
this is bodyless for loop. It is used to increment value of ―i‖.This verity of for loop is not used
generally.
At the end of above for loop value of i will be 5.

Way 4 : Semicolon at the end of For Loop


for(i=0;i<5;i++);
Generally beginners thought that , we will get compile error if we write semicolon at the end of
for loop.
This is perfectly legal statement in C Programming.
This statement is similar to bodyless for loop. (Way 3)

Way 5 : Multiple Initialization Statement inside For


for(i=0,j=0;i<5;i++)
{
statement1;
statement2;
statement3;
}
Multiple initialization statements must be seperated by Comma in for loop.

Way 6 : Missing Increment/Decrement Statement


for(i=0;i<5;)
{
statement1;
statement2;
statement3;
i++;
}
however we have to explicitly alter the value i in the loop body.

Way 7 : Missing Initialization in For Loop


i = 0;
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
for(;i<5;i++)
{
statement1;
statement2;
statement3;
}
we have to set value of ‗i‘ before entering in the loop otherwise it will take garbage value of ‗i‘.

Way 8 : Infinite For Loop


i = 0;
for(;;)
{
statement1;
statement2;
statement3;

if(breaking condition)
break;

i++;
}

Infinite for loop must have breaking condition in order to break for loop. otherwise it will cause
overflow of stack.

Summary of Different Ways of Implementing For Loop

Form Comment

for ( i=0 ; i < 10 ; i++ )


Single Statement
Statement1;

for ( i=0 ;i <10; i++) Multiple Statements within for


{
Statement1;
Statement2;
Statement3;
}

for ( i=0 ; i < 10;i++) ; For Loop with no Body (Carefully Look at the
Semicolon)

for Multiple initialization & Multiple

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
(i=0,j=0;i<100;i++,j++) Update Statements Separated by Comma
Statement1;

for ( ; i<10 ; i++) Initialization not used

for ( ; i<10 ; ) Initialization & Update not used

for ( ; ; ) Infinite Loop, Never Terminates

JUMP STATEMENTS:

Break statement
Break Statement Simply Terminate Loop and takes control out of the loop.

Break in For Loop :


for(initialization ; condition ; incrementation)
{
Statement1;
Statement2;
break;
}

Break in While Loop :


initialization ;
while(condition)
{
Statement1;
Statement2;
incrementation
break;
}

Break Statement in Do-While :


initialization ;
do
{
Statement1;
Statement2;
incrementation
break;
}while(condition);

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Way 1 : Do-While Loop

Way 2 : Nested for

Way 3 : For Loop

Way 4 : While Loop

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Continue statement:
loop
{
continue;
//code
}

Note :
It is used for skipping part of Loop.
Continue causes the remaining code inside a loop block to be skipped and causes execution to
jump to the top of the loop block

Loop Use of Continue !!

for

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
while

do-while

Goto statement:

goto label;

label :

Whenever goto keyword encountered then it causes the program to continue on the line , so long
as it is in the scope .

Types of Goto
Forward
Backward

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
ARRAYS:

What is an array?
An array is a collection of similar datatype that are used to allocate memory in
a sequential manner.
Syntax : <data type> <array name>[<size of an array>]
Subscript or indexing: A subscript is property of an array that distinguishes all its stored
elements because all the elements in an array having the same name (i.e. the array name). so to
distinguish these, we use subscripting or indexing option.
e.g. int ar[20];
First element will be: int ar[0];
Second element will be: int ar[1];
Third element will be: int ar[2];
Fourth element will be: int ar[3];
Fifth element will be: int ar[4];
Sixth element will be: int ar[5];
So on……………………
Last element will be: int ar[19];

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
· NOTE: An array always starts from 0 indexing.
· Example: int ar[20];
This above array will store 20 integer type values from 0 to 19.
Advantage of an array:
· Multiple elements are stored under a single unit.
· Searching is fast because all the elements are stored in a sequence.

Types of Array
1. Static Array
2. Dynamic Array.

Static Array
An array with fixed size is said to be a static array.
Types of static array:
1. One Dimensional Array
2. Two Dimensional Array.
3. Multi Dimensional Array.

1. One Dimensional Array


An Array of elements is called 1 dimensional, which stores data in column or row form.
Example: int ar[5];
This above array is called one dimensional array because it will store all the elements in
column or in row form
2. Two Dimensional Array.
An array of an array is said to be 2 dimensional array , which stores data in column androw form

Example: int ar[4][5];


This above array is called two dimensional array because it will store all the elements in column
and in row form
NOTE: In above example of two dimensional array, we have 4 rows and 5 columns.
NOTE: In above example of two dimensional array, we have total of 20 elements.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
3. Multi Dimensional Array.
This array does not exist in c and c++.

Dynamic Array.
This type of array also does not exist in c and c++.
Example: Program based upon array:
WAP to store marks in 5 subjects for a student. Display marks in 2 nd and 5thsubject.
#include<stdio.h>
#include<conio.h>
void main()
{
int ar[5];
int i;
for(i=0;i<5;i++)
{
printf(― \n Enter marks in ―,i, ―subject‖);
scanf(―%d‖,&ar[i]);
}
printf(―Marks in 2nd subject is: ‖,ar[1]);
printf(―Marks in 5th subject is: ‖,ar[4]);

}
STRINGS
What is String?
· A string is a collection of characters.
· A string is also called as an array of characters.
· A String must access by %s access specifier in c and c++.
· A string is always terminated with \0 (Null) character.
· Example of string: ―Gaurav‖
· A string always recognized in double quotes.
· A string also consider space as a character.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
· Example: ‖ Gaurav Arora‖
· The above string contains 12 characters.
· Example: Char ar[20]
· The above example will store 19 character with I null character.
Example: Program based upon String.
WAP to accept a complete string (first name and last name) and display hello message in the
output.
# include<stdio.h>
#include<conio.h>
#include<string.h>
void main ()
{
char str1[20];
char str2[20];
printf(―Enter First Name‖);
scanf(―%s‖,&str1);
printf(―Enter last Name‖);
scanf(―%s‖,&str2);
puts(str1);
puts(str2);
}

String Functions in C:
Our c language provides us lot of string functions for manipulating the string.
All the string functions are available in string.h header file.

These String functions are:


1. strlen().
2. strupr().
3. strlwr().
4. strcmp().

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
5. strcat().
6. strapy().
7. strrev().

1. strlen().
This string function is basically used for the purpose of computing the ength of string.

Example: char str=‖Gaurav Arora‖;


int length= strlen(str);
printf(―The length of the string is =‖,str);

2. strupr().
This string function is basically used for the purpose of converting the case sensitiveness of the
string i.e. it converts string case sensitiveness into uppercase.

Example: char str = ―gaurav‖


strupr(str);
printf(―The uppercase of the string is : %s‖,str);

3. strlwr ().
This string function is basically used for the purpose of converting the case sensitiveness of the
string i.e it converts string case sensitiveness into lowercase.
Example: char str = ―gaurav‖
strlwr(str);
printf(―The Lowercase of the string is :%s ‖,str);

4. strcmp ().
This string function is basically used for the purpose of comparing two string.
This string function compares two strings character by characters.
Thus it gives result in three cases:
Case 1: if first string > than second string then, result will be true.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Case 2: if first string < than second string then, result will be false.
Case 3: if first string = = to second string then, result will be zero.

Example:
char str1= ―Gaurav‖;
char str2= ―Arora‖;
char str3=strcmp(str1,str2);
printf(―%s‖,str3);

5. strcat().
This string function is used for the purpose of concatenating two strings ie.(merging two or more
strings)

Example:
char str1 = ―Gaurav‖;
char str2 = ―Arora‖;
char str3[30];
str3=strcat(str1,str2);
printf(―%s‖,str3);

6. strcpy()
This string function is basically used for the purpose of copying one string into another string.
char str1= ―Gaurav‖;
char str2[20];
str2 = strcpy(str2,str1);
printf(―%s‖,str2);

6. strrev()
This string function is basically used for the purpose of reversing the string.
char str1= ―Gaurav‖;
char str2[20];

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
str2= strrev(str2,str1);
printf(―%s‖,str2);

Example: Program based upon string functions.


WAP to accept a string and perform various operations:
1. To convert string into upper case.
2. To reverse the string .
3. To copy string into another string.
4. To compute length depending upon user choice.

# include<stdio.h>
# include<conio.h>
#include<string.h>

void main()
{
char str[20];
char str1[20];
int opt,len;
printf(―\n MAIN MENU‖);
printf(―\n 1. Convert string into upper case‖);
printf(―\n 2. Reverse the string‖);
printf(―\n 3. Copy one string into another string‖);
printf(―\n 4.Compute length of string ‖);
printf(―Enter string ‖);
scanf(―%s‖, &str);
printf(―Enter your choice‖);
scanf(―%d‖,&opt);
switch(opt)
{
case 1: strupr(str);

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
printf(―The string in uppercase is :%s ‖,str);
break;

case 2: strrev(str);
printf(―The reverse of string is : %s‖,str);
break;
case 3: strcpy(str1,str);
printf(―New copied string is : %s‖,str1);
break;
case 4: len=strlen(str);
printf(―The length of the string is : %s‖,len);
break;
default: printf(―Ypu have entered a wrong choice.‖);
}

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
UNIT-III

FUNCTIONS
FUNCTIONS

A function is itself a block of code which can solve simple or complex task/calculations.
A function performs calculations on the data provided to it is called "parameter" or "argument".
A function always returns single value result.

Types of function:
1. Built in functions(Library functions)
a.) Inputting Functions.
b.) Outputting functions.

2. User defined functions.


a.) fact();
b.) sum();

Parts of a function:
1. Function declaration/Prototype/Syntax.
2. Function Calling.
3. Function Definition.

1.)Function Declaration:
Syntax: <return type > <function name>(<type of argument>)
The declaration of function name, its argument and return type is called function declaration.

2.) Function Calling:


The process of calling a function for processing is called function calling.
Syntax: <var_name>=<function_name>(<list of arguments>).

3.) Function defination:

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
The process of writing a code for performing any specific task is called function defination.
Syntax:
<return type><function name>(<type of arguments>)
{
<statement-1>
<statement-2>
return(<vlaue>)
}
Example: program based upon function:
WAP to compute cube of a no. using function.
#include<stdio.h>
#include<conio.h>
void main()
{
int c,n;
int cube(int);
printf("Enter a no.");
scanf("%d",&n);
c=cube(n);
printf("cube of a no. is=%d",c);
}
int cube(int n)
{
c=n*n*n;
return(c);
}

WAP to compute factorial of a no. using function:


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

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
{
int n,f=1;
int fact(int)
printf("Enter a no.");
scanf("%d",&n);
f=fact(n);
printf("The factorial of a no. is:=%d",f);
}
int fact(int n)
int f=1;
{
for(int i=n;i>=n;i--)
{
f=f*i;
}
return(f);
}

Recursion
Firstly, what is nested function?
When a function invokes another function then it is called nested function.
But,
When a function invokes itself then it is called recursion.
NOTE: In recursion, we must include a terminating condition so that it won't execute to infinite
time.

Example: program based upon recursion:


WAP to compute factorial of a no. using Recursion:
#include<stdio.h>
#include<conio.h>
void main()

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
{
int n,f;
int fact(int)
printf("Enter a no.");
scanf("%d",&n);
f=fact(n);
printf("The factorial of a no. is:=%d",f);
}
int fact(int n)
int f=1;
{
if(n=0)
return(f);
else
return(n*fact(n-1));
}
Passing parameters to a function:
Firstly, what are parameters?
parameters are the values that are passed to a function for processing.

There are 2 types of parameters:


a.) Actual Parameters.
b.) Formal Parameters.

a.) Actual Parameters:


These are the parameters which are used in main() function for function calling.
Syntax: <variable name>=<function name><actual argument>
Example: f=fact(n);

b.) Formal Parameters.


These are the parameters which are used in function defination for processing.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Methods of parameters passing:
1.) Call by reference.
2.) Call by value.

1.) Call by reference:


In this method of parameter passing , original values of variables are passed from calling
program to function.
Thus,
Any change made in the function can be reflected back to the calling program.

2.) Call by value.


In this method of parameter passing, duplicate values of parameters are passed from calling
program to function defination.
Thus,
Any change made in function would not be reflected back to the calling program.

Example: Program based upon call by value:


# include<stdio.h>
# include<conio.h>
void main()
{
int a,b;
a=10;
b=20;
void swap(int,int)
printf("The value of a before swapping=%d",a);
printf("The value of b before swapping=%d",b);
void swap(a,b);
printf("The value of a after swapping=%d",a);
printf("The value of b after swapping=%d",b);

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
}
void swap(int x, int y)
{
int t;
t=x;
x=y;
y=t;
}

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
UNIT-IV

STRUCTURES AND UNIONS

INTRODUCTION TO STRUCTURE

As we know that Array is collection of the elements of same type , but many time we have to
store the elements of the different data types.

Suppose Student record is to be stored, then for storing the record we have to group together all
the information such as Roll, name, Percent which may be of different data types.

Ideally Structure is collection of different variables under single name.

Basically Structure is for storing the complicated data.

A structure is a convenient way of grouping several pieces of related information together.

Definition of Structure in C

Structure is composition of the different variables of different data types, grouped under same
name.

typedef struct {

char name[64];

char course[128];

int age;

int year;

} student;

Some Important Definitions of Structures

Each member declared in Structure is called member.

char name[64];

char course[128];

int age;

int year;

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
are some examples of members.

Name given to structure is called as tag

Structure member may be of different data type including user defined data-type also

typedef struct {

char name[64];

char course[128];

book b1;

int year;

} student;

Here book is user defined data type.

Declaring Structure Variable in C

In C we can group some of the user defined or primitive data types together and form another
compact way of storing complicated information is called as Structure. Let us see how to declare
structure in c programming language –

Syntax of Structure in C Programming

struct tag

data_type1 member1;

data_type2 member2;

data_type3 member3;

};

Structure Alternate Syntax

struct <structure_name>

structure_Element1;

structure_Element2;
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
structure_Element3;

...

...

};

Some Important Points Regarding Structure in C Programming:

Struct keyword is used to declare structure.

Members of structure are enclosed within opening and closing braces.

Declaration of Structure reserves no space.

It is nothing but the ― Template / Map / Shape ‖ of the structure .

Memory is created, very first time when the variable is created /Instance is created.

Different Ways of Declaring Structure Variable:

Way 1 : Immediately after Structure Template

struct date

int date;

char month[20];

int year;

}today;

// 'today' is name of Structure variable

Way 2 : Declare Variables using struct Keyword

struct date

int date;

char month[20];

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
int year;

};

struct date today;

where ―date‖ is name of structure and ―today‖ is name of variable.

Way 3 : Declaring Multiple Structure Variables

struct Book

int pages;

char name[20];

int year;

}book1,book2,book3;

C Structure Initialization

When we declare a structure, memory is not allocated for un-initialized variable.

Let us discuss very familiar example of structure student , we can initialize structure variable in
different ways –

Way 1 : Declare and Initialize

struct student

char name[20];

int roll;

float marks;

}std1 = { "Pritesh",67,78.3 };

In the above code snippet, we have seen that structure is declared and as soon as after declaration
we have initialized the structure variable.
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
std1 = { "Pritesh",67,78.3 }

This is the code for initializing structure variable in C programming

Way 2 : Declaring and Initializing Multiple Variables

struct student

char name[20];

int roll;

float marks;

std1 = {"Pritesh",67,78.3};

std2 = {"Don",62,71.3};

In this example, we have declared two structure variables in above code. After declaration of
variable we have initialized two variable.

std1 = {"Pritesh",67,78.3};

std2 = {"Don",62,71.3};

Way 3 : Initializing Single member

struct student

int mark1;

int mark2;

int mark3;

} sub1={67};

Though there are three members of structure,only one is initialized , Then remaining two
members are initialized with Zero. If there are variables of other data type then their initial
values will be –

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
Data Type Default value if not initialized

integer 0

float 0.00

char NULL

Way 4 : Initializing inside main

struct student

int mark1;

int mark2;

int mark3;

};

void main()

struct student s1 = {89,54,65};

- - - - --

- - - - --

- - - - --

};

When we declare a structure then memory won‘t be allocated for the structure. i.e only writing
below declaration statement will never allocate memory

struct student

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
int mark1;

int mark2;

int mark3;

};

We need to initialize structure variable to allocate some memory to the structure.

struct student s1 = {89,54,65};

Some Structure Declarations and It‘s Meaning :

struct

int length;

char *name;

}*ptr;

Suppose we initialize these two structure members with following values –

length = 30;

*name = "programming";

Now Consider Following Declarations one by One –

Example 1 : Incrementing Member

++ptr->length

―++‖ Operator is pre-increment operator.

HUMAN COMPUTER EDUCATION MISSION


AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA
HUMAN COMPUTER EDUCATION MISSION
AN ISO 9001:2015 CERTIFIED INSTITUTION & REGD. GOVT OF INDIA

You might also like