Unit 1 FPL Introduction To C
Unit 1 FPL Introduction To C
History of C
1. Origins in the 1970s:
o Developed by Dennis Ritchie: C was developed by Dennis Ritchie at Bell Labs between 1969 and
1973. It evolved from the B programming language, which was an earlier language developed by Ken
Thompson and others.
o First Use in UNIX: The language was initially used to rewrite the UNIX operating system, which had
previously been written in assembly language. This transition demonstrated C's efficiency and
portability.
1
What is C?
C is a programming language developed at AT & T‟s Bell Laboratories of USA in
1972. It was designed and written by Dennis Ritche. Dennis Ritchie is known as
the founder of c language.
It was developed to overcome the problems of previous languages such as B, BCPL etc.
Importance of C
1 Portability:
o Cross-Platform Compatibility: C programs can be compiled and run on different types of computer
systems with minimal changes. This portability was a key factor in C's adoption for system
programming and operating systems.
2 Efficiency:
o Low-Level Access: C provides low-level access to memory and hardware, allowing for efficient use of
resources. This feature is particularly valuable in system programming and embedded systems where
performance and resource management are critical.
5 Wide Usage:
o Embedded Systems: C is extensively used in embedded systems, including microcontrollers and real-
time operating systems, due to its efficiency and close-to-hardware capabilities.
o Software Development: C remains a popular choice for developing various applications, from desktop
software to high-performance computing applications.
6 Rich Ecosystem:
o Libraries and Tools: A vast number of libraries and development tools are available for C, enhancing
its capabilities and making development more efficient.
2
Creating and Running Programs:
1. Writing and editing the program using Text editor (source code).
2. Compile the program using any C compiler.(.bak file)
3. Linking the program with the required library modules(object file)
4. Executing the program. (.Exe file)
Loading program: The process of transferring a program from secondary storage to main memory
for execution is called loading a program. A program called loader does loading.
3
Executing program: Execution is the last step. In this step program starts
execution. Its instructions start working and output of the program display on the
screen.
Algorithm:
An algorithm is a description of a procedure which terminates with a result. Algorithm is a
step-by-step method of solving a problem.
Properties of an Algorithm:
1) Finiteness: - An algorithm terminates after a finite numbers of steps.
2) Definiteness: - Each step in algorithm is unambiguous. This means that the action
specified by the step cannot be interpreted (explain the meaning of) in multiple ways & can
be performed without any confusion.
3) Input: - An algorithm accepts zero or more inputs
4) Output:- An algorithm should produce at least one output.
4
5) Effectiveness: - It consists of basic instructions that are realizable. This means that the
instructions can be performed by using the given inputs in a finite amount of time.
Writing an algorithm
An algorithm can be written in English, like sentences and using mathematical
formulas. Sometimes algorithm written in English like language is Pseudo code.
Examples
1) Finding the average of three numbers
1. Let a,b,c are three integers
2. Let d is float
3. Display the message “Enter any three integers:”
4. Read three integers and stores in a,b,c
5. Compute the d = (a+b+c)/3.0
6. Display “The avg is:” , d
7. End.
Example 1: Write an algorithm to determine a student‟s final grade and indicate whether
it is passing or failing. The final grade is calculated as the average of four marks.
Pseudocode::
Input a set of 4 marks
Calculate their average by summing and dividing by 4
if average is below 50
Print “FAIL”
else
Print “PASS”
Detailed Algorithm :
Step 1: Input M1,M2,M3,M4
Step 2: GRADE (M1+M2+M3+M4)/4
Step 3: if (GRADE < 50) then
Print “FAIL”
else
Print “PASS”
endif
5
Algorithm to find whether a number even or odd:
Flowcharts
Start/End symbol: An oval shape indicating the beginning and end of the process.
Process/Action symbol: A rectangle outlining a specific action or step taken.
Decision symbol: A diamond shape representing a point where a decision needs to be made,
usually with two or more arrows leading out based on the possible outcomes.
Input/Output symbol: A parallelogram signifying either data entering the process (input) or data
leaving the process (output).
Connector: Lines and arrows connecting the different symbols, showing the direction of the
flow.
6
Flowchart Symbols
7
Figure: Flowchart Symbols
8
Explanation of Basic Flowchart Template
Step-1: Start
Step-2: Begin your process 1
Step-3: Take decision (Check some condition)
Step-4: Based on answer from Step-3, execute Process 2 or Process 3. If answer of step 3 is No,
execute Process 2 and repeat Step-2, 3 and 4; otherwise execute Process 3
Step-5: End
9
CHARACTER SET IN C
In the C programming language, the character set refers to the collection of characters that are used to write C
programs. These characters are essential for defining variables, writing functions, and structuring the code. The
character set of C includes alphabetic characters, digits, special characters, escape sequences, white space
characters, and comments. Understanding these components is crucial for writing and reading C programs
effectively, as they form the basic building blocks of the language.
1. Alphabetic Characters
Uppercase Letters: A to Z
Lowercase Letters: a to z
These characters are used to define identifiers (such as variable names and function names) and to write
literals.
2. Digits
Digits: 0 to 9
3. Special Characters
These characters have special meanings in C and are used for various syntactical purposes:
Operators: +, -, *, /, %, ++, --, ==, !=, <, >, <=, >=, &&, ||, !, &, |, ^, ~, <<, >>, +=, -=, *=, /=, %= etc.
Punctuation: ,, ., ;, :, (), {}, [], #, @, |, ?, !
Assignment: =, +=, -=, *=, /=, %= etc.
Comparison: ==, !=, <, >, <=, >=
Logical: &&, ||, !
Bitwise: &, |, ^, ~, <<, >>
Others: ~ (bitwise NOT), . (member access), -> (pointer access), :: (scope resolution)
4. Escape Sequences
Escape sequences are used to represent special characters in string literals and character constants:
\n: Newline
\t: Horizontal tab
\r: Carriage return
\b: Backspace
\f: Form feed
\v: Vertical tab
10
\\: Backslash
\": Double quote
`'': Single quote
\0: Null character (used to terminate strings)
White space characters are ignored by the compiler, but they are important for formatting code and
separating tokens.
6. Comments
Comments are used to include explanatory notes in the code. They are ignored by the compiler but are
useful for documentation:
Character Encoding
ASCII (American Standard Code for Information Interchange): In many C environments, characters are
encoded using ASCII, which defines 128 characters including letters, digits, and symbols.
Extended ASCII: Extends ASCII to include additional characters.
Unicode: Modern environments might use Unicode (such as UTF-8) to represent a wider range of characters,
especially for internationalization.
Character Constants
In C, character constants are enclosed in single quotes:
11
C TOKENS:
The smallest individual units are known as tokens. C has six types of tokens.
1: Identifiers
2: Keywords
3: Constants
4: Strings
5: Special Symbols
6: Operators
12
Identifiers:
Identifiers refer to the names of variables, constants, functions and arrays. These are user-defined
names is called Identifiers. These identifier are defined against a set of rules.
Rules for an Identifier
1. An Identifier can only have alphanumeric characters( a-z , A-Z , 0-9 ) and underscore( _
).
2. The first character of an identifier can only contain alphabet( a-z , A-Z ) or underscore ( _
).
3. Identifiers are also case sensitive in C. For example name and Name are two different
identifier in C.
Ex : Valid Invalid
STDNAME Return
SUB $stay
TOT_MARKS 1RECORD
Y2K
13
Keywords:
A keyword is a reserved word. All keywords have fixed meaning that means we cannot
change. Keywords serve as basic building blocks for program statements. All keywords must be
written in lowercase. A list of 32 keywords in c language is given below:
Data Types/Types:
To store data the program must reserve space which is done using datatype. A datatype is a
keyword/predefined instruction used for allocating memory for data. A data type specifies
the type of data that a variable can store such as integer, floating, character etc . It used for
declaring/defining variables or functions of different types before to use in a program.
The basic data types are integer-based and floating-point based. C language supports both signed
and unsigned literals. The memory size of basic data types may change according to 32 or 64 bit
operating system. Let‟s see the basic data types. Its size is given according to 32 bit
architecture.
15
int or signed int 2 -32768 to 32767 %d or %i
Variables
A variable is a name of memory location. It is used to store data. Variables are changeable,
we can change value of a variable during execution of a program. . It can be reused many
times.
16
Declaration of Variables: A variable can be used to store a value of any data type. The
declaration of variables must be done before they are used in the program. The general format
for declaring a variable.
Ex : int x,y,z;
float a,b;
char m,n;
Assigning values to variables: values can be assigned to variables using the assignment
operator (=). The general format statement is :
Ex : x=100;
a= 12.25;
m=‟f‟;
we can also assign a value to a variable at the time of the variable is declared. The general format
of declaring and assigning value to a variable is :
Ex ; int x=100;
float a=12.25;
char m=‟f‟;
Types of Variables in C
1. local variable
2. global variable
3. static variable
Constants
Constants refer to fixed values that do not change during the execution of a program.
17
C supports several kinds of constants.
CONSTANTS
TYPES OF C CONSTANT:
1. Integer constants
2. Real or Floating point constants
3. Character constants
4. String constants
5. Backslash character constants
Integer constants:
An integer constant is a numeric constant (associated with number) without any fractional or
exponential part. There are three types of integer constants in C programming:
For example:
In C programming, octal constant starts with a 0 and hexadecimal constant starts with a
0x.
18
1: Decimal Integer : the rules for represent decimal integer.
a) Decimal Integer value which consist of digits from 0-9.
b) Decimal Integer value with base 10.
c) Decimal Integer should not prefix with 0.
d) It allows only sign (+,-).
e) No special character allowed in this integer.
Ex : valid invalid
7 $77
77 077
+77 7,777
-77
2 : Octal : An integer constants with base 8 is called octal. These rules are :
a) it consist of digits from 0 to 7.
b) It should prefix with 0.
c) It allows sign (+,-).
d) No special character is allowed.
EX : VALID INVALID
0123 123 -> it because no prefix with 0
+0123 0128 -> because digits from 0 to 7.
-0123
Ex : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
b) it should prefix with 0X or 0x.
c) it allows sign (+,-).
d) No special character is allowed.
EX : OX1a, ox2f
A floating point constant is a numeric constant that has either a fractional form or an exponent
form. For example:
19
-2.0
0.0000234
-0.22E-5
Real Notation : The real notation is represented by an integer followed by a decimal point and
the fractional(decimal) part. It is possible to omit digits before or after the decimal point.
Ex : 15.25
.75
30
-9.52
-92
+.94
mantisha e exponent
The mantisha is either a real/floating point number expressed in decimal notation or an integer
and the exponent is an integer number with an optional sign. The character e separating the
mantisha and the exponent can be written in either lowercase or uppercase.
Ex : 1.5E-2
100e+3
-2.05e2
Character Constant:
Single Character Constant : A character constant is either a single alphabet, a single digit, a
single special symbol enclosed within single inverted commas.
20
„A‟ „ab‟
String constant : A string constant is a sequence of characters enclosed in double quote, the
characters may be letters, numbers, special characters and blank space etc
a) \n newline
b) \r carriage return
c) \t tab
d) \v vertical tab
e) \b backspace
f) \f form feed (page feed)
g) \a alert (beep)
h) \‟ single quote(„)
i) \” double quote(“)
j) \? Question mark (?)
k) \\ backslash (\)
21
7. getch();
8. }
Output:
The value of PI is: 3.140000
2) C #define preprocessor
The #define preprocessor is also used to define constant.
C#define
The #define preprocessor directive is used to define constant or micro substitution. It can use any
basic data type.
Syntax:
#define token value
Let's see an example of #define to define a constant.
#include <stdio.h>
1. #define PI 3.14
2. main() {
3. printf("%f",PI);
4. }
Output:
3.140000
22
Standard output stdout Screen
I / O Functions
Input Output
Input Output
gets() puts()
getch()
getche()
. Formated I/O Functions : formatted I/O functions operates on various types of data.
1 : printf() : output data or result of an operation can be displayed from the computer to a
standard output device using the library function printf(). This function is used to print any
combination of data.
Formating string : it prints all the character given in doublequotes (“ “) except formatting
specifier.
23
Ex : printf(“ hello “);-> hello
printf(“a”); -> a
printf(“%d”, a); -> a value
printf(“%d”); -> no display
scanf() : input data can be entered into the computer using the standard input „C‟ library
function called scanf(). This function is used to enter any combination of input.
The scanf() function is used to read information from the standard input device (keyboard).
Each variable name (argument) must be preceeded by an ampersand (&). The (&) symbol gives
the meaning “address of “ the variable.
a) character I/O:
c) String I/O:
1. gets(): Used for accepting any string from the standard input(stdin)
eg:gets()
24
General Structure of a C program:
/* Documentation section */
/* Link section */
/* Definition section */
/* Global declaration section */
main()
{
Declaration part
Executable part (statements)
}
/* Sub-program section */
The documentation section is used for displaying any information about the
program like the purpose of the program, name of the author, date and time written
etc, and this section should be enclosed within comment lines. The statements in
the documentation section are ignored by the compiler.
The link section consists of the inclusion of header files.
The definition section consists of macro definitions, defining constants etc,.
Anything declared in the global declaration section is accessible throughout
the program, i.e. accessible to all the functions in the program.
main() function is mandatory for any program and it includes two parts, the
declaration part and the executable part.
The last section, i.e. sub-program section is optional and used when we require
including user defined functions in the program.
25
First C Program
Before starting the abcd of C language, you need to learn how to write, compile and run the first
c program.
To write the first c program, open the C console and write the following code:
2. #include <stdio.h>
3. #include <conio.h>
4. void main(){
5. printf("Hello C Language");
6. getch();
6. }
#include <stdio.h> includes the standard input output library functions. The printf() function
is defined in stdio.h .
#include <conio.h> includes the console input output library functions. The getch() function is
defined in conio.h file.
void main() The main() function is the entry point of every program in c language. The void
keyword specifies that it returns no value.
getch() The getch() function asks for a single character. Until you press any key, it blocks the
screen.
26
Operators and Expressions:
Expressions:
results in a value.
Examples:
a+b
x * (y - 2)
3.14 * r * r
Types of Operators:
1. Arithmetic Operators
+, -, *, /, % (modulus)
Example: a + b, x % 2
27
✅ 3. Logical Operators
&& (AND), || (OR), ! (NOT)
Example: (a > 5 && b < 10)
✅ 4. Assignment Operators
=, +=, -=, *=, /=, %=
Example: x += 5 is same as x = x + 5
✅ 6. Unary Operators
+, -, ++, --, !
Example: ++x, --y
✅ 7. Ternary Operator
Syntax: condition ? value_if_true : value_if_false
Example: max = (a > b) ? a : b;
Precedence of Operators:
Operator precedence determines which operator is evaluated first in an expression.
E.g.
a+b*c
28
General Precedence (from highest to lowest):
29
Type Conversion:
Example:
int a = 5;
float b = 6.2;
Example:
float f = 7.5;
int i = (int)f; // i = 7
30