Just to re-weigh-in on (a)...
cwatters' explanation is valid for a low enough Mach number - which can be surprisingly low, say 0.20 and below. Above this many aerofoils exhibit Mach-dependency on their stalling angles-of-attack.
This is the 'usual' environment under which stalls are encountered - low speed and (relatively) low altitudes in small-ish aircraft, all of which tends to mean a fairly low Mach number. The stall angle of attack will appear remarkably low at high Mach to someone whose experience is confined to that regime.