〈程序〉::〈声明〉|〈函数〉
〈声明〉::〈头文件〉|〈宏定义〉|〈声明〉〈函数声明〉
〈头文件〉::#include "stdio.h"〈头文件〉|#include "stdlio.h"〈宏定义〉|#include "stdlio.h"'〈函数声明〉|#include "stdlio.h"'|.....
〈宏定义〉::#define 〈字符串 〉〈字符串〉|#define'〈字符串 〉〈字符串〉〈宏定义〉|#define 〈字符串 〉〈字符串〉〈函数声明〉|#define 〈字符串 〉〈数字〉|#define 〈字符〉
〈数字〉〈宏定义〉|'#define '〈字符串 〉〈数字〉〈函数声明〉
〈字符串〉::变量名
〈函数声明〉::〈返回值类型 〉〈函数名〉(〈形参〉) ;|〈返回值类型 〉〈函数名〉(〈形参〉) ;〈函数声明〉
〈形参〉::〈数据类型 〉〈变量名〉|〈数据类型 〉〈变量名〉〈,〉〈形参〉|〈void〉
〈变量名〉::〈字母〉|〈字母〉〈变量名〉|〈_〉〈变量名〉
〈字母〉::a|b|...|y|z|a_|b_|...|y_|z_|a〈数字〉|b〈数字〉|...|y〈数字〉|z〈数字〉
〈数字〉::0|1|...|8|9|0〈数字〉|0〈数字〉|...|8〈数字〉|9〈数字〉
〈返回值类型〉::int|float|char|void
〈函数名〉::〈变量名〉
〈函数〉::〈返回值类型〉〈函数名〉{〈函数主体〉}|函数名〉{〈函数主体〉}〈函数〉
〈函数主体〉::〈变量的申请〉〈处理语句〉
〈变量的申请〉::〈数据类型 〉〈变量名〉;|〈数据类型 〉〈变量名〉;〈变量的申请〉
〈数据类型 〉::int|float|char
〈处理语句〉::〈赋值语句〉|〈判断语句〉|〈循环语句〉|〈函数调用〉|〈赋值语句〉〈处理语句〉|〈判断语句〉〈处理语句〉|〈循环语句〉〈处理语句〉|〈函数调用〉〈处理语句〉
〈赋值语句〉::〈变量名〉=〈字母〉;|〈变量名〉=〈数字〉;|〈变量名〉=〈变量名〉;|〈变量名〉=〈字母〉;|〈变量名〉=〈数字〉;|〈变量名〉=〈变量名〉;|〈变量名〉=〈运算〉
〈运算〉::〈变量名〉=〈变量名〉〈运算符〉〈数字〉|〈变量名〉=〈数字〉〈运算符〉〈数字〉
〈运算符〉::+|-|*|/
〈判断语句〉::〈if〉(〈条件〉){〈处理语句〉|null}|〈if〉(〈条件〉){〈处理语句〉|null}〈else〉{〈处理语句〉|null}|〈if〉(〈条件〉){〈处理语句〉|null}|〈if〉(〈条件〉){〈处理语句〉|null}
〈Else if〉〈else〉{〈处理语句〉|null}
〈Else if〉::〈else if〉(〈条件〉){〈处理语句〉|null}|〈else if〉(〈条件〉){〈处理语句〉|null}〈Else if〉
〈条件〉::〈变量名〉〈判断运算符〉〈变量名〉|〈变量名〉〈判断运算符〉〈数字〉|〈数字〉〈判断运算符〉〈数字〉|〈数字〉
〈判断运算符〉::=|>|<|>=|<=|!=
〈循环语句〉::while(〈条件〉){〈处理语句〉}|do{〈处理语句〉}while(〈条件〉)|for(〈赋值语句〉;〈条件〉;〈运算〉){〈处理语句〉}
〈函数调用〉::〈变量名〉=〈函数名〉(〈形参〉)|〈函数名〉(〈形参〉)