Professional Documents
Culture Documents
3 Basics
3 Basics
int main()
Start of Segment
{ Function for printing text
printf("Hello world!\n");
return 0; End of statement
End of Segment
Preprocessor Directives
• A C program begins with # which provides an instruction to the C
preprocessor
• It is executed before the actual compilation is done.
• Two most common directives :
• #include
• #define
• In our example (#include<stdio.h>) identifies the header
file for standard input and output operations.
Function main()
• Identify the start of the program
• Every C program has a main( )
• 'main' is a C keyword. We must not use it for any other
purpose.
• 4 common ways of main declaration
return 0;
} } } }
The curly braces { }
• Identify a segment / body of a program
• The start and end of a function
• The start and end of the selection or repetition block.
• Since the opening brace indicates the start of a segment
with the closing brace indicating the end of a segment,
there must be just as many opening braces as closing
braces (this is a common mistake of beginners)
Statement
• Specifying an action to be taken by the computer as the program
executes.
• Each statement in C needs to be terminated with semicolon (;)
• Example:
#include <stdio.h>
int main()
{
printf(“I love programming\n”); statement
printf(“You will love it too once ”); statement
printf(“you know the trick\n”); statement
return 0; statement
}
Statement
• Statement has two parts :
• Declaration
• The part of the program that tells the compiler the names of memory
cells in a program
• Executable statements
• Program lines that are converted to machine language instructions and
executed by the computer
An Example
/*
Converts distance in miles
to kilometres.
*/
#include <stdio.h> //printf, scanf definitions
#define KMS_PER_MILE 1.609 //conversion constant
int main(void) {
float miles, // input – distance in miles
kms; // output – distance in kilometres
miles = 10.5;
//Convert the distance to kilometres
kms = KMS_PER_MILE * miles;
return 0;
}
Why scanf()
Programmer vs User
An Example
/*
Converts distance in miles
to kilometres.
*/
#include <stdio.h> //printf, scanf definitions
#define KMS_PER_MILE 1.609 //conversion constant
int main(void) {
float miles, // input – distance in miles
kms; // output – distance in kilometres
return 0;
}
An Example
/*
Converts distance in miles
to kilometres.
*/ standard header file
preprocessor #include <stdio.h> //printf, scanf definitions
directives #define KMS_PER_MILE 1.609 //conversion constant
constant
int main(void) {
float miles, // input – distance in miles
reserved kms; // output – distance in kilometres
words
//Get the distance in miles
variables printf("Enter distance in miles: "); comments
scanf("%f", &miles);
return 0;
} punctuations
An Example
/*
Converts distance in miles
to kilometres.
*/
#include <stdio.h> //printf, scanf definitions
#define KMS_PER_MILE 1.609 //conversion constant
int main(void) {
float miles, // input – distance in miles
declarations
kms; // output – distance in kilometres
return 0;
}
An Example
/*
Converts distance in miles
to kilometres.
*/
#include <stdio.h> //printf, scanf definitions
#define KMS_PER_MILE 1.609 //conversion constant
int main(void) {
float miles, // input – distance in miles
kms; // output – distance in kilometres
-2,147,483,648 to n/a
int 4 bytes 2,147,483,647
Memory
26
A closer look at variables
Memory
27
A closer look at variables
Memory
a 139
b -5
28
A closer look at variables
Memory
a 139
b -5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 132 bits
29
A closer look at variables
Memory
a 139
b -5
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 132 bits
30
------------------------------------ 2’s complement of 5 ------------------------
A closer look at variables
char c = ‘H’;
0 1 0 0 1 0 0 0 8 bits
A closer look at variables
char c = ‘H’;
0 1 0 0 1 0 0 0 8 bits
?
A closer look at variables
char c = 0x2A;//stores (00101010)2=(2A)16
0 1 0 0 1 0 0 0 8 bits
?
10010002 = 7210
Input/Output Operations
• Input operation
• an instruction that copies data from an input device into
memory
• Output operation
• an instruction that displays information stored in memory to
the output devices (such as the monitor screen)
Input/Output Functions
• A C function that performs an input or output operation
• A few functions that are pre-defined in the header file
stdio.h such as :
• printf()
• scanf() #include <stdio.h>
• getchar() & putchar()
int main () {
char c;
printf("Enter character: ");
c = getchar();
printf("Character entered: ");
putchar(c);
return(0);
}
Output:
Enter character: a
Character entered: a
The printf function
• Used to send data to the standard output (usually the monitor) to
be printed according to specific format.
• General format:
• printf(“string literal”);
• A sequence of any number of characters surrounded by
double quotation marks.
• printf(“format string”, variables);
• Format string is a combination of text, conversion specifier
and escape sequence.
The printf function
• Example:
• printf(“Thank you”);
• printf (“Total sum is: %d\n”, sum);
• %d is a placeholder (conversion specifier)
• marks the display position for a type
integer variable
• \n is an escape sequence
• moves the cursor to the new line
Placeholder / Conversion Specifier
No Conversion Output Type Output Example
Specifier
1 %d Signed decimal integer -76
2 %i Signed decimal integer 76
3 %o Unsigned octal integer 134
4 %u Unsigned decimal integer 76
5 %x Unsigned hexadecimal (small letter) 9c
6 %X Unsigned hexadecimal (capital letter) 9C
7 %f Integer including decimal point 76.0000
8 %e Signed floating point (using e 7.6000e+01
notation)
9 %E Signed floating point (using E 7.6000E+01
notation)
10 %g The shorter between %f and %e 76
11 %G The shorter between %f and %E 76
12 %c Character ‘7’
13 %s String “76”
Escape Sequence
Escape Sequence Effect
\a Beep sound
\b Backspace
\n New line
\t Tab
\v Vertical tab
\\ Backslash
\” “ sign
Formatting output
int meters = 21, feet = 68 , inches =
11;
printf("Results:%3d meters=%4d ft.%2d
in.\n", meters, feet, inches);
R e s u l t s : 2 1 m e t e r s = 6 8 f t . 1 1 i n .
• printf(“%6.2f”,x);
The scanf function
• Read data from the standard input device (usually keyboard) and
store it in a variable.
• General format:
• scanf(“Format string”, &variable);
• Notice ampersand (&) operator :
• C address of operator
• it passes the address of the variable instead of the variable
itself
• tells the scanf() where (in the RAM) to find the variable to store
the new value
The scanf function
• Example :
int age;
printf(“Enter your age: “);
scanf(“%d”, &age);
printf scanf
int %d %d
float %f %f
double %lf %lf
char %c %c
string %s %s
The scanf function
• If you want the user to enter more than one value, you
serialize the inputs.
• Example:
float height, weight;
int a = 3, b = 5;
double c;
Highest: + - (unary)
* / %
Lowest: + - (binary)
Operator Precedence
• Examples:
i + j * k means i + (j * k)
-i * -j means (-i) * (-j)
+i + j / k means (+i) + (j / k)
Associativity
• Operator precedence rules alone aren’t enough when an
expression contains two or more operators at the same level
of precedence. The associativity of the operators now comes
into play.
• Examples of associativity:
i - j - k means (i - j) - k
i * j / k means (i * j) / k
i - j * i + k means (i - (j * i)) + k
- - i means -(-i) right associative
Increment and Decrement
Operators
• The ++ and -- operators increment and decrement variables.
• Both operators have the same precedence as negation.
• Either operator can be prefix or postfix:
++i (same as i = i + 1)
i++ (same as i = i + 1)
--i (same as i = i - 1)
i-- (same as i = i - 1)
• When used as a prefix operator, ++ increments the variable
before its value is fetched:
i = 1;
printf("i is %d\n", ++i); /* prints "i is 2" */
Increment and Decrement
Operators
• When used as a postfix operator, ++ increments the variable
after its value is fetched:
i = 1;
printf("i is %d\n", i++); /* prints "i is 1" */
printf("i is %d\n", i); /* prints "i is 2" */
i = 1;
printf("i is %d\n", i--); /* prints "i is 1" */
printf("i is %d\n", i); /* prints "i is 0" */
Increment and Decrement
Operators
int R = 10, count=10;
printf("%d\n", 3 % 5 / (5 % 3));
return 0;
}
Bitwise Operators
• OR vs XOR & bitwise AND
• Students who have
| bitwise OR
completed CSE115 or
Mat116 can take CSE173. ^ bitwise XOR
• Soup or salad comes with Exclusive-OR
this entrée ~ 1’s compliment
<< Shift left
>> Shift right
All these operators (except ~) can be
suffixed with =
For instance, a &= b; is the same as
a = a & b;
Bitwise Operators
• Truth table
1 0 0 0 0 0
1 1 1 0 1 0
0 1 1 0 0 1
0 0 1 1 1 1
Bitwise Operators
• Examples
~11010011
------------
00101100
Bitwise Operators
• Examples: int a = 33333, b = -77777;
11010011>>3 11010011<<3
------------ ------------
Right 00011010 left 10011000
𝑑2
𝑑1
• Write a program that accepts a character (small letter) as input from the user
and (a) converts it into uppercase letter and (b) shows its binary equivalent. For
example if the user input is ‘b’ then your output is ‘B’ and 01100010 (ASCII code
of ‘b’ is 98 and binary equivalent of 98 is 01100010)