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小时

参考资料

posted @ 2018-03-25 19:01  二许  阅读(200)  评论(3编辑  收藏  举报