Fall 2009 Test #1 Review Page CSE1320 Section 002 Dr. Tiernan’s section Topics to be covered on Test #1 with notes from Ch. 1 - 5+ plus other material (including from Chapters 7 and 9) as covered in class: Main Topics Test #1 is IN CLASS Arrays Section 002 : Mon. Oct. 12, 11:00pm be able to declare an array know the range of index values used for arrays understand how arrays are stored in memory declaring functions with arrays as parameters passing arrays as parameters the whole array using array name a single element of an array accessing an array and its elements inside the function it has been passed to using array names as pointers Multidimensional arrays and pointers how C really implements multidimensional arrays declaring multidimensional arrays initializing arrays accessing array elements array notation and pointer arithmetic to access array elements arrays of pointers double indirection - pointers to pointers Pointers know the rules for creating know what a pointer contains know the notation: *, & understand pointer arithmetic be able to access the contents of the location the pointer points to vocabulary - dereference, indirection, addressing operator passing pointers as parameters double indirection array notation with pointers allocating space with malloc and deallocating with free Sorting and searching big O notation and efficiency linear search selection sort and bubble sort swap function Function declarations and definitions why ANSI C uses prototype declarations difference between declaration and definition of a function Secondary and Related Topics Data Types int long short char float double long double know the: meaning of a sign bit differences between different types of integer data types differences between different types of floating point data types sizeof() operator meaning of type conversions Variables know the difference between initialization and assignment understand how variables are stored and addressed in memory input with scanf and output with printf Control Structures if (conditional) if else nested if else for (initialization; test; processing) while (condition) do while switch return be able to analyze the values after the execution of a loop or selector understand why Dr. T dislikes break, continue, and exit Operations recognize all the operations we have discussed use the relational and arithmetic operators in writing code segments Strings null character/end-of-string marker/’\0’ declaring reading and writing strings need for end-of-string markers %s conversion specifier difference from character arrays storing strings in character arrays common string functions Functions know the rules for creating function prototype declarations function definitions know what function is required in any C program understand the difference between formal parameters and actual parameters understand pass by value and pass by reference know how to call a function Preprocessor directives know what each of the following do: #include #define Algorithms Turning algorithms into functions Sort and search algorithm efficiency Style visually useful indenting consistent use of braces Program Development guidelines for program development and debugging Test will have some or all of the following characteristics: multiple choice questions (not more than 10) - typically 1 to 2 points each short answer questions coding questions which require either writing code or interpreting code or debugging code ( ‘code’ includes declarations, preprocessor directives, function definitions and general coding of statements and control structures and I/O commands) matching questions fill-in-the-blank questions Questions generally have their point value listed in braces at the end/side of the question Every test will have at least 10 points worth of extra credit available Almost all my tests are open book tests - which means that the answers are not in the book. The book is a reference for you to use in thinking through a problem. Test grades are assigned on a curve based on the range of actual scores on the test, i.e. the highest score on the test (for example, an 89) will be the top of the curve so all scores will be assigned based on where they fall (100 - 90 A, 89 - 80 B, etc.) AFTER the actual score has been divided by the curve. For example, a high score of 89 would give that student an A because 89/89 100 = 100. On the same test then, a score of 68 would be curved as 68/89*100 = 76 so that student would get a C (rather than a D for the original 68). The test will make you think not just remember. I write very challenging questions that require you to think all the way through them. A small number of the questions will be memory type questions because some rules must be memorized to make a student an efficient programmer in a language. Most, however, will require lots of mental effort. Do not get too upset about it - remember EVERYONE is suffering through the same test you are and that everyone’s grade will be curved. Check out my website for a few sample test questions from previous semester’s tests. They will give you a sense of how my tests are written.