学号 2017-2018-2 《程序设计与数据结构》第二周学习总结
教材学习内容总结
1.明白了在Java中字字符串就是对象,是有String类定义,并以双引号作为字符串的定界符
2.print和println方法是System.out对象提供的两项服务,println将参数输出,且移至下一行,而print只是将参数输出,不会移至下一行
3.用“+”来拼接字符串,因为字符串不能跨行;也可用来当两个操作数都是数值型时的加法运算
4.理解了什么是基本数字类型和一些表达式
5.对于数据类型转换技术我做了一点整理
6.能够从用户输入中读取数据,并进行执行的程序才有实用性,学习了交互式程序中Scanner类
7.总的来说,这一章的学习内容比上一章更加的充实,也更加复杂,了解的东西也越来越详细,要想掌握好还需要多看几遍书,Java的学习之路还要自己更加努力!
教材学习中的问题和解决过程
- 问题1:之前一直理解不了教材P43中
一行变量声明语句可以同时声明具有相同类型的多个变量。同一行声明的各个变量,可以根据需要决定是否赋初始值。例如:int count, minimum=0,result;
-
问题1解决方案:我先是尝试使用了这样的代码,结果
;
然后我就去查看百度,百度说是我没有赋初始值,还是没有理解,于是去询问了大佬,最后才明白,“=”是用来赋值的,而这个代码声明的是三个变量“count”,“minimum”,和“result”,只有“minimum”赋了初始值,而不是像我理解的一样,“=”左右一一对应,TAT。还好理解了这个,不然之后的例子都要看不懂了。 -
问题2:SR2.27 执行下面代码后,整型变量result的值是多少:
result= 27 ;result =result + 3 ;result = result / 7 ;result = result * 2 ; -
问题2解决方案:其实之前还是没有很能理解整型到底该如何进行运算,直到遇见这道题。我按照普通算法直接算出这道题的答案是60/7,但看一答案,我觉得很不解,为什么是8。想了很久还是不明白,于是写了个程序,最后得到的结果确实是8。问了室友之后才知道,整型值进行运算后得到的还是整型值,恍然大悟,感谢馨雨,不然接下来都会是懵懵的。
代码调试中的问题和解决过程
- 问题1:Git push 时遇到了一个新问题
- 问题1解决方案:有的同学之前也遇到过这个问题,所以我去请教一下,博客
其实这个礼拜也遇到了一些小问题,但是我觉的这写问题都是出现在编辑Java文件时,这样的问题每个人都会遇见,而且都不相同,只有自己一遍遍修改,一遍遍尝试才能成功编写出一段有效的代码,所以我在这就不啰嗦繁琐的写出啦。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
-
错题一:Volatility is a property of (易变性是___的性质)
A .RAM (随机存储器)
B .ROM (只读存储器)
C .disk (磁盘)
D .software (软件)
E .computer networks (计算机网络)
我的选择是D,正确答案:A
错因:没有理解易变性
解析:易变性是指当电力被切断时,存储的记忆将会丢失,这是随机存储器的性质 -
错题二:The ability to directly obtain a stored item by referencing its address is known as (通过引用地址直接获得存储项的能力被称为___)
A .random access (随机存取)
B .sequential access (顺序存取)
C .read-only access (只读访问)
D .fetch access (获取访问)
E .volatility (易变性)
正确选项A
错因:随机存取和随机存储器混淆
解析:RAM和ROM都是随机(直接)存取设备,随机存取意思是仅可通过地址恢复获取存储项。 -
错题三:It is important to dissect a problem into manageable pieces before trying to solve the problem because (试图解决问题之前,把一个问题分解成可控制的几部分是很重要的,因为)
A .most problems are too complex to be solved as a single, large activity (大多数问题太复杂,以至于不能作为一个单独大型的活动来解决)
B.most problems are solved by multiple people and it is easy to assign each piece to a separate person (大多数问题都是由很多人解决的而且把每一部分分配给不同的人是很容易的)
C .it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program (将程序的小部分整合到一个程序中比将一大块代码整合到一个程序中更容易)
D .our first solution may not solve the problem correctly (我们的第一个方案可能无法正确解决问题)
E .all of the above (以上皆是)
正确选项:A 错因:理解错
解析:B、C错误,D与题目无关 -
错题四: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
解析:尽管Java是在第四代被创造的,但它也是一种高级语言。我查询了百度,四代语言其原意是非过程化程序设计语言,是针对以处理过程为中心的第三代语言提出的,希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排交软件自动处理,第四代脚本语言包括:C,VC,VC++.NET,VB,VB.NET,JAVA,ASP,ASP.NET,SQL,XML,J2EE,J#,PHP。 -
错题五:In the following list, which statement is not true regarding Java as a programming language? (关于Java这种程序设计语言,下面的哪种说法是不正确的?)
A .It is a relatively recent language, having been introduced in 1995 (它是一种相对现代的语言,于1995年被引入)
B .It is a language whose programs do not require translating into machine language before they are executed (它是一种执行程序前不需要被转换成机器语言的语言)
C .It is an object-oriented programming language (它是一种面向对象的程序设计语言)
D .It is a language that embraces the idea of writing programs to be executed using the World Wide Web (这种语言可以使用万维网来编写要执行程序的想法)
E .All of the above are true (以上说法都是正确的)
正确选项:B 错因:对Java的理解不充分,基础知识不过关
解析:为了能够执行,所有的程序都必须翻译成特定的CPU的机器语言;Java程序的链接地址可以嵌入web文档,有web浏览器来执行 -
错题六: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)
正确选项:C 错因:代码的含义和格式不清楚
解析:A选项中缺少了参数,B选项中命令末尾是不可以有;的,D选项中用private替代public,这些都使得命令不可被执行 -
错题七:The line of Java code "// System.out.println("Hello");" will (Java的这行代码将会)
A .do nothing (什么都不做)
B .cause "Hello" to be output (输出"Hello")
C .cause a syntax error (造成语法错误)
D .cause "(Hello)" to be output (输出"(Hello)")
E .there is no way to know without executing this line of code (不执行这行代码就无法知道)
正确选项:A
解析:“//”后的输入会被忽略,并不会造成语法错误。试了一下,确实如此。 -
错题八: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 (没有意义的指令)
正确选项:C
解析:注释应说明代码的内层含义,A、B的注释太显而易见,而D、E的解释是毫无意义的 -
错题九:Which of the following is a legal Java identifier? (下面哪个是合法的Java标识符?)
A .i
B .class
C .ilikeclass!
D .idon'tlikeclass
E .i-like-class
正确选项:A
解析:我觉得此处的标识符是自定义标识符。class是保留字,不能作为自定义标识符;C、D、E中都含有不能作为标识符的符号“!”、“'”、“-”。 -
错题十:A unique aspect of Java that allows code compiled on one machine to be executed on a machine of a different hardware platform is Java's (Java的独特之处在于其___,它允许在一台机器上编译的代码在不同的硬件平台上执行)
A .bytecodes (字节码)
B .syntax (语法)
C .use of objects (所使用的对象)
D .use of exception handling (所使用的异常处理)
E .all of the above (以上皆是)
正确选项:A 错因:对Java字节码没有理解。
解析:字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。Java编译器将Java源代码编译成Java字节码,字节码独立于处理器类型,易于在不同类型的处理平台上移植。 -
错题十一:Which of the following is true regarding Java syntax and semantics? (关于Java的语法和语义,下列哪一项是正确的?)
A .a Java compiler can determine if you have followed proper syntax but not proper semantics (Java编译器可以判定你是否遵循正确的语法,但不能判定正确的语义)
B .a Java compiler can determine if you have followed proper semantics but not proper syntax (Java编译器可以判定你是否遵循正确的语义,但不能判定正确的语法)
C .a Java compiler can determine if you have followed both proper syntax and semantics (Java编译器可以判定你是否遵循正确的语义和语法)
D .a Java compiler cannot determine if you have followed either proper syntax or semantics (Java编译器不能判定你是否遵循正确的语义或语法)
E .a Java compiler can determine if you have followed proper syntax and can determine if you have followed proper semantics if you follow the Java naming convention rules (如果你遵循Java的命名规范,Java编译器就可以判定你是否遵循正确的语法,并且可以判定你是否遵循正确的语义)
正确选项:A 错因:不理解Java编译器
解析:Java编译器可以判定是否用正确的语法,因为错误地运用语法将导致编译器不能正确地翻译代码。而语义的判定需要有理解一个编程是要做什么的能力,编译器不能做到。 -
错题十二:Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。)
A .true
B .false
正确选项:B
解析:字节码其实是二进制文件,是一种中间码,并不是直接的机器语言,不可以被直接执行。
其他(感悟、思考等,可选)
感觉这章的内容更加有趣,也明白了学习果然是一个循序渐进的过程,在上个礼拜刚接触编写程序是总是出差错,还需要对着书一个一个敲上去,也不知道它们各自的含义,而这个礼拜我却能自己写一些小程序,还是满有成就感的。我觉得Java学习越深入越有趣,所以我相信我会对Java越来越有信心。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 127/127 | 1/1 | 25/25 | |
第一周 | 278/405 | 1/2 | 20/45 | 对Java更加了解,感觉学到的越多Java编程越有趣 |