📌  相关文章
📜  国际空间研究组织 | ISRO CS 2017 |问题 67

📅  最后修改于: 2022-05-13 01:58:02.364000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2017 |问题 67

考虑代码段

int i, j, x, y, m, n;
 n=20;
 for (i = 0, i < n; i++)
  {
    for (j = 0; j < n; j++)
     {
        if (i % 2)
        {
         x + = ((4*j) + 5*i);
         y += (7 + 4*j);
        }
     }
  }
  m = x + y;

以下哪一项是错误的
(A)代码包含循环不变计算
(B)这段代码中有公共子表达式消除的范围
(C)本规范存在强度折减范围
(D)此代码中存在死代码消除范围答案: (D)
解释:选项 (D) 是错误的,因为在死代码消除技术中,它按照名称建议删除死代码。代码语句称为死代码,其中代码要么永远不会执行,要么无法访问,或者它们的输出永远不会被使用,但这里不是这种类型的语句或代码。

在这里,我们通过用 4 << j 替换“ 4 * j ”来减少强度降低,并且代码具有公共子表达式以及循环不变计算。
这个问题的测验