I collect some small programming exercises and solve them by C language. Because my major purpose is to practice the usage of C language, I didn't do error-checking for function parameters and user input. Some of them maybe tricky, since I tried to demonstrate the semantics of C. Compiler: gcc 4.7.2 Options: -std=c11 -pedantic -Wall -Wextra -Wdouble-promotion -Winit-self -Wunused-local-typedefs -Wfloat-equal -Wshadow -Wbad-function-cast -Wcast-qual -Wcast-align -Wconversion -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpadded -Wredundant-decls -Wnested-externs