#2023-2024-1 20231408《计算机基础与程序设计》第五周学习总结

发布时间 2023-10-29 21:13:12作者: 20231408徐钰涵

作业信息

这个作业属于哪个课程 <2023-2024-1-计算机基础与程序设计>
这个作业要求在哪里 <2023-2024-1计算机基础与程序设计第五周作业>
这个作业的目标 <学会《计算机科学概论》第6章,《C语言程序设计》第4章,pep/9虚拟机>
作业正文 https://www.cnblogs.com/jfxyh061028/p/17796220.html

教材学习内容总结

  • pep/9虚拟机的机器语言和汇编语言
  • 明白直接寻址和立即寻址
  • 用伪代码描述算法
  • pep/9的机器语言的十六进制指令虽然比二进制指令简单不少,但写起来还是相当麻烦且不易记住,可读性也较差,而pep/9汇编语言就具有更好的可读性,写起来也更简洁。pep/9汇编语言有助记码和操作数,指令数量也不多,只有40条指令,语法也不复杂,与C语言等高级语言有相似之处。
  • 单个字符,字符串的输入输出如何编写,以及数据的格式化输出如何编写代码。

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

  • 问题1:用pep/9汇编语言编写读入三个数并求其和的程序时,用循环的方法和一个个读入存储再相加的方法好像都可以,那么哪种更简便呢?
  • 问题1解决方案:在这种情况下,使用一个个读入存储再相加的方法可能更简便。原因如下:
  1. 简单直观:使用一个个读入存储再相加的方法,代码逻辑更直观,易于理解和调试。
  2. 简化循环逻辑:使用循环的方法需要额外的循环控制指令,增加了代码的复杂性。而使用一个个读入存储再相加的方法可以直接在顺序执行的过程中逐个读取并相加,无需引入循环。
  3. 适用性:在这个简单的求和问题中,只需要读取三个数并相加,循环的方式可能会显得过于繁琐。而对于更复杂的问题,可能需要使用循环来处理大量的数据,这时候循环的方式更为适用。
    总的来说,对于简单的求和问题,使用一个个读入存储再相加的方法更简便,所以不是使用循环结构就一定会简化代码。
  • 问题2:C语言中if或while后面跟着的语句也是布尔表达式吗?
  • 问题2解决方案:不是,那个是条件表达式。
  • 问题3:条件表达式与布尔表达式有什么区别?
  • 问题3解决方案:条件表达式和布尔表达式在C语言中有一些区别:
  1. 返回值类型:条件表达式的返回值类型是布尔类型(true或false),用于判断条件的真假。而布尔表达式的返回值类型也是布尔类型,但它是一个独立的表达式,用于表示一个逻辑值。
  2. 使用场景:条件表达式通常用于控制流程语句(如if、while、for等)中的条件判断,用于决定是否执行相关的代码块。而布尔表达式可以用于任何需要逻辑判断的地方,例如赋值语句、函数调用的参数、逻辑运算等。
  3. 表达式的复杂性:条件表达式通常是由比较运算符和逻辑运算符组成的简单表达式,用于判断两个值之间的关系。而布尔表达式可以更加复杂,可以由多个条件表达式组合而成,使用逻辑运算符进行逻辑操作。

基于AI的学习








然后我的chat就开始问重复的问题了。

上周考试错题总结


确实不知道。错误原因:计算机的前端总线(FSB,Front Side Bus)是一种用于连接CPU和其他硬件组件的信号线,它不是一种存储器。前端总线通常内置在主板上,而不是处理器芯片中。前端总线的作用是实现CPU与其他硬件组件之间的通信。它允许CPU从内存中读取指令和数据,将结果写回内存,以及与其他设备进行数据交换。前端总线还负责传输控制信号,如时钟信号、中断信号和复位信号,以协调计算机的操作。处理器芯片中通常会包含一些缓存存储器,如一级缓存和二级缓存,用于提高处理器的性能。这些缓存存储器的作用是暂时存储处理器需要频繁访问的指令和数据,以减少处理器访问主存储器的次数,从而提高处理器的执行效率。但是,这些缓存存储器不同于前端总线,它们是存储器而不是信号线。

错误原因:没注意细节:程序计数器(Program Counter,PC)是一个寄存器,用于存储下一条将要执行的指令的地址,而不是存储计算机执行的指令数。程序计数器在计算机的运行过程中起到了关键的作用,它帮助CPU确定下一条要执行的指令的地址,从而控制程序的执行流程。每当一条指令被执行完毕后,程序计数器的值会自动增加,指向下一条将要执行的指令的地址。这样,CPU就可以按照程序的顺序依次执行指令,实现程序的流程控制。程序计数器的大小取决于计算机体系结构的设计。在32位体系结构中,程序计数器通常是一个32位的寄存器,可以表示的地址范围为2^32个字节(4GB)。在64位体系结构中,程序计数器通常是一个64位的寄存器,可以表示的地址范围更大。

感觉这道题题目不全,并没有给出需要判断的等式。

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

  • 问题1:在使用gdb调试代码时,我曾设置条件断点,但运行程序时程序并没有在设置好的断点处停下来。

  • 问题1解决过程:设置断点的位置不对,改了位置后,就成功了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时 优秀
第一周 2/3 20/20 合格
第二周 20/20 1/4 15/35 终于理解了一些概念,能看懂一些话了
第三周 20/40 1/5 20/55
第四周 50 /90 2/7 20/75
第五周 80/170 1/8 30/105 会编写一些简单程序了