Spring
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 and the software engineering
presentation) as covered in class:
Arrays Section 002 Ð Wed.
Mar. 4, 1: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
Software engineering
Identify/describe the phases of software engineering
Understand the importance of testing
Strategies for testing
Designing test cases
Debugging tips
Be able to discuss various aspects of software quality
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
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
<stdio.h>
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 example test questions from previous semesterÕs tests. They will give you a sense of how my tests are written.