分支语句-布尔代数

      很长时间没有写blog了,自己越来觉得C语言比较重要,其实看教材也很容易。都是自己学过的东西。发现自己就是比较的懒。总是懒得做练习题。现在自己的逻辑思维很不好。想多锻炼锻炼。就拿开始吧。
      1、把代码段 if (x > 0 && x < 10); else printf("x is out of range./n"); 改写成下面这种形式: if (____ || ____) printf("x is out of range./n"); ____应该怎么填?  
     看到这道题,吓了我一跳。想了半天,突然if语句后面の分号。发现自己被迷惑。也就是说,x>0 and x<10什么也不做。想到这里,这道题迎刃而解了。应该填上:x <=0  x >=10

  

   
      2、把代码段: if (x > 0) printf("Test OK!/n"); else if (x <= 0 && y > 0) printf("Test OK!/n"); else printf("Test failed!/n"); 改写成下面这种形式: if (____ && ____) printf("Test failed!/n"); else printf("Test OK!/n"); ____应该怎么填?  
      这道题主要是靠一个人的对if ,else if 的理解。当第一个当不执行第一个的时候,跳转到else if ,如果还不执行的时候,才跳转到else。既然这样分析。我觉得应该写的是:y <= 0  x<=0。不过感觉有些怪异,网友看到后,可以留言,和我进行讨论。

     3、有这样一段代码: if (x > 1 && y != 1) { ... } else if (x < 1 && y != 1) { ... } else { ... } 要进入最后一个else,x和y需要满足条件____ || ____。这里应该怎么填?  
    
     看到这道题后,如果想进入到最后一个else,则必须是,第一个if为假,else if 也为假,才能跳转到最后一个else.按照这个逻辑,俺觉得,应该填写 x =0 || y =1.您觉得呢?

     4、以下哪一个if判断条件是多余的可以去掉?这里所谓的“多余”是指,某种情况下如果本来应该打印Test OK!,去掉这个多余条件后仍然打印Test OK!,如果本来应该打印Test failed!,去掉这个多余条件后仍然打印Test failed!。 if (x<3 && y>3) printf("Test OK!/n"); else if (x>=3 && y>=3) printf("Test OK!/n"); else if (z>3 && x>=3) printf("Test OK!/n"); else if (z<=3 && y>=3) printf("Test OK!/n"); else printf("Test failed!/n");  
     其实也就这一题难住了我,我考虑了很长时间,都没有考虑好如何去做这道题。现在说说我的想法吧,由于第二个else if 和第三个else if 含有 x >=3 和 y >=3 而第一个刚好是含有这一个,所以觉得应该觉得第一个else if 是多余的。它可以有后面两个else if 作为补充应用。

你可能感兴趣的:(c,Blog,语言)