Fall 2002 Test #3 Review Page

CSE1320 Sections 003 and 501                                                                   Dr. Tiernan’s sections

Topics to be covered on Test #3 with accompanying notes from Ch. 7.3 - 10

(I assume that you can also use any material from earlier in the class)

 

Main Topics                                                                Test #3 is IN CLASS Thursday, October 31

Structs

            arrays of structs

            pointers to structs

            difference between passing structs as parameters and arrays as parameters

            bit fields in a struct

            linked lists

                        what they are

                        how to build a singly linked list

                        how to traverse a linked list

Types

            enumerated type definition

            declaring variables of an enumerated type

            use of enumerated types

            how enum types are actually treated in C

            union type definitions

            declaring union variables

            use of unions

Storage class and scope

            the five storage classes – auto, static, register, extern, typedef

            what the storage classes define for a variable

            what the scope of a variable is

            global vs. local variables

            linking variables between files in the same program

Function declarations and definitions

            why ANSI C uses prototype declarations

            interpreting function definitions (p. 463 and p. 509)

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

            pointers to pointers

Command line parameters

            what the OS does with the parameters that are typed in

            what parameters are passed to the main routine

            how to use the data in the passed in parameters

Files and I/O

            how to declare file variables

            how to connect file variables to actual files in the local directory

            how to open files for reading, writing or appending (all possible combos)

            fopen and fclose errors that can occur

            input/output from files using

                        getc, putc, ungetc

                        fgets, fputs

                        fread, fwrite

                        fscanf, fprintf

            accessing files in random order with fseek and ftell

            what the file pointer in a file keeps track of

 

 

Secondary and Related Topics

Error handling

      with input and output

Style

            commenting                                                    whitespace

            module size                                                     visually useful indenting

            meaningful identifiers                                    consistent use of braces

Program Development

            sending data to a program from the operating system

            breaking code into modules

            breaking programs into separate files            

 

 

Test will have some or all of the following characteristics:

            multiple choice questions (not more than 10) – typically 1 to 4 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

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 curve on a set of test grades will NOT be the curve used for class grades.

 

The test will be hard. I write very challenging questions that require you to think all the way through them. A few 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 example test questions from last semester’s tests. They will give you a sense of how my tests are written.