Final Study Guide

This is simply a guide of topics that I consider important for the final. I don’t promise to ask you about them all, or about any of these in particular; but I may very well ask you about any of these, as well as anything we discussed in class, in the discussion section, or that is in the programs and handouts.

  1. Anything from the midterm or final study guides or sample (or actual!) midterm or sample final

  2. Command-line arguments argc, argv

  3. Function parameters
    1. How arguments are passed to functions
    2. Pointers and arrays as parameters
    3. Changing values in the caller using pointers as parameters

  4. Recursion
    1. The stack and how it is used in recursion
    2. Base case and recursive case

  5. Structures
    1. What it is
    2. Declarations, fields, and the . operator
    3. Pointers to structures and the -> operator
    4. Arrays of structures

  6. Dynamic memory allocation
    1. malloc, realloc, free
    2. Linked lists

  7. Some C operators and pointers
    1. sizeof operator
    2. Defining a type (typedef)
    3. ? :
    4. Function pointers

  8. Bits and C bit operations
    1. Binary, hexadecimal numbers
    2. Operators &, |, ^, ~
    3. Extracting a particular bit from a word

  9. The standard I/O library
    1. File pointers, especially stdin, stdout, stderr
    2. Opening and closing files
    3. getc, fgetc, fscanf, fgets, fread
    4. putc, fputc, fprintf, fputs, fwrite
    5. fseek. ftell
    6. ungetc

  10. C Preprocessor
    1. #define: macros with and without parameters
    2. #include: include files (like stdio.h)
    3. #if, #ifdef,#elif, #else, #endif

  11. Managing multi-file programs
    1. user-defined header files (.h files)
    2. static, extern keywords
    3. make
=
UC Davis sigil
Matt Bishop
Office: 2209 Watershed Sciences
Phone: +1 (530) 752-8060
Email: mabishop@ucdavis.edu
ECS 36A, Programming & Problem Solving
Version of May 29, 2024 at 12:52PM

You can also obtain a PDF version of this.

Valid HTML 4.01 Transitional Built with BBEdit Built on a Macintosh