0% found this document useful (0 votes)
8 views33 pages

Inbound 5122355674798459563

Uploaded by

Cypress Labadia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views33 pages

Inbound 5122355674798459563

Uploaded by

Cypress Labadia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Computer Fundamentals and Programming in C

Reema Thareja, Assistant Professor,


Institute of Information Technology and
Management

© Oxford University Press 2012. All rights reserved.


GE 3

INTRODUCTION TO C

© Oxford University Press 2012. All rights reserved.


INTRODUCTION

C was developed in the early 1970s by Dennis


Ritchie at AT and T Bell Laboratories.
C was initially developed for writing system
software.
Today, C has become a popular language and
various software programs are written using this
language.
Many other commonly used programming
languages such as C++ and Java are also based on C.
© Oxford University Press 2012. All rights reserved.
Characteristics of C
● A high level programming language
● Small size. C has only 32 keywords. This makes it relatively easy to learn
● Makes extensive use of function calls
● C is well suited for structured programming. In this programming approach,
● Unlike PASCAL it supports loose typing (as a character can be treated as an
integer and vice versa)
● Stable language.
● Quick language
● Facilitates low level (bitwise) programming
● Supports pointers to refer computer memory, array, structures and functions.
● C is a core language
● C is a portable language.
● C is an extensible language
© Oxford University Press 2012. All rights reserved.
USES OF C
main()
{
Statement 1;
Statement 2;
C language is primarily used for system programming. The portability, ……………
……………
efficiency, the ability to access specific hardware addresses and low Statement N;
}
runtime demand on system resources makes it a good choice for Function1()
{
implementing operating systems and embedded system applications. Statement 1;
Statement 2;
……………
……………
C has been so widely accepted by professionals that compilers, libraries, Statement N;
}
and interpreters of other programming languages are often implemented Function2()
{
in C. Statement 1;
Statement 2;
……………
……………
For portability and convenience reasons, C is sometimes used as an Statement N;
}
intermediate language by implementations of other languages. Example of ………………….
………………….
compilers which use C this way are BitC, Gambit, the Glasgow Haskell FunctionN()
{
Compiler, Squeak, and Vala. Statement 1;
Statement 2;
……………
……………
C is widely used to implement end-user applications Statement N;
}
© Oxford University Press 2012. All rights reserved.
main()
{
Statement 1;
Statement 2;

STRUCTURE OF A C PROGRAM ……………


……………
Statement N;
}
A C program contains one or more functions. Function1()
{
Statement 1;
Statement 2;
……………
……………
The statements in a C program are written in a }
Statement N;

logical sequence to perform a specific task.


Function2()
{
Statement 1;
Statement 2;
……………
……………
Statement N;
Execution of a C program begins at the main() }
………………….

function. You can choose any name for the


………………….
FunctionN()
{

functions. Every program must contain one Statement


Statement
1;
2;
……………
function that has its name as main(). ……………
Statement N;
}
© Oxford University Press 2012. All rights reserved.
●Types of Tokens in C

1. Keywords – Examples: float, int, double, char, while, for


2. Identifiers – Examples: main, amount
3. Constants – Examples: 12.4, 1234
4. Strings – Examples: “GSM”, “Friday”
5. Special Symbols – Examples: [,], {,}, (,)
6. Operators – Examples: +, *, /

© Oxford University Press 2012. All rights reserved.


YOUR FIRST C PROGRAM

// This is my first program in C

#include<stdio.h>
int main()
{
printf("\n Welcome to the world of C ");
return 0;
}

© Oxford University Press 2012. All rights reserved.


● #include <stdio.h> is used to include the
standard input output library functions.
● The main function in C programming is a
special type of function that serves as the
entry point of the program where the
execution begins. By default, the return type of
the main function is int. There can be two
types of main() functions: with and without
parameters.

© Oxford University Press 2012. All rights reserved.


● The #include directive tells the C
preprocessor to include the contents of the
file specified in the input stream to the
compiler and then continue with the rest of
the original file.
● Printf() and Scanf() are inbuilt library functions in
C language that perform formatted input and
formatted output functions. These functions are
defined and declared in stdio. h header file. The 'f'
in printf and scanf stands for 'formatted’.
● Return 0 indicates that the program
implementation is accomplished and that the
© Oxford University Press 2012. All rights reserved.
processor can now be uploaded.
●The C Character Set

Includes the upper letters A to Z, the lower case a to z, the


decimal digits 0 to 9 and certain special characters.

> Letters – a, b, c, ………………z


> Digits – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
> Special Characters ~ , . ; : ? ‘ “ ! () [] {} /\ <> = + - $ # @ & * % ^

© Oxford University Press 2012. All rights reserved.


Character / Symbol Meaning Character / Symbol Meaning

© Oxford University Press 2012. All rights reserved.


_ Underscore | Vertical Line
FILES USED IN A C PROGRAM
Files in a C program

Source File Header File Object File Executable File

Source code file


● The source code file contains the source code of the program. The file extension of any C source code file is “.c”. This file
contains C source code that defines the main function and maybe other functions. The main() is the starting point of
execution when you successfully compile and run the program. A C program in general may include even other source code
files (with the file extension .c).
Header Files
● When working with large projects, it is often desirable to make sub-routines and store them in a different file known as
header file. The advantage of header files can be realized when
a) The programmer wants to use the same subroutines in different programs.
b) The programmer wants to change, or add, subroutines, and have those changes be reflected in all other programs.
● Conventionally, header files names ends with a “.h” extension and its name can use only letters, digits, dashes, and
underscores.
● While some standard header files are available in C, but the programmer may also create his own user defined header files

© Oxford University Press 2012. All rights reserved.


FILES USED IN A C PROGRAM contd.
Object Files
● Object files are generated by the compiler as a result of processing
the source code file. Object files contain compact binary code of the
function definitions. Linker uses this object file to produce an
executable file (.exe file) by combining the of object files together.
Object files have a “.o” extension, although some operating
systems including Windows and MS-DOS have a “.obj” extension
for the object file.
Binary Executable File
● The binary executable file is generated by the linker. The linker
links the various object files to produce a binary file that can be
directly executed. On Windows operating system, the executable
files have “.exe” extension.
© Oxford University Press 2012. All rights reserved.
COMPILING AND EXECUTING C PROGRAMS

Pre-
Source File process
Compiler
Object
Files

Library Files
Library Executable
Compiler Files Linker Files
Source File Pre-
process Object
Files

Library Files

© Oxford University Press 2012. All rights reserved.


USING COMMENTS
● It is a good programming practice to place some comments in the code to help the reader understand the
code clearly.
● Comments are just a way of explaining what a program does. It is merely an internal program documentation.
● The compiler ignores the comments when forming the object file. This means that the comments are non-
executable statements.
C supports two types of commenting.
● // is used to comment a single statement. This is known as a line comment. A line comment can be placed
anywhere on the line and it does not require to be specifically ended as the end of the line automatically ends
the line.
● /* is used to comment multiple statements. A /* is ended with */ and all statements that lie within these
characters are commented.
KEYWORDS
● C has a set of 32 reserved words often known as keywords. All keywords are basically a sequence of
characters that have a fixed meaning. By convention all keywords must be written in lowercase (small) letters.
● Example: for, while, do-while, auto break, case, char, continue, do, double, else,
enum, extern, float, goto, if, int, long, register, return, short, signed, sizeof, static,
struct, switch, typedef, union, unsigned, void, volatile
© Oxford University Press 2012. All rights reserved.
DATA TYPE SIZE IN BYTES RANGE
IDENTIFIERS char 1 -128 to 127
unsigned char 1 0 to 255
●Identifiers are names given to program elements signed char 1 -128 to 127
such as variables, constants, arrays and functions. int 2 -32768 to 32767
Rules for forming identifier name unsigned int 2 0 to 65535

●it cannot include any special characters or signed short int 2 -32768 to 32767

punctuation marks (like #, $, ^, ?, ., etc) except the signed int 2 -32768 to 32767
short int 2 -32768 to 32767
underscore"_".
unsigned short int 0 to 65535
●There cannot be two successive underscores 2
●Keywords cannot be used as identifiers long int -2147483648 to 2147483647
4
●The names are case sensitive. So, example,
“FIRST” is different from “first” and “First”. unsigned long int
4
0 to 4294967295

●It must begin with an alphabet or an underscore.


signed long int -2147483648 to 2147483647
●It can be of any reasonable length. Though it 4

should not contain more than 31 characters. float 4 3.4E-38 to 3.4E+38

Example: roll_number, marks, name, double 8 1.7E-308 to 1.7E+308

emp_number, basic_pay, HRA, DA, dept_code long double


10
3.4E-4932 to 1.1E+4932

DATA TYPES IN C

© Oxford University Press 2012. All rights reserved.


VARIABLES IN C
● A variable is defined as a meaningful name given to the data storage location in computer memory.
● When using a variable, we actually refer to address of the memory where the data is stored. C language
supports two basic kinds of variables.
● Numeric variables can be used to store either integer values or floating point values.
● While an integer value is a whole numbers without a fraction part or decimal point, a floating point number, can
have a decimal point in them.
● Numeric values may also be associated with modifiers like short, long, signed and unsigned.
● By default, C automatically a numeric variable signed..
● Character variables can include any letter from the alphabet or from the ASCII chart and numbers 0 – 9 that
are put between single quotes.
Variables
To declare a variable specify data type of the variable followed by its name.
Variable names should always be meaningful and must reflect the purpose of
their usage in the program. Variable declaration always ends with a semicolon.
Example, Numeric Character
int emp_num; Variable Variables
float salary;
char grade;
double balance_amount;
unsigned short int acc_no;
© Oxford University Press 2012. All rights reserved.
CONSTANTS
● Constants are identifiers whose value does not change.
● Constants are used to define fixed values like PI or the charge on an electron so that their value does not get
changed in the program even by mistake.
● To declare a constant, precede the normal variable declaration with const keyword and assign it a value. For
example,
const float pi = 3.14;
● Another way to designate a constant is to use the pre-processor command define.
#define PI 3.14159
When the preprocessor reformats the program to be compiled by the compiler, it replaces each defined name
with its corresponding value wherever it is found in the source program. Hence, it just works like the Find and
Replace command available in a text editor.

Rules that needs to be applied to a #define statement which defines a constant.


● Constant names are usually written in capital letters to visually distinguish them from other variable names
which are normally written in lower case characters. Note that this is just a convention and not a rule.
● No blank spaces are permitted in between the # symbol and define keyword
● Blank space must be used between #define and constant name and between constant name and constant
value
● #define is a pre-processor compiler directive and not a statement. Therefore, it does not end with a semi-
colon.
© Oxford University Press 2012. All rights reserved.
STREAMS
● A stream acts in two ways. It is the source of data as well as the destination of data.
● C programs input data and output data from a stream. Streams are associated with a physical
device such as the monitor or with a file stored on the secondary memory.
● In a text stream, sequence of characters is divided into lines with each line being terminated with
a new-line character (\n). On the other hand, a binary stream contains data values using their
memory representation.
● Although, we can do input/output from the keyboard/monitor or from any file but in this chapter we
will assume that the source of data is the keyboard and destination of the data is the monitor.
Streams in a C
program

Text Stream Binary Stream


Keyboard Data

Monitor Data

© Oxford University Press 2012. All rights reserved.


THE PRINTF() FUNCTION
● The printf function is used to display information
required to the user and also prints the values of
the variables. Its syntax can be given as
printf (“conversion string”, variable list);
● The parameter control string is a C string that
length Description
contains the text that has to be written on to the h When the argument is a short int or unsigned short int.
standard output device. The prototype of the When the argument is a long int or unsigned long int for
l
control string can be given as below integer specifiers.
When the argument is a long double (used for floating point
%[flags][width][.precision][length]specifier L
specifiers)

flag description specifier Qualifying Input


c For single character
- Left-justify within the data given field width
d For decimal values
Displays the data with its numeric sign (either + F For floating point numbers
+
or -) E, e Floating point numbers in exponential format

Used to provide additional specifiers like o, x, X,


G, G Floating point numbers in the shorter of e format
# 0, 0x or 0X for octal and hexa decimal values o For Octal number.
respectively for values different than zero. s For a sequence of (string of) characters
u For Unsigned decimal value
0© Oxford University Press 2012. All rights reserved.
The number is left-padded with zeroes (0) instead
of spaces x,X For Hexadecimal value.
THE SCANF() FUNCTION

● The scanf() is used to read formatted data from the keyboard. The syntax of the scanf() can be
given as,
scanf (“control string”, arg1, arg2, ………….argn);
● The control string specifies the type and format of the data that has to be obtained from the
keyboard and stored in the memory locations pointed by the arguments arg1, arg2,…, argn. The
prototype of the control string can be give as:
[=%[*][width][modifiers]type=]
● * is an optional argument that suppresses assignment of the input field. That is, it indicates that
data should be read from the stream but ignored (not stored in the memory location).
● width is an optional argument that specifies the maximum number of characters to be read.
● modifiers is an optional argument that can be h, l or L for the data pointed by the corresponding
additional arguments. Modifier h is used for short int or unsigned short int, l is used for long int,
unsigned long int or double values. Finally, L is used long double data values.
● Type is same as specifier in printf()

© Oxford University Press 2012. All rights reserved.


THE SCANF() FUNCTION

EXAMPLE OF printf() and scanf():


● int num;
● float fnum;
● char ch, str[10];
● double dnum;
● short snum;
● long int lnum;
● printf(“\n Enter the values : “);
● scanf("%d %f %c %s %e %hd %ld", &num, &fnum, &ch, str,
&dnum, &snum, &lnum);
● printf("\n num = %d \n fnum = %.2f \n ch = %c \n str = %s \n dnum
= %e \n snum = %hd \n lnum = %ld", num, fnum, ch, str, dnum,
snum, lnum);
© Oxford University Press 2012. All rights reserved.
OPERATORS IN C
● C language supports a lot of operators to be used in expressions. These operators can be
categorized into the following major groups:
● Arithmetic operators
● Relational Operators
● Equality Operators
● Logical Operators
● Unary Operators
● Conditional Operators
● Bitwise Operators
● Assignment operators
● Comma Operator
OPERATION OPERATOR SYNTAX COMMENT RESULT
● Sizeof Operator
Multiply * a * b result = a * b 27
Divide / a / b result = a / b 3
ARITHMETIC
OPERATORS Addition + a + b result = a + b 12

Subtraction - a - b result = a – b 6
© Oxford University Press 2012. All rights reserved.
Modulus % a % b result = a % b 0
RELATIONAL OPERATORS
Also known as a comparison operator, it is an operator that compares two values. Expressions that contain
relational operators are called relational expressions. Relational operators return true or false value, depending on
whether the conditional relationship between the two operands holds or not.

OPERATOR MEANING EXAMPLE


< LESS THAN 3 < 5 GIVES 1

> GREATER THAN 7 > 9 GIVES 0

>= GREATER THAN OR EQUAL TO 100 >= 100 GIVES O

<= LESS THAN EQUAL TO 50 <=100 GIVES 0

EQUALITY OPERATORS
● C language supports two kinds of equality operators to compare their operands for strict equality or inequality.
● They are equal to (==) and not equal to (!=) operator.

The equality operators have lower precedence than the relational operators.

OPERATOR MEANING

== RETURNS 1 IF BOTH OPERANDS ARE EQUAL, 0 OTHERWISE

!= RETURNS 1 IF OPERANDS DO NOT HAVE THE SAME VALUE, 0 OTHERWISE


© Oxford University Press 2012. All rights reserved.
LOGICAL OPERATORS
● C language supports three logical operators. They are-
Logical AND (&&), Logical OR (||) and Logical NOT (!).
● As in case of arithmetic expressions, the logical expressions
are evaluated from left to right.

A B A &&B A B A || B
A !A
0 0 0 0 0 0
0 1 0 0 1 1 0 1
1 0 0 1 0 1
1 0
1 1 1 1 1 1

© Oxford University Press 2012. All rights reserved.


UNARY OPERATORS
Unary operators act on single operands. C language supports three unary
operators. They are unary minus, increment and decrement operators.
When an operand is preceded by a minus sign, the unary operator negates its
value.
The increment operator is a unary operator that increases the value of its operand
by 1. Similarly, the decrement operator decreases the value of its operand by 1.
For example,
int x = 10, y;
y = x++;
is equivalent to writing
y = x;
x = x + 1; whereas, y = ++x;
is equivalent to writing
x = x + 1;
y = x;
© Oxford University Press 2012. All rights reserved.
CONDITIONAL OPERATOR

● The conditional operator operator (?:) is just like an if .. else statement that can be written within
expressions. The syntax of the conditional operator is exp1 ? exp2 : exp3
Here, exp1 is evaluated first. If it is true then exp2 is evaluated and becomes the result of the
expression, otherwise exp3 is evaluated and becomes the result of the expression.
For example, large = ( a > b) ? a : b
● Conditional operators make the program code more compact, more readable, and safer to use as it is
easier both to check and guarantee that the arguments that are used for evaluation.
● Conditional operator is also known as ternary operator as it is neither a unary nor a binary operator; it
takes three operands.

© Oxford University Press 2012. All rights reserved.


BITWISE OPERATORS

● Bitwise operators perform operations at bit level. These operators include:


bitwise AND, bitwise OR, bitwise XOR and shift operators.
● The bitwise AND operator (&) is a small version of the boolean AND (&&)
as it performs operation on bits instead of bytes, chars, integers, etc.
● The bitwise OR operator (|) is a small version of the boolean OR (||) as it
performs operation on bits instead of bytes, chars, integers, etc.
● The bitwise NOT (~), or complement, is a unary operation that performs
logical negation on each bit of the operand. By performing negation of each
bit, it actually produces the ones' complement of the given binary value.
● The bitwise XOR operator (^) performs operation on individual bits of the
operands. The result of XOR operation is shown in the table

© Oxford University Press 2012. All rights reserved.


BITWISE SHIFT OPERATORS
In bitwise shift operations, the digits are moved, or shifted, to the left or
right. The CPU registers have a fixed number of available bits for storing
numerals, so when we perform shift operations; some bits will be "shifted
out" of the register at one end, while the same number of bits are "shifted
in" from the other end.
In a left arithmetic shift, zeros are shifted in on the right. For example;
unsigned int x = 11000101;
Then x << 2 = 00010100
If a right arithmetic shift is performed on an unsigned integer then zeros are
shifted on the left.
unsigned int x = 11000101; A B A^B
0 0 0
Then x >> 2 = 00110001
0 1 1
1 0 1
© Oxford University Press 2012. All rights reserved. 1 1 0
ASSIGNMENT OPERATORS

● The assignment operator is responsible for assigning values to the variables. While the equal sign (=) is the
fundamental assignment operator, C also supports other assignment operators that provide shorthand ways to
represent common variable assignments. They are shown in the table.

OPERATOR SYNTAX EQUIVALENT TO


/= variable /= expression variable = variable / expression
\= variable \= expression variable = variable \ expression
*= variable *= expression variable = variable * expression
+= variable += expression variable = variable + expression
-= variable -= expression variable = variable - expression
&= variable &= expression variable = variable & expression
^= variable ^= expression variable = variable ^ expression
<<= variable <<= amount variable = variable << amount
>>= variable
© Oxford>>= amount
University Press 2012. All rights variable
reserved. = variable >> amount
COMMA OPERATOR
● The comma operator in C takes two operands. It works by evaluating the first and discarding its value, and then evaluates
the second and returns the value as the result of the expression.
● Comma separated operands when chained together are evaluated in left-to-right sequence with the right-most value
yielding the result of the expression.
● Among all the operators, the comma operator has the lowest precedence. For example,
int a=2, b=3, x=0;
x = (++a, b+=a);
Now, the value of x = 6.

SIZEOF OPERATOR
●sizeof is a unary operator used to calculate the sizes of data types.
●It can be applied to all data types.
●The operator returns the size of the variable, data type or expression in bytes.
●'sizeof' operator is used to determine the amount of memory space that
the variable/expression/data type will take.
For example,
●sizeof(char) returns 1, that is the size of a character data type. If we have,
int a = 10;
unsigned int result;
result = sizeof(a);
then result = 2,
© Oxford University Press 2012. All rights reserved.
TYPE CONVERSION AND TYPE CASTING
● Type conversion and type casting of variables refers to changing a variable of one data type into another.
● While type conversion is done implicitly, casting has to be done explicitly by the programmer. We will discuss
both of them here.
● Type conversion is done when the expression has variables of different data types. So to evaluate the
expression, the data type is promoted from lower to higher level where the hierarchy of data types can be
given as: double, float, long, int, short and char.
● For example, type conversion is automatically done when we assign an integer value to a floating point
variable. For ex,

float x;
int y = 3;
x = y;
Now, x = 3.0,
●Type casting is also known as forced conversion. It is done when the value of a higher data type has to be
converted in to the value of a lower data type. For example, we need to explicitly type cast an integer variable
into a floating point variable.
float salary = 10000.00;
int sal;
sal = (int) salary;
●Typecasting can be done by placing the destination data type in parentheses followed by the variable
name that has to be converted.© Oxford University Press 2012. All rights reserved.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy