2. Dale Roberts
#include <stdio.h> /* I/O header file */
main()
{
printf(“Hello world ”);
printf(“Welcome to CSCI230n“);
printf(“I am John Smithn”);
}
A C program contains one or more functions
main() is the function name of your main (root) program
{ }: braces (left & right) to construct a block containing the statements of a
function
Every statement must end with a ;
is called an escape character
n is an example of an escape sequence which indicates newline
Other escape sequences are: t r a ”
Exercise: Use any editor to type and then save your first program as main.c
% gcc main.c
% a.out and observe its result.
header file – contains I/O routines
pre-processor directive
one statement
main must be present in each C program
statement terminator
Indicates a
program
building
block called
function
comment
3. Dale Roberts
Variable identifiers
Begin with a letter or underscore: A-Z, a-z, _
The rest of the name can be letters, underscore, or digits
Guarantee that east least the first 8 characters are significant (those
come after the 8th character will be ignored) while most of C compiler
allows 32 significant characters.
Example:
_abc ABC Time time _a1 abcdefgh
abcdefghi (may be the same as abcdefgh)
Case sensitive
Keywords: reserved names (lexical tokens)
auto double if static break else int struct
case entry long switch char extern register
typedef float return union do go sizeof continue
…
4. Dale Roberts
Four Data Types (assume 2’s complement, byte machine)
Data Type Abbreviation Size
(byte)
Range
char char 1 -128 ~ 127
unsigned char 1 0 ~ 255
int
int 2 or 4 -215
~ 215
-1 or -231
~ 231
-1
unsigned int unsigned 2 or 4 0 ~ 65535 or 0 ~ 232
-1
short int short 2 -32768 ~ 32767
unsigned short int unsigned short 2 0 ~ 65535
long int long 4 -231
~ 231
-1
unsigned long int unsigned long 4 0 ~ 232
-1
float 4
double 8
Note: 27
= 128, 215
=32768, 231
= 2147483648
Complex and double complex are not available
5. Dale Roberts
type v1,v2,v3, …, vn
Example:
int i;
int j;
float k;
char c;
short int x;
long int y;
unsigned int z;
int a1, a2, a3, a4, a5;
6. Dale Roberts
Literal
Numeric literal
fixed-point
octal O32 (= 24D) (covered later)
hexadecimal OxFE or Oxfe (=254D) (covered later)
decimal int 32
long (explicit) 32L or 32l
an ordinary integer literal that is too long to fit in an int is
also too long for long
floating-point
No single precision is used; always use double for literal
Example:
1.23
123.456e-7
0.12E
7. Dale Roberts
• Character literal (covered later)
•American Standard Code for Information Interchange (ASCII)
•Printable: single space 32
‘0’ - ‘9’ 48 - 57
‘A’ - ‘Z’ 65 - 90
‘a’ - ‘z’ 97 - 122
•Nonprintable and special meaning chars
‘n’ new line 10 ‘t’ tab 9
‘’ back slash 9 ‘’’ single quote 39
‘0’ null 0 ‘b’ back space 8
‘f’ formfeed 12 ’r’ carriage return 13
‘”’ double quote 34
‘ddd’ arbitrary bit pattern using 1-3 octal digits
‘Xdd’ for Hexadecimal mode
‘017’ or ‘17’ Shift-Ins, ^O
‘04’ or ‘4’ or ‘004’ EOT (^D)
‘033’ or ‘X1B’ <esc>
8. Dale Roberts
String Literal
will be covered in Array section
String is a array of chars but ended by ‘0’
String literal is allocated in a continuous memory
space of Data Segment, so it can not be rewritten
Example: “ABCD”
...A B C D ‘0’
Ans: 13+1 = 14 bytes
Question: “I am a string” takes ? Bytes
4 chars but takes 5 byte spaces in memory
9. Dale Roberts
• Character literals & ASCII codes:
char x;
x=‘a’; /* x = 97*/
Notes:
–‘a’ and “a” are different; why?
‘a’ is the literal 97
“a” is an array of character literals, { ‘a’, ‘0’} or {97, 0}
–“a” + “b” +”c” is invalid but ‘a’+’b’+’c’ = ? (hint: ‘a’ = 97 in ASCII)
–if the code used is not ASCII code, one should check out each
value of character
1 38
‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38
in the memory
10. Dale Roberts
If a variable is not initialized, the value of
variable may be either 0 or garbage depending
on the storage class of the variable.
int i=5;
float x=1.23;
char c=‘A’;
int i=1, j,k=5;
char c1 = ‘A’, c2 = 97;
float x=1.23, y=0.1;
11. Dale Roberts
Each variable has a name, address, type, and value
1) int x;
2) scanf(“%d”, &x);
3) user inputs 10
4) x = 200;
After the execution of (1) x
After the execution of (2) x
After the execution of (3) x
After the execution of (4) x
Previous value of x was overwritten
10
200
12. Dale Roberts
Write a program to take two numbers as input data
and print their sum, their difference, their product and
their quotient.
Problem Inputs
float x, y; /* two items */
problem Output
float sum; /* sum of x and y */
float difference; /* difference of x and y */
float product; /* product of x and y */
float quotient; /* quotient of x divided by
y */
13. Dale Roberts
Pseudo Code:
Declare variables of x and y;
Prompt user to input the value of x and y;
Print the sum of x and y;
Print the difference of x and y;
Print the product of x and y;
If y not equal to zero, print the quotient of x divided
by y
14. Dale Roberts
#include <stdio.h>
int main(void)
{
float x,y;
float sum;
printf(“Enter the value of x:”);
scanf(“%f”, &x);
printf(“nEnter the value of y:”);
scanf(“%f”, &y);
sum = x + y;
printf(“nthe sum of x and y is:%f”,sum);
printf(“nthe sum of x and y is:%f”,x+y);
printf(“nthe difference of x and y is:%f”,x-y);
printf(“nthe product of x and y is:%f”,x*y);
if (y != 0)
printf(“nthe quotient of x divided by y is:%f”,x/y);
else
printf(“nquotient of x divided by y does not
exist!n”);
return(0);
}
function
• name
• list of argument along with their types
• return value and its type
• Body
inequality operator