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)
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
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.