Answer英语答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Answer英语答案
习题参考答案
第1章
填空题:
1. 计算理论、计算机、信息处理
2. 算法设计和程序设计
3. 有限性、可执⾏性、机械性、确定性、终⽌性
4. 有确定的算法
5. ⼆进制
6. 在给定相同的输⼊时,A和B有相同的输出、A和B计算等价
7. 存储器
8. 电⼦管和继电器
9. 光计算机、⽣物计算机、量⼦计算机
10. 巨型化、微型化、⽹络化、智能化
11. ASCII码,7
12. 2
13. bmp, jpg
14. ⽂字
15. 时间和幅值
16. ⽂件,数据库
17. ⽩盒,⿊盒
18. 是⼀种⽆处不在的计算模式
简答题:
1.简述计算机采⽤⼆进制的原因。
(1)⼆进制只有0和1两个基本符号
(2)⼆进制的算术运算规则简单,且适合逻辑运算。
2. 图灵机模型主要由哪4个部分组成?
⼀条⽆限长的纸带,⼀个读写头,⼀套控制规则,⼀个状态寄存器。
3.图灵机在形式上可以⽤哪七个元素描述?它们分别表⽰什么含义?(参考教材p7回答) 4.图灵机模型中的四个要素是什么?
输⼊信息,输出信息、程序(规则)、内部状态。
5.简述图灵机的⼯作过程。
图灵机的⼯作过程可以简单的描述为:读写头从纸带上读出⼀个⽅格中的信息,然后根据它内部的状态对程序进⾏查表(规则表Table),得出⼀个输出动作,确定是向纸带上写信息还是使读写头向前或向后移动到下⼀个⽅格。
同时,程序还会说明下⼀时刻内部状态转移到哪⾥。
6. 简述问题求解的⼀般过程。
需求分析,系统(模型)设计,编码与调试,系统测试。
7 .简述基于计算机的信息处理的⼀般过程。
信息采集,信息的表⽰和压缩,信息存储和组织,信息传输,信息发布,信息检索。
8. 简述⾼性能计算机涉及的主要关键技术。
答:软硬件技术、通信技术、纳⽶技术
第2章
1.计算机系统主要由(硬件系统)和(软件系统)组成。
2.说明以下计算机中的部件是属于主机系统、软件系统、还是属于外部设备。
(1)CPU (主机系统)
(2)内存条(主机系统)
(3)⽹卡(主机系统)
(4)键盘和⿏标(外设)
(5)显⽰器(外设)
(6)Windows操作系统(软件系统)
3.控制芯⽚组是主板的的核⼼部件,它由(北桥芯⽚)部分和(南桥芯⽚)部分组成。
4. 系统,应⽤
5. bit或⼆进制位
6. 8,8192或1024×8
7. 完成下列数制的转换
(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.625 )D
8.完成下列⼆进制数的算术运算:
(1)10011010+01101110 =(100001000)
(2)11001100-100 =(11001000)
(3)11001100×100 =(1100110000)
(4)11001100÷1000 =(11001.1)
9. 写出下列真值对应的原码和补码:
(1)X=-1110011B
[X]原=11110011,[X]补=10001101
(2)X=-71D
[X]原=11000111,[X]补=10111001
(3)X=+1001001B
[X]原=01001001=[X]补
10. 反码:11001010补码:11001011
11. (1)[X+Y]补=11100011
X+Y=-29D (-0011101B)
(2) [X+Y]补=00100011
X+Y=35D
12. [X-Y]补=11101101
X-Y=-19D
13.完成下列⼆进制数的逻辑运算:
(1)10110110∧11010110 = (10010110)
(2)01011001B∨10010110 = (11011111 )
(3)11010101=(00101010)
(4)11110111B 10001000 =(01111111 )
14.若“与门”的3位输⼊信号分别为1、0、1,则该“与门”的输出信号状态为(0)。
若将这3位信号连接到或门,那么或门的输出⼜是什么状态?(1)
15. (a) ⾄少有⼀个0 (b) 全为0 (c) 全为1 (d) ⾄少有⼀个1
第3章
填空题:
1. 微处理器,内存储器,总线,接⼝
2. RAM, ROM, RAM
3. 10
4. 8
5. 1260MB(1.23GB)
6. 提⾼存取速度
7. Cache存储系统,虚拟存储系统,Cache存储系统
8. 宽度
9. 系统,硬盘接⼝(或外设)
10. I/O接⼝
11. 机器指令
12. 存储程序原理
13. 运算器
14. 两个存储器,两组总线
15. 196004
17. 进程管理,内存管理,⽂件管理,设备管理
18. 就绪,等待
19. 有结构
20. 物理
简答题:
1. 实说明指令的执⾏步骤,哪些步骤是必须的?
答:指令的执⾏步骤描述为:取指令、分析指令、读取操作数、执⾏指令和存放结果,其中取指令、分析指令和执⾏指令这三个步骤是必须的。
2.简述冯·诺依曼计算机的特点。
简单地描述为:以存储原理为基础,以运算器为核⼼。
3. 简述进程和程序的区别?
答:程序是静态的(存放在磁盘不动,可永久性存在),⽽进程是执⾏起来的程序,是动
态的,进程有⽣命周期。
4.说明为什么引⼊进程?
为使程序在多道程序环境下能并发执⾏,并确保“可再现性”。
5. 答:将源程序装⼊内存⼀般经过编译、链接和装⼊三个步骤。
第4章⽹络
⼀.填空题
1. 局域⽹、城域⽹和⼴域⽹。
2. 星型
3. 同轴电缆、双交线和光纤。
4. 语义、时序
5. 应⽤层、传输层、⽹际层、⽹络接⼝层
6. IP
7. 浏览器、Web服务器、HTTP超⽂本传输协议
8. 对称式、⾮对称式
⼆.选择题
1. A,D,E,F,G,I,J,M,N,P,R,S,T,
2. C,D
3. C
4. C
第5章
‘—1--
Module Module1
Sub Main()
Console.WriteLine("请输⼊3个整数,以空格分隔并以回车结束")
Dim s As String = Console.ReadLine()
Dim sSplit() As String = s.Split(" ")
Dim x, y, z As Integer
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) End Sub
End Module
‘—2—
Module Module1
Sub Main()
Dim A() As Single = {12, 30}
Dim y As Single
For Each x In A
If x <= 0 Then
y = 0
Else
If x > 0 And x <= 15 Then
y = 4 * x / 3
Else
y = 2.5 * x - 10.5
End If
End If
Console.WriteLine("x={0},y={1}", x, y) Next End Sub
End Module
‘—3—‘
Module Module1
Sub Main()
Dim x1 As Integer = 133
Dim x2 As Integer = 2209
Dim x1h As Integer = x1 \ 100
Dim x1m As Integer = x1 Mod 100
Dim x2h As Integer = x2 \ 100
Dim x2m As Integer = x2 Mod 100
Dim yh, ym As Integer
If x2m - x1m < 0 Then
ym = x2m + 60 - x1m
yh = x2h - x1h - 1
Else
ym = x2m - x1m
yh = x2h - x1h
End If
If yh < 0 Then
yh = yh + 24
End If
Dim y As Integer = yh * 100 + ym
Console.WriteLine("y={0}", y)
End Sub
End Module
‘—4—
Module Module1
Sub Main()
Const n As Integer = 30
Dim a As Integer = 2
Dim b As Integer = 1
Dim sum As Decimal = 0
For i As Integer = 1 To n
sum = sum + a / b
Dim t As Integer = a
a = a + b
b = t
Next
Console.WriteLine("Sum={0}", sum)
End Sub
End Module
‘—5—
Module Module1
Sub Main()
Dim A() As Integer = {23, 34, 56, 78, 12, 2, 45, 6, 7, 90} Dim x As Integer = 56
Dim y As Integer = -1
For i As Integer = 0 To A.Length - 1
If x = A(i) Then
y = i
End If
Next
Console.WriteLine("y={0}", y)
End Sub
End Module
‘—6—
Module Module1
Sub Main()
Dim A() As Single = {12, 30}
For Each x In A
Console.WriteLine("x={0},y={1}", x, WaterFee(x)) Next
End Sub
Function WaterFee(ByVal x As Decimal) As Decimal
If x <= 0 Then
Return 0
Else
If x > 0 And x <= 15 Then
Return 4 * x / 3
Else
Return 2.5 * x - 10.5
End If
End If
End Function
End Module
‘—7—
Module Module1
Sub Main()
Dim A() As Integer = {23, 34, 56, 78, 12, 2, 45, 6, 7, 90}
Dim x As Integer = 56
Console.WriteLine("y={0}", IsHere(A, x))
End Sub
Function IsHere(ByVal A() As Integer, ByVal x As Integer) As Integer For i As Integer = 0 To A.Length - 1
If x = A(i) Then
Return i
End If
Next
Return -1
End Function
End Module
‘—8—
Module Module1
Sub Main()
Console.WriteLine("请输⼊⼯作时间,⼯作年数(整数),以空格分隔并以回车结束") Dim s0 As String = Console.ReadLine()
Dim sSplit() As String = s0.Split(" ")
Dim t, y, sperh As Integer
t = Convert.ToInt32(sSplit(0))
y = Convert.ToInt32(sSplit(1))
Dim s As Single
If y >= 5 Then
sperh = 50
Else
sperh = 30
End If
If t < 40 Then
s = t * sperh
Else
s = 40 * sperh + (t - 40) * sperh * 1.5
End If
Console.WriteLine("⼯资是{0:N2}", s)
End Sub
End Module
‘—9—
Module Module1
Sub Main()
Console.WriteLine("请输⼊年⽉⽇,以空格分隔并以回车结束")
Dim s0 As String = Console.ReadLine()
Dim sSplit() As String = s0.Split(" ")
Dim y, m, d As Integer
y = Convert.ToInt32(sSplit(0))
m = Convert.ToInt32(sSplit(1))
d = Convert.ToInt32(sSplit(2))
Dim s As Integer = 0
Dim mm As Integer
For i As Integer = 1 To m - 1
If ((i <= 7) And (i Mod 2 = 1)) Or ((i >= 8) And (i Mod 2 = 0)) Then
mm = 31
Else
If i = 2 And (((y Mod 4 = 0) And (y Mod 100 <> 0)) Or (y Mod 400 = 0)) Then mm = 29
Else
If i = 2 Then
mm = 28
Else
mm = 30
End If
End If
End If
s = s + mm
Next
s = s + d
Console.WriteLine("This is the {0}th of {1}", s, y)
End Sub
End Module
‘—10—
Module Module1
Sub Main()
Console.WriteLine("请输⼊n")
Dim s As String = Console.ReadLine()
Dim n As Integer = Convert.ToInt32(s)
Dim y As Integer = 1
For i = 1 To n - 1
y = 2 * (y + 1)
Next
Console.WriteLine("桃⼦数是{0}", y)
End Sub
End Module
‘—11—
Module Module1
Sub Main()
For x As Integer = 0 To 50
For y As Integer = 0 To 50 - x
If x * 2 + y * 4 = 160 Then
Console.WriteLine("钥匙扣{0}个,漫画书{1}本", x, y) End If Next
Next
End Sub
End Module
‘—12—
Module Module1
Sub Main()
For x As Integer = 100 To 999
Dim a As Integer = x Mod 10
Dim b As Integer = (x \ 10) Mod 10
Dim c As Integer = x \ 100
If a ^ 3 + b ^ 3 + c ^ 3 = x Then
Console.WriteLine("{0}={1}^3+{2}^3+{3}^3", x, c, b, a) End If Next
End Sub
End Module
‘—13—
Module Module1
Sub Main()
Dim ins As String = Console.ReadLine()
Dim n As Integer = Convert.ToInt32(ins)
If IsSquare(n) Then
Console.WriteLine("{0} is squre", n)
Console.WriteLine("{0} is not sqare", n)
End If
End Sub
Function IsSquare(ByVal n As Integer) As Boolean Dim i As Integer = 1 For i = 1 To n / i
If i * i = n Then
Return True
End If
Next
Return False
End Function
End Module
‘—14—
Module Module1
Structure count
Dim x As Integer
Dim c As Integer
End Structure
Sub Main()
Dim A() As Integer = {2, 3, 3, 3, 4, 5, 5, 5}
Dim cou(20) As count
Dim i As Integer = 0
For Each k As Integer In A
Dim find As Boolean = True
For j As Integer = 0 To i - 1
If cou(j).x = k Then
cou(j).c += 1
find = False
Exit For
End If
Next
If find Then
cou(i).x = k
cou(i).c = 1
End If
Next
For j As Integer = 0 To i - 1
For k As Integer = i - 1 To j + 1 Step -1
If cou(k).c > cou(k - 1).c Then
Dim temp As count = cou(k)
cou(k) = cou(k - 1)
cou(k - 1) = temp
End If
Next
Next
Dim maxc As Integer = cou(0).c
Dim m As Integer = 0
While cou(m).c = maxc
Console.WriteLine("{0}出现的次数是{1}", cou(m).x, cou(m).c) m += 1
End While
End Sub
End Module
‘—15—
Module Module1
Sub Main()
For i As Integer = 10 To 99
Dim j As Integer
j = (i Mod 10) * 10 + i \ 10
If IsPrime(i) And IsPrime(j) Then
Console.WriteLine("{0}", i)
End If
Next
End Sub
Function IsPrime(ByVal n As Integer) As Boolean
Dim i As Integer = 2
While (i <= n \ i)
If n Mod i = 0 Then
Return False
End If
i = i + 1
End While
Return True
End Function
End Module
第6章
1——4题请参照教材
—5—
参见例6-7
‘—6—
参见实验教材P135“将⼀个字符串进⾏反序”
‘—7—
参见实验教材P136 3)
‘—9—
参见例6-8
第7章
1.算法可以⽤__⾃然语⾔___、__伪代码___、__流程图____等⽅法描述。
2.总体上,计算机程序语⾔可以分为___机器语⾔___、__汇编语⾔__和__⾼级语⾔___三种类型。
3.⾼级语⾔可分为___编译__型语⾔和____解释____型语⾔。
4.程序的基本控制结构有__顺序结构__、___循环结构___和__分⽀结构______。
5.常见的⼏种空间复杂度有:O(log2n),O(n),O(n2),_和___ O(2n)_____。
6.将汇编语⾔源程序翻译成机器语⾔⽬标代码的程序称为__汇编程序___。
7.下图(图4-22)所⽰流程图的功能是__求SUM=0+1+3+5+…..+99____。
图4-22 填空题7图
8.简述问题求解的⼀般过程。
需求分析,系统(模型)设计,编码与调试,系统测试。
9.程序设计语⾔的主要⽤途是什么?
程序设计语⾔的主要⽤途⼀是实现所设计的算法,即反映程序员的思想;⼆是将程序设计语⾔“翻译”成机器语⾔,以使计算机能够解决我们的问题。
10.算法和程序有什么相同之处,有什么不同之处?
相同之处:是解决某个特定类型问题的运算序列。
不同之处:算法是对问题求解步骤的描述,不能为计算机理解和执⾏;程序是对算法的实现,能够被计算机直接执⾏
11.什么叫时间复杂度?什么叫空间复杂度?
时间复杂度:算法实现所消耗的时间;空间复杂度:算法实现所消耗的存储空间。
12.输⼊三个数,⽐较并输出最⼩值。
要求:
(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)流程图
13.试利⽤流程图形式描述在100个字符中查找字母A的顺序和折半查找算法。
顺序查找:
编程题:
‘—1—使⽤冒泡排序对10个整数排序
参见例7-7
‘—2—改进冒泡排序,使其当数据已经有序时,排序过程结束。
‘改进的冒泡排序算法Sub Bubble(ByRef R() As Integer)
Dim i,j,n,Tem As Integer
Dim flag As Boolean=True
n=R.Length-1
For i =1 To n
If flag=True Then
Flag=False
For j = n To i Step -1
If R(j)
Tem=R(j)
R(j)=R(j-1)
R(j-1)=Tem
Flag=True
End If
Next
Else
Exit For
End If
Next
End Sub
‘—5—使⽤冒泡排序对电话号码簿按⼈名的字典顺序排序。
Module Module1 Structure Address
Dim name As String
Dim phone As String
End Structure
Sub Main()
Dim Addr(20) As Address
Const N As Integer = 7
Addr(0).name = "One"
Addr(0).phone = "12345678"
Addr(1).name = "Two"
Addr(1).phone = "22345678"
Addr(2).name = "Three"
Addr(2).phone = "32345678"
Addr(3).name = "Four"
Addr(3).phone = "42345678"
Addr(4).name = "Five"
Addr(4).phone = "52345678"
Addr(5).name = "Six"
Addr(5).phone = "62345678"
Addr(6).name = "Seven"
Addr(6).phone = "72345678"
DisPlay(Addr, N)
For i As Integer = 1 To N - 1
For j As Integer = N - 1 To i + 1 Step -1
If Addr(j).name < Addr(j - 1).name Then
Dim temp As Address = Addr(j)
Addr(j) = Addr(j - 1)
Addr(j - 1) = temp
End If
Next
Next
DisPlay(Addr, N)
End Sub
Sub DisPlay(ByVal Addr() As Address, ByVal N As Integer)
For k As Integer = 0 To N - 1
Console.WriteLine("name={0}, phone={1}", Addr(k).name, Addr(k).phone) Next
End Sub
End Module
‘---6—使⽤顺序查找,对第5题的数据查找⼀个⼈名是否在电话簿中。
Function FindName(ByVal Addr() As Address, ByVal N As Integer, ByVal name As String) As Integer For i As Integer = 0 To N - 1
If Addr(i).name = name Then
Return i
End If
Next
Return -1
End Function
‘—7—使⽤折半查找,对排序后的电话号码簿(第5题)进⾏查找
Function FindName2(ByVal Addr() As Address, ByVal N As Integer, ByVal name As String) As Integer Dim low As Integer = 0
Dim high As Integer = N - 1
While low <=high
Dim mid As Integer = (low + high) / 2
If Addr(mid).name = name Then
Return mid
Else
If Addr(mid).name > name Then
high = mid - 1
Else
low = mid + 1
End If。