c语言程序的结构通常由哪几部分组