Fall 2004 Test #2 Review Page
CSE1320
Sections 001 and 501 Dr.
Tiernanıs sections
Topics to be covered on Test #2
with accompanying notes from Ch. 7 - 10:
Structures Section 001 –
Wed. Nov 3, 1:00pm
creating data
types Section 501 –
Thur. Nov 4, 5:30pm
declaring variables
accessing members
assignment of whole structures and of member value
bit field members
defining
addressable boundaries
Types
enumerated type
definition
declaring variables of an enumerated type
how enum types are actually treated in C - integer constants
use in switch / benefits
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 – be able to define
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
pointers to functions
interpreting
function definitions (p. 463 and p. 509)
(probably two questions on this)
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, fgets, fputs, getc, putc, fread, fwrite
random file access using
fseek, ftell
what the file pointer in a file keeps track of
Conditional expression
how
is it used
ADT (Abstract Data Types)
stack
description
input to a stack
output from a stack
checks on a stack
possible implementations
queue
how is it different from a stack
linked list
what
they are
how
to build a singly linked list
how
to traverse a singly linked list
Algorithms
Turning
algorithms into functions
Be
able to recognize the following, describe in words, and trace execution of
Mergesort
algorithm
Bubblesort
algorithm
Quicksort
algorithm
Precedence
for
the operators we have discussed so far, be able to give the precedence of each
group
of operators to the other groups – arithmetic, logical, bitwise,
relational
know
Dr. Tıs favorite page, i.e. ³the most useful page in the book²
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
Error handling
with
input and output
Style
commenting
whitespace
module
size visually
useful indenting
meaningful
identifiers consistent
use of braces
Program
Development
free-format
language
guidelines
for program development and debugging
breaking
code into modules
breaking
programs into separate files
ethical
considerations
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
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 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.