C语言程序由什么组成?