程序->源程序|开始<文件头>|<函数>结束
源程序 → 外部声明 | 子程序(外部声明)
文件头->函数
函数->库函数|函数主体|用户自定义函数
库函数->#include<stdio.h>|#define...
函数主体->函数定义| 函数声明|语句串|选择结构
函数定义 → 函数类型(复合句)|变量
变量->标识符
标识符->英文字母|数字|下划线
英文字母->大写英文字母|小写英文字母
用户自定义函数->函数类型|函数名|...
函数类型->数据类型
数据类型->基本类型|构造类型|指针类型|无类型
基本类型->整型|实型(浮点型)|字符型|枚举型
整型->有符号整型|无符号整型|长整型|无符号长整型
实型->不同形式的实型|不同类型的实型
不同形式的实型->十进制小数形式|指数形式
不同类型的实型->单精度实型|双精度实型|长双精度实型
字符型->
枚举型->
构造类型->数组|结构体|共用体
数组->数值数组|字符数组
数值数组->一维数组|二维数组|多维数组
字符数组->字符串|字符串数组
指针类型->函数指针|数组指针 | 字符串指针| 指向指针的指针
函数名->CXP|…
简单的屏幕输出->字符串|按指定格式|数据类型的变量值
赋值表达式->赋值运算符|操作数
赋值运算符->简单运算符|复合运算符
简单运算符->乘法(*)|除法(/)|求余(%)|加法(+)|减法(-)
复合运算符->+=|-=|*=|/=|%=
操作数->常量|变量|函数
语句串->循环语句|数组|指针|数据类型|数字|结构体|选择结构|变量|常量|运算符|符号|关键字|字符
循环语句->for|switch|do-while|while
选择结构->单分支结构|分支结构|多分支结构|嵌套结构