大学计算机基础全书答案.docx
《大学计算机基础全书答案.docx》由会员分享,可在线阅读,更多相关《大学计算机基础全书答案.docx(26页珍藏版)》请在冰豆网上搜索。
大学计算机基础全书答案
习题参考答案
习题一
1.第一代计算机的主要部件是由(电子管和继电器)构成的。
2.未来全新的计算机技术主要指(光子计算机),(生物计算机)和(量子计算机)。
3.按照Flynn分类法,计算机可以分为(单指令流单数据流),(单指令流多数据),(多指令流单数据流)和(多指令流多数据流)4种类型。
4.计算机系统主要由(硬件系统)和(软件系统)组成。
5.说明以下计算机中的部件是属于主机系统、软件系统、还是属于外部设备。
(1)CPU(主机系统)
(2)内存条(主机系统)
(3)网卡(主机系统)
(4)键盘和鼠标(外设)
(5)显示器(外设)
(6)Windows操作系统(软件系统)
6.控制芯片组是主板的的核心部件,它由(北桥芯片)部分和(南桥芯片)部分组成。
7.在计算机系统中设计Cache的主要目的是(提高存去速度)。
8.计算机各部件传输信息的公共通路称为总线,一次传输信息的位数称为总线的(宽度)。
9.PCIE属于(系统)总线标准,而SATA则属于(硬盘接口或外设)标准。
10.在微机输入输出控制系统中,若控制的外部设备是发光二极管,最好选用的输入输出方法是(程序控制)方式;若控制的对象是高速设备,则应选则(DMA)控制方式。
11.操作系统的基本功能包括(处理器管理或进程管理)、(文件管理)、(存储器管理)、(设备管理)和用户接口。
12.虚拟存储器由(主内存)和(磁盘)构成,由操作系统进行管理。
13.CPU从外部设备输入数据需要通过(输入接口),向外设输出数据则需要通过(输出接口)。
14.简述CPU从外部设备输入数据和向外设输出数据的过程。
请参见教材第18页关于输入输出过程的描述。
15.普适计算的主要特点是(是一种无处不在的计算模式)。
习题二
1.在计算机内,一切信息的存取、传输和处理都是以(二进制码)形式进行的。
2.在微机中,信息的最小单位是(bit)。
3.在计算机中,1K字节表示的二进制位数是(1024×8bit)。
4.完成下列数制的转换
(1)10100110B=(166)D=(A6)H
(2)0.11B=(0.75)D
(3)253.25=(11111101.01)B=(FD.4)H
(4)1011011.101B=(133.5)O=(5B.A)H=(91.1)D
5.完成下列二进制数的算术运算:
(1)10011010+01101110=(100001000)
(2)11001100-100=(11001000)
(3)11001100×100=(1100110000)
(4)11001100÷1000=(11001)
6.写出下列真值对应的原码和补码:
(1)X=-1110011B
[X]原=11110011,[X]补=10001101
(2)X=-71D
[X]原=11000111,[X]补=10111001
(3)X=+1001001B
[X]原=01001001=[X]补
7.完成下列二进制数的逻辑运算:
(1)10110110∧11010110=(10010110)
(2)01011001B∨10010110=(11011111)
(3)11010101=(00101010)
(4)11110111B⊕10001000=(01111111)
8.若“与门”的3位输入信号分别为1、0、1,则该“与门”的输出信号状态为(0)。
若将这3位信号连接到或门,那么或门的输出又是什么状态?
(1)
9.采用16位编码的一个汉字存储时要占用的字节数为
(2)。
10.目前国际上广泛采用的西文字符编码是标准(ASCII),它是用(7)位二进制码表示一个字符。
11.位图文件的存储格式为(BMP),用数码像机拍摄的照片的文件格式一般为(JPEG)。
12.如果量化成256种幅值,在计算机中就需要用(8)位二进制数表示。
13.根据奈奎斯特定理,若电话话音的信号频率约为3.4kHz,则采样频率应选择为(8kHz)。
14.某图像是16位的图像,则该图像可以表示(216)种不同的颜色。
15.在信息处理时,下列信息中信息量相对较小的是(A)
A.文字B.图片C.声音D.电影
16.连续变化的声音信号是指(C)
A.时间上连续的信号B.幅度上连续的信号
C.时间和幅度都连续的信号D.时间和幅度之一连续的信号
17.在某些特定的时刻对模拟信号进行测量叫做(C)
A.量化B.离散化C.采样D.测量
18.若采用22.1kHz的采样频率和16bit的位深度对1分钟的双声道声音进行数字化,需要多大的存储空间?
22.1×16×60×2=42432kb=5304KB
19.使用300DPI的扫描分辨率,扫描一幅5×3.4英寸的普通照片,得到的图像分辨率是多少?
1500×1020
20.计算一幅图像分辨率为2596×1944的真彩色图像(位深度24位)的文件大小。
2596×1944×24
21.简述基于计算机的信息处理的一般过程。
信息采集,编码和压缩,信息存储和组织,信息传输,信息发布,信息检索。
习题三:
1.图灵机模型主要由哪4个部分组成?
一条无限长的纸带,一个读写头,一套控制规则,一个状态寄存器。
2.图灵机在形式上可以用哪七个元素描述?
它们分别表示什么含义?
参照教材第65页
3.图灵机模型中的四个要素是什么?
输入信息,输出信息、程序(规则)、内部状态。
4.什么是图灵机的格局?
图灵机在计算时机器所处的状态、纸带上已被写上符号的所有格子及当前读写头的位置所构成的整体称为图灵机的格局。
5.试说明指令的执行步骤,哪些步骤是必须的?
取指令,分析指令(指令译码),读取操作数,执行指令,送结果。
其中:
取指令,分析指令(指令译码),执行指令这三个步骤是每条指令都必须的。
6.如果说图灵机A能够完全模拟图灵机B,则意味着(在给定输入时,A和B有相同的输出)。
如果A和B能够相互模拟,则表示(A和B计算等价)。
7.图灵机中的纸带可以相当于计算机中的(存储器)。
8.计算机硬件能够直接识别的指令是(机器指令)。
9.冯·诺依曼计算机的基本原理是(存储程序原理)。
10.冯·诺依曼计算机结构是以(运算器)为中心。
11.与冯·诺依曼结构相比,哈佛结构主要具有(指令和数据分别存放在不同的两个存储空间)和(使用独立的两组总线)两大特点。
12.某程序段经编译后生成98000条机器指令,假设取指令、分析指令和执行指令所用的时间均为2ns。
则使用并行流水线方式完成该程序段所需的时间为(196004)ns。
13.简述冯·诺依曼计算机的特点。
可参照教材第76页的描述,也可简单地描述为:
以存储原理为基础,以运算器为核心。
14.简述图灵机的工作过程。
图灵机的工作过程可以简单的描述为:
读写头从纸带上读出一个方格中的信息,然后根据它内部的状态对程序进行查表(规则表Table),得出一个输出动作,确定是向纸带上写信息还是使读写头向前或向后移动到下一个方格。
同时,程序还会说明下一时刻内部状态转移到哪里。
习题四:
1.算法可以用__自然语言___、__伪代码___、__流程图____等方法描述。
2.总体上,计算机程序语言可以分为___机器语言___、__汇编语言__和__高级语言___三种类型。
3.高级语言可分为___编译__型语言和____解释____型语言。
4.程序的基本控制结构有__顺序结构__、___循环结构___和__分支结构______。
5.常见的几种空间复杂度有:
_O(logn),O(n),O(n2),_和___O(2n)_____。
6.将汇编语言源程序翻译成机器语言目标代码的程序称为__汇编程序___。
7.下图(图4-22)所示流程图的功能是__求SUM=0+1+3+5+…..+99____。
8.简述问题求解的一般过程。
需求分析,系统(模型)设计,编码与调试,系统测试。
9.程序设计语言的主要用途是什么?
程序设计语言的主要用途一是实现所设计的算法,即反映程序员的思想;二是将程序设计语言“翻译”成机器语言,以使计算机能够解决我们的问题。
10.简述你知道的五种程序设计语言的特点。
略
11.算法和程序有什么相同之处,有什么不同之处?
相同之处:
是解决某个特定类型问题的运算序列。
不同之处:
算法是对问题求解步骤的描述,不能为计算机理解和执行;程序是对算法的实现,能够被计算机直接执行
12.什么叫时间复杂度?
什么叫空间复杂度?
时间复杂度:
算法实现所消耗的时间;空间复杂度:
算法实现所消耗的存储空间。
13.输入三个数,比较并输出最小值。
要求:
(1)用自然语言描述算法;
(2)用流程图描述算法;
(1)Step1:
输入3个数a,b,c;
Step2:
比较a和b;
Step3:
若a>b,则执行Step4。
否则转向Step5
Step4:
若b>c,则输出c;否则输出b。
Step5:
若a>c,则输出c;否则输出a。
(2)流程图
14.试利用流程图形式描述在100个字符中查找字母A的顺序和折半查找算法。
顺序查找:
折半查找:
习题五
‘—1--
ModuleModule1
SubMain()
Console.WriteLine("请输入3个整数,以空格分隔并以回车结束")
DimsAsString=Console.ReadLine()
DimsSplit()AsString=s.Split("")
Dimx,y,zAsInteger
x=Convert.ToInt32(sSplit(0))
y=Convert.ToInt32(sSplit
(1))
z=Convert.ToInt32(sSplit
(2))
Console.WriteLine("sum:
{0}",x+y+z)
Console.WriteLine("Avg:
{0}",x+y+z/3)
EndSub
EndModule
‘—2—
ModuleModule1
SubMain()
DimA()AsSingle={12,30}
DimyAsSingle
ForEachxInA
Ifx<=0Then
y=0
Else
Ifx>0Andx<=15Then
y=4*x/3
Else
y=2.5*x-10.5
EndIf
EndIf
Console.WriteLine("x={0},y={1}",x,y)
Next
EndSub
EndModule
‘—3—‘
ModuleModule1
SubMain()
Dimx1AsInteger=133
Dimx2AsInteger=2209
Dimx1hAsInteger=x1\100
Dimx1mAsInteger=x1Mod100
Dimx2hAsInteger=x2\100
Dimx2mAsInteger=x2Mod100
Dimyh,ymAsInteger
Ifx2m-x1m<0Then
ym=x2m+60-x1m
yh=x2h-x1h-1
Else
ym=x2m-x1m
yh=x2h-x1h
EndIf
Ifyh<0Then
yh=yh+24
EndIf
DimyAsInteger=yh*100+ym
Console.WriteLine("y={0}",y)
EndSub
EndModule
‘—4—
ModuleModule1
SubMain()
ConstnAsInteger=30
DimaAsInteger=2
DimbAsInteger=1
DimsumAsDecimal=0
ForiAsInteger=1Ton
sum=sum+a/b
DimtAsInteger=a
a=a+b
b=t
Next
Console.WriteLine("Sum={0}",sum)
EndSub
EndModule
‘—5—
ModuleModule1
SubMain()
DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}
DimxAsInteger=56
DimyAsInteger=-1
ForiAsInteger=0ToA.Length-1
Ifx=A(i)Then
y=i
EndIf
Next
Console.WriteLine("y={0}",y)
EndSub
EndModule
‘—6—
ModuleModule1
SubMain()
DimA()AsSingle={12,30}
ForEachxInA
Console.WriteLine("x={0},y={1}",x,WaterFee(x))
Next
EndSub
FunctionWaterFee(ByValxAsDecimal)AsDecimal
Ifx<=0Then
Return0
Else
Ifx>0Andx<=15Then
Return4*x/3
Else
Return2.5*x-10.5
EndIf
EndIf
EndFunction
EndModule
‘—7—
ModuleModule1
SubMain()
DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}
DimxAsInteger=56
Console.WriteLine("y={0}",IsHere(A,x))
EndSub
FunctionIsHere(ByValA()AsInteger,ByValxAsInteger)AsInteger
ForiAsInteger=0ToA.Length-1
Ifx=A(i)Then
Returni
EndIf
Next
Return-1
EndFunction
EndModule
‘—8—
ModuleModule1
SubMain()
Console.WriteLine("请输入工作时间,工作年数(整数),以空格分隔并以回车结束")
Dims0AsString=Console.ReadLine()
DimsSplit()AsString=s0.Split("")
Dimt,y,sperhAsInteger
t=Convert.ToInt32(sSplit(0))
y=Convert.ToInt32(sSplit
(1))
DimsAsSingle
Ify>=5Then
sperh=50
Else
sperh=30
EndIf
Ift<40Then
s=t*sperh
Else
s=40*sperh+(t-40)*sperh*1.5
EndIf
Console.WriteLine("工资是{0:
N2}",s)
EndSub
EndModule
‘—9—
ModuleModule1
SubMain()
Console.WriteLine("请输入年月日,以空格分隔并以回车结束")
Dims0AsString=Console.ReadLine()
DimsSplit()AsString=s0.Split("")
Dimy,m,dAsInteger
y=Convert.ToInt32(sSplit(0))
m=Convert.ToInt32(sSplit
(1))
d=Convert.ToInt32(sSplit
(2))
DimsAsInteger=0
DimmmAsInteger
ForiAsInteger=1Tom-1
If((i<=7)And(iMod2=1))Or((i>=8)And(iMod2=0))Then
mm=31
Else
Ifi=2And(((yMod4=0)And(yMod100<>0))Or(yMod400=0))Then
mm=29
Else
Ifi=2Then
mm=28
Else
mm=30
EndIf
EndIf
EndIf
s=s+mm
Next
s=s+d
Console.WriteLine("Thisisthe{0}thof{1}",s,y)
EndSub
EndModule
‘—10—
ModuleModule1
SubMain()
Console.WriteLine("请输入n")
DimsAsString=Console.ReadLine()
DimnAsInteger=Convert.ToInt32(s)
DimyAsInteger=1
Fori=1Ton-1
y=2*(y+1)
Next
Console.WriteLine("桃子数是{0}",y)
EndSub
EndModule
‘—11—
ModuleModule1
SubMain()
ForxAsInteger=0To50
ForyAsInteger=0To50-x
Ifx*2+y*4=160Then
Console.WriteLine("钥匙扣{0}个,漫画书{1}本",x,y)
EndIf
Next
Next
EndSub
EndModule
‘—12—
ModuleModule1
SubMain()
ForxAsInteger=100To999
DimaAsInteger=xMod10
DimbAsInteger=(x\10)Mod10
DimcAsInteger=x\100
Ifa^3+b^3+c^3=xThen
Console.WriteLine("{0}={1}^3+{2}^3+{3}^3",x,c,b,a)
EndIf
Next
EndSub
EndModule
‘—13—
ModuleModule1
SubMain()
DiminsAsString=Console.ReadLine()
DimnAsInteger=Convert.ToInt32(ins)
IfIsSquare(n)Then
Console.WriteLine("{0}issqure",n)
Else
Console.WriteLine("{0}isnotsqare",n)
EndIf
EndSub
FunctionIsSquare(ByValnAsInteger)AsBoolean
DimiAsInteger=1
Fori=1Ton/i
Ifi*i=nThen
ReturnTrue
EndIf
Next
ReturnFalse
EndFunction
EndModule
‘—14—
ModuleModule1
Structurecount
DimxAsInteger
DimcAsInteger
EndStructure
SubMain()
DimA()AsInteger={2,3,3,3,4,5,5,5}
Dimcou(20)Ascount
DimiAsInteger=0
ForEachkAsIntegerInA
DimfindAsBoolean=True
ForjAsInteger=0Toi-1
Ifcou(j).x=kThen
cou(j).c+=1
find=False
ExitFor
EndIf
Next
IffindThen
cou(i).x=k
cou(i).c=1
i+=1
EndIf
Next
ForjAsInteger=0Toi-1
ForkAsInteger=i-1Toj+1Step-1
Ifcou(k).c>cou(k-1).cThen
DimtempAscount=cou(k)
cou(k)=cou(k-1)
cou(k-1)=temp
EndIf
Next
Next
DimmaxcAsInteger=cou(0).c
DimmAsInteger=0
Whilecou(m).c=maxc
Console.WriteLine("{0}出现的次数是{1}",cou(m).x,cou(m).c)
m+=1
EndWhile
EndSub
EndModule
‘—15—
ModuleModule1
SubMain()
ForiAsInteger=10To99
DimjAsInteger
j=(iMod10)*10+i\10
IfIsPrime(i)An