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

教材学习内容总结

本周主要学习了教材第二章的内容,相较于第一章而言,这一章的内容比较生僻,包括常量与变量、基本数据类型、交互式程序这几类概念都不太容易理解。不过在反复的阅读理解,以及完成课后练习题的过程中,我逐渐开始了解到了这些概念的意思。本周初步了解了数据与表达式的一些相关知识,收获颇丰,编程的能力也在逐渐提高。

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

  • 问题1:SR2.33假设result是一个float型变量,value是一个int型变量。执行以下复制语句以后,变量value将是什么类型?为什么?
    result=value;
  • 问题1解决方案:在执行该语句时保存在value变量中的值被读取出来并转换为float型,然后复制到result变量代表的存储单元。但value变量本身没有变化,所以在执行赋值语句后value还是int型变量。

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

  • 问题1:本周遇到的问题极其复杂,我觉得能从头到尾叙述清楚是几乎不可能的了。首先因为学长的建议,我准备将码云上混乱不堪的文件分类--将.java文件归入src文件夹,.class文件归入bin文件夹,起初进行得挺顺利的结果在上传的过程中遇到系统提示
    由于一周之内数次遇到上传文件的问题,所以我尝试自己上网查找解决方案,详细解决过程我记不太清晰,但当文件上传到码云之后,我发现上传的文件夹出现了如图所示的情况

    chap01文件夹的名称后出现了一串乱码,鼠标点击之后无反应也无法删除,点击查看代码行数变化出现了如图结果


    在寻求学长的帮助后,我对要上传的文件进行git pull操作,程序又提醒出现如下错误

    最后只有找到老师帮忙解决,将码云上的项目彻底删除重新新建一个项目,最终上传成功
  • 问题2:在编辑PP23项目时,要求读取两个浮点数,输出它们的和、差及乘积。我编辑的程序如图:

    编译后执行程序发现求差以及乘积运算结果都正确,只有加法运算出现错误:

    在网上查找之后,我了解到有些小数不能用二进制精确地表示,导致运算时出现差错,于是修改了输入的数值,重新进行编译,问题就解决了。

代码托管

上周考试错题总结

  • 4.题目:Which memory capacity is the largest? (哪个选项的存储容量最大?)
    A.1,500,000,000,000 bytes (1,500,000,000,000个字节)
    B.100 gigabytes (100千兆字节)
    C.3,500,000 kilobytes (3,500,000千字节)
    D.10 terabyte (10太字节)
    E.12,000,000 megabytes (12,000,000百万字节)
    解析:这道题错在没有好好看清题目吧,两眼一看到这么多数字就有点犯晕。除此之外,对存储容量的单位还是有一点生疏,尤其是看到太字节时竟然一点都没想到指的TB。所以这道题其实很简单,A-1.5MB,B-100GB,C-3400MB,D-10TB,E-12TB,故此题选E。
  • 6.题目:Volatility is a property of (易变性是___的性质)
    A.RAM (随机存储器)
    B.ROM (只读存储器)
    C.disk (磁盘)
    D.software (软件)
    E.computer networks (计算机网络)
    解析:确实没有这方面知识的印象,所以我就在网上胡乱查找,于是乎就找到了此篇(https://iask.sina.com.cn/b/1qkhecI4iHT.html),于是就不加思考的选择了D选项。
    现在做错题分析,再仔细联系教材回想,RAM具有不稳定的性质也就是指易变性,而第一章的内容并没有涉及到软件的性质,所以正确答案应该选择A。
  • 7.题目:Java is an example of a(n) (Java是一个___的例子)
    A.machine language (机器语言)
    B.assembly language (汇编语言)
    C.high-level language (高级语言)
    D.fourth generation language (第四代语言)
    E.both C and D (C和D都是)
    解析:这道题纯粹是书上的知识没有掌握,选择E。
  • 11.题目:Comments should (注释应该)
    A.rephrase the code it explains in English (用英语复述它解释的代码)
    B.be insightful and explain what the instruction's intention is ( 有深刻见解并解释指令的意图是什么)
    C.only be included in code that is difficult to understand (仅仅包含在难以理解的代码中)
    D.be used to define variables whose names are not easy to understand (被用于解释难以理解的变量名称)
    E.all of the above (以上皆是)
    解析:刚开始看到题目时觉得好像所有选项都是正确的。书上关于注释的使用如是“注释应用于清楚地描述程序的目的、功能及解释一些特殊的处理过程。”所以A仅仅用于复述解释的代码,B仅仅包含在难以理解的代码中,D解释难以理解的变量名称都是错误的。故答案选择B。
  • 12.题目:The main method for a Java program is defined by (Java程序中的主方法是由___定义的)
    A.public static main( )
    B.public static main(String[ ] args);
    C.public static main(String[ ] args)
    D.private static main(String[ ] args)
    E.the main method could be defined as in A, C or D but not B (主方法可以定义为A,C或者D,但不是B)
    解析:这道题其实很简单,但我被其他几个选项所干扰。A错在没有括号里的内容,B多打了一个;号,D中用private取代public使得程序没有意义。故答案选C。
  • 14.题目:The instruction: System.out.println("Hello World"); might best be commented as (这个指令最好被注释为)
    A.// prints "Hello World" to the screen (将"Hello World"打印到屏幕上)
    B.// prints a message (打印一条信息)
    C.// used to demonstrate an output message (用来演示输出信息)
    D.//
    E.// meaningless instruction (没有意义的指令)
    解析:我倒是倾向于选择D,毕竟本条命令很容易理解,并不会因为编写的时间过久而忘记。但按照官方解释,A太过直白,B简直是废话,D、E又没有意义,只有选择 C。
  • 16.题目:Which of the following is not syntactically legal in Java? (在Java中,下列哪一条语法不合法?)
    A.public class Foo
    B.System.out.println("Hi");
    C.{ }
    D.s t a t i c main(String[ ] args)
    E.only B is legally valid, all of the rest are illegal (只有B是合法的,其余都不合法)
    解析:D的错误在于计算机无法识别“s t a t i c”。
  • 17.题目:Which of the following is a legal Java identifier? (下面哪个是合法的Java标识符?)
    A.i
    B.class
    C.ilikeclass!
    D.idon'tlikeclass
    E.i-like-class
    解析:‘’、-、!等符号计算机都无法识别,而class是标识符,故答案选择A。
  • 25.题目:Which of the following characters does not need to have an associated "closing" character in a Java program? (在一个Java程序中,下面哪个字符不需要有与之相关的“结尾”字符?)
    A.{
    B.(
    C.[
    D.<
    E.all of these require closing characters (以上都需要结尾字符)
    解析:这道题需要记忆。好像没在书上看到过相关知识。
  • 26.题目:Mistyping "println" as "printn" will result in (将“println”打印为“printn”将会导致)
    A.a syntax error (语法错误)
    B.a run-time error (运行时错误)
    C.a logical error (逻辑错误)
    D.no error at all (根本没有错误)
    E.converting the statement into a comment (该语句转换成注释)
    解析:粗心大意把题目读错,我把“printn”看做了“print”,错以为是程序可以正常编译和执行,但得到的结果不对,故选择了C逻辑错误。
  • 29.题目:Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。)
    A.true
    B.false
    解析:又是书上的内容读的不仔细,Java字节码同样需要由Java虚拟机的Java解释器执行。
  • 32.题目:The word "Public" is a reserved word. ("Public"是一个保留字。)
    A.true
    B.false
    解释:Java语言是对大小写敏感的,public和Public不是一回事。

其他

 两周以来我在向码云上传文件时遇见了许多问题,根本原因还是因为最开始的教程没有仔细阅读,所以上传文件时总会输入错误的指令,造成文件的重复上传。当时为了省事没有认真阅读,现在反而因此付出了数倍的时间。另外在考试中总是粗心大意读不清楚题目,按自己的想法选择答案。这些毛病都要尽量去避免。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 117/117 1/1 19/19
第二周 289/406 1/2 21/40
  • 计划学习时间:20小时

  • 实际学习时间:21小时

参考资料

posted @ 2018-03-18 15:11  二许  阅读(244)  评论(3编辑  收藏  举报