diff --git a/zh-cn/bc-cn.html.markdown b/zh-cn/bc-cn.html.markdown
new file mode 100644
index 00000000..e2cc3680
--- /dev/null
+++ b/zh-cn/bc-cn.html.markdown
@@ -0,0 +1,96 @@
+---
+language: bc
+contributors:
+ - ["Btup"]
+translators:
+ - ["CloneWith", "https://github.com/CloneWith"]
+filename: learnbc.bc
+lang: zh-cn
+---
+```bc
+/*这是一条
+多行注释。*/
+# 这(在 GNU bc 中)也是一条(单行)注释!
+
+ /*1. 变量与指令结构*/
+num = 45 /*所有变量都只以双精度浮点数形式存储,
+ 并且 bc 不支持直接存储字符串常量。*/
+num = 45; /*每个语句后可以添加
+ 一个英文分号,也可以不加。*/
+/*语句块使用 {} 运算符表示(与 C 语言相似):*/
+while(num < 50) {
+ num += 1 /*等价于 num=num+1。
+ a = a op b 等价于 a op= b。*/
+}
+/*也有 ++(自加)与 --(自减)运算符。*/
+/*有三个特殊变量:
+scale: 定义双精度浮点数字的比例。
+ibase: 定义输入数值的基数。
+obase: 定义输出数值的基数。*/
+/*If 语句:*/
+hour = read() /*输入一个数字*/
+
+if(hour < 12) { /*运算符的用法与 C 语言类似。*/
+ print "Good morning\n" /*“print”输出字符串或变量,用英文逗号分隔。*/
+} else if(hour == 12) {
+ print "Hello\n"
+ /*字符串中的转义序列以反斜杠 \ 开头。
+ 为了讲述清楚,以下为 bc 中常用转义序列表:
+ \b: 退格
+ \c: 硬回车
+ \n: 换行符
+ \t: 制表符
+ \\: 反斜杠*/
+} else {
+ print "Good afternoon\n"
+}
+
+/*像 C 语言一样,只有 0 定义为假(false)。*/
+num = 0
+if(!num) {print "false\n"}
+
+/*与 C 语言不同,bc 没有 ?: 运算符。例如,
+ 这个代码块会导致出错:
+a = (num) ? 1 : 0
+但是你可以模拟一个:*/
+a = (num) && (1) || (0) /*&& 代表“与”,|| 代表“或”*/
+
+/*循环语句*/
+num = 0
+for(i = 1; i <= 100; i++) {/*与 C 语言中的循环类似。*/
+ num += i
+}
+
+ /*2.函数与数组*/
+define fac(n) { /*使用“define”定义函数。*/
+ if(n == 1 || n == 0) {
+ return 1 /*返回一个数值*/
+ }
+ return n * fac(n - 1) /*可以使用递归*/
+}
+
+/*不可使用闭包与匿名函数。*/
+
+num = fac(4) /*24*/
+
+/*这是局部变量的示例:*/
+define x(n) {
+ auto x
+ x = 1
+ return n + x
+}
+x(3) /*4*/
+print x /*看起来无法在函数外访问 x。*/
+/*数组与 C 语言中的等同。*/
+for(i = 0; i <= 3; i++) {
+ a[i] = 1
+}
+/*这样访问它:*/
+print a[0], " ", a[1], " ", a[2], " ", a[3], "\n"
+quit /*添加这行代码,确保程序退出。
+这行代码可写可不写。*/
+```
+
+请享用这个简单的计算器吧!(或者确切地讲,这个编程语言。)
+
+本程序全部使用 GNU bc 语言编写。要运行程序,请使用 ```bc learnbc.bc```。