20182303 2019-2020-1 《数据结构与面向对象程序设计》第2&3周学习总结

教材学习内容总结

  • 教材第二章内容
  1. 学习Java基本数据类型以及数据转换知识;
  2. printlnprint的用法和区别;
  3. 转义字符的概念及用法;
  4. 运算符(自增自减,赋值,加减乘除模)用法及优先级;
  5. 学习Scanner类,编写可输入的程序。
  6. 完成课后自测题,以及作业PP2.2,PP2.4,PP2.6等。
  • 教材第三章内容
  1. 学习常用类(String类,Random类,Math类等)中的常用方法;
  2. 学习格式化输出的不同方式;
  3. 完成课后自测题,以及编程作业PP3.1,PP3.3,PP3.5。

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

  • 问题1:对转义字符\r\n的功能区分不清
  • 问题1解决方案:\n表示回车换行;\r表示回车到当前行行首。
  • 问题2:double和float数据类型定义不明确
  • 问题2解决方案:float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,占用4个字节的存储空间;
    double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,占用8个字节的存储空间。
    当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f
    例如:float a=1.3;
    则会提示不能将double转化成float
    如果要用float来修饰的话,则应该使用float a=1.3f;
    注意:float是8位有效数字,第7位数字将会产生四舍五入
    所以如果: float a=1.32344435;
    则第7位将产生四舍五入

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

  • 问题1:在输入字符时,使用nextChar方法
  • 问题1解决方案:
    nextChar()方法根本不存在!!当需要输入字符时,需要截取字符串的第一个字符:
  1. 新建类
    Scanner scan = new scanner(System.in);
  2. 定义一个字符串变量接受键盘输入
    String s = scan.next();
  3. 使用charAt截取第一个字符
    char c = s.charAt(0);
  • 问题2::在编写程序时,写错Scanner,Random等导致编译错误

  • 问题2解决方案: 了解Java标识符的大小写规则,不要靠死记。

代码托管

上周考试错题总结

  1. Consider the following statement:
    System.out.println("1 big bad wolf\t8 the 3 little pigs\n4 dinner\r2night");
    This statement will output ________ lines of text (思考下面的语句,该语句将输出___行文本)
    A.1 B.2 C.3 D.4 E.5
    正确答案: B 我的答案:C
    解析:\r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来
    \t相当于键盘的Tab键,\n换行New Line,\r回车Carriage Return,基本的概念应该是回车表示回到最前面,换行表示换一行。
  2. Java is a strongly typed language. What is meant by "strongly typed"? (Java是一种强类型语言。“强类型”指的是什么?)
    A.Every variable must have an associated type before you can use it (在使用变量之前,每个变量一定都有一个与之关联的类型)
    B.Variables can be used without declaring their type (变量可以在不声明其类型的情况下使用)
    C.Every variable has a single type associated with it throughout its existence in the program, and the variable can only store values of that type (在程序中,每个变量都有一个与之关联的类型,而变量只能存储该类型的值)
    D.Variables are allowed to change type during their existence in the program as long as the value it currently stores is of the type it is currently declared to be (变量存在于程序中时允许改变类型,只要它当前存储的值是当前声明的类型)
    E.Variables are allowed to change types during their existence in the program but only if the change is to a narrower type (变量存在于程序中时允许改变类型,但只能缩窄转换)
    正确答案: C 我的答案: A
    解析:对强类型的含义理解不清。
    强类型是一种编程语言的属性,变量的类型在变量存在期间不会改变,并且存储在该变量中的任何值都是该类型的。
  3. A variable of type boolean will store either a 0 or a 1. (Boolean类型的变量将被存储为0或1)
    A.true
    B.false
    正确答案: B 我的答案: A
    解析:Java中用boolean定义布尔值,仅有两个值:true及false。
  4. 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 (可以是以上这些中的任何一个)
    正确答案: D 我的答案: C
    解析:程序在执行之前首先从辅助存储器加载到主存储器中,这样处理器就不会因为读取每条指令而减慢速度。执行存储在内存中的程序的思想被称为存储程序计算机,并在20世纪40年代由约翰·冯·诺依曼开创。(程序指令从辅存加载到主存,可以保证程序运行速度不受影响。)
  5. 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 我的答案: D
    解析:随机访问:访问任何项目都同样容易,并且任何项目都可以仅基于其地址进行检索,即磁盘访问或直接访问。随机存取是RAM和ROM存储器使用的存取形式。
  6. 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 我的答案: C
    解析:高级语言易读易写,Java就是一种高级语言(课本)。Java是在第四代中创建的,它也是一种第四代语言。
  7. Which of the following is a legal Java identifier? (下面哪个是合法的Java标识符?)
    A.i
    B.class
    C.ilikeclass!
    D.idon'tlikeclass
    E.i-like-class
    正确答案: A 你的答案: B
    解析:标识符“i”是完全合法的,但它不一定是一个好的标识符,因为它不描述其用途。

结对及互评

20182311

点评

  • 博客中值得学习的:
    • 教材学习内容简要明了;
    • 针对自己的问题与错题写反思;
  • 问题:
    学习内容总结可以再丰富一些,着重写出自己的薄弱点和理解深刻之处。
  • 基于评分标准,我给本博客打分:13
  • 得分情况如下:
  1. 正确使用Markdown语法(加1分)
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程(加2分)
  4. 代码调试中的问题和解决过程(加2分)
  5. 其他加分(加7分)
    • 进度条中记录学习时间与改进情况(1)
    • 感想,体会不假大空(1)
    • 有动手写新代码(1)
    • 错题学习深入(1)
    • 点评认真,能指出博客和代码中的问题(1)
    • 结对学习情况真实可信(1)
    • 代码实践行数够多(1)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 254/254 2/2 21/21 开始编写简单的程序
第二周 132/386 1/3 26/47 学会使用Scanner类
第三周 632/1018 2/5 21/68 学会使用部分常用类
  • 计划学习时间:20小时

  • 实际学习时间:21小时

参考资料

posted @ 2019-09-22 21:01  zdyyy  阅读(258)  评论(0编辑  收藏  举报