Review of Topics for the Final Exam
The final exam is 7:10AM - 10:00AM Wednesday 6 June. The following is a list
topics from which exam questions will be chosen.
Lecture Week 1
, Chapters 1,2; light coverage of chapter 1
-
Definitions of program and problem solving
-
Basic structure of a computer
-
Basic structure of a C program
-
Simple UNIX commands, including compiler invocation
Lecture Week 2
, Chapters 3,4
-
Program variables
-
Types int, double, char
-
Arithmetic expressions
-
Assignment statements
-
Mathematical library functions
-
Value input with scanf
-
Value output with printf
-
Defining simple program functions
-
Program execution and testing
-
The layout of program memory
Lecture Week 3
, Chapters 4,6
-
Program definition with multiple functions
-
Function parameters and return value
-
The use of function prototypes
-
If statements
-
If-else statements
-
Conditional expressions
-
Operator precedence
-
The difference between '=' and '=='
-
Nested if statements
-
Switch statements
Lecture Week 4
, Chapters 5,6
-
Program loop basics
-
While and for loops
-
Counting and sentinel loops
-
Incremental sums and other calculations
-
Nested loops
-
Using functions in programs
Lecture Week 5
, Chapters 8,9
-
Array basics
-
Arrays and loops
-
Array parameters in functions
-
Introduction to arrays of char, aka, strings
Lecture Week 6
, Chapters 7,8,9
-
Introduction to typedef and .h files
-
String functions
-
Arrays of arrays, including arrays of strings
-
More on array parameters in functions
-
Array bounds checking
-
Pictures of what program memory looks like
Lecture Week 7
, Chapters 11,13; NO Section 11.6, Sections 13.1 - 13.3 only
-
Structure types
-
The typedef declaration
-
Structures as function parameters
-
Arrays of structures
-
Programs in .h and .c files
Lecture Week 8
, Chapters 6,13; Sections 13.7 only
-
Review of program testing
-
Review of function parameters
-
Formal output parameters
-
Parameters to the main function
Lecture Week 9
, Chapters 13,14; Sections 13.1 - 13.3, Sections 14.1, 14.2
-
Pointers
-
The '*' and '&' operators
-
Memory allocation with malloc and calloc
-
Comparing dynamic versus static memory
-
Another programming-in-the-large example