软件概说 1
3.1 为什么说计算机软件不只是程序? 1
3.2 为什么要把软件分成系统软件和应用软件? 2
3.3 为什么要研制软件开发环境? 4
3.4 为什么说开放系统是今后软件技术的研究重点? 5
3.5 为什么说面向对象软件开发技术是今后软件发展的主流之一? 7
操作系统面面谈 9
3.6 为什么只有把程序从外存储器调入内存后才能被计算机执行? 9
3.7 为什么计算机不能无限制地扩大内存容量? 11
3.8 为什么在计算机上必须配备操作系统? 12
3.9 为什么会形成操作系统? 13
3.10为什么说操作系统的主要任务是管理系统资源? 15
3.11 为什么普通的单机操作系统不能用来管理网络系统? 17
3.12 为什么要开发分布式网络操作系统? 18
3.13 为什么说操作环境不是操作系统? 20
3.14 为什么计算机要设有特权指令? 20
3.15 为什么要在计算机中引入中断设施? 21
3.16 为什么操作系统要有设备管理程序? 23
3.17 为什么每扩充一种外部设备就要为它提供中断码和入口地址? 25
3.18 为什么操作系统要有内存管理程序? 27
3.19 为什么支持多道程序的内存管理程序至少要采用分区管理策略? 28
3.20 为什么说内存分页管理策略比分区管理策略更合理? 30
3.21 为什么有些支持多道程序的内存管理程序要采用分段管理策略? 32
3.22 为什么采用虚拟存储技术可运行内存要求比计算机实际内存还要多的程序? 33
3.23 为什么操作系统要引入并发程序? 36
3.24 为什么一道程序不能说成是一个进程? 40
3.25 为什么进程能在计算机中并发运行? 41
3.26 为什么在单处理机上能并发执行多个进程? 44
3.27 为什么并发运行的进程能相互协同来完成复杂的任务? 45
3.28 为什么P、V操作能使操作系统解决多个进程协调的同步和互斥问题? 48
3.29 为什么要将操作系统分成内核和外壳两部分? 51
3.30 为什么I/O设备管理程序都要建立缓冲区来储存输入/输出数据? 53
3.31 在多道程序系统中,为什么要实行假脱机技术? 55
3.32 为什么微机的DOS磁盘操作系统不能用来管理大型机甚至小型机? 56
3.33 为什么微机DOS磁盘操作系统不能用于实时系统中? 57
3.34 为什么DOS的命令要分成内部命令和外部命令? 59
3.35 为什么DOS要有命令处理程序? 60
3.36 为什么DOS系统下的程序一次使用的内存不能超过IMB? 61
3.37 为什么DOS+Windows能实现多任务管理的功能? 63
3.38为什么Windows易学易用? 65
3.39 Windows怎样使用消息驱动来实现多任务操作? 68
3.40 Windows 95有哪些新功能? 72
3.41 为什么Windows 95会有许多新功能? 76
3.42 为什么能实现Windows 95和Windows 3.x的双重启动? 77
程序语言与编译 80
3.43 为什么说机器语言指令程序是不可移植的? 80
3.44 为什么说用人类自然语言命令计算机做什么和怎样做是一件十分困难的任务? 81
3.45 什么是命令型程序设计语言? 85
3.46 为什么要研制系统程序设计语言? 85
3.47 为什么说Ada不是面向对象的程序设计语言? 87
3.48 为什么把PROLOG语言称作逻辑型程序设计语言? 88
3.49 什么是函数型程序设计语言? 90
3.50 为什么说Java是一种跨平台的编程语言? 91
3.51 为什么在程序语言中要引入实现抽象数据类型的结构? 94
3.52 为什么要用顺序、选择、循环三种结构来构造算法和程序? 96
3.53 为什么用高级语言编写的程序不能在计算机中直接执行? 97
3.54 为什么要在计算机中配置高级语言的编译程序? 98
3.55 为什么编译系统还要提供函数库? 99
3.56 为什么有些高级语言的实现采用解释技术? 100
3.57 为什么编译程序需要对源程序进行词法分析? 101
3.58 为什么编译程序需要对源程序进行句法分析? 103
3.59 为什么编译程序中句法分析要用下堆栈数据结构? 104
3.60 为什么需要连接装配程序? 106
3.61 为什么编译程序需要代码优化这一部分? 106
3.62 为什么要研究算法? 108
数据结构和算法浅说 108
3.63 为什么在解决复杂问题时,经常采用递归技术设计算法? 109
3.64 为什么在解决复杂问题时常常采用“分而治之”的策略? 110
3.65 为什么二分法查找比顺序查找获得结果要快? 112
3.66 为什么要建立索引文件? 113
3.67 为什么用散列法存储符号表时要解决冲突问题? 114
3.68 为什么冒泡排序能将列表排序? 116
3.69 为什么插入排序能将列表排序? 118
3.70 为什么说冒泡排序和插入排序的效率基本上是相同的? 119
3.71 怎样用快速排序将随机分布的列表元素很快排序? 120
3.72 怎样用合并排序算法对列表排序? 122
3.73 为什么说图的着色问题是非常“难”的问题? 123
3.74 如何用计算机解决推销员的最短路径问题? 125
3.75 如何用计算机找到任务分配最优方案? 130
3.76 操作系统进行进程调度时,为什么要用队列数据结构? 132
3.77 为什么试探法可以求解八皇后问题? 132
3.78 为什么说“程序=数据结构+算法”? 135
3.79 为什么计算机可以解决加工任务的最优排序问题? 136
3.80 怎样用计算机解决装箱问题? 139
接口技术及应用 141
3.81 为什么PC机扩充外部设备时要增设接口卡? 141
3.82 为什么在大型机系统中要采用通道和控制单元方式连接主机和输入/输出(I/O)设备? 143
3.83 为什么PC机扩充外部设备时要安装该设备的驱动程序? 145
3.84 为什么计算机系统要装配各种设备驱动程序? 148
3.85 PC机是怎样控制和驱动设备进行工作的? 151
3.86 为什么PC机要有标准的串行口和并行口? 153
3.87 打印机的控制方式为什么有并行和串行之分? 156
3.88 为什么说到串行口时常常要提到RS-232接口? 156
3.89 串行通信中为什么要用UART ? 157
3.90 输入输出接口是怎样寻址的? 159
3.91 为什么会产生设备冲突和死机现象? 160
3.92 为什么要用鼠标器? 161
3.93 常用鼠标器有哪几种? 162
3.94 为什么有了点阵字库还要开发矢量字库? 166
3.95 文字处理软件怎样编辑文档和程序? 171
3.96 电子表格软件是怎样发展起来的? 173
3.97 电子表格软件是怎样处理数据存储的? 175
3.98 电子表格软件为什么能实现公式自动计算? 179
《计算机与信息科学十万个为什么》总目录 182