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