6.1.1
6.1.2
6.2.1 (1) (3)
6.3.1
答:首先需要弄清楚record的SDT,因此需要先学习教材P242。
因此,每个标识符的类型、相对地址如下表所示:
6.4.1
6.4.2
6.4.3
(1) x = a[i] + b[j] 注释语法树:
三地址代码为:
t1 = i * awidth
t2 = a[t1]
t3 = j * btwidth
t4 = b[t3]
t5 = t2 + t4
x = t5
(2) x = a[i][j] + b[i][j] 注释语法树:
三地址代码为:
t1 = i * aiwidth
t2 = j * ajwidth
t3 = t1 + t2
t4 = a[t3]
t5 = i * biwidth
t6 = j * bjwidth
t7 = t5 + t6
t8 = b[t7]
t9 = t4 + t8
x = t9
(3) x=a[b[i][j]][c[k]] 注释语法树:
三地址代码为:
t1 = i * biwidth
t2 = j * bjwidth
t3 = t1 + t2
t4 = b[t3]
t5 = k * ciwidth
t6 = c[t5]
t7 = t4 * aiwidth
t8 = t6 * ajwidth
t9 = t7 + t8
t10 = a[t9]
x = t10
6.4.6
答:元素A[i][j]的位置为:((i-1) * 20 + (j-1)) * 4
(1) i=4, j=5
((4-1) * 20 + (5-1)) * 4=256
(2) i=10, j=8
((10-1) * 20 + (8-1)) * 4=748
(3) i=3, j=17
((3-1) * 20 + (17-1)) * 4=224
6.5.1
答:
(1)
t1 = (int) s
t2 = (int) c
t3 = t1 + t2
(2)
t1 = (int) s
t2 = (int) c
i = t1 + t2
(3)
t1 = (int) s
t2 = (int) c
t3 = t1 + t2
t4 = (int) t
t5 = (int)d
t6 = t4 + t5
t7 = t3 * t6
x = (float) t7
6.6.1 (2)
6.6.2
6.6.4
6.7.1
6.7.2
答:
(1) i1
(2) i7
(3) i7
(4) i3
(5) i3
6.7.3
答:
(1) S4.next=S3.next
(2) S5.next=S2.next
(3) S6.next=S1.next || S3.next
(4) S7.next=S3.next
(5) S8.next=E1.false