---
# System prepended metadata

title: '"Concept" inventory for Labs 1--5'

---

# "Concept" inventory for Labs 1--5

## Lab 1
* while / for
* conditionals and boolean expressions
* functions/procedures 
* **functions**: printf, sqrt, floor 
* main function
* strings and arrays
* **types**: int, bool, float, char *, char **
* **includes**: `stdio.h`, `math.h`, `stdbool.h`
* order of functions in file
* recursion (not tail recursion)
* finite precision of integers


## Lab 2
* own library in separate file 
* header files
* prototype declarations
* linking 
* warnings
* macros multiple inclusion problem
* do/while
* **functions**: strcmp, scanf, getchar, putchar, random (plus initialising with seed etc.)
* EOF constant
* **includes**: `string.h`
* **types**: char []


## Lab 3
* tail recursion
* function pointers
* typedefs
* unions
* **functions:** atof, atoi, strdup


## Lab 4
* Pointers
* Pointer arithmetic
* Pass by value vs. pass by reference
* Pointers to stack variables both on previous frames (legal) and invalidated frames (illegal)
* structs
* arrays of structs


## Lab 5
* **includes**: `stdio.h`
* **functions**: fopen, fclose, fprintf, fgetc, fputc

