算法考试

时间:2018-10-10 19:57:29

标签: algorithm uml

去年,我目前在法国学习IT开发。 但是,在我的期末考试中,我遇到了这个问题:

enter image description here 答案是:

1) If (A != B) { C } else { D }
2) while ( A < B ) { D; C; }
3) for (A;B;C;) { D; }

我对学校进行了矫正,但我想与您的观点进行比较:)

非常感谢

正如我们在法国所说的那样,“波恩·索雷(BonneSoirée)”!

马克西姆

2 个答案:

答案 0 :(得分:1)

答案是3)

在for循环中,我们在(;;)中分为三部分 第一部分是循环的初始化,第二部分是确定是否应执行for循环,第三部分是在每个循环之后执行的操作。

尝试这个例子

if(int a = 0;a<10;a++){
      Console.Write(a);
}

您可以将int a = 0视作A,将a<10视作B,将a++视作c,将Console.Write(a)视作D。 看你得到什么。

答案 1 :(得分:0)

如果您正确地写了答案3)(使用C的分号)

由于问题缺少很多细节,我将根据以下知识做出有根据的猜测,并说正确的答案应为数字2):
-您可以看到它验证了A和B之间的条件,如果满足该条件,它将访问变量D(或语句,正如我所说的,该问题缺少详细信息)D和C
-访问C变量后,它返回以验证循环中的条件(它不会直接进入A,这使我认为答案是3),但是它存在语法错误)
-如果循环中的条件未满足(false),它将退出

否则,如果C后面没有分号,则答案为3),因为它只检查B并且不会像循环中那样返回到A