14
Dale Robert Dale Robert Department of Computer and Information Science, School of Science, IUPUI A First C Program

C language

Embed Size (px)

Citation preview

Page 1: C language

Dale RobertsDale Roberts

Department of Computer and Information Science,School of Science, IUPUI

A First C Program

Page 2: C language

Dale Roberts

#include <stdio.h> /* I/O header file */

main(){

printf(“Hello world ”);printf(“Welcome to CSCI230\n“);

printf(“I am John Smith\n”);}

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 routinespre-processor directive

one statement

main must be present in each C program

statement terminator

Indicates a program building block called function

comment

Page 3: C language

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 abcdefghabcdefghi (may be the same as abcdefgh)

Case sensitive Keywords: reserved names (lexical tokens)

auto double if static break else int structcase entry long switch char extern registertypedeffloat return union do go sizeof continue…

Page 4: C language

Dale Roberts

Four Data Types (assume 2’s complement, byte machine)Data Type Abbreviation Size

(byte)Range

char char 1 -128 ~ 127unsigned char 1 0 ~ 255

int

int 2 or 4 -215 ~ 215-1 or -231 ~ 231-1unsigned int unsigned 2 or 4 0 ~ 65535 or 0 ~ 232-1short int short 2 -32768 ~ 32767unsigned short int unsigned short 2 0 ~ 65535long int long 4 -231 ~ 231-1unsigned long int unsigned long 4 0 ~ 232-1

float 4

double 8

Note: 27 = 128, 215 =32768, 231 = 2147483648Complex and double complex are not available

Page 5: C language

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;

Page 6: C language

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 literalExample: 1.23123.456e-70.12E

Page 7: C language

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>

Page 8: C language

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 rewrittenExample: “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

Page 9: C language

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

Page 10: C language

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;

Page 11: C language

Dale Roberts

Each variable has a name, address, type, and value1) int x;2) scanf(“%d”, &x);3) user inputs 104) x = 200; After the execution of (1) x

After the execution of (2) xAfter the execution of (3) xAfter the execution of (4) x

Previous value of x was overwritten

10

200

Page 12: C language

Dale Roberts

Write a program to take two numbers as input data and print their sum, their difference, their product and their quotient.

Problem Inputsfloat x, y; /* two items */

problem Outputfloat 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 */

Page 13: C language

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

Page 14: C language

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);elseprintf(“\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