当前位置:首页 >> 数学 >>

教材习题及答案


第 1 章习题
一、填空题
1.计算机科学是主要研究( 计算理论、计算机,信息处理 2.在模型建立的前提下,利用计算机求解问题的核心工作就( 算法 3. 算法是一组规则, 它的主要特性是 ( ) 、 ( ) 、 ( ) 、 ( ) 和 ( ) 。 )设计。 ) 、 ( )和( )的学科。

有限性、可执行性、机械性、确定性,终止性 或:有穷性,确定性,能行性,0 个或多个输入输入,1 个或多个输出 4.要使一个问题能够用计算机解决,其必要条件是( 具有确定算法 或:可以在确定、有限步骤内被解决 5.在计算机内,一切信息都是以( 二进制 6. 如果说图灵机 A 能够完全模拟图灵机 B,则意味着( 相互模拟,则表示( ) 。 ) 。如果 A 和 B 能够 )形式表示的。 )。

在给定输入时,A 和 B 有相同的输出 // A 和 B 计算等价 7. 图灵机中的纸带可以相当于计算机中的( 存储器 8.第一代计算机的主要部件是由( 电子管,继电器 9.未来全新的计算机技术主要指( ),( )和( )。 )和( )构成的。 ) 。

光子计算机,生物计算机,量子计算机 10.未来电子计算机的发展方向是( 巨型化,微型化,网络化,智能化 11.目前国际上广泛采用的西文字符编码是标准( 制码表示一个字符。 ASCII,7 12.采用16位编码的一个汉字存储时要占用的字节数为( 2 ) 。 ) ,它是用( )位二进 )、( )、( )和( )。

13.位图文件的存储格式为( BMP,JPG

) ,用数码像机拍摄的照片的文件格式一般为(

) 。

14.若处理的信息包括文字、图片、声音和电影,则其信息量相对最小的是( 文字 15.模拟信号是指( 时间和幅值 16.计算机中对信息的组织和管理方式有两种,即( 文件,数据库 17.软件的测试方法包括( 白盒测试,黑盒测试 18.普适计算的主要特点是( 无处不在的计算模式 )。 )和( ) 。 )和( ) 。 )都连续变化的信号。

) 。

二、简答题:
1.简述计算机采用二进制的原因。 答:主要原因是: ① 二进制只有 0 和 1 两个基本符号, 任何两种对立的物理状态都可以归结为二进制表示。 ② 算术运算规则简单,且适合逻辑运算。 2. 图灵机模型主要由哪 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.图灵机模型中的四个要素是什么? 答:输入信息,输出信息、程序、内部状态 (1.1)

5.简述图灵机的工作过程。 答:请参见教材 6.简述问题求解的一般过程。 答:利用计算机进行系统性问题求解的一般过程包括:需求分析与建模、系统设计,编码与 调试、测试等。 详见教材。 7.简述基于计算机的信息处理的一般过程。 答:基于计算机的信息处理包括:信息的采集、信息的表示和压缩、信息的存储和组织,信 息的传输、信息的发布和检索。 8.简述高性能计算机涉及的主要关键技术。 答:高性能计算机研究涉及软硬件技术、通信技术、纳米技术等多个学科,近年的研究主要 集中于大规模并行处理体系结构、高性能算法、可重构计算、功耗等方面。

第 2 章习题
1.计算机系统主要由( 硬件系统 (1)CPU (2)内存条 (3)网卡 (4)键盘和鼠标 (5)显示器 (6)Windows 操作系统 ( ( ( ( ( ( )和( 软件系统 主机系统 主机系统 主机系统 外部设备 外部设备 软件系统 ) ) ) ) ) ) )组成。 2.说明以下计算机中的部件是属于主机系统、软件系统、还是属于外部设备。

3.控制芯片组是主板的核心部件,它由( 北桥芯片 )部分和( 南桥芯片 )部分组成。 4.软件系统包括( 系统 )软件和( 应用 )软件。 5.在微机中,信息的最小单位是( 位 或 bit 6.在计算机中,IB=( 8 7. 完成下列数制的转换 (1)10100110B=( 166 (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 ) ) )D=( A6 )H )bit,1KB 表示的二进制位数是( 8192 )位。 ) 。

(3)11001100×100 =( 1100110000 ) (4)11001100÷1000 =( 11001 ) 9.写出下列真值对应的原码、反码和补码: (1)X=-1110011B (2)X=-71D (3)X=+1001001B 答: (1)[X]原=11110011B,[X]反=10001100B,[X]补=10001101B (2)[X]原=11000111B,[X]反=10111000B,[X]补=10111001B (3)[X]原=01001001B,[X]反=01001001B,[X]补=01001001B 10.写出符号数 10110101B 的反码和补码。 答:[10110101]反= 11001010B [10110101]补= 11001011B 11. 已知 X 和 Y 的真值,求[X+Y]补=? X+Y=? (1)X=-1110111B (2)X=56 答: (1)[X+Y]补=11100011B , X+Y=-0011101B (2)[X+Y]补=00100011B , X+Y=+0100011B 12.已知X=-1101001B,Y=-1010110B,求[X-Y]补=? X-Y=? 答:[X-Y]补=11100011B , X+Y=-0011101B 13.完成下列二进制数的逻辑运算: (1)10110110∧11010110 = ( 10010110 (3) 11010101 = ( 00101010 ) (4)11110111B ? 10001000 =( 011111111 ) ) 。 ) (2)01011001B∨10010110 = ( 11011111 ) Y=+1011010B Y=-21

14.若“与门”的3位输入信号分别为1、0、1,则该“与门”的输出信号状态为( 0 若将这3位信号连接到或门,那么或门的输出又是什么状态?( 1 ) 15.在图2-10中,要使Y=0,A1~A4的状态必须为: (a): ( 任意一位为0 (c): (
A1 A2 A3 A4

); );
Y

(b): ( (d): (
A1 A2 A3 A4

0000 任意一位为1
≥1
(b) Y

); )。

1111
&
(a)

A1 A2 A3 A4

&
(c)

Y

A1 A2 A3 A4

≥1
(d)

Y

图 2-10 题 11 图

第 3 章习题:
一、填空题
1.微型计算机主机系统主要包括( CPU )、( 内存储器 )、( 总线 )和( I/O 接 口 )等四个部分。 2.内存储器可分为( RAM )和( ROM ( RAM )。 3.假设某内存储器有1K个单元,则至少需要( 的地址。 4.每个内存单元中能存放( 8 )bit 二进制数。 5.若已知磁头数为 10,柱面数为 4096,扇区数为 63 的硬盘容量为( 1260 MB ) 6.在计算机系统中设计 Cache 的主要目的是( 提高存取速度 )。 7.微型机中的存储器系统包括( 中,( Cache 存储系统 Cache 存储系统 )和( 虚拟存储系统 )两类。其 )的设计目标是提高存储器系统的存取速度。 硬盘接口 )标准。 10 )bit 二进制码来表示该内存单元 )两类,其中,断电后所存信息就丢失的内存属于

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.2.2 节

3.简述进程和程序的区别。 答:进程就是执行起来的程序。程序是静态的,进程是动态的,是“活”着的程序。 4.说明为什么要引入进程。 答:为解决现代计算机中多道程序共享系统资源的问题。 5.将程序装入内存必须经过哪些步骤? 答:编译,链接,装入。

第4章
1.以下所列出的,哪些是计算机网络的功能设备? A.主机 E.双绞线 I.网络交换机 M.网络接口卡 Q.多媒体音箱 B.鼠标 F.USB 线 J.路由器 N.光纤 R.调制解调器 C.电话机 G.通信卫星 K.键盘 O.显示器 S.智能手机 D.FTP 服务器 H.电话线 L.U 盘 P.打印机 T.平板电脑

参考答案:A,D,E,F,G,H,I,J,M,N,R,S,T 2.现代计算机网络为什么要将报文分割成一个个分组来进行传输?说出你认为最重要的一 个理由。 参考答案:在出错时只重传出错的分组,提高了传输效率 3.如果广域网采用总线结构,你认为是否可行?说出你的理由。 (提示:考虑广域网的传播 延迟和介质争用) 参考答案:不行。原因如下: (1)广域网的环境复杂、覆盖范围广,采用总线结构时,一旦总线出现故障则整个网络都 无法通信,而且故障诊断和故障隔离极为困难; (2)总线结构的网络传输效率和传输性能不高,无法满足广域网的要求; (3)信号在总线上的长距离传输衰减太大,难以实现广域网所需的大范围地域覆盖; (4)总线结构需要采用某种介质争用协议,而用于长距离总线的介质争用协议在原理上无 法实现。 4. 计算机网络按照其规模大小和延伸距离远近划分为 ( 参考答案:局域网,城域网,广域网 5.网上的站点通过点到点的链路与中心站点相连,具有这种拓扑结构的网络称为( A.因特网 参考答案:B B.星形网 C.环形网 D.总线形网 )。 ) 、 ( ) 和 ( ) 。

E.广域网

6.计算机网络中常用的有线传输介质有( A.双绞线、红外线、同轴电缆 C.双绞线、同轴电缆、光纤 参考答案:C

)。 B.同轴电缆、激光、光纤 D.微波、双绞线、同轴电缆

7.采用全互连拓扑结构建设一个具有 500 个结点的广域网。假定网络中节点之间的平均距 离为 50 公里, 每公里的线路成本是 1 万元。 建设此广域网的线路总成本是多少?通过这 个结果你能得到什么结论? 参考答案:总成本={(500*499)/2}*50*10^4=62375000000 元(623.75 亿元) ,由此可见,全 互连结构的广域网建设成本极高,所以广域网只能采用部分连接的网状拓扑结构。 8.如果你的家里构建了一个能够连接因特网的家庭局域网。请构思一个能够利用家庭局域 网为你的家居生活带来方便的应用。简要说明你的构思大致的实现方法。 参考答案:这样的例子很多,下面给出一个网络婴儿监视系统的应用案例。 需求:为保证婴儿的安全,父母要始终保证婴儿在自己的视线内。在不得不离开时,父 母希望能通过手机或电脑也能观察到婴儿的活动。 解决方案:为了能保证父母或监护人能始终看到婴儿的活动,可在婴儿房间或活动地点 安装 WiFi 网络摄像头,然后就可以通过手机或者电脑上网在世界任何具有互联网的地 方查看到家里婴儿的一举一动。系统包括监视端和用户终端两部分。其中,监视端采用 WiFi 网络摄像头,通过家庭局域网连接因特网。用户终端可以是智能手机、平板电脑、 上网本、PC 和笔记本等。 9.哪一种网络应用模式对客户端的要求最低?哪一种网络应用模式对所有主机的要求是等 同的? 参考答案:B/S 模式对客户端的要求最低。P2P 模式对所有主机的要求是等同的。 10. 因特网的体系结构是怎样的?画出因特网体系结构的层次图, 并在图上标注每层的名字。 参考答案:因特网采用了 TCP/IP 协议,因此其体系结构与 TCP/IP 体系结构是相同的。因 特网体系结构的层次及每层的名字请参考 4.1.3 节中“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.端口号 参考答案:C 17.IP 地址是一个( )位的二进制数。 B.物理地址 C.IP 地址 D.域名 ) 。

E.MAC 地址

参考答案:32(IPv4) 、128(IPv6) 18.以下哪两个 IP 地址属于同一子网(子网掩码为 255.255.192.0)? A.150.20.115.133 C.150.20.192.59 参考答案:C 和 D 19.一台主机要向 B 类网络(网络地址为 130.1.0.0)中发送广播报文,该报文的目的地址应 该是什么? 参考答案:130.1.255.255 20.用户主机上打开了两个 IE 浏览器窗口, 浏览同一个网站的不同网页。 该网站的 Web 服务 器如何知道将网页发送到哪个 IE 浏览器窗口? 参考答案:一台主机打开两个 IE 浏览器窗口时,该主机使用的端口号是不一样的。Web 服 B.150.20.190.2 D.150.20.215.133

务器根据主机的 IP 地址和端口号就可以知道将网页发送到哪个 IE 浏览器窗口。 21.DNS 系统用于以下哪项任务?( A.将 IP 地址转换为 MAC 地址 B.将域名转换为 MAC 地址 C.将域名转换为 IP 地址 D.将 IP 地址转换为 MAC 地址 参考答案:C 22.一般情况下,通过域名访问一个网站需要访问几次根域名服务器就能查找到该域名服务 器的 IP 地址? 参考答案:一次 23.因特网中的地址有域名、IP 地址和 MAC 地址之分,为什么需要这么多地址?只要其中 一种地址行不行?试说明理由。 参考答案:需要各种地址的原因请参考教材 4.2.1 的相关内容。 (1)域名地址是为了避免记忆非常难记的 IP 地址,所以域名地址不是必需的,但只使 用域名地址是不行的。 (2)只使用 MAC 地址也是不行的,原因是: ? MAC 地址是一个平坦地址,不可路由。在路由操作中必须使用具有层次结构的可路由 的 IP 地址; ? 网卡绑定到不同的宿主机时,网络必须重新配置。所以必须要有一个不随安装位置的 改变而改变的 MAC 地址来标识网络接口; (3)只使用 IP 地址也是不行的,原因是: ? IP 地址只适用于 TCP/IP 网络,事实上,世界上还有很多采用不同协议的网络,如 IPX/SPX、AppleTalk 等,这些网络并不使用 IP 地址; ? 主机改变地点后,网络必须重新配置。所以必须要有 IP 地址来标识这台主机在哪个网 络中。 24.以太网是如何处理介质访问冲突的? 参考答案:请参考教材 4.2.1 节。 25.以太网中的主机在发送时为什么还要监听介质? 参考答案:因为多台主机同时监听到介质空闲而同时开始发送数据仍会产生冲突。 26.以太网中,主机知道介质空闲才会发送数据,为什么发送时还会发生冲突? 参考答案:同 25 题。 27.局域网设置网关的作用是什么? 参考答案:用来在局域网和因特网之间传输数据。 )

28.什么情况下,网关才会将收到的 IP 分组发送到因特网上? 参考答案:当 IP 分组中的目的地址为外网的 IP 地址时。 29.万维网 WWW 的三个组成部分是( 参考答案:浏览器,Web 服务器,HTTP 协议 30. “统一资源定位器”的英文缩写是( 参考答案:URL 31.试说明电子邮件系统主要的组成部分及每一部分的作用。 参考答案:请参考教材 4.2.2 节 32.在发送邮件过程中要建立几个 TCP 连接? 参考答案:2 个。一个用于传送邮件到发信人的邮件服务器,另一个用于将发信人的邮件服 务器中的邮件传送给收信人的邮件服务器。 33.以下说法哪个是正确的? A.万维网是一种广域网 B.万维网就是因特网 C.因特网是一种基于报文交换的网络 D.因特网是一种路由器网络 参考答案:A、D 34.在一次 FTP 传输中要建立几个 TCP 连接,每个 TCP 连接的作用分别是什么? 参考答案:2 个。一个用于传输控制信息,另一个用于传输数据。 35. 只要舍得投资安装网络安全设备, 网络安全就能得到保证。 这种说法对吗?请说明原因。 参考答案:不正确。制定网络安全制度、网络安全培训和网络安全监督审计也是必须的。 36.下列攻击中, ( A. 无线截获 参考答案:C 37.数据加密技术一般有两种类型,分别是( 参考答案:对称式,非对称式 38.假设密钥 k=8,用替代密码将明文“XIANJIAOTONGUNIVERSITY”加密。 参考答案: K=8 时,替代密码的加密规则为: 明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文:STUVWXYZABCDEFGHIJKLMNOPQR )加密和( )加密。 )属于主动攻击。 C. 拒绝服务 D. 流量分析 ) 。 ) 、 ( )和( ) 。

B. 搭线监听

根据以上规则,可得 明文:XIANJIAOTONGUNIVERSITY 密文:QASFBASGLGFYMFANWJKALQ 39.在网络购物过程中,用到了哪些安全技术?它们分别用于网络购物的哪个步骤? 参考答案: (1)访问控制:用户账户名和口令 (2)数据加密:对账户名、口令和关键信息加密 (3)数字签名:保证信息的完整性和真实性 (4)数字摘要:提高加密的效率和实时性 (5)数字证书:防止信息被第三方窃取,在交易出现争执时防止抵赖 40.在网上传输的数字证书中包括了报文明文、证书公钥和数字签名。但证书公钥并没有被 加密,而是直接封装在证书中。不加密的原因是什么?如果对公钥加密再封装到证书中 会出现什么问题? 参考答案:数字证书使用了公钥密码加密法,其中公钥是公开的,私钥是秘密的。所以证 书公钥不需要加密。如果将公钥加密,接收者将无法得知公钥,也就无法对信息解密。 41.防火墙有哪些种类?哪一种防火墙的安全性更好一些?为什么? 参考答案:请参考教材 4.3.3 节。一般来说,基于网络体系结构的层次越高的防火墙安全性 就越好,因为它能够更深入、更详细地分析报文流的内容。 附加题: IP 地址 170.210.28.100 的默认子网掩码是( A.255.255.255.255 B.255.0.0.0 C.255.255.0.0 D.255.255.255.0 参考答案:C

) 。

第 5 章习题
1. 给出 3 个整数,求它们的和与均值。 2. 自来水公司采取按用水量阶梯式计价的办法, 居民应交水费 y(元)与月用水量 x(吨)相关, 函数关系式如下。编写程序计算当 x1=12 时,x2=30 时 y 的值。

0 y = f(x) = 4x/3 2.5x-10.5

(x<=0) (0<x<=15) (x>15)

3. 设 x1=0133 表示火车 1 点 33 分开出,x2=2209 表示火车 22 点 09 分到站。x1 和 x2 都是 整数, 计算火车运行的时间 y (运行时间假设小于 24 小时) , 同样用一个 4 位整数表示, 前 2 位为小时数,后两位是分钟数。 4. 计算序列 2/1+3/2+5/3+8/5+...的前 n 项之和。 5. 给定一个含有 10 个整数的数组,判断 x 是否在数组中。如是,将 x 在数组中的位置(下 标)存于变量 y 中。否则 y 的值为-1。 6. 将第 2 题以过程调用的方式实现。过程如 Function WaterFee (ByVal x As Deciaml) As Decimal 7. 将第 5 题以过程的方式实现,如: Function IsHere (ByVal A() As Integer, ByVal x As Integer) As Integer 8. 某公司员工的工资计算方法如下,一周内工作时间 40 小时之内(含 40 小时) ,按正常 工作时间计酬,超出 40 小时的工作时间部分,按正常工作时间报酬的 1.5 倍计酬。员工 按进公司时间分为新职工和老职工,新职工的正常工资为 30/小时,老职工的正常工资 为 50/小时。 (进公司 5 年以上(含 5 年)的员工为老职工,5 年以下的为新职工) , 请 按该计酬方式计算员工的工资。要求输入员工进公司的一周工作时间、工作年数,输出 其一周的工资,保留 2 位小数。 9. 输入年份、月份、日子,输出这一天是该年中的第几天。如输入 3 个整数,2009 3 2, 则输出 This is the 61th of 2009。 10.一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早 上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一天剩下的一半零 一个。到第 n 天(1<n<=10,从键盘输入)早上想再吃时,见只剩下一个桃子了。问第 一天共摘了多少个桃子? 11.总共 50 件商品,有两种构成,钥匙扣 2 元一个,漫画书 4 元一本,要卖出 160 元,应 如何搭配(输出所有可能的配对情况)? 12.打印输出所有“水仙花数” 。所谓“水仙花数”是指一个三位的正整数,其各位数字立 方和等于该数本身。例如:153 是一个“水仙花数” ,因为 153=13+53+33。 13.编写过程 IsSquare, 判断某个自然数是否为平方数。 是返回 True, 不是则返回 False。 14.求数组中出现次数最多的数及出现次数。数组为整数,8 个数。输出出现最多的数以及 次数。 15.一个自然数是素数,且它的各位数字位置经过任意对换后仍为素数,则称是绝对素数。 例如 13 是绝对素数。输出所有 2 位数的绝对素数。

第 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) Else 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 i += 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. 什么是数据的线性存储结构,什么是数据的非线性存储结构? 2. 简述线性表的操作。 3. 假设电话号码本由人名和一个电话号码组成,设计一个线性表,存储 7 个人的电话 号码簿。 4. 设栈 S 中存储的是字符数据,自栈底到栈顶依次为 A,C,D。经过 2 次出栈操作 并将 E 压入栈,此时栈中的数据是什么? 5. 使用栈,检查表达式(2+3)*a*(3+b)/(2*(12+8)的括号是否匹配。 6. 编写程序,输入一行文本,然后使用栈逆序显示该行文本。 7. 编写程序,用栈来判断一个字符串是否为回文(即顺读和倒读都相同的字符串) 。 程序忽略字符串中的大小写,空格和标点符号。 8. 使用 LinkedList 类实现第 3 题的电话簿,打印该号码簿。然后删去第 2 个和最后一 个节点的数据再次打印号码簿。 9. 设计一个队列, 将整数 3, 4, 5 进入队列, 打印该队列, 将队列的前 2 个元素出队, 随后将 11 和 12 入队,再次打印队列。 10. 对于图 6-15 的循环队列,在该图的基础上,将 1,2,3,4,5 入队,并将 2 个元素 出队后,画出队列目前的状态。

第 6 章答案
‘---1--数据的逻辑结构就是数据元素之间的逻辑关系。 线性结构指数据元素之间存在线性关系, 即 最多只有一个前导和后继元素; 非线性结构数据元素之间的关系为一对多或者多对多的关系。 ‘—2— 线性表可以进行的常用基本操作有以下几种: (1) 置空表:将线性表 L 的表长置为 0。 (2) return:求出线性表 L 中数据元素的个数。 (3) 取表中元素:仅当 1≤i≤Length(L)时,取得线性表 L 中的第 i 个元素 ki(或 ki 的存储位置) ,否则无意义。 (4) 取元素 ki 的直接前趋:当 2≤i≤Length(L)时,返回 ki 的直接前趋 ki-1。 (5) 取元素 ki 的直接后继:当 1≤i≤Length(L)-1 时,返回 ki 的直接后继 ki+1。 (6) 定位:返回元素 x 在线性表 L 中的位置。若在 L 中有多个 x,则只返回第一个 x 的位置,若在 L 中不存在 x,则返回 0。 (7) 插入: 在线性表 L 的第 i 个位置上插入元素 x, 运算结果使得线性表的长度增加 1。 (8) 删除:删除线性表 L 的第 i 个位置上的元素 ki,此运算的前提应是 Length(L) ≠0,运算结果使得线性表的长度减 1。 ‘—3— structure Phone Dim name As String Dim num As String End Structure Structure ListType Dim PhoneList() As Phone Dim n As Integer End Structure Dim PList As ListType ReDim PList.PhoneList(6) ‘—4— AE ‘—5— ‘参见例 6-7 Module Module1 Sub Main() Dim expression As String Console.WriteLine("请输入表达式") expression = Console.ReadLine() '声明一个栈 Dim s As New Stack(Of Char)

'初始栈,置为空栈 s.Clear() Dim ch As Char '循环处理表达式中的每一个字符 For i As Integer = 0 To expression.Length - 1 ch = expression(i) If ch = "(" Then s.Push(ch) '是左括号则压栈 End If If ch = ")" Then If s.Count > 0 Then s.Pop() '是右括号则弹栈 Else '是右括号,但栈是空的,说明没有与之匹配的左括号 Console.WriteLine("括号不匹配") End '程序立即终止退出 End If End If Next If s.Count = 0 Then Console.WriteLine("括号匹配") Else '栈非空,说明有左括号没有与之匹配的右括号 Console.WriteLine("括号不匹配") End If End Sub End Module ‘—6— Module Module1 Structure Stack Dim ch() As Char Dim top As Integer Dim bottom As Integer End Structure Sub Main() Const Max As Integer = 1000 Dim ReverseChar As Stack

Clear(ReverseChar) ReDim ReverseChar.ch(Max) Console.WriteLine("Input a string which will be reversed") Dim RevStr As String = Console.ReadLine() For i As Integer = 0 To RevStr.Length - 1 Push(ReverseChar, RevStr(i)) Next While Not Empty(ReverseChar) Console.Write(Pop(ReverseChar)) End While End Sub Sub Push(ByRef s As Stack, ByVal ch As Char) s.ch(s.top) = ch s.top += 1 End Sub Sub Clear(ByRef s As Stack) s.top = 0 s.bottom = 0 End Sub Function Empty(ByVal s As Stack) As Boolean If s.top = s.bottom Then Return True Else Return False End If End Function Function Pop(ByRef s As Stack) As Char s.top = s.top - 1 Return s.ch(s.top) End Function End Module ‘—7— Module Module1 Structure Stack Dim ch() As Char Dim top As Integer Dim bottom As Integer End Structure

Sub Main() Const Max As Integer = 1000 Dim Hui As Stack Clear(Hui) ReDim Hui.ch(Max) Console.WriteLine("Input a string ") '抽取字母,转化为大写,存入一个数组 Dim chA(Max) As Char Dim HuiStr As String = Console.ReadLine() Dim k As Integer = 0 For i As Integer = 0 To HuiStr.Length - 1 If Char.IsLetter(HuiStr(i)) Then chA(k) = Char.ToUpper(HuiStr(i)) Push(Hui, chA(k)) k=k+1 End If Next Dim chB(Max) As Char k=0 While Not Empty(Hui) chB(k) = Pop(Hui) k=k+1 End While Dim bHui As Boolean = True For j As Integer = 0 To k - 1 If chA(j) <> chB(j) Then bHui = False Exit For End If Next If bHui Then Console.WriteLine("YES") Else Console.WriteLine("NO") End If End Sub Sub Push(ByRef s As Stack, ByVal ch As Char) s.ch(s.top) = ch s.top += 1 End Sub Sub Clear(ByRef s As Stack)

s.top = 0 s.bottom = 0 End Sub Function Empty(ByVal s As Stack) As Boolean If s.top = s.bottom Then Return True Else Return False End If End Function Function Pop(ByRef s As Stack) As Char s.top = s.top - 1 Return s.ch(s.top) End Function End Module ‘—8— Module Module1 Structure Address Dim name As String Dim phone As String End Structure Sub Main() Dim linkedListA As New LinkedList(Of Address) Dim addr As Address addr.name = "One" addr.phone = "12345678" linkedListA.AddLast(addr) addr.name = "Two" addr.phone = "22345678" linkedListA.AddLast(addr) addr.name = "Three" addr.phone = "32345678" linkedListA.AddLast(addr) addr.name = "Four" addr.phone = "42345678" linkedListA.AddLast(addr) addr.name = "Five" addr.phone = "52345678" linkedListA.AddLast(addr)

addr.name = "Six" addr.phone = "62345678" linkedListA.AddLast(addr) addr.name = "Seven" addr.phone = "72345678" linkedListA.AddLast(addr) DisPlay(linkedListA) linkedListA.Remove(linkedListA.First.Next) linkedListA.RemoveLast() DisPlay(linkedListA) End Sub Sub DisPlay(ByVal LL As LinkedList(Of Address)) For Each item As Address In LL Console.WriteLine("Name={0} And Phone={1}", item.name, item.phone) Next Console.WriteLine("表长为:{0}", LL.Count) End Sub End Module ‘—9— 参见例 6-8 ‘—10— 参见例 6-9

第 7 章习题
1. 编写程序,使用冒泡排序对 10 个整数排序。 2. 改进冒泡排序程序,使其当数据已经有序时,直接结束排序的过程。 3. 编写程序,使用快速排序对 10 个整数排序。 4. 改进书中的快速排序程序,随机选取关键数据。 5. 编写程序,使用冒泡排序对电话号码簿按人名的字典顺序排序。 6. 使用顺序查找,对第 5 题的数据查找一个人名是否在电话簿中。 7. 使用折半查找,对排序后的电话簿(第 5 题)进行查找。 8. 给定 K 个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。求:最大连续子序列,即所有连续子序列中元素和最 大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 }, 其最大连续子序列为{ 11, -4, 13 },

最大和为 20。 9. 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,这个问题是 这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一;如果是偶 数,则除以二;得出的结果继续按照前面的规则进行运算,最后必定得到一。现在 请你编写一个程序验证。 10. 某部队进行新兵队列训练,将新兵从 1 开始按顺序依次编号,并排成一行横队,训 练的规则如下: 从头开始 1 至 2 报数, 凡报到 2 的出列, 剩下的向小序号方向靠拢, 再从头开始进行 1 至 3 报数,凡报到 3 的出列,剩下的向小序号方向靠拢,继续从 头开始进行 1 至 2 报数,以后从头开始轮流进行 1 至 2 报数、1 至 3 报数直到剩下 的人数不超过三人为止。 编写程序, 输入数 N 为最开始的新兵人数 (20<N<6000) , 输出剩下的新兵最初的编号。 11. 在医院打点滴(吊针)的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴 二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有 v 毫升, 每一滴是 d 毫升,每一滴的速度是一秒(假设最后一滴不到 D 毫升,则花费的时间 也算一秒) ,停一下的时间也是一秒,这瓶水什么时候能滴完呢?(0<d<v<1000) 。

第 7 章习题答案
‘—1— Module Module1 Sub Main() Dim sArray() As Integer = {12, -78, 67, 23, 2, 99, 234, -23, 45, 56, 12, 78} '在屏幕上显示数组 Show(sArray) '排序并显示排序后的结果 Console.WriteLine("数组排序...") Bubble(sArray) '显示排序后的结果 Show(sArray) End Sub '在屏幕上显示数组 Sub Show(ByVal sArray() As Integer) For Each k As Integer In sArray Console.Write(k.ToString() + " ") Next Console.WriteLine()

End Sub '冒泡排序算法 Sub Bubble(ByVal sArray() As Integer) '得到数组的大小 Dim length As Integer = sArray.GetLength(0) For i As Integer = 0 To length - 1 For j = length - 1 To i + 1 Step -1 If sArray(j) < sArray(j - 1) Then '交换 Dim temp As Integer = sArray(j) sArray(j) = sArray(j - 1) sArray(j - 1) = temp End If Next Next End Sub End Module ‘—2— '冒泡排序算法 Sub Bubble(ByVal sArray() As Integer) '得到数组的大小 Dim length As Integer = sArray.GetLength(0) For i As Integer = 0 To length – 1 Dim change As Boolean=true For j = length - 1 To i + 1 Step -1 If sArray(j) < sArray(j - 1) Then '交换 Dim temp As Integer = sArray(j) sArray(j) = sArray(j - 1) sArray(j - 1) = temp change=false End If Next If change then Exit For EndIf Next End Sub ‘—3— Module Module1

Sub Main() Dim A() As Integer = {50, 39, 64, 90, 72, 12, 29} Console.WriteLine("排序前:") '显示 A 数组 Show(A) '排序 QkSort(A, 0, A.GetLength(0) - 1) Console.WriteLine("排序后:") Show(A) End Sub '显示数组的 A 数据 Sub Show(ByVal A() As Integer) For Each k As Integer In A Console.Write(k.ToString() + " ") Next Console.WriteLine() End Sub ' 快速排序 'A 是待排序的数组 'i 和 j 指示了对数组从 i 到 j 处的数据进行排序,i<j Sub QkSort(ByVal A() As Integer, ByVal i As Integer, ByVal j As Integer) If i < j Then '对数组 A 调用 QkPass 函数进行一趟快速排序。 'i 和 j 指示了排序的起始和终了位置(下标) '返回值指示了一趟排序后的分割点 Dim k = QkPass(A, i, j) '对前一部分继续快速排序,递归调用 QkSort(A, i, k - 1) '对后一部分快速排序 QkSort(A, k + 1, j) End If End Sub '一趟快速排序的函数,对数组 A 从 i 到 j 快速排序,并返回分割点 Function QkPass(ByVal A() As Integer, ByVal i As Integer, ByVal j As Integer) As Integer '存储关键字 Dim key As Integer = A(i) While i < j While i < j And A(j) >= key j=j-1 '从后向前搜寻比 key 小的值

End While A(i) = A(j) '找到后放入 A(i) While i < j And A(i) <= key i=i+1 '从前向后搜寻比 key 大的值 End While A(j) = A(i) '找到后放入 A(j) End While '循环结束时,i=j,放入 key 值,并返回 i A(i) = key Return i End Function End Module

‘—4— Function QkPass(ByVal A() As Integer, ByVal i As Integer, ByVal j As Integer) As Integer Dim ro As Random=new Random() Dim r As Integer=ro.Next(i,j+1) '存储关键字 Dim key As Integer = A(i) A(i)=A(r) A(r)=key key=A(i) While i < j While i < j And A(j) >= key j=j-1 '从后向前搜寻比 key 小的值 End While A(i) = A(j) '找到后放入 A(i) While i < j And A(i) <= key i=i+1 '从前向后搜寻比 key 大的值 End While A(j) = A(i) '找到后放入 A(j) End While '循环结束时,i=j,放入 key 值,并返回 i A(i) = key Return i End Function End Module ‘—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—

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— 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 End If End While Return -1 End Function ‘—8— Module Module1 Sub Main() Dim a() As Integer = {-2, 11, -4, 13, -5, -2} Dim x As Integer Dim y As Integer Dim max As Integer = a(1) For i As Integer = 0 To a.Length - 1 For j As Integer = i To a.Length - 1 Dim sum As Integer = 0 For k As Integer = i To j sum += a(k)

If sum > max Then max = sum x=i y=j End If Next Next Next Console.WriteLine("最大和为{0}", max) Console.Write("{") For k As Integer = x To y Console.Write(a(k)) Console.Write(" ") Next Console.WriteLine("}") End Sub End Module ‘—9— Module Module1 Sub Main() Dim n As Integer = Console.ReadLine() Console.Write(n) While (n > 1) If n Mod 2 = 0 Then n=n\2 Else n=n*3+1 End If Console.Write("->{0}", n) End While Console.WriteLine() End Sub End Module ‘—10— Module Module1 Sub Main() Dim a(6000) As Integer Dim n As Integer = Console.ReadLine() For i As Integer = 0 To n - 1 a(i) = i + 1

Next Dim twoOrThree As Boolean = False For i As Integer = 0 To n - 1 If (i + 1) Mod 2 = 0 Then a(i) = 0 End If Next twoOrThree = True n = Compress(a, n) While (n > 3) If twoOrThree Then For i As Integer = 0 To n - 1 If (i + 1) Mod 3 = 0 Then a(i) = 0 End If Next twoOrThree = False Else For i As Integer = 0 To n - 1 If (i + 1) Mod 2 = 0 Then a(i) = 0 End If Next twoOrThree = True End If n = Compress(a, n) End While For i As Integer = 0 To n - 1 Console.Write("{0} ", a(i)) Next Console.WriteLine() End Sub Function Compress(ByVal a() As Integer, ByVal n As Integer) As Integer Dim i As Integer = 0 While (i < n) If a(i) = 0 Then For k As Integer = i To n - 1 a(k) = a(k + 1) Next n=n-1 End If i=i+1 End While

Return n End Function End Module ‘—11— Module Module1 Sub Main() Dim v As Integer = Console.ReadLine() Dim d As Integer = Console.ReadLine() Dim i As Integer = 1 Dim t As Integer = 0 While (v > 0) v=v-i*d t=t+i If v > 0 Then t=t+1 End If i=i+1 End While Console.WriteLine(t) End Sub End Module


相关文章:
英美文化课本习题答案
英美文化课本习题答案_文学_高等教育_教育专区。英美文化教材习题答案 Britain 1. Who are the British ? Ⅰ 1.the Scottish Highlanders: They are the Scots ...
高中数学必修1课后习题答案_图文
高中数学必修 1 课后习题答案 第一章 集合与函数概念 1.1 集合 1.1.1 集合的含义与表示练习(第 5 页) 1.用符号“ ? ”或“ ? ”填空: (1)设 A ...
《材料力学》课后习题答案_图文
《材料力学》课后习题答案_工学_高等教育_教育专区。高等教育出版社 第二章 轴向拉(压)变形 [习题 2-1] 试求图示各杆 1-1 和 2-2 横截面上的轴力,并...
大学教材课后习题答案免费下载链接下部
大学教材课后习题答案免费下载链接下部_工学_高等教育_教育专区。大学教材,高等教育教材课后习题解答及答案,包含高等数学,线性代数,物理,化学,生物,语文,金融,机械,...
教材习题答案-
教材习题答案(第2章) 5页 免费喜欢此文档的还喜欢 教材习题解答 30页 2财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行...
教材习题答案
教材习题答案_经济学_高等教育_教育专区。第一章 1、 证券市场概述 什么是投资?实体投资与金融投资、直接金融与间接金融、直接金融投资与间 接金融投资的区别在...
教材习题答案
教材习题答案_理学_高等教育_教育专区。习题五 一、1. BAACA 6.CCDAD 二、程序练习题 1.根据题目,写出相关伪指令: (1) 定义数据段 DATA,并在数据段中定义...
C教材习题答案
C 教材习题答案 教材习题 习题答案习题 1 一.填空题 1.C 程序是由(函数 )构成的,一个 C 程序中至少包含(main 函数 ( 函数 ) 是 C 程序的基本单位。 2...
第三章 教材练习题答案
第三章 教材练习题答案 一、单项选择题 1.下列不属于税收基本特征的是( )。 A.税收的无偿性 B.税收的固定性 C.税收的独立性 D.税收的强制性 [答疑编号 ...
高二化学选修5课后习题 参考答案(全)
高二化学选修5课后习题 参考答案(全)_高二理化生_理化生_高中教育_教育专区。人教化学选修 5 课后习题部分答案习题参考答案第一单元、习题参考答案 一 1 A、D2 ...
更多相关标签: