分享

20182306 2019-2020-1 《数据结构与面向对象程序设计》第二、三周学习总结

 印度阿三17 2019-09-22

教材学习内容总结

  • Scanner类输入先输入创立对象例如Scanner scan = new Scanner(System.in).再凭借此进行输入。如a=scan.nextInt(),注意后面的类型首字母大写。

  • Math是静态方法

  • java.text包有NumberFormat和DecimmalFormat

  • message=scan.nextLine;将下一行输入的一行文本作为字符串变量保存。

  • 整形除以浮点型,整形自动转化为浮点型,再进行运算。

  • import java.util.Scanner;在类定义之前,告诉系统要使用Scanner类。

  • Random类:属于java.util包

  • 包与类库:package和API(Application Programming Intefaces)

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

  • 问题1:什么是类方法或静态方法?

  • 问题1解决方案:一个类的方法即静态方法可以通过定义该方法的类名调用,如Math.abs。如果方法不是静态的,则只能通过一个实例调用。

  • 问题2:NumberFormat对象的使用不能用new来创建,也不可以直接调用其方法。

  • 问题2解决方案:NumberFormat不能用new运算符来实例化一个对象,而且一次只能用里面一个方法来创建一个对象。根据教材中给出的例子程序,我们一次只能创建一个用于返回格式化值的对象getCurrencyInstance和getPercentInstance,接着将数字以字符串的形势用format()方法返还回去。即先设定对象的模式,再调用方法。

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

  • 问题1:我发现我的码云在班级中没有仓库

  • 问题1解决方案:将我之前的仓库删掉,然后将Linux的之前绑定的仓库解绑,然后用 git clone绑定新的仓库。将之前的代码上传。

  • 问题2: Java中也存在吃回车问题

  • 问题2解决方案:输入op=scan.nextLine();将缓冲的回车吃掉。

  • 问题3:在public class后面的文件格式有问题

  • 问题3解决方案:后面的文件名不能带.

  • 问题4:在运行代码管理脚本时不能运行

  • 问题4解决方法:用ll和`ls``查看文件发现已经被我删掉了,重新下载复制到home里运行。

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 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 (以上所有情况都需要强制转换)
    正确答案: D 你的答案: B
    解析:对于A,Charat返回一个char,所以没有问题。在B和C中,这种情况正在扩大采用较窄类型的操作,并将值存储在更宽的类型中。只有在D的情况下,一个更宽的类型被存储在一个更窄的类型中,所以需要一个转换。

  • 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都不是字符串而引起的一个错误)
    正确答案: B 你的答案: A
    解析:“导致表达式的其余部分被视为字符串,因此两个 符号被用作字符串连接。因此,x y与y或105连接在一起。

  • 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
    正确答案: A 你的答案: B
    没有将字符串强制转换为基本类型之一的机制,但有一些方法可用于执行类似的操作,并在给定位置(Charat)返回字符或返回与字符串中存储的数字相等的int值、Float值或双值。

  • 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?

    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--;
    正确答案: B 你的答案: C
    解析:如果x是正的,如果x是负x,则执行x ,否则什么都不会发生,或者x不受影响。在A,C,D和E中,逻辑是不正确的。在A中,x-,如果x不是正的,那么如果x是0,x变成-1,这是错误的答案。在C中,如果x为正,则执行x 。在这两种情况下,都会执行下一条语句,如果x不是负的,则执行etc子句,将x设置为0。因此,如果x是正的,在这组代码之后,它变成0。在D中,x 和x-都是在x不是0的情况下执行的。在E中,这段代码并不试图确定x是正还是负,它只是添加一个,然后从x中减去1,使x保持不变。

  • If x is an int where x = 1, what will x be after the following loop terminates?
    while (x < 100)x= 2;
    A .2
    B .64
    C .100
    D .128
    E .none of the above, this is an infinite loop
    正确答案: D 你的答案: B
    解析:对于x=1,循环条件为true,语句执行,加倍x,现在为2。由于循环条件仍然为真,语句再次执行,将x加倍为4。在接下来的4次迭代中,该条件仍然为真,其中x变为8、16、32和64。由于(x<100)在x=64时仍然为真,所以循环再次迭代,x变为2
    64=128。现在,(x<100)不再为真,循环以x=128结束。

  • In Java, selection statements consist of the if and if-else statements.
    A .true
    B .false
    正确答案: B 你的答案: A
    解析:此列表省略开关语句。

  • When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
    A .true
    B .false
    正确答案: B 你的答案: A
    解析:这对于int、Short、字节、Long、char和boole是正确的,但对于Double或Float变量则不是这样。如果两个双变量x和y正在测试,则(x=y)只有在它们完全等于最后一个小数点的情况下才是真的。相反,比较这两个值是很常见的,但考虑到价值上的微小差异。例如,如果Theta=0.000001,我们可以用(x-y<=Theta)而不是(x=y)来测试x和y,以便更好地了解它们是否足够接近,是否被认为相等。

  • In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).
    A .true
    B .false
    正确答案: B 你的答案: A
    解析:还可以使用<,>,=,!=,>=,>=直接比较char变量,但是对于任何字符串比较,您必须使用compareto()、equalsIgnoreCase()和equalsIgnoreCase()。

  • In Java a variable may contain
    A .a value or a reference
    B .a package
    C .a method
    D .a class
    E .any of the above
    正确答案: A 你的答案: E
    解析:Java变量包含值或对类实例的引用(这些实例包含值和/或其他引用)。

  • In Java, "instantiation" means
    A .noticing the first time something is used
    B .creating a new object of the class
    C .creating a new alias to an existing object
    D .launching a method
    E .none of the above
    正确答案: B 你的答案: C
    解析:“实例化”意味着创建对象的新实例。这通常是通过使用新的运算符来实现的。对于String,只需在表达式中使用引号即可创建新实例(实例化)。例如:String s;s=“a newstring(实例)”;

  • Consider the following two lines of code. What can you say about s1 and s2?String s1 = "testing" "123";String s2 = new String("testing 123");
    A .s1 and s2 are both references to the same String object
    B .the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error
    C .s1 and s2 are both references to different String objects
    D .s1 and s2 will compare "equal"
    E .none of the above
    正确答案: C 你的答案: B
    解析:这两个声明都是合法的Java。S1是一个字符串引用,它被初始化为字符串“test 123”。S2是一个字符串引用,它被初始化为字符串“test 123”。注意“测试”和“123”之间的空格。所以这两个字符串是不相等的。

  • An "alias" is when
    A .two different reference variables refer to the same physical object
    B .two different numeric variables refer to the same physical object
    C .two different numeric variables contain identical values
    D .two variables have the same names
    E .none of the above
    正确答案: A 你的答案: B
    解析:当有两个或多个对同一个物理对象的引用时,会出现一个“别名”,因此通过跟随引用,可以读取/写入/修改对象。

  • Consider the following enumeration

enum Speed { FAST, MEDIUM, SLOW };
A .The ordinal value of MEDIUM is 2
B .The ordinal value of SLOW is 1
C .The name of the Speed enumeration whose ordinal value is zero is FAST
D .The name of the Speed enumeration whose ordinal value is one is SLOW
E .None of the above
正确答案: C 你的答案: E

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分

    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)

    • 排版混乱的不加分

  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分

    • 缺少“代码调试中的问题和解决过程”的不加分

    • 代码托管不能打开的不加分

    • 缺少“结对及互评”的不能打开的不加分

    • 缺少“上周考试错题总结”的不能加分

    • 缺少“进度条”的不能加分

    • 缺少“参考资料”的不能加分

  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分

  6. 其他加分:

    • 周五前发博客的加1分

    • 感想,体会不假大空的加1分

    • 排版精美的加一分

    • 进度条中记录学习时间与改进情况的加1分

    • 有动手写新代码的加1分

    • 课后选择题有验证的加1分

    • 代码Commit Message规范的加1分

    • 错题学习深入的加1分

    • 点评认真,能指出博客和代码中的问题的加1分

    • 结对学习情况真实可信的加1分

  7. 扣分:

    • 有抄袭的扣至0分

    • 代码作弊的扣至0分

    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • xxx

    • xxx

    • ...

  • 代码中值得学习的或问题:

    • xxx

    • xxx

    • ...

  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

    • XXXX

    • XXXX

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多