正在加载图片...
版权所有南京大学计算机科学与技术系许畅等2022春季版 13 LABEL label2 14t6:=#-1 15 WRITE t6 16 LABEL label3 17 RETURN t2 样例2: 输入: 1 int fact(intn)】 2{ 3 1f(n==1) 4 return n; 5 else 6 return (n fact(n -1)); 7} 8 int main() 9 10 int m,result; 11 m read(); 12 if (m 1) 13 result fact (m); 14 else 15 result 1; 16 write(result); 17 return 0; 181 输出: 这是一个读入m并输出m的阶乘的小程序,其对应的中间代码可以是: 1 FUNCTION fact 2 PARAM v1 3 IF v1 ==#1 GOTO labell 4 GOTO label2 5 LABEL labell 6 RETURN v1 7 LABEL label2 8t1:=v1-#1 9 ARG t1 10 t2 :=CALL fact 11 t3:=v1*t2 12 RETURN t3 13 14 FUNCTION main 15 READ t4 16 v2:=t4 17 IF v2 >#1 GOTO label3 18 GOTO label4 19 LABEL label3 20 ARG v2 21 t5 :CALL fact 22 v3:=t5 23 GOTO label5 24 LABEL label4 25 v3:=#1 26 LABEL label5 27 WRITE v3 28 RETURN #0 这个样例主要展示如何处理包含多个函数以及函数调用的输入文件。 4.1.7样例(选做要求) 75版权所有 南京大学计算机科学与技术系 许畅等 2022春季版 75 13 LABEL label2 : 14 t6 := #-1 15 WRITE t6 16 LABEL label3 : 17 RETURN t2 样例2: 输入: 1 int fact(int n) 2 { 3 if (n == 1) 4 return n; 5 else 6 return (n * fact(n - 1)); 7 } 8 int main() 9 { 10 int m, result; 11 m = read(); 12 if (m > 1) 13 result = fact(m); 14 else 15 result = 1; 16 write(result); 17 return 0; 18 } 输出: 这是一个读入m并输出m的阶乘的小程序,其对应的中间代码可以是: 1 FUNCTION fact : 2 PARAM v1 3 IF v1 == #1 GOTO label1 4 GOTO label2 5 LABEL label1 : 6 RETURN v1 7 LABEL label2 : 8 t1 := v1 - #1 9 ARG t1 10 t2 := CALL fact 11 t3 := v1 * t2 12 RETURN t3 13 14 FUNCTION main : 15 READ t4 16 v2 := t4 17 IF v2 > #1 GOTO label3 18 GOTO label4 19 LABEL label3 : 20 ARG v2 21 t5 := CALL fact 22 v3 := t5 23 GOTO label5 24 LABEL label4 : 25 v3 := #1 26 LABEL label5 : 27 WRITE v3 28 RETURN #0 这个样例主要展示如何处理包含多个函数以及函数调用的输入文件。 4.1.7 样例(选做要求)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有