Spring 2004 Test #2 Review Page
CSE1320 Section 501 Dr. Tiernan’s section
Topics to be covered on Test #2 with accompanying notes from Ch. 6 - 9, 10.1-10.2,10.6
(I assume that you can also use any material from earlier in the class)
Control Structures
do-while
switch
allowable types of control expressions
syntax of cases
behavior
use of break
break, continue
return
Recursion - (very likely you will have 2 questions relating to recursion)
concept
implementing recursion
base case(s)
recursive calls
recursion vs. iteration
cost / benefits
Structures
creating data types
declaring variables
accessing members
assignment of whole structures and of member value
bit field members
defining
addressable boundaries
linked lists
what they are
how to build a singly linked list
how to traverse a singly linked list
Types
enumerated type definition
declaring variables of an enumerated type
how enum types are actually treated in C - integer constants
use in switch / b enefits
use of enumerated types
union type definitions
declaring union variables
many members like a structure
only one valid member at a time
data in a member is only meaningful to a single member
up to programmer to distinguish meaning
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) (probably two questions on this)
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
ADT (Abstract Data Types)
stack
description
input to a stack
output from a stack
checks on a stack
possible imp lementations
queue
how is it different from a stack
linked list
Command line parameters
what the OS does with the parameters that are typed in
conventional names (argv, argc) and what they refer to
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
fscanf, fprintf
Control Structures
goto, exit()
Conditional expression
how is it used
Error handling
with input and output
Program Development
breaking code into modules
breaking programs into separate files
Style
< i> commenting whitespace
module size visually useful indenting
meaningful identifiers consistent use of braces
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
& nbsp; 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.