本文共 1507 字,大约阅读时间需要 5 分钟。
本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的第1章,第1.4节本章习题,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看
本章习题
一、判断题冰箱格子的编号 内存的基本存储单元
冰箱的一个格子 数据编写普通菜谱的人 状态寄存器特殊菜谱 输出设备加工步骤 用机器语言编程的程序员理想厨房 信息厨师及炒菜设备 输入设备厨房管理员 指令地址寄存器指令存放碟IR 指令寄存器普通菜谱 CPU专用加工容器 专用寄存器编写特殊菜谱的人 基本运算指令地址存放碟PC 内存地址原材料 高级语言程序采购员及配菜员 算术逻辑单元传菜生 控制单元炒好的菜 算术逻辑单元可进行的各种运算厨师可做的各种炒菜的 用高级程序设计语言编程的程序员基本动作 计算机系统理想厨房 机器语言程序状态存放碟 指令三、问答题(带*号 的题目为选做题)1.指令地址(PC)寄存器起了什么作用?它位于哪里?取完一条指令后,它的值一定加1吗? 指令(IR)寄存器是用来干什么的?它位于哪里?2.控制单元的主要功能是什么?它位于哪里?3.算术逻辑单元的主要功能是什么?它位于哪里?4.总线在计算机中起何作用?5.数据总线在传输数据时是双方向的还是单方向的?在传送指令时呢?6.现代绝大部分计算机是以字作为基本存储单元还是以字节作为基本存储单元?7.即将要运行的程序的指令序列存放在哪里?程序要加工的数据存放在哪里?*8.指令序列是否可以直接从硬盘等外存中取到CPU中加以执行?9.请你用计算机的术语,详细叙述控制单元通过三条总线到内存取指令的步骤。10.将十进制整数134转化成二进制整数。11.将二进制整数11010110011010分别转化成八进制和十六进制整数。12.将十六进制整数(D34A)16转化成二进制整数。13.将八进制整数623转化成二进制整数。(注意:一个八进制数字转化成多位二进制数字时,不足3位要补成3位,八进制2对应着二进制010而不是对应着二进制10。)14.能否将内存中的任意一段数据当成指令来执行?(提示:非法指令问题、乱序指令问题。)15.内存单元的地址是二进制位串,内存单元中存放的数据也是二进制位串,请尽量列出两者之间的不同点。16.请将十进制数123.45转化成二进制数。(提示:将整数部分和小数部分分别进行转化。)17.现代计算机的可执行程序在程序运行期间是不可修改的,但在计算机发明的早期却没有这种限制,请考虑一下这种限制的有利和不利之处。18.一个机器语言程序中的任意一条指令的操作码发生一位错误,会出现什么问题(可能是一条非法指令,或者变成另一种指令)?一个机器语言程序中的任意一条指令的操作数发生一位错误,会出现什么问题(特别考虑跳转指令)?如果是表示一个文字的码发生一位错误,会出现什么问题?19.请你模仿0.3节归纳出计算机工作的一些重要特点。20.数据总线在传送指令时是单向的还是双向的?在传送数据时是单向的还是双向的?21.请你列出理想厨房系统与计算机系统之间的重要不同点。22.假设有一种采用固定长度操作码的CPU,指令集中共有43条指令,请问操作码的长度最少应当是多少位?其中有多少个是无效码?转载地址:http://qobxa.baihongyu.com/