Midterm Study Guide

This is simply a guide of topics that I consider important for the midterm. 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. Fundamentals
    1. How to compile a C program and save the results as something other than a.out
    2. How to log in to the CSIF
    3. Basic Linux commands: ls(1), rm(1), gcc(1), cat(1), etc.
    4. Linux file system

  2. Structure of a C program
    1. main, return, exit
    2. Idea of an exit status code

  3. Basics of C
    1. Variable names
    2. Keywords
    3. Data types (int, float, double, char)
    4. Data type modifiers (signed, unsigned, long, short)
    5. How true and false are represented

  4. Expressions
    1. Arithmetic operators; precedence, associativity
    2. Increment (++) and decrement (-{-})
    3. Logical operators
    4. Relational operators and Boolean values
    5. Type coercion (char to int, int to float, float to double)

  5. Statements
    1. Assignments, including += and other assignment operators
    2. for loop
    3. while, do … while loops
    4. if, if … else, if … elif … else, nested ifs
    5. switch statement
    6. continue, break

  6. Functions
    1. Declaring and defining functions
    2. Parameter lists and how they work
    3. Returning a value; return statement
    4. Scope (local vs. global, etc.)

  7. Pointers
    1. What they are
    2. Declaring and using pointer variables
    3. Dereferencing (*) and taking the address of (&)
    4. Use in parameter lists

  8. Arrays
    1. Declaring an array
    2. Referencing an element of the array
    3. Relationship between arrays and pointers
    4. Arrays as function parameters and arguments

  9. Strings
    1. What is a string
    2. Array of strings
    3. String functions: strcpy, strncpy, strcmp, strncmp, strlen

  10. Input and output
    1. getchar(), scanf(), fgets()
    2. putchar(), printf()
    3. Formatting for printf and scanf (such as “%d”, “%s”, etc.)

  11. Recursion

UC Davis sigil
Matt Bishop
Office: 2209 Watershed Sciences
Phone: +1 (530) 752-8060
Email: [email protected]
ECS 36A, Programming & Problem Solving
Version of April 22, 2024 at 4:07PM

You can also obtain a PDF version of this.

Valid HTML 4.01 Transitional Built with BBEdit Built on a Macintosh