20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

时间:2022-02-19 10:27:26

20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

教材学习内容总结

  • 讨论对象的创建和使用对象引用变量。
  • 探索String类提供的服务。
  • 描述如何组织成Java标准类库包。
  • 探索随机和数学课提供的服务。
  • 讨论如何使用NumberFormat和DecimalFormat类格式输出。
  • 介绍枚举类型。

教材学习中的问题和解决问题

  • 暂无

代码学习中的问题和解决过程

  • 问题1:在做项目pp0301时,出现了下面这中情况
    20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

  • 问题1解决方案:通过仔细的分析,我发现代码是对的,主要是数据输入时出现了错误,这里的姓至少要输入5位,而我在输入名字时,是按我的名字输的,所以只有两位,所以导致输出不了数据。
  • 问题2:在做项目pp0302时,出现下面这个问题
    20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

-0 问题2解决方案:经过和前面例题的对比,我发现Math._____之前要用括号将数据类型输入进去,就像(int)(double)等

上周考试错题总结

  • 问题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 (思考下面的语句,该语句将输出___行文本)
  • 问题1分析:\t转义序列插入一个选项卡,但将光标放在同一行。\n的转义序列导致产生一个新行,以便“4晚餐”在下一行输出。转义序列\r使回车返回(也就是说,光标移回到左边缘),但是因为它没有开始新的行,“2night”输出超过“4 dinn”,导致第二行看起来像“2nighter”。
  • 问题2:The word println is a(n) (单词println是一个)
    A .method (方法)
    B .reserved word (保留字)
    C .variable (变量)
    D .class (类)
    E .String (字符串)
  • 问题2分析:println这个词作为消息传递给系统。输出对象,所以println是一个方法。
  • 问题3:Of the following types, which one cannot store a numeric value? (在下列数据类型中,哪一个不能存储一个数值型数据?)
    A .int
    B .byte
    C .float
    D .char
    E .all of these can store numeric values (以上所有类型都可以存储数值型数据)
  • 问题3分析:int和byte用于存储整数(整数)和浮点数,用于存储一个实数或浮点值(带小数点的值)。字符存储一个字符,包括字母、标点和数字。然而,存储数字“5”与存储数字5不一样。
  • 问题4: What value will z have if we execute the following assignment statement? float z = 5 / 10; (如果我们执行下面的赋值语句,得到的z将会是什么值?)
    A . z will equal 0.0 (z将等于0.0)
    B . z will equal 0.5 (z将等于0.5)
    C . z will equal 5.0 (z将等于5.0)
    D . z will equal 0.05 (z将等于0.05)
    E . none of the above, a run-time error arises because z is a float and 5 / 10 is an int (以上都不对,因为z是float类型,5 / 10是int类型,所以会发生运行时错误)
  • 问题4分析:因为5和10是整型变量,所以进行除法运算时就会按照整形变量即int型变量进行计算,然后再进行赋值型提升转换,变成0.0.故选择B.
  • 问题5: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 (以上全部合法)
  • 问题5分析:因为x是int,不能只是一个浮点数,除非浮动是扮演一个int。没有明确在b的赋值语句,没有必要因为一个浮动(y)可以接受一个int值(x),C和D,明确投存在法律。
  • 问题6:Which of the following is true regarding the mod operator, %? (关于求余运算符%,下面哪项是正确的?)
    A .It can only be performed on int values and its result is a double (它只能执行int类型的数值,其结果是double类型的数)
    B .It can only be performed on int values and its result is an int (它只能执行int类型的数值,其结果也是int类型的数)
    C .It can only be performed on float or double values and its result is an int (它只能执行float或者double类型的数值,其结果是int类型的数)
    D .It can only be performed on float or double values and its result is a double (它只能执行float或者double类型的数值,其结果是double类型的数)
    E .It can be performed on any numeric values, and the result always is numeric (它可以执行任何类型的数值,其结果始终是数值)
  • 问题6分析:Mod,或modulo,返回由一个分区产生的剩余部分。
    其余的总是数值型的。
    尽管通常使用整数值,但%运算符可用于所有类型的数值数据。
  • 问题7:What value will z have if we execute the following assignment statement?
    int z = 50 / 10.00; (如果我们执行下面的赋值语句,z将得到什么值?)
    A .5
    B .5.0
    C .50
    D .10
    E .none of the above, a run-time error arises because z is an int and 50 / 10.00 is not (以上皆错,因z是一个整型数而50 / 10.00不是,会产生运行时错误)
  • 问题7分析:因为10.00不是int,分裂产生一个双精度值不能存储在int z。为此,划分的结果必须扮演一个int之前存储在z,或价值10.00之前必须先扮演一个int划分。
  • 问题8: Java is a strongly typed language. What is meant by "strongly typed"? (Java是一种强类型语言。“强类型”指的是什么?)
    A . Every variable must have an associated type before you can use it (在使用变量之前,每个变量一定都有一个与之关联的类型)
    B . Variables can be used without declaring their type (变量可以在不声明其类型的情况下使用)
    C . Every variable has a single type associated with it throughout its existence in the program, and the variable can only store values of that type (在程序中,每个变量都有一个与之关联的类型,而变量只能存储该类型的值)
    D . Variables are allowed to change type during their existence in the program as long as the value it currently stores is of the type it is currently declared to be (变量存在于程序中时允许改变类型,只要它当前存储的值是当前声明的类型)
    E . Variables are allowed to change types during their existence in the program but only if the change is to a narrower type (变量存在于程序中时允许改变类型,但只能缩窄转换)
  • 问题8分析:其实错了这道题后我还是没有理解,看到解析。 The reason that strong typing is important is it guarantees that a program that was successfully compiled will not have run-time errors associated with the misuse of types for the variables declared.我姑且翻译一下:强类型很重要的原因是它不会误用已经声明了的类型的变量,保证了程序正常编译而不会运行出错。(在程序中,每个变量都有一个与之关联的类型,而变量只能存储该类型的值),B答案比较合理。
  • 问题9:A variable of type boolean will store either a 0 or a 1. (Boolean类型的变量将被存储为0或1)
    A .true
    B .false
    问题9分析:布尔变量只能存储两个值中的一个,但这些值是保留字true和false。
    在C语言中,c++和c#布尔值被实现为只存储0或1的int变量,但是在Java中,语言的作者选择了真实和错误的布尔文字,因为这被认为是语义上更容易理解的(而且更安全)。

    代码托管

    20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

其他(感悟、思考等,可选)

进入第三周,有点难,程序的样子和上一周有所改变,但要打的代码更多了,发现时间有点不够用,感觉这一周学的状态并不好,所以下一周会花更多的时间在Java的学习中。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 95/95 1/1 18/18
第二周 515/620 1/2 22/40
第三周 290/910 1/3 20/60

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:25小时

  • 实际学习时间:22小时

  • 改进情况:没有

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料