|这个作业属于哪个课程|<班级的链接>(2024-2025-1-计算机基础与程序设计)|
|这个作业要求在哪里|<作业要求的链接>(2024-2025-1计算机基础与程序设计第五周作业|
|这个作业的目标|Pep/9虚拟机
机器语言与汇编语言
算法与伪代码
测试:黑盒,白盒|
|作业正文|https://www.cnblogs.com/songjialinsjl/p/18508180 |
教材学习内容总结
Pep/9虚拟机是一种用于教学目的的虚拟机。以下是关于它的详细介绍:
1. 设计目的:主要用于教授计算机体系结构、汇编语言编程以及计算机组成原理等相关知识。
2. 指令系统:具有40条机器语言指令。这些指令基于扩展操作码,分为一元指令(一个字节)和非一元指令(三个字节)。
3. 内存结构:其内置单元由65536字节(64kb)的存储空间构成。每个字节有自己的地址,地址范围用十六进制表示为0000到FFFF。
4. 寄存器设置:Pep/9虚拟机的中央处理器中有多个寄存器,例如X、PC、SP等寄存器,这些寄存器帮助CPU访问主存中的信息。
5. 字长特点:字长是指计算机进行数据处理时,一次能够处理的数据长度。Pep/9的字长为2字节(16位),可以一次性处理16位的数据。
6. 指令格式:一条指令由两部分组成,一个字节的指令说明符和两个字节的(可选的)操作说明符。.
机器语言是计算机能够直接识别和执行的二进制代码。计算机硬件只理解由0和1组成的指令序列,这些指令直接控制计算机的操作,比如数据的传输、运算操作(加、减、乘、除)、控制信号的发送等。例如,某种计算机可能用“10001001”表示把数据从一个寄存器移动到另一个寄存器这样的操作。
汇编语言是一种低级编程语言,它用助记符来代替机器语言中的二进制指令。这就好比给机器语言指令取了名字,方便程序员记忆和使用。比如机器语言中的加法指令如果是一串二进制码,在汇编语言中可能就用“ADD”这个助记符来表示,而且程序员可以使用一些有意义的标号来代表存储单元地址。汇编语言编写的程序最终要通过汇编程序翻译成机器语言,计算机才能执行。
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。比如,计算两个数之和,其算法就是将这两个数相加得到结果的步骤。算法具有有穷性(步骤有限)、确定性(每一步含义明确)、可行性(每一步都能有效执行)、输入(可以有零个或多个输入)和输出(至少有一个输出)等特性。
伪代码是一种介于自然语言和编程语言之间的用于描述算法的方法。它以一种类似代码的结构来展现算法思路,但又不像真正的编程语言那样严格遵循语法规则。
在计算机测试领域,黑盒和白盒是两种不同的测试方法。
黑盒测试是把软件(或系统)看作一个不透明的黑盒子,测试人员完全不考虑其内部结构和工作原理,只关注软件的输入和输出。就好像一个用户只关心怎么使用产品,而不关心产品内部怎么运作一样。例如,测试一个计算器软件,黑盒测试就是只管输入数字和运算符号,然后看输出的结果是否正确。这种测试方法主要用于检查软件功能是否符合需求文档,包括功能是否完整、输入输出是否正确等。
白盒测试则是基于软件(或系统)的内部结构来设计测试用例。测试人员清楚软件的内部逻辑、代码结构等细节,就像能够看到盒子内部一样。例如,知道程序中有一个循环语句或者一个条件判断语句,就针对性地设计测试用例来检查这些部分是否正确执行。这种测试方法可以检查程序内部的逻辑是否正确,包括语句覆盖、分支覆盖等多种覆盖标准,用于发现代码中的逻辑错误。
教材学习中的问题和解决过程
问题:循环语句有哪几种,一般在什么时候使用?
解答:C语言中有三种主要的循环语句:
For循环
- 语法形式: for(初始化表达式; 条件表达式; 更新表达式) { 循环体语句 } 。初始化表达式用于初始化循环变量,条件表达式决定是否执行循环体,更新表达式用于更新循环变量。
- 使用场景:适用于已知循环次数的情况。例如,要打印1到100的数字,可以这样写:
c
for(int i = 1; i <= 100; i++) {
printf("%d ", i);
}
这里很清楚循环会执行100次。
While循环
- 语法形式: while(条件表达式) { 循环体语句 } 。只要条件表达式的值为真,就会一直执行循环体。
- 使用场景:适用于循环次数不确定,而是根据某个条件来判断是否继续循环的情况。比如,从用户输入获取数据,直到用户输入一个特定的值(如0)才停止,代码可以这样写:
c
int num;
while((scanf("%d", &num), num!= 0)) {
// 对num进行处理
}
Do - While循环!
- 语法形式: do { 循环体语句 } while(条件表达式); 。先执行一次循环体,然后再判断条件表达式是否为真,为真则继续循环。
- 使用场景:和While循环类似,不过它至少会执行一次循环体。例如,一个简单的菜单程序,先显示菜单选项,然后根据用户选择来决定是否继续循环。
我的理解:for 是直接循环
do while先做在判断是否循环
while do是先判断再做
基于AI的学习
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 500行 30篇 400小时
第一周 0/0 1/1 4/4
第二周 0/0 2/2 6/10
第三周 5/5 3/3 6/16
第四周 10/10 4/4 6/22
第五周 0/10 1/5 4/26