[考题] 103关务 程式语言概要

楼主: qaz5620 (Ellie是我的最爱~)   2014-06-12 18:42:06
以下是问题及当时凭记忆所记得的答案
可以请版友们帮我看看吗 三小题加起来20分的题目我只拿到5分...
何谓布林运算子(Boolean Operator)之短路运算(Short-Circuit Evaluation)?
在&&运算式中 若遇到前面结果为FALSE 则不执行&&后面运算 结果为FALSE
在||运算式中 若遇到前面结果为TRUE 则不执行||后面运算 结果为TRUE
试述短路运算有何优点?又有何缺点?(8分)
优点 计算效率佳 可减少程式计算数量
缺点 容易使程式撰写者发生逻辑错误
试述C语言如何处理布林运算子之短路运算。(8分)
int main void(){
int a=4; b=2; c=3;
if (a<b && b<c)
pintf("1"); //此段程式不会执行&&后面计算 为c语言处理&&短路运算方式
}
int main void(){
int a=4; b=2; c=3;
if (a>b || b<c)
pintf("1"); //此段程式不会执行||后面计算 为c语言处理||短路运算方式
}
作者: Sunofgod ( )   2014-06-12 18:45:00
捷径的第一小题 无须计算所有的算子或运算子即可决定结果的计算方式 你的写法比较像举例 他考的应是"定义"第二小题跟你写得差不多第三小题我多回答了 当为true时 C会回传1 当为false回传0也许差在这吧
楼主: qaz5620 (Ellie是我的最爱~)   2014-06-12 18:49:00
感谢 那请问循环改递回那边可以帮我看看吗
作者: Sunofgod ( )   2014-06-12 18:53:00
我已忘记自己怎写且我也被扣10分 也许是没防呆要考虑n是负值吧
作者: claudia4096 (泠)   2014-06-12 18:54:00
你真的没写 fact(n-1) 还是po文时笔误?另外负值没处理也是问题, 会掉进无穷循环
作者: bloodyaugust (bloodyaugust)   2014-06-12 18:55:00
第3小题没写出是否会print
作者: Sunofgod ( )   2014-06-12 18:58:00
应该是笔误啦 那边如果错应该一分都没有
楼主: qaz5620 (Ellie是我的最爱~)   2014-06-12 18:59:00
感谢提醒 我笔误了 那边是N-1看了一下25473那篇上榜文 他没写0只被扣5分我有写0却被扣10分 到底怎回事啊 囧
作者: claudia4096 (泠)   2014-06-12 19:06:00
改考券的人不同?我0跟负数都处理了也被扣5分,不知在扣什么 @@ (刚拿到成绩单)
作者: okstephen1 (ㄌㄩㄝ)   2014-06-12 21:02:00
老实说 我也不太懂 我只依稀记得我好像有用//在if的后面注明递回终止条件的样子 应该是改的人不同?我刚想到会不会是输入人按错的时候要处理负数?阶乘的n好像必须是自然数 http://ppt.cc/H5zx我也不太确定是不是因为这样
作者: gary22204 (大头蛇)   2014-06-12 21:17:00
我也是被扣五分,真的不太懂..话说大于0的INT就是自然数讲错,0也是自然数XDDDD
作者: okstephen1 (ㄌㄩㄝ)   2014-06-13 00:38:00
我的意思是 <0应该为不合法
作者: Sunofgod ( )   2014-06-13 09:57:00
我在想是不是要写主程式才给全分?虽然他题目只要求改写成递回 但给10分或许要写主程式说错 给20分
作者: claudia4096 (泠)   2014-06-13 11:45:00
唉,我在猜是不是大家最后都没再多写 return 1;早年的turbo C 编译器,不写最后的return会过不了只能请bigwhite大解释了,乱猜也不是办法
作者: lingpxs (Kelly Lin)   2014-06-14 10:29:00
第一题举例请用AND OR取代&& ||第二题优点 减少程式码执行数量 效率较佳 缺点容易有逻辑错误 需编译器支援最后那提应该用if(n<=1) 才可以处理到1以下的条件

Links booklink

Contact Us: admin [ a t ] ucptt.com