版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.第1章习题一、填空题1.计算机科学是主要研究〔〕、〔〕和〔〕的学科。计算理论、计算机,信息处理2.在模型建立的前提下,利用计算机求解问题的核心工作就〔〕设计。算法3.算法是一组规则,它的主要特性是〔〕、〔〕、〔〕、〔〕和〔〕。有限性、可执行性、机械性、确定性,终止性或:有穷性,确定性,能行性,0个或多个输入输入,1个或多个输出4.要使一个问题能够用计算机解决,其必要条件是〔〕。具有确定算法或:可以在确定、有限步骤被解决5.在计算机,一切信息都是以〔〕形式表示的。二进制6.如果说图灵机A能够完全模拟图灵机B,则意味着〔〕。如果A和B能够相互模拟,则表示〔〕。在给定输入时,A和B有一样的输出//A和B计算等价7.图灵机中的纸带可以相当于计算机中的〔〕。存储器8.第一代计算机的主要部件是由〔〕和〔〕构成的。电子管,继电器9.未来全新的计算机技术主要指〔〕,〔〕和〔〕。光子计算机,生物计算机,量子计算机10.未来电子计算机的开展方向是〔〕、〔〕、〔〕和〔〕。巨型化,微型化,网络化,智能化11.目前国际上广泛采用的西文字符编码是标准〔〕,它是用〔〕位二进制码表示一个字符。ASCII,712.采用16位编码的一个汉字存储时要占用的字节数为〔〕。213.位图文件的存储格式为〔〕,用数码像机拍摄的照片的文件格式一般为〔〕。BMP,JPG14.假设处理的信息包括文字、图片、声音和电影,则其信息量相对最小的是〔〕。文字15.模拟信号是指〔〕都连续变化的信号。时间和幅值16.计算机中对信息的组织和管理方式有两种,即〔〕和〔〕。文件,数据库17.软件的测试方法包括〔〕和〔〕。白盒测试,黑盒测试18.普适计算的主要特点是〔〕。无处不在的计算模式二、简答题:1.简述计算机采用二进制的原因。答:主要原因是:①二进制只有0和1两个根本符号,任何两种对立的物理状态都可以归结为二进制表示。②算术运算规则简单,且适合逻辑运算。2.图灵机模型主要由哪4个局部组成?答:一条无限长的纸带,一个读写头,一套控制规则,一个状态存放器3.图灵机在形式上可以用哪七个元素描述?它们分别表示什么含义?答:图灵机〔TM〕可以描述为一个七元组:M=〔Q,Σ,Γ,δ,q0,B,F〕〔1.1〕其中:Q:图灵机状态的有穷集合。Σ:输入符号的有穷集合,不包含空白符。Γ:带符号的完整集合;Σ是Γ的子集,有Σ∈Γ。δ:转移函数。δ〔q,*〕的参数是状态q和带符号*。δ(q,*)的值在有定义时是三元组(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〕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〕D8.完成以下二进制数的算术运算:〔1〕10011010+01101110=〔100001000〕〔2〕11001100-100=〔11001000〕〔3〕11001100×100=〔1100110000〕〔4〕11001100÷1000=〔11001〕9.写出以下真值对应的原码、反码和补码:〔1〕*=-1110011B〔2〕*=-71D〔3〕*=+1001001B答:〔1〕[*]原=11110011B,[*]反=10001100B,[*]补=10001101B〔2〕[*]原=11000111B,[*]反=10111000B,[*]补=10111001B〔3〕[*]原=01001001B,[*]反=01001001B,[*]补=01001001B10.写出符号数10110101B的反码和补码。答:[10110101]反=11001010B[10110101]补=11001011B11.*和Y的真值,求[*+Y]补="*+Y=?〔1〕*=-1110111BY=+1011010B〔2〕*=56Y=-21答:〔1〕[*+Y]补=11100011B,*+Y=-0011101B〔2〕[*+Y]补=00100011B,*+Y=+0100011B12.*=-1101001B,Y=-1010110B,求[*-Y]补="*-Y=?答:[*-Y]补=11100011B,*+Y=-0011101B13.完成以下二进制数的逻辑运算:〔1〕10110110∧11010110=〔10010110〕11010101=〔00101010〕〔2〕11010101=〔00101010〕〔3〕〔4〕11110111B10001000=〔011111111〕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图第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=元〔623.75亿元〕,由此可见,全互连构造的广域网建立本钱极高,所以广域网只能采用局部连接的网状拓扑构造。8.如果你的家里构建了一个能够连接因特网的家庭局域网。请构思一个能够利用家庭局域网为你的家居生活带来方便的应用。简要说明你的构思大致的实现方法。参考答案:这样的例子很多,下面给出一个网络婴儿监视系统的应用案例。需求:为保证婴儿的平安,父母要始终保证婴儿在自己的视线。在不得不离开时,父母希望能通过手机或电脑也能观察到婴儿的活动。解决方案:为了能保证父母或监护人能始终看到婴儿的活动,可在婴儿房间或活动地点安装WiFi网络摄像头,然后就可以通过手机或者电脑上网在世界任何具有互联网的地方查看到家里婴儿的一举一动。系统包括监视端和用户终端两局部。其中,监视端采用WiFi网络摄像头,通过家庭局域网连接因特网。用户终端可以是智能手机、平板电脑、上网本、PC和笔记本等。9.哪一种网络应用模式对客户端的要求最低?哪一种网络应用模式对所有主机的要等同的?参考答案:B/S模式对客户端的要求最低。P2P模式对所有主机的要等同的。10.因特网的体系构造是怎样的?画出因特网体系构造的层次图,并在图上标注每层的名字。参考答案:因特网采用了TCP/IP协议,因此其体系构造与TCP/IP体系构造是一样的。因特网体系构造的层次及每层的名字请参考节中“4.TCP/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=86.2%〔3〕接收方用户收到的报文长度仍为500字节15.TCP/IP参考模型共分为4层,分别是〔〕、〔〕、〔〕和〔〕。参考答案:应用层,传输层,互联网层〔网际层〕,网络接口层16.因特网上的每一台主机都有一个惟一的、可识别的主机地址,称做〔〕。A.端口号B.物理地址C.IP地址D.域名E.MAC地址参考答案:C17.IP地址是一个〔〕位的二进制数。参考答案:32〔IPv4〕、128〔IPv6〕18.以下哪两个IP地址属于同一子网〔子网掩码为〕?A.33B.C.9D.参考答案:C和D19.一台主机要向B类网络〔网络地址为〕中发送播送报文,该报文的目的地址应该是什么?参考答案:20.用户主机上翻开了两个IE浏览器窗口,浏览同一个的不同网页。该的Web效劳器如何知道将网页发送到哪个IE浏览器窗口?参考答案:一台主机翻开两个IE浏览器窗口时,该主机使用的端口号是不一样的。Web效劳器根据主机的IP地址和端口号就可以知道将网页发送到哪个IE浏览器窗口。21.DNS系统用于以下哪项任务?〔〕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网络,事实上,世界上还有很多采用不同协议的网络,如IP*/SP*、AppleTalk等,这些网络并不使用IP地址;主机改变地点后,网络必须重新配置。所以必须要有IP地址来标识这台主机在哪个网络中。24.以太网是如何处理介质访问冲突的?参考答案:请参考教材节。25.以太网中的主机在发送时为什么还要监听介质?参考答案:因为多台主机同时监听到介质空闲而同时开场发送数据仍会产生冲突。26.以太网中,主机知道介质空闲才会发送数据,为什么发送时还会发生冲突?参考答案:同25题。27.局域网设置网关的作用是什么?参考答案:用来在局域网和因特网之间传输数据。28.什么情况下,网关才会将收到的IP分组发送到因特网上?参考答案:当IP分组中的目的地址为外网的IP地址时。29.万维网的三个组成局部是〔〕、〔〕和〔〕。参考答案:浏览器,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,用替代密码将明文“*IANJIAOTONGUNIVERSITY〞加密。参考答案:K=8时,替代密码的加密规则为:明文:ABCDEFGHIJKLMNOPQRSTUVW*YZ密文:STUVW*YZABCDEFGHIJKLMNOPQR根据以上规则,可得明文:*IANJIAOTONGUNIVERSITY密文:QASFBASGLGFYMFANWJKALQ39.在网络购物过程中,用到了哪些平安技术?它们分别用于网络购物的哪个步骤?参考答案:〔1〕访问控制:用户账户名和口令〔2〕数据加密:对账户名、口令和关键信息加密〔3〕数字签名:保证信息的完整性和真实性〔4〕数字摘要:提高加密的效率和实时性〔5〕数字证书:防止信息被第三方窃取,在交易出现争执时防止抵赖40.在网上传输的数字证书中包括了报文明文、证书公钥和数字签名。但证书公钥并没有被加密,而是直接封装在证书中。不加密的原因是什么?如果对公钥加密再封装到证书中会出现什么问题?参考答案:数字证书使用了公钥密码加密法,其中公钥是公开的,私钥是秘密的。所以证书公钥不需要加密。如果将公钥加密,接收者将无法得知公钥,也就无法对信息解密。41.防火墙有哪些种类?哪一种防火墙的平安性更好一些?为什么?参考答案:请参考教材节。一般来说,基于网络体系构造的层次越高的防火墙平安性就越好,因为它能够更深入、更详细地分析报文流的容。附加题:IP地址的默认子网掩码是〔〕。A.B.C.D.参考答案:C第5章习题给出3个整数,求它们的和与均值。自来水公司采取按用水量阶梯式计价的方法,居民应交水费y(元)与月用水量*(吨)相关,函数关系式如下。编写程序计算当*1=12时,*2=30时y的值。0(*<=0)y=f(*)=4*/3(0<*<=15)2.5*-10.5(*>15)设*1=0133表示火车1点33分开出,*2=2209表示火车22点09分到站。*1和*2都是整数,计算火车运行的时间y〔运行时间假设小于24小时〕,同样用一个4位整数表示,前2位为小时数,后两位是分钟数。计算序列2/1+3/2+5/3+8/5+...的前n项之和。给定一个含有10个整数的数组,判断*是否在数组中。如是,将*在数组中的位置〔下标〕存于变量y中。否则y的值为-1。将第2题以过程调用的方式实现。过程如FunctionWaterFee(ByVal*AsDeciaml)AsDecimal将第5题以过程的方式实现,如:FunctionIsHere(ByValA()AsInteger,ByVal*AsInteger)AsInteger*公司员工的工资计算方法如下,一周工作时间40小时之〔含40小时〕,按正常工作时间计酬,超出40小时的工作时间局部,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,新职工的正常工资为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()Console.WriteLine("请输入3个整数,以空格分隔并以回车完毕")DimsAsString=Console.ReadLine()DimsSplit()AsString=s.Split("")Dim*,y,zAsInteger*=Convert.ToInt32(sSplit(0))y=Convert.ToInt32(sSplit(1))z=Convert.ToInt32(sSplit(2))Console.WriteLine("sum:{0}",*+y+z)Console.WriteLine("Avg:{0}",*+y+z/3)EndSubEndModule‘—2—ModuleModule1SubMain()DimA()AsSingle={12,30}DimyAsSingleForEach*InAIf*<=0Theny=0ElseIf*>0And*<=15Theny=4**/3Elsey=2.5**-10.5EndIfEndIfConsole.WriteLine("*={0},y={1}",*,y)Ne*tEndSubEndModule‘—3—‘ModuleModule1SubMain()Dim*1AsInteger=133Dim*2AsInteger=2209Dim*1hAsInteger=*1\100Dim*1mAsInteger=*1Mod100Dim*2hAsInteger=*2\100Dim*2mAsInteger=*2Mod100Dimyh,ymAsIntegerIf*2m-*1m<0Thenym=*2m+60-*1myh=*2h-*1h-1Elseym=*2m-*1myh=*2h-*1hEndIfIfyh<0Thenyh=yh+24EndIfDimyAsInteger=yh*100+ymConsole.WriteLine("y={0}",y)EndSubEndModule‘—4—ModuleModule1SubMain()ConstnAsInteger=30DimaAsInteger=2DimbAsInteger=1DimsumAsDecimal=0ForiAsInteger=1Tonsum=sum+a/bDimtAsInteger=aa=a+bb=tNe*tConsole.WriteLine("Sum={0}",sum)EndSubEndModule‘—5—ModuleModule1SubMain()DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}Dim*AsInteger=56DimyAsInteger=-1ForiAsInteger=0ToA.Length-1If*=A(i)Theny=iEndIfNe*tConsole.WriteLine("y={0}",y)EndSubEndModule‘—6—ModuleModule1SubMain()DimA()AsSingle={12,30}ForEach*InAConsole.WriteLine("*={0},y={1}",*,WaterFee(*))Ne*tEndSubFunctionWaterFee(ByVal*AsDecimal)AsDecimalIf*<=0ThenReturn0ElseIf*>0And*<=15ThenReturn4**/3ElseReturn2.5**-10.5EndIfEndIfEndFunctionEndModule‘—7—ModuleModule1SubMain()DimA()AsInteger={23,34,56,78,12,2,45,6,7,90}Dim*AsInteger=56Console.WriteLine("y={0}",IsHere(A,*))EndSubFunctionIsHere(ByValA()AsInteger,ByVal*AsInteger)AsIntegerForiAsInteger=0ToA.Length-1If*=A(i)ThenReturniEndIfNe*tReturn-1EndFunctionEndModule‘—8—ModuleModule1SubMain()Console.WriteLine("请输入工作时间,工作年数〔整数〕,以空格分隔并以回车完毕")Dims0AsString=Console.ReadLine()DimsSplit()AsString=s0.Split("")Dimt,y,sperhAsIntegert=Convert.ToInt32(sSplit(0))y=Convert.ToInt32(sSplit(1))DimsAsSingleIfy>=5Thensperh=50Elsesperh=30EndIfIft<40Thens=t*sperhElses=40*sperh+(t-40)*sperh*1.5EndIfConsole.WriteLine("工资是{0:N2}",s)EndSubEndModule‘—9—ModuleModule1SubMain()Console.WriteLine("请输入年月日,以空格分隔并以回车完毕")Dims0AsString=Console.ReadLine()DimsSplit()AsString=s0.Split("")Dimy,m,dAsIntegery=Convert.ToInt32(sSplit(0))m=Convert.ToInt32(sSplit(1))d=Convert.ToInt32(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+mmNe*ts=s+dConsole.WriteLine("Thisisthe{0}thof{1}",s,y)EndSubEndModule‘—10—ModuleModule1SubMain()Console.WriteLine("请输入n")DimsAsString=Console.ReadLine()DimnAsInteger=Convert.ToInt32(s)DimyAsInteger=1Fori=1Ton-1y=2*(y+1)Ne*tConsole.WriteLine("桃子数是{0}",y)EndSubEndModule‘—11—ModuleModule1SubMain()For*AsInteger=0To50ForyAsInteger=0To50-*If**2+y*4=160ThenConsole.WriteLine("钥匙扣{0}个,漫画书{1}本",*,y)EndIfNe*tNe*tEndSubEndModule‘—12—ModuleModule1SubMain()For*AsInteger=100To999DimaAsInteger=*Mod10DimbAsInteger=(*\10)Mod10DimcAsInteger=*\100Ifa^3+b^3+c^3=*ThenConsole.WriteLine("{0}={1}^3+{2}^3+{3}^3",*,c,b,a)EndIfNe*tEndSubEndModule‘—13—ModuleModule1SubMain()DiminsAsString=Console.ReadLine()DimnAsInteger=Convert.ToInt32(ins)IfIsSquare(n)ThenConsole.WriteLine("{0}issqure",n)ElseConsole.WriteLine("{0}isnotsqare",n)EndIfEndSubFunctionIsSquare(ByValnAsInteger)AsBooleanDimiAsInteger=1Fori=1Ton/iIfi*i=nThenReturnTrueEndIfNe*tReturnFalseEndFunctionEndModule‘—14—ModuleModule1StructurecountDim*AsIntegerDimcAsIntegerEndStructureSubMain()DimA()AsInteger={2,3,3,3,4,5,5,5}Dimcou(20)AscountDimiAsInteger=0ForEachkAsIntegerInADimfindAsBoolean=TrueForjAsInteger=0Toi-1Ifcou(j).*=kThencou(j).c+=1find=FalseE*itForEndIfNe*tIffindThencou(i).*=kcou(i).c=1i+=1EndIfNe*tForjAsInteger=0Toi-1ForkAsInteger=i-1Toj+1Step-1Ifcou(k).c>cou(k-1).cThenDimtempAscount=cou(k)cou(k)=cou(k-1)cou(k-1)=tempEndIfNe*tNe*tDimma*cAsInteger=cou(0).cDimmAsInteger=0Whilecou(m).c=ma*cConsole.WriteLine("{0}出现的次数是{1}",cou(m).*,cou(m).c)m+=1EndWhileEndSubEndModule‘—15—ModuleModule1SubMain()ForiAsInteger=10To99DimjAsIntegerj=(iMod10)*10+i\10IfIsPrime(i)AndIsPrime(j)ThenConsole.WriteLine("{0}",i)EndIfNe*tEndSubFunctionIsPrime(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。定位:返回元素*在线性表L中的位置。假设在L中有多个*,则只返回第一个*的位置,假设在L中不存在*,则返回0。插入:在线性表L的第i个位置上插入元素*,运算结果使得线性表的长度增加1。删除:删除线性表L的第i个位置上的元素ki,此运算的前提应是Length〔L〕≠0,运算结果使得线性表的长度减1。‘—3—structurePhone DimnameAsString DimnumAsStringEndStructureStructureListTypeDimPhoneList()AsPhoneDimnAsIntegerEndStructureDimPListAsListTypeReDimPList.PhoneList(6)‘—4—AE‘—5—‘参见例6-7ModuleModule1SubMain()Dime*pressionAsStringConsole.WriteLine("请输入表达式")e*pression=Console.ReadLine()'声明一个栈DimsAsNewStack(OfChar)'初始栈,置为空栈s.Clear()DimchAsChar'循环处理表达式中的每一个字符ForiAsInteger=0Toe*pression.Length-1ch=e*pression(i)Ifch="("Thens.Push(ch)'是左括号则压栈EndIfIfch=")"ThenIfs.Count>0Thens.Pop()'是右括号则弹栈Else'是右括号,但栈是空的,说明没有与之匹配的左括号Console.WriteLine("括号不匹配")End'程序立即终止退出EndIfEndIfNe*tIfs.Count=0ThenConsole.WriteLine("括号匹配")Else'栈非空,说明有左括号没有与之匹配的右括号Console.WriteLine("括号不匹配")EndIfEndSubEndModule‘—6—ModuleModule1StructureStackDimch()AsCharDimtopAsIntegerDimbottomAsIntegerEndStructureSubMain()ConstMa*AsInteger=1000DimReverseCharAsStackClear(ReverseChar)ReDimReverseChar.ch(Ma*)Console.WriteLine("Inputastringwhichwillbereversed")DimRevStrAsString=Console.ReadLine()ForiAsInteger=0ToRevStr.Length-1Push(ReverseChar,RevStr(i))Ne*tWhileNotEmpty(ReverseChar)Console.Write(Pop(ReverseChar))EndWhileEndSubSubPush(ByRefsAsStack,ByValchAsChar)s.ch(s.top)=chs.top+=1EndSubSubClear(ByRefsAsStack)s.top=0s.bottom=0EndSubFunctionEmpty(ByValsAsStack)AsBooleanIfs.top=s.bottomThenReturnTrueElseReturnFalseEndIfEndFunctionFunctionPop(ByRefsAsStack)AsChars.top=s.top-1Returns.ch(s.top)EndFunctionEndModule‘—7—ModuleModule1StructureStackDimch()AsCharDimtopAsIntegerDimbottomAsIntegerEndStructureSubMain()ConstMa*AsInteger=1000DimHuiAsStackClear(Hui)ReDimHui.ch(Ma*)Console.WriteLine("Inputastring")'抽取字母,转化为大写,存入一个数组DimchA(Ma*)AsCharDimHuiStrAsString=Console.ReadLine()DimkAsInteger=0ForiAsInteger=0ToHuiStr.Length-1IfChar.IsLetter(HuiStr(i))ThenchA(k)=Char.ToUpper(HuiStr(i))Push(Hui,chA(k))k=k+1EndIfNe*tDimchB(Ma*)AsChark=0WhileNotEmpty(Hui)chB(k)=Pop(Hui)k=k+1EndWhileDimbHuiAsBoolean=TrueForjAsInteger=0Tok-1IfchA(j)<>chB(j)ThenbHui=FalseE*itForEndIfNe*tIfbHuiThenConsole.WriteLine("YES")ElseConsole.WriteLine("NO")EndIfEndSubSubPush(ByRefsAsStack,ByValchAsChar)s.ch(s.top)=chs.top+=1EndSubSubClear(ByRefsAsStack)s.top=0s.bottom=0EndSubFunctionEmpty(ByValsAsStack)AsBooleanIfs.top=s.bottomThenReturnTrueElseReturnFalseEndIfEndFunctionFunctionPop(ByRefsAsStack)AsChars.top=s.top-1Returns.ch(s.top)EndFunctionEndModule‘—8—ModuleModule1StructureAddressDimnameAsStringDimphoneAsStringEndStructureSubMain()DimlinkedListAAsNewLinkedList(OfAddress)DimaddrAsAddress="One"addr.phone="12345678"linkedListA.AddLast(addr)="Two"addr.phone="22345678"linkedListA.AddLast(addr)="Three"addr.phone="32345678"linkedListA.AddLast(addr)="Four"addr.phone="42345678"linkedListA.AddLast(addr)="Five"addr.phone="52345678"linkedListA.AddLast(addr)="Si*"addr.phone="62345678"linkedListA.AddLast(addr)="Seven"addr.phone="72345678"linkedListA.AddLast(addr)DisPlay(linkedListA)linkedListA.Remove(linkedListA.First.Ne*t)linkedListA.RemoveLast()DisPlay(linkedListA)EndSubSubDisPlay(ByValLLAsLinkedList(OfAddress))ForEachitemAsAddressInLLConsole.WriteLine("Name={0}AndPhone={1}",,item.phone)Ne*tConsole.WriteLine("表长为:{0}",LL.Count)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)'排序并显示排序后的结果Console.WriteLine("数组排序...")Bubble(sArray)'显示排序后的结果Show(sArray)EndSub'在屏幕上显示数组SubShow(ByValsArray()AsInteger)ForEachkAsIntegerInsArrayConsole.Write(k.ToString()+"")Ne*tConsole.WriteLine()EndSub'冒泡排序算法SubBubble(ByValsArray()AsInteger)'得到数组的大小DimlengthAsInteger=sArray.GetLength(0)ForiAsInteger=0Tolength-1Forj=length-1Toi+1Step-1IfsArray(j)<sArray(j-1)Then'交换DimtempAsInteger=sArray(j)sArray(j)=sArray(j-1)sArray(j-1)=tempEndIfNe*tNe*tEndSubEndModule‘—2—'冒泡排序算法SubBubble(ByValsArray()AsInteger)'得到数组的大小DimlengthAsInteger=sArray.GetLength(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=falseEndIfNe*t Ifchangethen E*itFor EndIfNe*tEndSub‘—3—ModuleModule1SubMain()DimA()AsInteger={50,39,64,90,72,12,29}Console.WriteLine("排序前:")'显示A数组Show(A)'排序QkSort(A,0,A.GetLength(0)-1)Console.WriteLine("排序后:")Show(A)EndSub'显示数组的A数据SubShow(ByValA()AsInteger)ForEachkAsIntegerInAConsole.Write(k.ToString()+"")Ne*tConsole.WriteLine()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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜城市2025年秋七年级生物期末学业质量测试题 (含答案)
- 中考数学一轮复习 二次根式(课件)
- 广东省大湾区2025-2026学年上学期高三 高考一模英语试卷(含答案)
- 2026届高三生物二轮复习课件:选择题强化练 6.个体稳态与调节
- 2026年上海市宝山区初三上学期一模数学试卷和参考答案
- 飞鸽运动介绍
- 飞行员离职培训课件
- 飞猪风控培训课件
- 飞机结构焊接技术
- 2026山东临沂市郯城县部分事业单位招聘综合类岗位工作人员29人笔试备考题库及答案解析
- 文化馆安全生产制度
- (2025年)保安员(初级)证考试题库及答案
- 2026年浙江省军士转业岗位履职能力考点练习题及答案
- 安全设备设施安装、使用、检验、维修、改造、验收、报废管理制度
- 2026届四川省成都市2023级高三一诊英语试题(附答案和音频)
- 《煤矿安全规程(2025)》防治水部分解读课件
- 2025至2030中国新癸酸缩水甘油酯行业项目调研及市场前景预测评估报告
- JJF 2333-2025恒温金属浴校准规范
- 员工自互检培训
- (2025年)司法考试法理学历年真题及答案
- 隧道照明工程设计方案
评论
0/150
提交评论