20172328李馨雨《程序设计与数据结构》第六周学习总结
- 问题1:在做命令行参数时无法输入。

1.(〃‘▽‘〃)本题解答:在参看同学的博客后,对此问题有了解决方案
- 问题2:8.1做的时候一直出错。原来的代码

- 2.(〃‘▽‘〃)本题解答:其实是因为在循环之后加的if条件语句,这样的话会造成逻辑错误。
问题3:在做pp8.5的时候不太懂,询问了郭凯思路,自己动手实践了 一下,发现我创建的数组其实是空的,x1~xn的值我并没有实例化,所以还是不成功的。

- 3.(〃‘▽‘〃)本题解答:找了编程能力很强的郭恺同学,他指出问题:是要让用户输入x1~xn的具体数值并让其保存在所创建的数组里面,使用for循环结构就能很好的解决问题。
- 问题4:在pp8.5中出现我输入n为2(让用户输入两个值)但是用户可以输出三个值,所以就困在了那里。

4.(〃‘▽‘〃)本题解答:后来发现是我的for循环中的判断语句有问题。所以应该将<换成<=。

- 问题1: Which of the sets of statements below will add 1 to x if x is positive and subtract 1 from x if x is negative but leave x alone if x is 0?(下面哪一个程序满足如果x是正数则加一,是负数则减一,是0则结束程序)
A . if (x > 0) x++;
else x--;
B. if (x > 0) x++;
else if (x < 0) x--;
C . if (x > 0) x++;
if (x < 0) x--;
else x = 0;
D . if (x == 0) x = 0;
else x++;
x--;
E . x++;
x--;
- 问题1分析和领悟:如果x是正的,x++是在x=-x时执行的,否则,什么都不会发生,或者x不受影响。在A、C、D和E中,逻辑是不正确的。在A x中,如果x不是正的,那么如果x=0,x变成-1,这是错误的答案。在C中,如果x是正的,那么就执行x++。在任何一种情况下,下一个语句都被执行,如果x不是负数,则执行else子句设置x为0。所以如果x是正的,在这组代码之后它就变成了0。在D、x++和x中——如果x不是0,都是执行的。在E中,这段代码并没有试图确定x是否为正还是负。
- 问题2:Assume that count is 0, total is 20 and max is 1. The following statement will do which of the following? if (count != 0 && total / count > max) max = total / count;(假设计数为0,总数为20,最大值为1。下面的语句将会执行下列哪一项?if(count!=0&&total/count max)max=total/count;)
A . The condition short circuits and the assignment statement is not executed(A。条件短路和赋值语句未执行)
B . The condition short circuits and the assignment statement is executed without problem(b。条件短路和赋值语句是无问题的执行的)
C . The condition does not short circuit causing a division by zero error(c。这种情况不存在短路引起的零误差)
D . The condition short circuits so that there is no division by zero error when evaluating the condition, but the assignment statement causes a division by zero error(d。条件短电路,在评估条件时没有零误差,但是赋值语句导致了零误差的除法)
E . The condition will not compile because it uses improper syntax(因为它使用了不正确的语法,所以这个条件不会被编译)
- 问题2分析和领悟:因为count是0,(count!=0)是假的。因为&&条件的左边是假的,条件是短路的,所以右边没有被求值。因此,避免了一个潜在的零错误。由于条件为假,所以语句max=total/count没有执行,再次避免了零错误的潜在划分。
- 问题3:When comparing any primitive type of variable, == should always be used to test to see if two values are equal.(当比较任何原始类型的变量时,==应该总是用来测试两个值是否相等。)
A . true(真)
B . false(假)
- 问题3分析和领悟:==用于测试两个值是否相等这种说法适用于int、short、byte、long、char和boolean,但不能是double或float变量。如果两个double型变量x和y正在被测试,(x==y)只有当它们完全等于最后一个小数点时才成立。相反,比较这两个值是很常见的,但是允许在价值上有细微的差别。例如,如果THETA=0.000001,我们可以通过(x-y<=THETA)来测试x和y,而不是(x==y),以便更好地了解它们是否足够接近,可以被认为是相等的。
- 问题4:If a switch statement is written that contains no break statements whatsoever,(如果一个switch语句中不含break会怎样?)
A . this is a syntax error and an appropriate error message will be generated(这是一个语法错误,将生成一个适当的错误消息)
B . each of the case clauses will be executed every time the switch statement is encountered(每当遇到switch语句时,都会执行每个case子句)
C . this is equivalent to having the switch statement always take the default clause, if one is present(这等价于交换语句总是取默认的子句,如果有的话)
D . this is not an error, but nothing within the switch statement ever will be executed(这不是一个错误,但是switch语句中的任何东西都不会被执行)
E . none of the above (没有正确答案)
- 问题4分析和领悟: 尽管写这样的switch语句是不习惯的,但是是合法的。switch语句执行的常规规则适用于在交换表达式表达式后执行匹配的case子句。在此之后,所有后续的条款都是按顺序执行的,因为没有中断语句来终止开关/案例的执行。
- 问题5:The statement if (x < 0) y = x; else y = 0; can be rewritten using a conditional operator as(这个语句if(x<0);y=x;else y=0,能用其他条件重写的是?)
A . y = (x < 0) ? x : 0;
B . x = (x < 0) ? y : 0;
C . (x < 0) ? y = x : y = 0;
D . y = (x < 0);
E . y = if (x < 0) x : 0;
- 问题5分析和领悟: 在这种情况下,Java测试一个条件(x<0)的条件操作符,如果是真的,则返回x,如果为false,则返回0。原始if语句是将y赋值为x if(x<0)和0。这将通过将y赋值为x或0来完成(x<0),如A.在B中所示,x被赋值为y或0的值,这是向后的。在D中,y将被设置为真或假,取决于(x<0),而E中的语句在语法上是无效的。
- 问题6: Which of the following statements are true about Java loops?
A . all three loop statements are functionally equivalent(所有三个循环语句在功能上是等价的)
B . while loops and do loops are essentially the same; but while loops always execute at least once(循环和循环本质上是相同的;但是循环总是至少执行一次)
C . if you know the number of times that a loop is to be performed, the best loop statement to use is a while loop(如果您知道要执行环路的次数,那么使用的最佳循环语句是while循环)
D . loops may be replaced by an appropriate combination of if-else and switch statements(循环可能被一个适当的if-else和switch语句的组合所取代。)
E . none of the above(以上都不是)
- 问题6分析和领悟: 答案选择A。在Java中,就像在大多数语言中一样,循环语句基本上都是等价的(几乎可以互换)。它们的主要差异是与何时评估控制条件以及是否有用于递增/更新的语法有关。
- 问题7:The following for-loop is an infinite loop.(下面这个程序是个死循环)
for (int j = 0; j < 1000; ) i++;
A . true(真)
B . false(假)
- 问题7分析和领悟:这个循环初始化j到0并将其与1000进行比较,但是在每次循环迭代之后不会改变 i 的值。在现实中,一旦变得太大,无法存储在内存中,循环就会终止,但逻辑上,这是一个无限循环。
- 博客中值得学习的或问题:
- (20172303)markdown格式漂亮,总结清晰明了。缺点是问题不是很深刻,输入错误有点重复。
- (20172301)markdown格式漂亮,总结很有深度。总之没有什么问题,值得我好好学习。
- 代码中值得学习的或问题:
- 本周结对学习情况
** 这周的任务量不大,但学习的内容不是很好掌握。当我看完书后,感觉大势在握的时候,8.1卡了我两个小时,一直显示错误。终于在仇夏同学的帮助下发现8.1的循环错误,成功解决后却发现8.5嘲笑我不自量力,心态有点复杂。所以我觉得:在理解的同时还是得去往实践的路上走的,虽然走的有些蹒跚,但是要一直一直继续走;可能速度不快,但一定要一直在路上。感谢帮助我学习的好朋友们,在学习java之路上我们一起加油!Fighting!**
目标 |
5000行 |
30篇 |
400小时 |
第一周 |
100/100 |
1/1 |
15/15 |
第二周 |
377/477 |
1/2 |
20/35 |
第三周 |
280/757 |
2/4 |
22/57 |
第四周 |
973/1730 |
1/5 |
35/92 |
第五周 |
1000/2730 |
1/6 |
40/132 |
第六周 |
729 /3459 |
1/7 |
40/172 |
参考资料
1.数组作为函数参数
2.java程序设计教材(第八版)
3.蓝墨云班课
20172328《程序设计与数据结构》第六周学习总结
原文:https://www.cnblogs.com/LXY462283007/p/8823575.html