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

时间:2021-07-30 22:13:12

学号 2016-2017-2 《Java程序设计》第三周学习总结

教材学习内容总结

1、对对象创建和对象引用变量的声明及初始化有了了解,加深了对对象和变量的了解;
2、学习了string类的服务以及string类所归属的包;
3、明白了包的概念,以及各种类有其所归属的包还有包的常见类型;
4、学会了两种类的格式输出;
5、学习了枚举型和序数值。

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

  • 问题1:对于浮点型和整数型的使用分不太清,导致在学习第三章的时候做练习时屡次出错,而且有时候错的简直一头雾水。
  • 问题1解决方案:重新学习第二章,加深对两种类型的理解认识,并在每一次遇到问题的时候都百度。举个例子,在做计算题的程序时,前期对变量定义成了整型数,而忽略了结果有可能是浮点数的情况,导致输出错误,其实只要多细心一些,考虑的再多一点也就好了。
  • 问题2:看了书,但是对一些新出现的概念不理解,感觉就是看了也不懂。
  • 问题2解决方案:再次在百度上查阅,就能获得较多的收获,有的会直接给出代码行解释的更加清楚;还有就是老师在蓝墨云上发的视频,只要认真看了就会发现新大陆。

代码调试中的问题和解决过程

  • 问题1:在做练习PP3.3还是PP3.5的时候,输出结果总是NaN。
  • 问题1解决方案:查阅之后知道NaN指的是无效数据,也可以说运算出错吧,到后来发现是运算顺序除了问题,还有搞错了加减号,没办法,只能更加细心吧。但是我对NaN的问题有了新认识:NaN表示不是一个数,例如计算0/0或者负数的平方根结果就是NaN。Java所有的浮点数值计算都遵循IEEE 754标准,用于表示溢出和出错情况的三个特殊的浮点数值:正无穷大、负无穷大、NaN。

  • 问题2:学习了强制转换之后却并不是特别会用,经常出现输出值是double但是却没有转换,导致错误。
  • 问题2解决方案:最主要的是对数的类型忽略了判断,只要在发现之后加上转换类型就OK。

[https://gitee.com/CS-IMIS-23/dky20172325dyk.git]

抱歉脚本的问题并没有解决,但是我的练习的作业绝对都按质量完成。
20172325 2017-2018-2 《程序设计与数据结构》第三周学习总结

上周考试错题总结

  • 1.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类型,所以会发生运行时错误)
    答案:A
    在float z=5/10的赋值语句中,5和10都是int类型的数值,所以5/10得到的结果是0,这个结果0再赋给float类型的z,因此z将等于0.0
  • 2.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 (以上所有类型都可以存储数值型数据)
    int和byte用于存储整数(整数)和浮点数,用于存储一个实数或浮点值(带小数点的值)。字符存储一个字符,包括字母、标点和数字。然而,存储数字“5”与存储数字5不一样。
  • 3.If you want to store into the String name the value "George Bush", you would do which statement? (如果你想把"George Bush"这个值存储为字符串类型的名字,你会执行那条语句?)D .String name = new String("George" + " " + "Bush");
    E .Any of the above would work (上述都可以完成)
    答案:E
    有两种方法可以将字符串存储为字符串变量,通过使用“new string (string value)”构造一个新字符串,或者使用赋值语句,因此A或B都可以工作。在C和D中,字符串连接操作符+的变体。所以这四种方法都行得通。
  • 4.如果a、b和c是int类型的变量,a=5,b=7,c=12,那么语句int z = (a * b - c) / a;得出的z等于4。
    不需要四舍五入,只有扩展类型转换时因为有可能损失最低位有效数字,才应该按照IEEE754浮点数标准的舍入。
  • 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 (以上全部合法)
    因为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 (它可以执行任何类型的数值,其结果始终是数值)
    Mod,或modulo,返回由一个分区产生的剩余部分。
    其余的总是数值型的。
    尽管通常使用整数值,但%运算符可用于所有类型的数值数据。
  • 7.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.A variable of type boolean will store either a 0 or a 1. (Boolean类型的变量将被存储为0或1)
    A .true
    B .false
    布尔变量只能存储两个值中的一个,但这些值是保留字true和false。
    在C语言中,c++和c#布尔值被实现为只存储0或1的int变量,但是在Java中,语言的作者选择了真实和错误的布尔文字,因为这被认为是语义上更容易理解的(而且更安全)。
  • 9.You cannot cast a String to be a char and you cannot cast a String which stores a number to be an int, float or double. (你不能将字符串强制转换为char类型,也不能将一个字符串强制转换为int、float或double类型。)
    A . true
    B . false
    对char类型不熟悉。char类型在Java语言中,代表一个字符,且只能表示一个!
  • 10.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 (以上所有情况都需要强制转换)
    数据类型转换时double>float>long>int>char>shart>byte.逆向转换需声明

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:更加努力学习

参考资料