Bubble Sort the list: 33, 56, 17, 8, 95, 22。Make sure the final result is from small to large。Write out the list after the 2nd pass
33, 17, 8, 56, 95, 22
Give a sorted array as list={60,65,75,80,90,95}. Design an algorithm to insert the value of x into the sorted array. Then test the algorithm with value 50,67,99.
输入插入数据A
for (i = 0; i < 6; ++i) {
if ( a[i] < A < a[i + 1])
链表 a[i] < A < a[i + 1]
else if (A < a[0])
链表 A < a[0]
else
链表 A > a[5]
}
思考:为什么选择插入点在list头上、中间、尾巴上的三个数作为算法测试的数据,你能解释吗
恰好对应链表的三种情况
What is the state of the stack after the following sequence of Push and Pop operations?
- anne
- get
- my
- gun
PC,IR 寄存器的作用。
- PC:程序计数器,是用来计数的,指示指令在存储器的存放位置,也就是个地址信息
- IR:IR的全称应该是Instructinon register
指令寄存器是用来存放指令的,存放当前正在执行的指令,包括指令的操作码,地址码,地址信息
ACC 寄存器的全称与作用。
ACC就是单片机里最常用的8位寄存器,名叫累加器。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行.
用“LOD #3”指令的执行过程,解释Fetch-Execute周期。
1)pc 根据地址从RAM取指令LOD #3
2)指令传入IR,指令传入Decoder,无需取址,3直接传入MUX
3)数据3传入ALU,再传入ACC
用“ADD W” 指令的执行过程,解释Fetch-Execute周期。
1)PC根据地址从RAM取指令ADD W
2)指令传入IR,再传入Decoder
3)ALU从ACC中取值
4)IR再次访问RAM中的W,从W中取值
5)W的值读入ALU
6)ALU执行加法,结果传入ACC
“LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别,有什么不同
- ADD W需要两次访问RAM,LOD #3只有一次
写出指令 “LOD #7” 的二进制形式,按指令结构,解释每部分的含义。
- 00010100 00000111
解释 RAM 的地址。
- 指令和数据都存储在RAM
该机器CPU是几位的?(按累加器的位数
- 16位
写出该程序对应的 C语言表达
while (x >= 0)
x--;
end while
用一句话总结程序的功能
- 递减x直到x < 0
写出对应的 c 语言程序
int x;
while (x >= 0)
--x;
用机器语言实现 10+9+8+..1 ,输出结果存放于内存 Y
写出 c 语言的计算过程
int total = 0
for (x = 10; x >= 1; --x) {
total = total + x;
}
y = total;
写出机器语言的计算过程
- LOD X
- SUB #1
- JMZ 16
- STO X
- ADD Y
- STO Y
- JMP 0
- HLT
用自己的语言,简单总结高级语言与机器语言的区别与联系。
- 联系:机器语言和高级语言都可以实现顺序,选择和循环
- 区别:高级语言更加直观,机器语言必须根据机器的执行顺序运行