<程序> —〉 <外部声明> | <函数定义>
<外部声明> —〉<头文件> | <变量> | <结构体> <头文件> —〉 #include<文件名><文件名> —〉 stdio.h丨stdlib.h丨string.h<结构体> —〉 <结构体声明〉|<变量><结构体声明> —〉 struct<标识符><函数定义> —〉 <类型说明><标识符><参数列表><复合语句><参数列表〉 —〉<类型说明><变量名><复合语句> —〉<变量>|<语句>|<复合语句>|&<语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句>|<语句>|&<表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式>|<表达式语句>|&<赋值表达式> —〉 =A/A=A —> &|+|-<关系表达式> —> 〉| < | 〉=| <= <逻辑表达式> —〉 + | - | * | / <选择语句> —〉 if else语句|switch语句|<选择语句>|& <循环语句> —〉 for语句|while语句|do while语句|<循环语句>|& <跳跃语句> —> return语句|break语句|continue语句<变量> —> <类型>丨<标识符>丨<变量值><类型说明> —> int丨char丨double丨float丨long <变量值> —> <字母>丨〈数字〉<标识符> 〈==〉 SS —> AS1S1 —> S1S2S2 —> A|B|&A —> a|b|c|……y|zB —> 0|1|2|3|4|5|6|7|8|9<字母> —> a|b|c|……y|z<数字> 〈==〉 SS —> AS1S1 —> S1AS2S2 —> &|0A —> 1|2|3|4|5|6|7|8|9