CECS 121 EXAM 1 /* C Programming for the Absolute Beginner */ // by Michael Vine #include <stdio.h> #include <stdlib.h> main() { printf(“\nC you later\n”); system(“pause”); } Serve to control program execution and functionality. Must end with a semicolon(;) with the exception of: Comments: /* */ Preprocessor Directives: #include or #define Begin and end program identifiers: { } Function definition beginnings: main() Functions allow you to group program statements under one name C is case-sensitive so main(), MAIN(), and Main() are all different The main function is special because the values it returns are returned to the operating system Most main functions in this course do not take or pass information to the operating system Definition: Escape sequences are specially sequenced characters used to format output \” Ex: printf(“ \ “This is quoted text \ “ “) \’ Ex: printf(“ \n A single quote looks like \’ \n”); \* *\ Comment Block #include <stdio.h> Using a directive to include a header file stdio.h = standard input output header file stdlib.h = ‘system’ commands A computer’s long-term memory is called nonvolatile memory and is generally associated with mass storage devices, such as hard drives. A computer’s short term memory is called volatile memory. It loses is data when power is removed from the computer Data Type Description Declaration Example Integer Whole numbers, positive or negative int x = Floatingpoint number All numbers, positive or negative, decimals and fractions float x = ; Character Representations of integer values known as character codes char x =‘’ To declare a constant (read only) value: const int x = 20; const float PI = 3.14; ; -3 , 0, 3 , 29 -0.35543 , 0.00, 554433.33281 ; m, M, * TYPE SIZE VALUES bool 1 byte true (1) or false (0) char 1 byte ‘a’ to‘z’ , ‘A’ to ‘Z’, ‘0’ to ‘9’, space, tab, and so on int 4 bytes -2,147,483,648 to 2,147,483,647 short 2 bytes -32,768 to 32,767 long 4 bytes -2,147,483,648 to 2,147,483,647 float 4 bytes + - (1.2 x 10^-38 to 3.4 x 10^38) double 8 bytes +- (2.3 x 10^-308 to -1.7 x 10^308) Can you explain what the code is doing? Character Integer Float (decimal)String Printf Format Tags: %c %d %f %s %[flags][width][.precision][length]specifier %[.precision]specifer -> %.2f int main() { printf (“%c %c \n", 'a', 65); printf (" %10d \n", 1977); printf ("%010d \n", 1977); printf ("floats: %4.2f \n", 3.1416); printf ("%s \n", "A string"); printf(“%f \n”, 55.55); return 0; } } printf (“%c %c \n", 'a', 65); printf ("%d %ld\n", 1977, 650000L); printf (" %10d \n", 1977); printf ("%010d \n", 1977); printf ("floats: %4.2f \n", 3.1416); printf ("%s \n", "A string"); aA 1977650000 1977 0000001977 3.14 A string Can you create a tabular data using printf? Example printf(“%.1f”,3.123456); printf(“\n%.2f”,3.123456); printf(“\n%.3f”,3.123456); Printout printf(“\n%.4f”,3.123456); 3.1235 printf(“\n%.5f”,3.123456); 3.12346 printf(“\n%.6f”,3.123456); 3.123456 3.1 3.12 3.123 Syntax scanf(“conversion specifier”, variable); Conversion Specifies %d %f %c Description Receives integer value Receives floating-point number Receives character #include <stdio.h> main() { int iOperand1 = 0; int iOperand2 = 0; printf(“\n Enter first operand: “); scanf(“%d”, &iOperand1); printf(“\n Enter second operand: “); scanf(“%d”, &iOperand2); printf(“The result is %d \n”, 24/(iOperand1 * iOperand2)+6/3); } Operator Description * Multiplication / Division % Modulus (remainder) + Addition - Subtraction Order of Precedence Description () Parentheses are evaluated first, from innermost to outermost *, /, % Evaluated second, from Left to Right +,- Evaluated last, from Left to Right #include <stdio.h> main() { int x = 4; int y = 9; int result1, result2; result1 = y/x; result2 = y%x; printf(“The result is %d.%d \n”, result1, 25*result2); } Operator Description == Equal to != Not Equal > Greater Than < Less Than >= Greater Than or Equal to <= Less Than or Equal to Order of Precedence Description && || AND condition OR condition Do you know the answers to these? A. !( 1 || 0 ) B. !( 1 || 1 && 0 ) C. !( ( 1 || 0 ) && 0 ) A. !( 1 || 0 ) ANSWER: 0 B. !( 1 || 1 && 0 ) ANSWER: 0 (AND is evaluated before OR) C. !( ( 1 || 0 ) && 0 ) ANSWER: 1 (Parenthesis are useful) Can you write code that will ask a user to enter a number 1 , 2 , or 3 and print out the following: User Input Printout 1 1 is the loneliest number 2 2 is better than 1 3 3’s a crowd #include <stdio.h> int main() { int a; printf (“Enter one of the following: %d, %d, or %d\n”, 1, 2, 3); scanf(“%d”, &a); if(a==1|| a==2|| a ==3) { if(a==1){ printf(“\n %d is the loneliest number \n“, 1); } if(a==2){ printf(“\n%d is better than %d \n”,2,1); } if(a==3){ printf(“\n%d \’ s a crowd \n”,3); } else printf(“Sorry, you entered an invalid value\n”); return 0; } while ( condition ) { Code to execute while the condition is true } Quiz: Can you write a program that prints x while x increments from 0 to 10? x++; ++x; Tells the function to use the current value of x and increment it by 1. Increment the value of x by 1 and use the new value for calculations. x--; --x; Tells the function to use the current value of x and decrease its value by 1. Decrease the value of x by 1 and use the new value for calculations. x=0; printf(“The Value of x is: %d”, x++); printf(“\n The Value of x is: %d”,++x); Would results in: The Value of x is: 0 The Value of x is: 2 Application of: += & -= Equivalent Equation x += y; x = x + y; x -= y; x = x – y; Often used when the # of iterations is already known. Contains 3 separate expressions: 1. Variable initialization 2. Conditional expression 3. Increment/Decrement Try writing a program with a for loop that counts down from 10 seconds. #include <stdio.h> main() { int x=0; for(x=10; x>=0; x--) { printf("%d \n", x); } system("pause"); } break; Used to exit a loop. Once this statement is executed the program will execute the statement immediately following the end of the loop. continue; Used to manipulate program flow in a loop. When executed, any remaining statements in the loop will be skipped and the next iteration of the loop will begin