20172323 2017-2018-2 《程序设计与数据结构》第三周学习总结
教材学习内容总结
本周学习了教材第三章节的内容,对类与对象的概念有了初步的了解,但是对于3.6格式化输出这一节的内容没有完全掌握,不是特别能理解NumberFormat类的用法,除此之外对包装器类这一节关于理论的知识理解不够。本周同时完成了实验项目的学习以及简单复习了第二章的内容,完成了章末自测题的所有实验项目。
教材学习中的问题和解决过程
- 问题1:假设声明和初始化了一个整型变量number,并且声明了一个Interger变量holdNumber。用Java中的两种方法是holdNumber表明number中所存的值。
- 问题1解决方案:方法1:采用整型构造方法:
holdNumber = new Interger(number);
方法2:采用自动装箱:
holdNumber = number; - 问题2:什么是类方法或静态方法?
- 问题2解决方案:一个类的方法即静态方法可以通过定义该方法的类名调用,如Math.abs。如果方法不是静态的,则只能通过一个实例调用。
代码调试中的问题和解决过程
- 问题1:在完成PP3.7的过程中,发现程序编好后,无论输入的值是什么最后的输出都为0。编写的程序如图:
- 问题1解决方案:在这个程序中s的定义方法有问题,输入的“1/2”因为1和2都是整数,因此得到的结果也会是整数,所以是0而不是0.5。因此运行的结果永远都是0。只需要将“1/2”更改为0.5即可。
代码托管
上周考试错题总结
-
1.Consider the following statement:System.out.println("1 big bad wolf\t8 the 3 little pigs\n4 dinner\r2night");
This statement will output ________ lines of text
A.1 B.2 C.3 D.4 E.5 -
解析:"\t"表示一个制表符,虽然跟在\t后的句子会输出在下一行,但光标会停在本行;
"\n"后的句子会输出在下一行,同时光标也会移动至下一行。
"\r"不会表示回车符,不会将句子移至下一行。
因此此语句将会输出两行文本。(如图所示)
-
6.A cast is required in which of the following situations? (下列哪种情况需要强制转换?)
A.using charAt to take an element of a String and store it in a char (使用charAt来获取字符串元素并将其存储为char类型)
B.storing an int in a float (将一个int类型的数存储为float类型)
C.storing a float in a double (将一个float类型的数存储为double类型)
D.storing a float in an int (将一个float类型的数存储为int类型)
E.all of the above require casts (以上所有情况都需要强制转换) -
解析:B、C选项都是将数据类型的存储空间改大,因此转换可以直接进行。而D选项是将存储范围改小,因此需要强制转换。
-
7.If x is an int and y is a float, all of the following are legal except which assignment statement? (如果x是一个int类型的数,y是一个float类型的数,下面所有赋值语句中哪个不合法?)
A.y = x;
B.x = y;
C.y = (float) x;
D.x = (int) y;
E.all of the above are legal (以上全部合法) -
解析:x是一个整型数,所以如果y(浮点型)如果不是一个整型数的类型,那么转换就是不合法的。
-
9.What will be the result of the following assignment statement? Assume b = 5 and c = 10.
int a = b * (-c + 2) / 2; (下列赋值语句的结果将是什么?假设给b赋值5,给c赋值10)
A.30 B.-30 C.20 D.-20 E.-6 -
解析:如图所示
-
12.What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(x+y);的输出是什么?)
A.15 B.105 C.10 5 D.x+y E.An error since neither x nor y is a String (因x和y都不是字符串而引起的一个错误) -
解析:如图所示
-
20.A variable of type boolean will store either a 0 or a 1. (Boolean类型的变量将被存储为0或1)
A.true B.false -
解析:Java中的单词true和false为保留字,用于表示布尔常量值。故题目错误。
其他(感悟、思考等,可选)
编写程序时不要只动手不动脑,对书上的概念性的东西也要深入思考,不然会把知识学死而不能真正掌握为我所用。也不要一味关注代码行数的多少,踏踏实实把每一个项目做好才是最主要的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 117/117 | 1/1 | 19/19 | |
第二周 | 289/406 | 1/2 | 21/40 | |
第三周 | 403/809 | 2/4 | 22/62 |
-
计划学习时间:20小时
-
实际学习时间:22小时