140 likes | 237 Views
Department of Computer and Information Science, School of Science, IUPUI. A First C Program. Try Your First C Program. #include <stdio.h> /* I/O header file */ main() { printf(“Hello world ”); printf(“Welcome to CSCI230<br>“); printf(“I am John Smith<br>”); }
E N D
Department of Computer and Information Science,School of Science, IUPUI A First C Program
Try Your First C Program #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 asmain.c % gcc main.c % a.out and observe its result. comment header file – contains I/O routines pre-processordirective main must be present in each C program Indicates a program building block called function one statement statement terminator
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: _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 …
Fundamental Data Type • Four Data Types(assume 2’s complement, byte machine) • Note:27 = 128, 215 =32768, 231 = 2147483648 • Complex and double complex are not available
Variable Declarations type v1,v2,v3, …, vn Example: int i; int j; float k; char c; shortint x; long int y; unsigned int z; int a1, a2, a3, a4, a5;
Numeric, Char, String Literals • 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
Numeric, Char, String Literals • 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>
... A B C D ‘\0’ Numeric, Char, String Literals • 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” 4 chars but takes 5 byte spaces in memory Question: “I am a string” takes ? Bytes Ans:13+1 = 14 bytes
Numeric, Char, String Literals • 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 ‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38 in the memory 1 38
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;
Memory Concepts • Each variable has a name, address, type, and value • int x; • scanf(“%d”, &x); • user inputs 10 • 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
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 */
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
Example 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