PS I synthesize here in my own words what King teaches, re-write all his example programs, character by character, solve all the C exercises he hands out, and if I do not understand something fully I use Bermudez' CP: AMA Study Guide to find clarification. I comment to what King teaches cursively. I do not copy-paste anything from the book!
CPaMA 1Ed - Page 020 to 024 - 3.73% Completion
Computing the Dimensional Weight of a Box (Revisited)
The following is an improved variant of the dweight.c program. King notes that calls of scanf are always preceded by a call of printf, so that the user can be told what he is expected to enter and when to do so.
PROGRAM 02
dweight2.c

./dweight2 output:

With the inputs suggested in the book the output looks like this:
Enter height of box: 8
Enter length of box: 12
Enter width of box: 10
Volume: (cubic inches); 960
Dimensional weight (pounds): 6
2.6 Defining Constants
King explains that it is a good practice to name constants. Constants are values that do not change during execution. Both dweight.c and dweight2.c rely on the constant 166. To make sure that the meaning of 166 in terms of the program is also clear to a later reader of the program we can use the feature macro definition to name the constant:
#define CUBIC_IN_PER_LB 166
#define = preprocessor directive (like #include is too). It does not require a semi-colon at the end of the line.
During compilation the preprocessor will replace each macro with the value it represents:
weight = (volume + CUBIC_IN_PER_LB - 1) / CUBIC_IN_PER_LB;
becomes
weight = (volume + 166 - 1) / 166;
Macro's can also be defined with an expression:
#define SCALE_FACTOR (5.0 / 9.0)
Operators have to be enclosed inside parentheses. Constant naming also works if macro's are written in small letters but it is the culture among C programmers to use capital letters for this purpose.
Converting from Fahrenheit to Celsius
In the following program the user can enter a Fahrenheit temperature: them it prints the equivalent Celsius temperature. The output of the program will be:
Enter Fahrenheit temperature: 212
Celsius equivalent: 100.0
The program allows temperature counts that are not integers, which is why the Celsius temperature is displayed as 100.0 and not 100.
PROGRAM 03
celsius.c

./celsius output

2.7 Identifiers
So during the creation of a program we need to name variables, functions, macro's and other entities. The names used are called identifiers. An identifier in C may contain letters, digits and underscores, but must begin with a letter or underscore (not with a digit).
Legal:
times10
get_next_char
_done
Illegal:
10times
get-next-char
Minus signs are not allowed.
C identifiers are case-sensitive. The following identifiers are all different:
job
joB
jOb
Job
JoB
JOb
JOB
These eight identifiers can be used simultaneously, each for different purposes. It is best to make identifiers clearly different for the sake of readability, although similarity is useful to define groups of somehow related identifiers.
Because C is case sensitive many programmers per definition only use lower case naming for identifiers, except for macro's and use underscores to enhance readability (spaces are not allowed). But other programmers avoid underscores and, for readability, begin each word within an identifier with an upper-case letter.
SymbolTable CurrentPage NameAddress
Other conventions exist, the point is to be consistent throughout a program.
There is no limit to the length of an identifier so one can be descriptive in naming. For example identifier name 'current_page' is longer than 'cp' but better because it is being more informative.
Keywords
The following words are called keywords. Keywords are an essential part of the syntax of the C language. They have meaning for and effect on the compiler and can therefor not be used as identifier:
auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
Since C is case sensitive, to have effect, these words must be written in ower case letters. Also names of functions in C are written lower case in order to be understood by the compiler.
Other words than the ones mentioned can be restricted as well: some compilers have extra keywords, like for example the words: asm, far and near, and also words that belong to the standard library are restricted. Using a restricted word as name can cause errors during compilation and linking. Identifiers beginning with an underscore are also not allowed.
-> personal remark
This is an inconsistency in the book. In one place underscore s just at the beginning of en identifier and then it is said that good practice does not use an underscore at that position. At a third location it is written that it is not alowwed.
The truth of the matter is that, over the years, it got gradually restricted. It went from an option to being frowned upon to being prohibited. The book does not explain that history.