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

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

教材学习内容总结

  • 知道了print和println的区别
  • 学会了字符串拼接和转义序列的使用
  • 了解了变量、赋值与常量(学会了七边形、十边形、十二边形的英文ಠᴗಠ)
  • 了解了java的8种基本数据类型
  • 学会了一些算术运算符、自增/减运算符和赋值运算符的使用
  • 了解了数据类型转换
  • 学会了一些简单的Scanner类命令

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

  • 问题1:\n和\r的区别
  • 问题1解决方案:上网查了一下还是看不懂_(:з」∠)_
    自己尝试了一下,\r,\n,\r\n的输出结果均为换行并在新的输入光标定位在新一行的开头;\n\r,输出结果为换行之后再换行,新的输入光标在新的第二行的开头。
  • 问题2:尝试例2.5时输出结果没有空格
  • 问题2解决方案:对比自己打的和书上给的发现少了两个空格,这个真的太易错了...
  • 问题3:在做PP2.5的时候不管输入什么都输出一个数字...
  • 问题3解决方案:检查了一下vim,在张昊然同学的帮助下发现原因是公式写错了,而且数据类型也写错了...修改过的结果

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

  • 问题1:运行老师给的AutoCompileX.sh总显示找不到文件
  • 问题1解决方案:尝试了非常非常多遍真的多的让我快要崩溃了之后发现,是我写vim的时候习惯性把程序放到/src/weekx/下,输入的时候只输程序的名称的话是找不到的。但我也没有找到特别好的方法,现在的做法是先在fwq20172303_Programming目录下进行完所有操作(把vim写在这里使用老师给的程序就可以运行...)然后再使用mv把相应的文件移动到相应的目录里。
  • 问题2:(自认为是个特别傻特别傻的问题)移动文件的过程中总显示“没有那个文件或目录”
  • 问题2解决方案:先使用pwd找到当前目录,然后在使用mv时把那一大堆目录名输进去_(:з」∠)_说实话这么做了一回我才大概清楚虚拟机里的目录结构,说明寒假的预备学习还是不够扎实,如果之后遇到问题再慢慢摸索好了。
  • 问题3:(又是一个特别傻特别傻的问题...)输入git push时又显示everything up-to-date...
  • 问题3解决方案:做第一周作业的时候也发生了同样的问题,当时是通过答疑中学长给的网址解决的,这回又出现同样的问题,重新把使用码云和博客园学习简易教程看了一遍发现,我没有输git add .git commit -m something就直接输最后一步了...

代码托管

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

上周考试错题总结(正确为绿色,错误为红色)

  • 错题1:When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从___读取每个程序指令)
    • A . secondary memory (storage) (辅助存储器(存储))
    • B . the Internet (互联网)
    • C . registers stored in the processor (储存在处理器中的寄存器)
    • D . main memory (主存储器)
    • E . could be any of these (可以是以上这些中的任何一个)
  • 原因:刚看到这道题的时候有些纠结,去找了上个学期电子政务导论的PPT来看,看得太匆忙只看到“寄存器”三个字就选了C
  • 理解情况:通过这张图就能清楚理解了
  • 错题2: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百万字节)
  • 原因:没有看完题,看到D就直接选了,没有看到E选项...
  • 错题3: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,C指的是ROM
  • 理解情况:所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。具有易失性。
  • 错题4: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都是)
  • 原因:翻书时看到说java是高级语言就直接选C了,没有深究D
  • 理解情况:一般认为4GL具有简单易学,用户界面良好,非过程化程度高,面向问题,只需告知计算机“做什么”,而不必告知计算机“怎么做”。这与java的特点相似。但我还查到一种说法是高级语言是面向对象的,而第四代语言是非过程化语言,感觉两者是相对的。
  • 错题5: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是错的,上个学期在电子政务导论课上学过,可能当时做的时候不够细心_(:з」∠)_
  • 理解情况:所有的语言在执行程序时都要经过从高级语言转换成机器语言的过程。
  • 错题6: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 (没有意义的指令)
  • 原因:做题时直接根据自己在实践时的感觉来选的,但实际上没有理解println的意思
  • 理解情况:看了第二章知道了“给System.out对象发送一个println消息,表示请求输出某个文本信息。
  • 错题7: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是合法的,其余都不合法)
  • 原因:当时做题的时候还是对java语法不是很清楚,通过后续的实践和学习感觉现在对自己已经学习过的内容比较清楚了。
  • 理解情况:java编译器中无法识别s t a t i c,空格是作为分隔符来使用的。
  • 错题8:Which of the following is a legal Java identifier? (下面哪个是合法的Java标识符?)
    • A . i
    • B . class
    • C . ilikeclass!
    • D . idon'tlikeclass
    • E . i-like-class
  • 原因:当时做的比较匆忙,当时觉得B熟悉就选B了...
  • 理解情况:“类”这个词在Java中是一个保留字,不能用作标识符。i是合法的,但它不是个好的标识符。
  • 错题9: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 (以上皆是)
  • 原因:当时做题时因为不知道,又没有在书上找到,就凭感觉选了...
  • 理解情况:Java程序的翻译过程是首先将它编译成字节码,要执行该程序,字节码必须由Java编译器进一步编译或由Java虚拟机解释。
  • 错题10: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编译器就可以判定你是否遵循正确的语法,并且可以判定你是否遵循正确的语义)
  • 原因:当时选的时候把java看得太万能了...
  • 理解情况:计算机无法理解语义,只能判断语法是否正确。
  • 错题11:Which of the following would be a good variable name for the current value of a stock? (下面哪个是关于变量“current value of a stock”的最佳命名?)
    • A . curstoval
    • B . theCurrentValueOfThisStockIs
    • C . currentStockVal
    • D . csv
    • E . current
  • 原因:看书的时候死板地认为命名变量只能用一个单词或者必须首字母都是大写
  • 理解情况:current可能已经被其它程序引用。

其他(感悟、思考等,可选)

  • 这周因为在不停地各种跑医院,java的学习落下了很多,从周五晚上才开始学本周的内容,所以作业完成的比较晚。由于很久没打过代码,在刚开始登系统的过程中遇到了许多问题,很多命令都忘了或者经常输错,所以从下星期开始我要尽量天天敲一敲代码,保持手感和记忆。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 120/120 1/1 9/9
第二周 246/366 1/2 9/18
  • 计划学习时间:9小时
  • 实际学习时间:9小时
  • 改进情况:因为生病所以这周对自己的要求降低了一点(很讨厌找理由的自己...)

参考资料

posted @ 2018-03-18 22:51  框框框  阅读(204)  评论(2编辑  收藏  举报