Download presentation
Presentation is loading. Please wait.
Published byJeremy Cannon Modified over 9 years ago
1
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI E-mail: droberts@cs.iupui.edu A First C Program
2
Dale Roberts 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”); 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 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 Identifiers 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 : _abcABCTimetime _a1abcdefgh abcdefghi (may be the same as abcdefgh ) Case sensitive Keywords: reserved names (lexical tokens) autodoubleifstaticbreakelseintstruct caseentrylongswitchcharexternregister typedeffloatreturnuniondogosizeofcontinue …
4
Dale Roberts Fundamental Data Type Four Data Types Four Data Types (assume 2’s complement, byte machine) Data TypeAbbreviationSize (byte) Range char 1-128 ~ 127 unsigned char 10 ~ 255 int 2 or 4-2 15 ~ 2 15 -1 or -2 31 ~ 2 31 -1 unsigned intunsigned 2 or 40 ~ 65535 or 0 ~ 2 32 -1 short intshort 2-32768 ~ 32767 unsigned short intunsigned short 20 ~ 65535 long intlong 4-2 31 ~ 2 31 -1 unsigned long intunsigned long 40 ~ 2 32 -1 float 4 double 8 Note: 2 7 = 128, 2 15 =32768, 2 31 = 2147483648 Complex and double complex are not available
5
Dale Roberts Variable Declarations type v 1,v 2,v 3, …, v n 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 Numeric, Char, String Literals Literal Numeric literal fixed-point octal O32 (= 24 D ) (covered later) hexadecimal OxFE or Oxfe (=254 D ) (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 space32 ‘0’ - ‘9’48 - 57 ‘A’ - ‘Z’65 - 90 ‘a’ - ‘z’97 - 122 Nonprintable and special meaning chars ‘\n’ new line10 ‘\t’ tab 9 ‘\\’ back slash 9 ‘\’’ single quote39 ‘\0’ null 0 ‘\b’ back space 8 ‘\f’ formfeed12 ’\r’ carriage return13 ‘\”’ double quote34 ‘\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’ Numeric, Char, String Literals
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 Numeric, Char, String Literals
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 Numeric, Char, String Literals 1 38 ‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38 in the memory
10
Dale Roberts Initialization 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 Memory Concepts Each variable has a name, address, type, and value 1) 1) int x; 2) 2) scanf(“%d”, &x); 3) 3) user inputs 10 4) 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 Sample Problem 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 Sample Problem (cont.) 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 Example Program #include 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.