📜  门| GATE CS 2021 |设置 2 |第 40 题

📅  最后修改于: 2021-09-25 05:18:48             🧑  作者: Mango

考虑以下 ANSI C 代码段:

z=x + 3 + y->f1 + y->f2;
for (i = 0; i < 200; i = i + 2) { if (z > i)
{
p = p + x + 3;
q = q + y->f1;
} 别的
{
p = p + y-> f2;
q = q + x + 3;
}
}
假设变量 y 指向一个包含两个字段 f1 和 f2 的结构体(分配在堆上),并且局部变量 x、y、z、p、q 和 i 被分配了寄存器。通用子表达式消除 (CSE) 优化应用于代码。优化后的代码中加法和解引用操作(形式为 y ->f1 或 y ->f2)的次数分别为:
(一) 403 和 102
(B) 203 和 2
(C) 303 和 102
(四) 303和2答案: (D)
说明:总共 300 次加法(每次迭代 3 次加法运算 (p+c,q+a) 或 (p+b, q+c) , (i+2)

c=x+3;
z=c+a+b

303 次加法运算和 2 次解引用运算(对于 y->f1,y->f2)。
这个问题的测验