版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教材习题及答案教材习题及答案教材习题及答案教材习题及答案编制仅供参考审核批准生效日期地址:电话:传真:邮编:第1章习题一、填空题1.计算机科学是主要研究()、()和()的学科。计算理论、计算机,信息处理2.在模型建立的前提下,利用计算机求解问题的核心工作就()设计。算法3.算法是一组规则,它的主要特性是()、()、()、()和()。有限性、可执行性、机械性、确定性,终止性或:有穷性,确定性,能行性,0个或多个输入输入,1个或多个输出4.要使一个问题能够用计算机解决,其必要条件是()。具有确定算法或:可以在确定、有限步骤内被解决5.在计算机内,一切信息都是以()形式表示的。二进制6.如果说图灵机A能够完全模拟图灵机B,则意味着()。如果A和B能够相互模拟,则表示()。在给定输入时,A和B有相同的输出图灵机模型主要由哪4个部分组成答:一条无限长的纸带,一个读写头,一套控制规则,一个状态寄存器3.图灵机在形式上可以用哪七个元素描述它们分别表示什么含义答:图灵机(TM)可以描述为一个七元组:M=(Q,Σ,Γ,δ,q0,B,F)()其中:Q:图灵机状态的有穷集合。Σ:输入符号的有穷集合,不包含空白符。Γ:带符号的完整集合;Σ是Γ的子集,有Σ∈Γ。δ:转移函数。δ(q,X)的参数是状态q和带符号X。δ(q,X)的值在有定义时是三元组(p,Y,D),其中:p是下一状态,属于集合Q;Y是在当前扫描的单元中写下的符号,属于Γ集合,代替原来单元里的符号;D是方向,非L即R,分别表示“向左”和“向右”,说明带头移动方向。4.图灵机模型中的四个要素是什么答:输入信息,输出信息、程序、内部状态5.简述图灵机的工作过程。答:请参见教材6.简述问题求解的一般过程。答:利用计算机进行系统性问题求解的一般过程包括:需求分析与建模、系统设计,编码与调试、测试等。详见教材。7.简述基于计算机的信息处理的一般过程。答:基于计算机的信息处理包括:信息的采集、信息的表示和压缩、信息的存储和组织,信息的传输、信息的发布和检索。8.简述高性能计算机涉及的主要关键技术。答:高性能计算机研究涉及软硬件技术、通信技术、纳米技术等多个学科,近年的研究主要集中于大规模并行处理体系结构、高性能算法、可重构计算、功耗等方面。第2章习题1.计算机系统主要由(硬件系统)和(软件系统)组成。2.说明以下计算机中的部件是属于主机系统、软件系统、还是属于外部设备。(1)CPU(主机系统)(2)内存条(主机系统)(3)网卡(主机系统)(4)键盘和鼠标(外部设备)(5)显示器(外部设备)(6)Windows操作系统(软件系统)3.控制芯片组是主板的核心部件,它由(北桥芯片)部分和(南桥芯片)部分组成。4.软件系统包括(系统)软件和(应用)软件。5.在微机中,信息的最小单位是()。位或bit6.在计算机中,IB=(8)bit,1KB表示的二进制位数是(8192)位。7.完成下列数制的转换(1)B=(166)D=(A6)H(2)=()D(3)=(.01)B=()H(4)=()O=()H=()D8.完成下列二进制数的算术运算:(1)+01101110=(0)(2)=()(3)×100=(00)(4)÷1000=(11001)9.写出下列真值对应的原码、反码和补码:(1)X=-1110011B(2)X=-71D(3)X=+1001001B答:(1)[X]原=B,[X]反=B,[X]补=B(2)[X]原=B,[X]反=B,[X]补=B(3)[X]原=01001001B,[X]反=01001001B,[X]补=01001001B10.写出符号数B的反码和补码。答:[]反=B[]补=B11.已知X和Y的真值,求[X+Y]补=X+Y=(1)X=-1110111BY=+1011010B(2)X=56Y=-21答:(1)[X+Y]补=B,X+Y=-0011101B(2)[X+Y]补=00100011B,X+Y=+0100011B12.已知X=-1101001B,Y=-1010110B,求[X-Y]补=X-Y=答:[X-Y]补=B,X+Y=-0011101B13.完成下列二进制数的逻辑运算:(1)∧=()=(00101010=(00101010)(3)(4)B=(0)14.若“与门”的3位输入信号分别为1、0、1,则该“与门”的输出信号状态为(0)。若将这3位信号连接到或门,那么或门的输出又是什么状态(1)15.在图2-10中,要使Y=0,A1~A4的状态必须为:(a):(任意一位为0);(b):(0000);(c):(1111);(d):(任意一位为1)。图2-10题11图图2-10题11图第3章习题:一、填空题1.微型计算机主机系统主要包括(CPU)、(内存储器)、(总线)和(I/O接口)等四个部分。2.内存储器可分为(RAM)和(ROM)两类,其中,断电后所存信息就丢失的内存属于(RAM)。3.假设某内存储器有1K个单元,则至少需要(10)bit二进制码来表示该内存单元的地址。4.每个内存单元中能存放(8)bit二进制数。5.若已知磁头数为10,柱面数为4096,扇区数为63的硬盘容量为(1260MB)6.在计算机系统中设计Cache的主要目的是(提高存取速度)。7.微型机中的存储器系统包括(Cache存储系统)和(虚拟存储系统)两类。其中,(Cache存储系统)的设计目标是提高存储器系统的存取速度。8.计算机各部件传输信息的公共通路称为总线,一次传输信息的位数称为总线的(宽度)。9.PCIE属于(系统)总线标准,而SATA则属于(硬盘接口)标准。10.CPU从外部设备输入或输出数据都需要通过(总线)。11.计算机硬件能够直接识别的指令是(机器指令)。12.冯·诺依曼计算机的基本原理是(存储程序原理)。13.冯·诺依曼计算机结构是以(运算器)为中心。14.与冯·诺依曼结构相比,哈佛结构主要具有(使用两个独立的存储器模块)和(使用独立的两组总线)两大特点。15.某程序段经编译后生成98000条机器指令,假设取指令、分析指令和执行指令所用的时间均为2ns。则使用并行流水线方式完成该程序段所需的时间为(196004)ns。16.如果说图灵机A能够完全模拟图灵机B,则意味着(A中元素完全对应B中元素)。如果A和B能够相互模拟,则表示(A和B计算等价)。17.操作系统的基本功能包括(进程管理)、(存储器管理)、(文件管理)、(设备管理)和用户接口。18.进程在其生命周期中的三种基本状态是(就绪)、(运行)和(等待)。19.数据库中的文件类型属于(记录式)文件。20.程序装入内存时,源程序中的符号地址最终要变换为内存的(物理)地址。二、简答题1.试说明指令的执行步骤,哪些步骤是必须的答:取指令,指令译码(或分析),指令执行2.简述冯·诺依曼计算机的特点。答:详见教材节3.简述进程和程序的区别。答:进程就是执行起来的程序。程序是静态的,进程是动态的,是“活”着的程序。4.说明为什么要引入进程。答:为解决现代计算机中多道程序共享系统资源的问题。5.将程序装入内存必须经过哪些步骤答:编译,链接,装入。第4章1.以下所列出的,哪些是计算机网络的功能设备A.主机 B.鼠标 C.电话机 D.FTP服务器E.双绞线 F.USB线 G.通信卫星 H.电话线I.网络交换机 J.路由器 K.键盘 L.U盘M.网络接口卡 N.光纤 O.显示器 P.打印机Q.多媒体音箱 R.调制解调器 S.智能手机 T.平板电脑参考答案:A,D,E,F,G,H,I,J,M,N,R,S,T2.现代计算机网络为什么要将报文分割成一个个分组来进行传输说出你认为最重要的一个理由。参考答案:在出错时只重传出错的分组,提高了传输效率3.如果广域网采用总线结构,你认为是否可行说出你的理由。(提示:考虑广域网的传播延迟和介质争用)参考答案:不行。原因如下:(1)广域网的环境复杂、覆盖范围广,采用总线结构时,一旦总线出现故障则整个网络都无法通信,而且故障诊断和故障隔离极为困难;(2)总线结构的网络传输效率和传输性能不高,无法满足广域网的要求;(3)信号在总线上的长距离传输衰减太大,难以实现广域网所需的大范围地域覆盖;(4)总线结构需要采用某种介质争用协议,而用于长距离总线的介质争用协议在原理上无法实现。4.计算机网络按照其规模大小和延伸距离远近划分为()、()和()。参考答案:局域网,城域网,广域网5.网上的站点通过点到点的链路与中心站点相连,具有这种拓扑结构的网络称为()。A.因特网 B.星形网 C.环形网 D.总线形网 E.广域网参考答案:B6.计算机网络中常用的有线传输介质有()。A.双绞线、红外线、同轴电缆 B.同轴电缆、激光、光纤C.双绞线、同轴电缆、光纤 D.微波、双绞线、同轴电缆参考答案:C7.采用全互连拓扑结构建设一个具有500个结点的广域网。假定网络中节点之间的平均距离为50公里,每公里的线路成本是1万元。建设此广域网的线路总成本是多少通过这个结果你能得到什么结论参考答案:总成本={(500*499)/2}*50*10^4=000元(亿元),由此可见,全互连结构的广域网建设成本极高,所以广域网只能采用部分连接的网状拓扑结构。8.如果你的家里构建了一个能够连接因特网的家庭局域网。请构思一个能够利用家庭局域网为你的家居生活带来方便的应用。简要说明你的构思大致的实现方法。参考答案:这样的例子很多,下面给出一个网络婴儿监视系统的应用案例。需求:为保证婴儿的安全,父母要始终保证婴儿在自己的视线内。在不得不离开时,父母希望能通过手机或电脑也能观察到婴儿的活动。解决方案:为了能保证父母或监护人能始终看到婴儿的活动,可在婴儿房间或活动地点安装WiFi网络摄像头,然后就可以通过手机或者电脑上网在世界任何具有互联网的地方查看到家里婴儿的一举一动。系统包括监视端和用户终端两部分。其中,监视端采用WiFi网络摄像头,通过家庭局域网连接因特网。用户终端可以是智能手机、平板电脑、上网本、PC和笔记本等。9.哪一种网络应用模式对客户端的要求最低哪一种网络应用模式对所有主机的要求是等同的参考答案:B/S模式对客户端的要求最低。P2P模式对所有主机的要求是等同的。10.因特网的体系结构是怎样的画出因特网体系结构的层次图,并在图上标注每层的名字。参考答案:因特网采用了TCP/IP协议,因此其体系结构与TCP/IP体系结构是相同的。因特网体系结构的层次及每层的名字请参考节中“IP协议及其体系结构”小节中的内容。11.说出一个生活中使用分层思想的案例,并对其中的分层机制进行简要的叙述。参考答案:邮政系统,其分层结构如下图所示。 其中发信人和收信人所在的层次类似于TCP/IP的应用层,本层负责通信双方对通信内容和表现形式的理解和表达;邮局所在的层次类似于TCP/IP的传输层和网际层,本层负责信件的接收和投递;运输系统所在的层次类似于TCP/IP的网络接口层,本层负责信件的传送。12.网络协议的关键要素包括语法、( )和()。参考答案:语义,时序13.中国一家公司的经理要与德国一家公司的经理进行商务谈判。请将谈判过程的机制用层次结构表示,给每个层次用一个贴切的词汇命名,说明每个层次的功能和对等层之间的协议是什么,最后详细描述在这种机制下的商谈过程。已知条件如下:(1)谈判策略已经由双方的董事会各自确定,由双方的经理亲自掌握。(2)中方经理不懂德语,德方经理也不懂汉语,但双方都可以聘请翻译人员。(3)翻译人员只负责语言翻译,不涉及商务(4)双方的通信手段只能使用传真,只有秘书会用传真。参考答案:谈判过程的层次结构如下会话层组织和维护双方的谈判过程,协议是双方之间的商务谈判规则;表示层提供双方交谈的语言转换服务,保证交谈的内容告诉对方后意义不变,协议是翻译人员之间的语言翻译规则;通信层提供双方交谈内容的传输服务,协议是传真通信规则。在这种机制下的商谈过程为(假定中方经理先发言):中方谈判经理根据商务谈判规则表述本方的意愿并告诉中方翻译人员,中方翻译人员将意愿内容翻译成双方认可的中间语言(如英语)提交给中方秘书,中方秘书根据传真通信规则将其发送给德方秘书,德方秘书将收到的用中间语言表达的意愿内容翻译成德语提交给德方经理。德方经理收到中方的意愿后,再根据商务谈判规则表述本方的意愿并告诉德方翻译人员,德方翻译人员将意愿内容翻译成双方认可的中间语言提交给德方秘书,德方秘书根据传真通信规则将其发送给中方秘书,中方秘书将收到的用中间语言表达的意愿内容翻译成汉语提交给中方经理。双方按照以上过程交换本方意愿,直到谈判结束。14.一个具有5层体系结构的网络,其每一层添加的报文头部长度为20字节。假定发送方的用户要传输一份500字节的报文给对方(不考虑报文分段),物理介质上传输的总位数是多少网络的传输效率是多少接收方用户收到的报文长度是多少参考答案:(1)物理介质上传输的总位数为:{500+(5-1)*20}*8=4640位(2)网络的传输效率为:500/580=%(3)接收方用户收到的报文长度仍为500字节15.TCP/IP参考模型共分为4层,分别是()、()、()和()。参考答案:应用层,传输层,互联网层(网际层),网络接口层16.因特网上的每一台主机都有一个惟一的、可识别的主机地址,称做()。A.端口号B.物理地址C.IP地址D.域名E.MAC地址参考答案:C17.IP地址是一个()位的二进制数。参考答案:32(IPv4)、128(IPv6)18.以下哪两个IP地址属于同一子网(子网掩码为)A.B.C.D.参考答案:C和D19.一台主机要向B类网络(网络地址为)中发送广播报文,该报文的目的地址应该是什么参考答案:20.用户主机上打开了两个IE浏览器窗口,浏览同一个网站的不同网页。该网站的Web服务器如何知道将网页发送到哪个IE浏览器窗口参考答案:一台主机打开两个IE浏览器窗口时,该主机使用的端口号是不一样的。Web服务器根据主机的IP地址和端口号就可以知道将网页发送到哪个IE浏览器窗口。系统用于以下哪项任务()A.将IP地址转换为MAC地址B.将域名转换为MAC地址C.将域名转换为IP地址D.将IP地址转换为MAC地址参考答案:C22.一般情况下,通过域名访问一个网站需要访问几次根域名服务器就能查找到该域名服务器的IP地址参考答案:一次23.因特网中的地址有域名、IP地址和MAC地址之分,为什么需要这么多地址只要其中一种地址行不行试说明理由。参考答案:需要各种地址的原因请参考教材的相关内容。(1)域名地址是为了避免记忆非常难记的IP地址,所以域名地址不是必需的,但只使用域名地址是不行的。(2)只使用MAC地址也是不行的,原因是:MAC地址是一个平坦地址,不可路由。在路由操作中必须使用具有层次结构的可路由的IP地址;网卡绑定到不同的宿主机时,网络必须重新配置。所以必须要有一个不随安装位置的改变而改变的MAC地址来标识网络接口;(3)只使用IP地址也是不行的,原因是:IP地址只适用于TCP/IP网络,事实上,世界上还有很多采用不同协议的网络,如IPX/SPX、AppleTalk等,这些网络并不使用IP地址;主机改变地点后,网络必须重新配置。所以必须要有IP地址来标识这台主机在哪个网络中。24.以太网是如何处理介质访问冲突的参考答案:请参考教材节。25.以太网中的主机在发送时为什么还要监听介质参考答案:因为多台主机同时监听到介质空闲而同时开始发送数据仍会产生冲突。26.以太网中,主机知道介质空闲才会发送数据,为什么发送时还会发生冲突参考答案:同25题。27.局域网设置网关的作用是什么参考答案:用来在局域网和因特网之间传输数据。28.什么情况下,网关才会将收到的IP分组发送到因特网上参考答案:当IP分组中的目的地址为外网的IP地址时。29.万维网WWW的三个组成部分是()、()和()。参考答案:浏览器,Web服务器,HTTP协议30.“统一资源定位器”的英文缩写是()。参考答案:URL31.试说明电子邮件系统主要的组成部分及每一部分的作用。参考答案:请参考教材节32.在发送邮件过程中要建立几个TCP连接参考答案:2个。一个用于传送邮件到发信人的邮件服务器,另一个用于将发信人的邮件服务器中的邮件传送给收信人的邮件服务器。33.以下说法哪个是正确的A.万维网是一种广域网B.万维网就是因特网C.因特网是一种基于报文交换的网络D.因特网是一种路由器网络参考答案:A、D34.在一次FTP传输中要建立几个TCP连接,每个TCP连接的作用分别是什么参考答案:2个。一个用于传输控制信息,另一个用于传输数据。35.只要舍得投资安装网络安全设备,网络安全就能得到保证。这种说法对吗请说明原因。参考答案:不正确。制定网络安全制度、网络安全培训和网络安全监督审计也是必须的。36.下列攻击中,()属于主动攻击。A.无线截获B.搭线监听C.拒绝服务D.流量分析参考答案:C37.数据加密技术一般有两种类型,分别是()加密和()加密。参考答案:对称式,非对称式38.假设密钥k=8,用替代密码将明文“XIANJIAOTONGUNIVERSITY”加密。参考答案:K=8时,替代密码的加密规则为:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:STUVWXYZABCDEFGHIJKLMNOPQR根据以上规则,可得明文:XIANJIAOTONGUNIVERSITY密文:QASFBASGLGFYMFANWJKALQ39.在网络购物过程中,用到了哪些安全技术它们分别用于网络购物的哪个步骤参考答案:(1)访问控制:用户账户名和口令(2)数据加密:对账户名、口令和关键信息加密(3)数字签名:保证信息的完整性和真实性(4)数字摘要:提高加密的效率和实时性(5)数字证书:防止信息被第三方窃取,在交易出现争执时防止抵赖40.在网上传输的数字证书中包括了报文明文、证书公钥和数字签名。但证书公钥并没有被加密,而是直接封装在证书中。不加密的原因是什么如果对公钥加密再封装到证书中会出现什么问题参考答案:数字证书使用了公钥密码加密法,其中公钥是公开的,私钥是秘密的。所以证书公钥不需要加密。如果将公钥加密,接收者将无法得知公钥,也就无法对信息解密。41.防火墙有哪些种类哪一种防火墙的安全性更好一些为什么参考答案:请参考教材节。一般来说,基于网络体系结构的层次越高的防火墙安全性就越好,因为它能够更深入、更详细地分析报文流的内容。附加题:IP地址的默认子网掩码是()。A.B.C.D.参考答案:C第5章习题给出3个整数,求它们的和与均值。自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关,函数关系式如下。编写程序计算当x1=12时,x2=30时y的值。0(x<=0)y=f(x)=4x/3(0<x<=15)(x>15)设x1=0133表示火车1点33分开出,x2=2209表示火车22点09分到站。x1和x2都是整数,计算火车运行的时间y(运行时间假设小于24小时),同样用一个4位整数表示,前2位为小时数,后两位是分钟数。计算序列2/1+3/2+5/3+8/5+...的前n项之和。给定一个含有10个整数的数组,判断x是否在数组中。如是,将x在数组中的位置(下标)存于变量y中。否则y的值为-1。将第2题以过程调用的方式实现。过程如FunctionWaterFee(ByValxAsDeciaml)AsDecimal将第5题以过程的方式实现,如:FunctionIsHere(ByValA()AsInteger,ByValxAsInteger)AsInteger某公司员工的工资计算方法如下,一周内工作时间40小时之内(含40小时),按正常工作时间计酬,超出40小时的工作时间部分,按正常工作时间报酬的倍计酬。员工按进公司时间分为新职工和老职工,新职工的正常工资为30/小时,老职工的正常工资为50/小时。(进公司5年以上(含5年)的员工为老职工,5年以下的为新职工),请按该计酬方式计算员工的工资。要求输入员工进公司的一周工作时间、工作年数,输出其一周的工资,保留2位小数。输入年份、月份、日子,输出这一天是该年中的第几天。如输入3个整数,200932,则输出Thisisthe61thof2009。一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(1<n<=10,从键盘输入)早上想再吃时,见只剩下一个桃子了。问第一天共摘了多少个桃子总共50件商品,有两种构成,钥匙扣2元一个,漫画书4元一本,要卖出160元,应如何搭配(输出所有可能的配对情况)打印输出所有“水仙花数”。所谓“水仙花数”是指一个三位的正整数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。编写过程IsSquare,判断某个自然数是否为平方数。是返回True,不是则返回False。求数组中出现次数最多的数及出现次数。数组为整数,8个数。输出出现最多的数以及次数。一个自然数是素数,且它的各位数字位置经过任意对换后仍为素数,则称是绝对素数。例如13是绝对素数。输出所有2位数的绝对素数。第5章习题答案‘—1--ModuleModule1SubMain()("请输入3个整数,以空格分隔并以回车结束")DimsAsString=()DimsSplit()AsString=("")Dimx,y,zAsIntegerx=(sSplit(0))y=(sSplit(1))z=(sSplit(2))("sum:{0}",x+y+z)("Avg:{0}",x+y+z/3)EndSubEndModule‘—2—ModuleModule1SubMain()DimA()AsSingle={12,30}DimyAsSingleForEachxInAIfx<=0Theny=0ElseIfx>0Andx<=15Theny=4*x/3Elsey=*x-EndIfEndIf("x={0},y={1}",x,y)NextEndSubEndModule‘—3—‘ModuleModule1SubMain()Dimx1AsInteger=133Dimx2AsInteger=2209Dimx1hAsInteger=x1\100Dimx1mAsInteger=x1Mod100Dimx2hAsInteger=x2\100Dimx2mAsInteger=x2Mod100Dimyh,ymAsIntegerIfx2m-x1m<0Thenym=x2m+60-x1myh=x2h-x1h-1Elseym=x2m-x1myh=x2h-x1hEndIfIfyh<0Thenyh=yh+24EndIfDimyAsInteger=yh*100+ym("y={0}",y)EndSubEndModule‘—4—ModuleModule1SubMain()ConstnAsInteger=30DimaAsInteger=2DimbAsInteger=1DimsumAsDecimal=0ForiAsInteger=1Tonsum=sum+a/bDimtAsInteger=aa=a+bb=tNext("Sum={0}",sum)EndSubEndModule‘—5—ModuleModule1SubMain()DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}DimxAsInteger=56DimyAsInteger=-1ForiAsInteger=0To-1Ifx=A(i)Theny=iEndIfNext("y={0}",y)EndSubEndModule‘—6—ModuleModule1SubMain()DimA()AsSingle={12,30}ForEachxInA("x={0},y={1}",x,WaterFee(x))NextEndSubFunctionWaterFee(ByValxAsDecimal)AsDecimalIfx<=0ThenReturn0ElseIfx>0Andx<=15ThenReturn4*x/3ElseReturn*x-EndIfEndIfEndFunctionEndModule‘—7—ModuleModule1SubMain()DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}DimxAsInteger=56("y={0}",IsHere(A,x))EndSubFunctionIsHere(ByValA()AsInteger,ByValxAsInteger)AsIntegerForiAsInteger=0To-1Ifx=A(i)ThenReturniEndIfNextReturn-1EndFunctionEndModule‘—8—ModuleModule1SubMain()("请输入工作时间,工作年数(整数),以空格分隔并以回车结束")Dims0AsString=()DimsSplit()AsString=("")Dimt,y,sperhAsIntegert=(sSplit(0))y=(sSplit(1))DimsAsSingleIfy>=5Thensperh=50Elsesperh=30EndIfIft<40Thens=t*sperhElses=40*sperh+(t-40)*sperh*EndIf("工资是{0:N2}",s)EndSubEndModule‘—9—ModuleModule1SubMain()("请输入年月日,以空格分隔并以回车结束")Dims0AsString=()DimsSplit()AsString=("")Dimy,m,dAsIntegery=(sSplit(0))m=(sSplit(1))d=(sSplit(2))DimsAsInteger=0DimmmAsIntegerForiAsInteger=1Tom-1If((i<=7)And(iMod2=1))Or((i>=8)And(iMod2=0))Thenmm=31ElseIfi=2And(((yMod4=0)And(yMod100<>0))Or(yMod400=0))Thenmm=29ElseIfi=2Thenmm=28Elsemm=30EndIfEndIfEndIfs=s+mmNexts=s+d("Thisisthe{0}thof{1}",s,y)EndSubEndModule‘—10—ModuleModule1SubMain()("请输入n")DimsAsString=()DimnAsInteger=(s)DimyAsInteger=1Fori=1Ton-1y=2*(y+1)Next("桃子数是{0}",y)EndSubEndModule‘—11—ModuleModule1SubMain()ForxAsInteger=0To50ForyAsInteger=0To50-xIfx*2+y*4=160Then("钥匙扣{0}个,漫画书{1}本",x,y)EndIfNextNextEndSubEndModule‘—12—ModuleModule1SubMain()ForxAsInteger=100To999DimaAsInteger=xMod10DimbAsInteger=(x\10)Mod10DimcAsInteger=x\100Ifa^3+b^3+c^3=xThen("{0}={1}^3+{2}^3+{3}^3",x,c,b,a)EndIfNextEndSubEndModule‘—13—ModuleModule1SubMain()DiminsAsString=()DimnAsInteger=(ins)IfIsSquare(n)Then("{0}issqure",n)Else("{0}isnotsqare",n)EndIfEndSubFunctionIsSquare(ByValnAsInteger)AsBooleanDimiAsInteger=1Fori=1Ton/iIfi*i=nThenReturnTrueEndIfNextReturnFalseEndFunctionEndModule‘—14—ModuleModule1StructurecountDimxAsIntegerDimcAsIntegerEndStructureSubMain()DimA()AsInteger={2,3,3,3,4,5,5,5}Dimcou(20)AscountDimiAsInteger=0ForEachkAsIntegerInADimfindAsBoolean=TrueForjAsInteger=0Toi-1Ifcou(j).x=kThencou(j).c+=1find=FalseExitForEndIfNextIffindThencou(i).x=kcou(i).c=1i+=1EndIfNextForjAsInteger=0Toi-1ForkAsInteger=i-1Toj+1Step-1Ifcou(k).c>cou(k-1).cThenDimtempAscount=cou(k)cou(k)=cou(k-1)cou(k-1)=tempEndIfNextNextDimmaxcAsInteger=cou(0).cDimmAsInteger=0Whilecou(m).c=maxc("{0}出现的次数是{1}",cou(m).x,cou(m).c)m+=1EndWhileEndSubEndModule‘—15—ModuleModule1SubMain()ForiAsInteger=10To99DimjAsIntegerj=(iMod10)*10+i\10IfIsPrime(i)AndIsPrime(j)Then("{0}",i)EndIfNextEndSubFunctionIsPrime(ByValnAsInteger)AsBooleanDimiAsInteger=2While(i<=n\i)IfnModi=0ThenReturnFalseEndIfi=i+1EndWhileReturnTrueEndFunctionEndModule第6章习题什么是数据的线性存储结构,什么是数据的非线性存储结构简述线性表的操作。假设电话号码本由人名和一个电话号码组成,设计一个线性表,存储7个人的电话号码簿。设栈S中存储的是字符数据,自栈底到栈顶依次为A,C,D。经过2次出栈操作并将E压入栈,此时栈中的数据是什么使用栈,检查表达式(2+3)*a*(3+b)/(2*(12+8)的括号是否匹配。编写程序,输入一行文本,然后使用栈逆序显示该行文本。编写程序,用栈来判断一个字符串是否为回文(即顺读和倒读都相同的字符串)。程序忽略字符串中的大小写,空格和标点符号。使用LinkedList类实现第3题的电话簿,打印该号码簿。然后删去第2个和最后一个节点的数据再次打印号码簿。设计一个队列,将整数3,4,5进入队列,打印该队列,将队列的前2个元素出队,随后将11和12入队,再次打印队列。对于图6-15的循环队列,在该图的基础上,将1,2,3,4,5入队,并将2个元素出队后,画出队列目前的状态。第6章答案‘---1---数据的逻辑结构就是数据元素之间的逻辑关系。线性结构指数据元素之间存在线性关系,即最多只有一个前导和后继元素;非线性结构数据元素之间的关系为一对多或者多对多的关系。‘—2—线性表可以进行的常用基本操作有以下几种:置空表:将线性表L的表长置为0。return:求出线性表L中数据元素的个数。取表中元素:仅当1≤i≤Length(L)时,取得线性表L中的第i个元素ki(或ki的存储位置),否则无意义。取元素ki的直接前趋:当2≤i≤Length(L)时,返回ki的直接前趋ki-1。取元素ki的直接后继:当1≤i≤Length(L)-1时,返回ki的直接后继ki+1。定位:返回元素x在线性表L中的位置。若在L中有多个x,则只返回第一个x的位置,若在L中不存在x,则返回0。插入:在线性表L的第i个位置上插入元素x,运算结果使得线性表的长度增加1。删除:删除线性表L的第i个位置上的元素ki,此运算的前提应是Length(L)≠0,运算结果使得线性表的长度减1。‘—3—structurePhone DimnameAsString DimnumAsStringEndStructureStructureListTypeDimPhoneList()AsPhoneDimnAsIntegerEndStructureDimPListAsListTypeReDim(6)‘—4—AE‘—5—‘参见例6-7ModuleModule1SubMain()DimexpressionAsString("请输入表达式")expression=()'声明一个栈DimsAsNewStack(OfChar)'初始栈,置为空栈()DimchAsChar'循环处理表达式中的每一个字符ForiAsInteger=0To-1ch=expression(i)Ifch="("Then(ch)'是左括号则压栈EndIfIfch=")"ThenIf>0Then()'是右括号则弹栈Else'是右括号,但栈是空的,说明没有与之匹配的左括号("括号不匹配")End'程序立即终止退出EndIfEndIfNextIf=0Then("括号匹配")Else'栈非空,说明有左括号没有与之匹配的右括号("括号不匹配")EndIfEndSubEndModule‘—6—ModuleModule1StructureStackDimch()AsCharDimtopAsIntegerDimbottomAsIntegerEndStructureSubMain()ConstMaxAsInteger=1000DimReverseCharAsStackClear(ReverseChar)ReDim(Max)("Inputastringwhichwillbereversed")DimRevStrAsString=()ForiAsInteger=0To-1Push(ReverseChar,RevStr(i))NextWhileNotEmpty(ReverseChar)(Pop(ReverseChar))EndWhileEndSubSubPush(ByRefsAsStack,ByValchAsChar)=ch+=1EndSubSubClear(ByRefsAsStack)=0=0EndSubFunctionEmpty(ByValsAsStack)AsBooleanIf=ThenReturnTrueElseReturnFalseEndIfEndFunctionFunctionPop(ByRefsAsStack)AsChar=-1ReturnEndFunctionEndModule‘—7—ModuleModule1StructureStackDimch()AsCharDimtopAsIntegerDimbottomAsIntegerEndStructureSubMain()ConstMaxAsInteger=1000DimHuiAsStackClear(Hui)ReDim(Max)("Inputastring")'抽取字母,转化为大写,存入一个数组DimchA(Max)AsCharDimHuiStrAsString=()DimkAsInteger=0ForiAsInteger=0To-1If(HuiStr(i))ThenchA(k)=(HuiStr(i))Push(Hui,chA(k))k=k+1EndIfNextDimchB(Max)AsChark=0WhileNotEmpty(Hui)chB(k)=Pop(Hui)k=k+1EndWhileDimbHuiAsBoolean=TrueForjAsInteger=0Tok-1IfchA(j)<>chB(j)ThenbHui=FalseExitForEndIfNextIfbHuiThen("YES")Else("NO")EndIfEndSubSubPush(ByRefsAsStack,ByValchAsChar)=ch+=1EndSubSubClear(ByRefsAsStack)=0=0EndSubFunctionEmpty(ByValsAsStack)AsBooleanIf=ThenReturnTrueElseReturnFalseEndIfEndFunctionFunctionPop(ByRefsAsStack)AsChar=-1ReturnEndFunctionEndModule‘—8—ModuleModule1StructureAddressDimnameAsStringDimphoneAsStringEndStructureSubMain()DimlinkedListAAsNewLinkedList(OfAddress)DimaddrAsAddress="One"=""(addr)="Two"=""(addr)="Three"=""(addr)="Four"=""(addr)="Five"=""(addr)="Six"=""(addr)="Seven"=""(addr)DisPlay(linkedListA)()DisPlay(linkedListA)EndSubSubDisPlay(ByValLLAsLinkedList(OfAddress))ForEachitemAsAddressInLL("Name={0}AndPhone={1}",,Next("表长为:{0}",EndSubEndModule‘—9—参见例6-8‘—10—参见例6-9第7章习题编写程序,使用冒泡排序对10个整数排序。改进冒泡排序程序,使其当数据已经有序时,直接结束排序的过程。编写程序,使用快速排序对10个整数排序。改进书中的快速排序程序,随机选取关键数据。编写程序,使用冒泡排序对电话号码簿按人名的字典顺序排序。使用顺序查找,对第5题的数据查找一个人名是否在电话簿中。使用折半查找,对排序后的电话簿(第5题)进行查找。给定K个整数的序列{N1,N2,...,NK},其任意连续子序列可表示为{Ni,Ni+1,...,Nj},其中1<=i<=j<=K。求:最大连续子序列,即所有连续子序列中元素和最大的一个,例如给定序列{-2,11,-4,13,-5,-2},其最大连续子序列为{11,-4,13},最大和为20。数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,这个问题是这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一;如果是偶数,则除以二;得出的结果继续按照前面的规则进行运算,最后必定得到一。现在请你编写一个程序验证。某部队进行新兵队列训练,将新兵从1开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始1至2报数,凡报到2的出列,剩下的向小序号方向靠拢,再从头开始进行1至3报数,凡报到3的出列,剩下的向小序号方向靠拢,继续从头开始进行1至2报数,以后从头开始轮流进行1至2报数、1至3报数直到剩下的人数不超过三人为止。编写程序,输入数N为最开始的新兵人数(20<N<6000),输出剩下的新兵最初的编号。在医院打点滴(吊针)的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有v毫升,每一滴是d毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒,这瓶水什么时候能滴完呢(0<d<v<1000)。第7章习题答案‘—1—ModuleModule1SubMain()DimsArray()AsInteger={12,-78,67,23,2,99,234,-23,45,56,12,78}'在屏幕上显示数组Show(sArray)'排序并显示排序后的结果("数组排序...")Bubble(sArray)'显示排序后的结果Show(sArray)EndSub'在屏幕上显示数组SubShow(ByValsArray()AsInteger)ForEachkAsIntegerInsArray()+"")Next()EndSub'冒泡排序算法SubBubble(ByValsArray()AsInteger)'得到数组的大小DimlengthAsInteger=(0)ForiAsInteger=0Tolength-1Forj=length-1Toi+1Step-1IfsArray(j)<sArray(j-1)Then'交换DimtempAsInteger=sArray(j)sArray(j)=sArray(j-1)sArray(j-1)=tempEndIfNextNextEndSubEndModule‘—2—'冒泡排序算法SubBubble(ByValsArray()AsInteger)'得到数组的大小DimlengthAsInteger=(0)ForiAsInteger=0Tolength–1 DimchangeAsBoolean=trueForj=length-1Toi+1Step-1IfsArray(j)<sArray(j-1)Then'交换DimtempAsInteger=sArray(j)sArray(j)=sArray(j-1)sArray(j-1)=temp change=falseEndIfNext Ifchangethen ExitFor EndIfNextEndSub‘—3—ModuleModule1SubMain()DimA()AsInteger={50,39,64,90,72,12,29}("排序前:")'显示A数组Show(A)'排序QkSort(A,0,(0)-1)("排序后:")Show(A)EndSub'显示数组的A数据SubShow(ByValA()AsInteger)ForEachkAsIntegerInA()+"")Next()EndSub'快速排序'A是待排序的数组'i和j指示了对数组从i到j处的数据进行排序,i<jSubQkSort(ByValA()AsInteger,ByValiAsInteger,ByValjAsInteger)Ifi<jThen'对数组A调用QkPass函数进行一趟快速排序。'i和j指示了排序的起始和终了位置(下标)'返回值指示了一趟排序后的分割点Dimk=QkPass(A,i,j)'对前一部分继续快速排序,递归调用QkSort(A,i,k-1)'对后一部分快速排序QkSort(A,k+1,j)EndIfEndSub'一趟快速排序的函数,对数组A从i到j快速排序,并返回分割点FunctionQkPass(ByValA()AsInteger,ByValiAsInteger,ByValjAsInteger)AsInteger'存储关键字DimkeyAsInteger=A(i)Whilei<jWhilei<jAndA(j)>=keyj=j-1'从后向前搜寻比key小的值EndWhileA(i)=A(j)'找到后放入A(i)Whilei<jAndA(i)<=keyi=i+1'从前向后搜寻比key大的值EndWhileA(j)=A(i)'找到后放入A(j)EndWhile'循环结束时,i=j,放入key值,并返回iA(i)=keyReturniEndFunctionEndModule‘—4—FunctionQkPass(ByValA()AsInteger,ByValiAsInteger,ByValjAsInteger)AsIntegerDimroAsRandom=newRandom() DimrAsInteger=(i,j+1)'存储关键字DimkeyAsInteger=A(i) A(i)=A(r) A(r)=key key=A(i)Whilei<jWhilei<jAndA(j)>=keyj=j-1'从后向前搜寻比key小的值EndWhileA(i)=A(j)'找到后放入A(i)Whilei<jAndA(i)<=keyi=i+1'从前向后搜寻比key大的值EndWhileA(j)=A(i)'找到后放入A(j)EndWhile'循环结束时,i=j,放入key值,并返回iA(i)=keyReturniEndFunctionEndModule‘—5—ModuleModule1StructureAddressDimnameAsStringDimphoneAsStringEndStructureSubMain()DimAddr(20)AsAddressConstNAsInteger=7Addr(0).name="One"Addr(0).phone=""Addr(1).name="Two"Addr(1).phone=""Addr(2).name="Three"Addr(2).phone=""Addr(3).name="Four"Addr(3).phone=""Addr(4).name="Five"Addr(4).phone=""Addr(5).name="Six"Addr(5).phone=""Addr(6).name="Seven"Addr(6).phone=""DisPlay(Addr,N)ForiAsInteger=1ToN-1ForjAsInteger=N-1Toi+1Step-1IfAddr(j).name<Addr(j-1).nameThenDimtempAsAddress=Addr(j)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东署山市2023-2024学年高二物理上学期开学考试含解析
- 千与千寻英语课件
- 腿骨折的临床特征
- 昆明理工大学《物流系统建模与仿真》2021-2022学年第一学期期末试卷
- 矛盾是事物发展的源泉和动力(课课件)
- 链球菌中毒性休克综合征的临床特征
- 凯里学院《计算机组成原理实验》2021-2022学年第一学期期末试卷
- 九江学院《软件定义网络》2021-2022学年第一学期期末试卷
- 荆楚理工学院《展示空间设计》2022-2023学年第一学期期末试卷
- 青海海南人文介绍
- 公路工程工程量清单第100章解析及计量支付
- 轨道交通设备维修管理模式与委外维保方案
- 硬度换算表-绝对最全面
- 西游记三打白骨精剧本
- 乡村医生试题500乡村医生考试试题.doc
- 妇科腹腔镜技术应急预案
- 皮下注射-PPT课件
- 中国医师协会超声医师分会产前超声检查指南
- 轻骨料混凝土
- 水轮发电机组大修实施方案
- 有理数的加减法第二课时-人教版数学七年级上课件
评论
0/150
提交评论