1 / 51

CECS 130 Mid-term Test Review

REACH. CECS 130 Mid-term Exam Review Summer, 2019. CECS 130 Mid-term Test Review. Provided by REACH – Resources for Academic Achievement Presenter:. Nikhil Paonikar. To download this presentation…. Go to reach.louisville.edu Click “Tutoring” at the top left of the page.

irving
Télécharger la présentation

CECS 130 Mid-term Test Review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. REACH CECS 130 Mid-term Exam Review Summer, 2019 CECS 130 Mid-term Test Review Provided by REACH – Resources for Academic Achievement Presenter: Nikhil Paonikar

  2. To download this presentation… • Go to reach.louisville.edu • Click “Tutoring” at the top left of the page. • Click “Computer Tutoring” under the heading “TUTORING SERVICES FOR ALL STUDENTS.” • Click “CECS Test Reviews” on the right-hand column. • Scroll down to find your class. • Or, just go to tiny.cc/REACH4CECS

  3. Variable Types To declare a constant (read only) value: const int x = 20; const float PI = 3.14;

  4. Variable Types

  5. scanf( ) ; printf( ) • int x = 0; • printf(“ What number should I print out? \n ”); • scanf(“%d”, &x); //variables require an “&” sign before them for scanf()! • printf(“\n You chose: %d \n”, x); //but not for printf()!!

  6. Conversion Specifiers • Character - %c • Integer - %d • Float (decimal)- %f • String - %s • printf Format Tags: • Format: %[flags][width][.precision][length]specifier • Example: %[.precision]specifier • Output: 12.12, 12.123, 12.12343

  7. Arithmetic, Logic and Order of Precedence *This is a highly abbreviated list. See https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence for the full order of precedence.

  8. Predict the printout: User enters ‘2’ and ‘4’:

  9. Predict the printout: User enters ‘2’ and ‘4’: Output: Please enter first number: 2 Enter second number: 4 The result is 5.

  10. Can you predict the printout?

  11. Can you predict the printout? Output: The result is 2.25

  12. Conditions and Operators

  13. Comparisons > greater than 5 > 4 is TRUE < less than 4 < 5 is TRUE >= greater than or equal 4 >= 4 is TRUE <= less than or equal 3 <= 4 is TRUE == equal to 5 == 5 is TRUE != not equal to 5 != 4 is TRUE

  14. Boolean Operators Do you know the answer to these? • A. !( 1 | | 0 ) • B. !( 1 | | 1>0 && 0 ) • C. !(( 1 | | 1>0 ) && 0)

  15. B. Boolean Operators • Answers: • A. • C. • !(1||0) • =!(1) • =0 • !(1||1<0&&0) • =!(1||0&&0) • =!(1||0) • =!(1) • =0 • !((1||1<0)&&0) • =!((1||0)&&0) • =!(1&&0) • =!(0) • =1

  16. Using if-statements, write a program that will ask a user to enter a number 1, 2, or 3, and print out the following: Example

  17. Example:

  18. Switch-Case Statement

  19. The while( ) loop • while ( condition ) { Code to execute while the condition is true }

  20. The for( ) loop • Often used when the # of iterations is already known. • Contains 3 separate expressions: • Variable initialization • Conditional expression • Increment/Decrement

  21. Break/Continue Statements • 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.

  22. Function Prototypes & Definitions • Function Prototype Syntax • return-type function_name ( arg_type arg1, ..., arg_type argN ) • Function Prototypes tell you the data type returned by the function, the datatype of the function’s parameters, how many parameters it takes, and the order of parameters. • Function definitions implement the function prototype • Where are function prototypes located in the program? • Where do you find function definitions?

  23. Function Prototypes & Definitions • Where are function prototypes located in the program? Answer: before the main( ) { } function. • Where do you find function definitions? Answer: function definitions are self-contained outside of the main( ) { } function, usually written below it.

  24. Function Example • #include <stdio.h> • int mult (int,int); // function prototype • int main() • { • int x; • int y; • int z; • printf( “\n x = "); scanf( "%d", &x ); • printf( “\n y = ”); scanf( "%d", &y ); • printf( “\n z = ”); scanf( "%d", &z ); • printf( “\n x*y = %d\n", mult( x, y ) ); • printf( “\n z^2 = %d\n", mult( z, z ) ); • } • int mult (int a, int b) { //function definition • return a * b; • }

  25. Function Example Output: x = 2 y = 3 z = 4 x*y = 6 z^2 = 16 • #include <stdio.h> • int mult (int,int); // function prototype • int main() • { • int x; • int y; • int z; • printf( “ x = " ); scanf( "%d", &x ); • printf( “\n y = ”); scanf( "%d", &y ); • printf( “\n z = ”); scanf( "%d", &z ); • printf( “\n\n x*y = %d\n", mult( x, y ) ); • printf( “\n z^2 = %d\n", mult( z, z ) ); • } • int mult (int a, int b) //function definition • { • return a * b; • }

  26. Declaring a 1-D Array • How do you declare a one-dimensional array made up of 10 integers? Answer: int iArray[10] • Other array declarations: int iArray[10]; float fAverages[30]; double dResults[3]; short sSalaries [9]; char cName[19]; // 18 characters and 1 null character

  27. Declaring a 1-D Array • Why do we initialize variables? Because memory spaces may not be cleared from previous values when arrays are created. • Can initialize an array directly. • E.g.: int iArray[5]={0,1,2,3,4}; • Can also initialize an array with a loop such as FOR( ) • #include <stdio.h> • main() { • int x; • int iArray[5]; • for( x=0; x < 5 ; x++) { • iArray[x] = x; • } • }

  28. Example: searching an array • #include <stdio.h> • int main() { • int x, iValue; • int iFound = -1; • int iArray[5]; • // initialize the array • for( x=0; x < 5 ; x++) { • iArray[x] = ( x + x ); // array will = { 0, 2, 4, 6, 8 } • } • printf(“\n Enter value to search for:”); • scanf(“%d”, &iValue); • // search for number • for(x=0 ; x<5; x++) { • if( iArray[x] == iValue) { • iFound = x; • break; • } • } • if(iFound > -1) • printf(“\n I found your search value in element %d \n”, iFound); • else • printf(“\n Sorry, your search value was not found \n”); • return 0; • }

  29. Pointers • Pointer variables, simply called pointers, are designed to hold memory addresses as their values. • Normally, a variable contains a specific value, e.g., an integer, a floating-point value, or a character. • However, a pointer contains the memory address of another variable.

  30. Pointer Syntax dataType *pointer_name = &variable_name; (You can also initialize it “…= NULL;” or “… = 0;”) • It’s important to initialize pointers to prevent fatal runtime errors or accidentally modifying important data.

  31. val *val_ptr Pointers 0x3F 5 int val = 5; //variable declaration int *val_ptr = &val; //pointer declaration 0x3F 0x83 name: name: Value Value location: location:

  32. When an ampersand (&) is prefixed to a variable name, it refers to the memory address of this variable. Pointers 0x3F 5 name: *val_ptr name: val Value Value &val = 0x3F &val_ptr = 0x83 location: location:

  33. Ampersand example • #include <stdio.h> • int main() • { • char someChar = 'x'; • printf(“%p\n", &someChar); • return 0; • } Output: ?????

  34. Passing variables with pointers • void exchange(int*, int*); • main() { • int a = 5; • int b = 3; • exchange(&a,&b); • [(3)print a and b] • } • //pass by reference • void exchange(int *x, int *y) { • [(1)print *x and *y] • int temp = *i; • int *x = *y; • int *y = temp; • [(2)print *x and *y] • } • void exchange(int, int); • main() { • int a = 5; • int b = 3; • exchange(a,b); • [(3)print a and b] • } • //pass by value • void exchange(int x, int y) { • [(1)print x and y] • int temp = x; • int x = y; • int y = temp; • [(2)print x and y] • } Output: (1) x = 5, y = 3 (2) x = 3, y = 5 (3) a = 3, b = 5 Output: *x = 5, *y = 3 *x = 3, *y = 5 a = 3, b = 5 Output: (1) x = 5, y = 3 (2) x = 3, y = 5 (3) a = 5, b = 3

  35. Pointers to Arrays An array variable without a bracket and a subscript represents the starting address of the array. An array variable is essentially a pointer. Suppose you declare an array of integer values as follows: int list[6] = {11, 12, 13, 14, 15, 16}; *(list + 1) is different from *list + 1. The dereference operator (*) has precedence over +. So, *list + 1 adds 1 to the value of the first element in the array, while *(list + 1) dereferences the element at address list[1] in the array.

  36. Pointers to Arrays • main() • { • int list[3] = {10, 3, 5}; • int k = 0; • k = *list + 1; • printf(“k = %d”, k); • } • main() • { • int list[3] = {10, 3, 5}; • int k = 0; • k = *(list + 1); • printf(“k = %d”, k); • } Output: k = 11 Output: k = 3

  37. Strings

  38. Strings • #include <stdio.h> • #include <string.h> • int main() • { • char *str1 = “REACH”; • char str2[] = “Tutoring”; • printf(“\nThe length of string 1 is %d \n”, strlen(str1)); • printf(“\nThe length of string 2 is %d \n”,strlen(str2)); • return 0; • } Output: The length of string 1 is 5 The length of string 2 is 8

  39. Strings • #include <stdio.h> • #include <string.h> • void convertL(char *); • int main() • { • char name1[] = “Barbara Bush”; • convertL(name1); • return 0; • } • void convertL(char *str) • { • int x; • for ( x = 0; x <=strlen(str) ; x++) • str[x] = tolower(str[x]); • printf(“\nThe name in lowercase is %s\n”, str); • } Output: The name in lowercase is barbara bush

  40. Data File Hierarchy

  41. Data Structures • Arrays require that all elements be of the same data type. • It is often necessary to group information of different data types. An example is a list of materials for a product. The list typically includes a name for each item, a part number, dimensions, weight, and cost. • C and C++ support data structures that can store combinations of character, integer, floating point and enumerated type data. • They are called - structs.

  42. Struct Syntax • struct oneCar //elements in a list of cars • { • int year; • char make[10]; • char model[10]; • char tag[8]; • }fleet; //for short we’ll call it a fleet • fleet rentals[5]; // five cars that we rent out to clients • rentals[0].year = 2008; • rentals[0].make = “Honda”; • rentals[0].model = “Element”; • rentals[0].tag = “AS2395”; • […] • rentals[4].year = 2015; • rentals[4].make = “Tesla” • rentals[4].model = “Model S”; • rentals[4].tag = “2FST4U”; • fleet vans[3]; //company vans • vans[0].year = 2012; • vans[0].make = “Ford”; • vans[0].model = “EconoVan”; • Vans[0].tag = “MV1NUP”;

  43. Dynamic memory allocation • These functions are defined in the <stdlib.h> header file. • void *calloc(int num, int size) Allocates an array of num elements each of whose size in bytes will be size. • void free(void *address) Releases a block of memory block specified by address. • void *malloc(int num) Allocates an array of num bytes and leave them uninitialised. • void *realloc(void *address, int newsize) Re-allocates memory extending it up to newsize.

  44. Implementing malloc()

  45. Implementing calloc()

  46. Resizing and releasing memory using realloc() and free()

  47. On the test… Some types of problems you will likely encounter: • True/False questions • Fill-in-the-blanks questions • Finding errors in programs Common mistakes on this test: • Not appending lines of code with a semicolon (“;”) • Forgetting to use semicolons when writing a FOR loop • Forgetting to add an ampersand (“&”) to your variable parameter in SCANF functions (and mistakenly using the ampersand when using PRINTF) • Mixing up * and & in general. • Off-by-one errors when accessing an array, especially when using a FOR loop.

  48. Avoid extensive study Conduct a brief review Do something relaxing Get plenty of sleep Avoid stress-inducing situations Maintain a positive attitude Test Success: The Night Before

  49. Get off to a good start. Arrive on time or early. Compose yourself. Do a final revision of your notes. Maintain a confident attitude. Test Success: Day of the Test comic by KC Green (http://gunshowcomic.com/648)

  50. This presentation was provided by REACH – Resources for Academic Achievement Hope for the best, prepare for the worst. Cheers and good luck! (If you have not signed in, please do so before you leave!)

More Related