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

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

description

Department of Computer and Information Science, School of Science, IUPUI. A First C Program. Try Your First C Program. #include /* I/O header file */ main() { printf(“Hello world ”); printf(“Welcome to CSCI230\n“); printf(“I am John Smith\n”); } - PowerPoint PPT Presentation

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

Dale Roberts

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

A First C Program

Dale Roberts

Try Your First C ProgramTry Your First C Program

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

main()main(){{

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

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

A C program contains one or more functionsmain() is the function name of your main (root) program{ }: braces (left & right) to construct a block containing the statements of a functionEvery statement must end with a ; \ is called an escape character \n is an example of an escape sequence which indicates newlineOther 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

Dale Roberts

IdentifiersIdentifiersVariable identifiersVariable 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

typedeffloat return union do go sizeof continue…

Dale Roberts

Fundamental Data TypeFundamental Data Type

Four Data TypesFour 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 = 2147483648Complex and double complex are not available

Dale Roberts

Variable DeclarationsVariable Declarations

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;

Dale Roberts

Numeric, Char, String LiteralsNumeric, Char, String LiteralsLiteralLiteral

Numeric literalfixed-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-pointNo single precision is used; always use double for literal

Example:

1.23

123.456e-7

0.12E

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>

Numeric, Char, String LiteralsNumeric, Char, String Literals

Dale Roberts

String LiteralString Literalwill 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

Numeric, Char, String LiteralsNumeric, Char, String Literals

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

Numeric, Char, String LiteralsNumeric, Char, String Literals

1 38

‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38

in the memory

Dale Roberts

InitializationInitialization

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;

Dale Roberts

Memory ConceptsMemory Concepts

Each variable has a name, address, type, and Each variable has a name, address, type, and valuevalue1) int x;

2) scanf(“%d”, &x);

3) user inputs 104) 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

Dale Roberts

Sample ProblemSample Problem

Write a program to take two numbers as input data and Write a program to take two numbers as input data and print their sum, their difference, their product and their print their sum, their difference, their product and their quotient.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 */

Dale Roberts

Sample Problem Sample Problem (cont.)(cont.)

Pseudo Code: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

Dale Roberts

Example ProgramExample Program#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