计算机算法课后题答案

计算机算法课后题答案
计算机算法课后题答案

2-1 解不等式

设n 为正整数,解不等式

2011/12/1113/12/1112/11112010<++++++++++

解:上下限一般为键盘输入的a,b 。

// 解不等式: a<1+1/(1+1/2)+...+1/(1+1/2+...+1/n)

#include

#include

void main()

{ long a,b,c,d,i;

double ts,s;

printf(" 请输入a,b: ");

scanf("%d,%d",&a,&b);

i=0;ts=0;s=0;

while(s

{ i=i+1;

ts=ts+(double)1/i;

s=s+1/ts;

}

c=i;

while(s

{i=i+1;

ts=ts+(double)1/i;

s=s+1/ts;

}

d=i-1;

printf("\n 满足不等式的正整数n 为: %ld ≤n ≤%ld \n",c,d);

}

3-1 递推求解b 数列

已知b 数列定义:

)2(3,2,12121>-===--n b b b b b n n n

递推求b 数列的第20项与前20项之和。

解:

#include

void main()

{ int k,n; long b[3000],s;

printf(" 请输入n: ");

scanf("%d",&n);

b[1]=1;b[2]=2;s=3;

for(k=3;k<=n;k++)

{ b[k]=3*b[k-1]-b[k-2];

s+=b[k];

}

printf(" b(%d)=%ld \n",n,b[n]);

printf(" s=%ld \n",s);

}

4-1 阶乘的递归求解

阶乘n!定义: n!=1(n=1);n!=n*(n-1)! (n>1)

设计求n!的递归函数,调用该函数求

!

1!21!111n s ++++= 解: 定义n!的递归函数f(n),在求和的k(1——n)循环中实施求和

s+=(double)1/f(k);

程序设计:

#include

long f(int n)

{ long g;

if(n==1) g=1;

else g=n*f(n-1);

return(g);

}

void main()

{ int k,n;

double s=1;

printf(" 请输入n: ");scanf("%d",&n);

for(k=1;k<=n;k++)

s+=(double)1/f(k);

printf(" s=%f \n",s);

}

5-1 倒桥本分数式

把1,2,...,9?这9个数字填入下式的9个方格中,数字不得重复,且要求1不得填在各分数的分母,且式中各分数的分子分母没有大于1的公因数,使下面的分数等式成立

这一填数分数等式共有多少个解??

解: 在桥本分数式回溯程序中修改

// 倒桥本分数式回溯实现

// 把1,2,...,9填入□□/□+□□/□=□□/□

#include

void main()

{int g,i,k,u,t,a[10];

long m1,m2,m3;

i=1;a[1]=1; while (1)

□□ □□ □□ ── + ─── = ──

{g=1;

for(k=i-1;k>=1;k--)

if(a[i]==a[k]) {g=0;break;} // 两数相同,标记g=0

if(i==9 && g==1 && a[1]1 && a[7]>1)

{m1=a[2]*10+a[3];

m2=a[5]*10+a[6];

m3=a[8]*10+a[9];

for(t=0,u=2;u<=9;u++)

{if(a[1]%u==0 && m1%u==0) t=1;

if(a[4]%u==0 && m2%u==0) t=1;

if(a[7]%u==0 && m3%u==0) t=1;

}

if(t==0 && m1*a[4]*a[7]+m2*a[1]*a[7]==m3*a[1]*a[4]) // 判断等式

{printf(" %d/%ld+%d/%ld",m1,a[1],m2,a[4]);

printf("=%d/%ld \n",m3,a[7]);

}

}

if(i<9 && g==1)

{i++;a[i]=1;continue;} // 不到9个数,往后继续

while(a[i]==9 && i>1) i--; // 往前回溯

if(a[i]==9 && i==1) break;

else a[i]++; // 至第1个数为9结束

}

}

7-3 币种统计

单位给每个职工发工资(约定精确到元),为了保证不至临时兑换零钱,且使每个职工取款的张数最少,请在取工资前统计所有职工所需的各种票面(约定为100,50,20,10,5,2,1元共7种)的张数,并验证币种统计是否正确。

(1) 算法设计

各职工的工资额依次从键盘输入,同时用su统计工资总额。

为了确保各职工所得款的张数最少,应用“贪心”策略,优先取大面值币种,即首先付100元币;小于100元时,优先付50元币;依此类推。

设置b数组,存储7种票面的值,即b[1]=100,b[2]=50,…,b[7]=1。

设置s数组,存储对应票面的张数,即s[1]为100元的张数,…,s[7]为1元的张数。

最后验证:各种票面的总额su1是否等于su?若相等,验证正确。

(2)程序实现

// 币种统计

#include

void main()

{ int i,j,m,n,gz; long su1,su=0;

int s[8]={0,0,0,0,0,0,0,0};

int b[8]={0,100,50,20,10,5,2,1};

printf(" 请输入人数:");

scanf("%d",&n);

printf(" 请依次输入各职工的工资:\n");

for(i=1;i<=n;i++)

{ printf(" 输入第%d个职工工资:",i);

scanf("%d",&gz);

su=su+gz;

for(j=1;j<=7;j++)

{ m=gz/b[j];

s[j]=s[j]+m;

gz=gz-m*b[j];

}

}

printf(" 单位工资总额为: %ld \n",su);

printf(" 各面值币的统计结果: \n");

su1=0;

for(j=1;j<=7;j++)

{ printf(" %3d---%3d \n",b[j],s[j]);

su1=su1+b[j]*s[j];

}

if(su==su1) printf(" 经检验统计无误!\n"); }

数据结构与算法习题及答案

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A.存储结构B.存储实现 C.逻辑结构D.运算实现 (3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A.数据具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 (4)以下说法正确的是()。 A.数据元素是数据的最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 (5)以下与数据的存储结构无关的术语是()。 A.顺序队列B.链表C.有序表D.链栈 (6)以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90;y=100; while(y>0) if(x>100) {x=x-10;y--;} elsex++; (2)for(i=0;i

计算方法——第二章——课后习题答案刘师少

2.1 用二分法求方程013=--x x 在[1, 2]的近似根,要求误差不超过3102 1-?至少要二分多少? 解:给定误差限ε=0.5×10-3,使用二分法时,误差限为 )(211*a b x x k k -≤-+ 只要取k 满足ε<-+)(2 11 a b k 即可,亦即 96678.912lg 10lg 35.0lg 12lg lg )lg(=-+-=---≥εa b k 只要取n =10. 2.3 证明方程1 -x –sin x =0 在区间[0, 1]内有一个根,使用二分法求误差不超过 0.5×10-4的根要二分多少次? 证明 令f (x )=1-x -sin x , ∵ f (0)=1>0,f (1)=-sin1<0 ∴ f (x )=1-x -sin x =0在[0,1]有根.又 f '(x )=-1-c os x<0 (x ∈[0.1]),故f (x ) 在[0,1]单调减少,所以f (x ) 在区间 [0,1]内有唯一实根. 给定误差限ε=0.5×10-4,使用二分法时,误差限为 )(211*a b x x k k -≤-+ 只要取k 满足ε<-+)(211 a b k 即可,亦即 7287.1312 lg 10lg 45.0lg 12lg lg )lg(=-+-=---≥εa b k 只要取n =14. 2.4 方程0123=--x x 在x =1.5附近有根,把方程写成四种不同的等价形式,并建立相应的迭代公式: (1)211x x +=,迭代公式2111k k x x +=+ (2)231x x +=,迭代公式3211k k x x +=+ (3)112-=x x ,迭代公式111-=+k k x x (4)13-=x x ,迭代公式131-=+k k x x 试分析每种迭代公式的收敛性,并选取一种收敛迭代公式求出具有四位有效数字的近似根。 解:(1)令211)(x x f + =,则3 2)(x x f -=',由于 159.05.112)(33<≈≤='x x f ,因而迭代收敛。 (2)令321)(x x f +=,则322)1(3 2)(-+='x x x f ,由于

计算机网络课后习题答案(第三章)

计算机网络课后习题答案(第三章) (2009-12-14 18:16:22) 转载▼ 标签: 课程-计算机 教育 第三章数据链路层 3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别? “电路接通了”与”数据链路接通了”的区别何在? 答:数据链路与链路的区别在于数据链路出链路外,还必须有一些必要的规程来控制数据的传输,因此,数据链路比链路多了实现通信规程所需要的硬件和软件。 “电路接通了”表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流了,但是,数据传输并不可靠,在物理连接基础上,再建立数据链路连接,才是“数据链路接通了”,此后,由于数据链路连接具有检测、确认和重传功能,才使不太可靠的物理链路变成可靠的数据链路,进行可靠的数据传输当数据链路断开连接时,物理电路连接不一定跟着断开连接。 3-02 数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点. 答:链路管理 帧定界 流量控制 差错控制 将数据和控制信息区分开 透明传输 寻址 可靠的链路层的优点和缺点取决于所应用的环境:对于干扰严重的信道,可靠的链路层可以将重传范围约束在局部链路,防止全网络的传输效率受损;对于优质信道,采用可靠的链路层会增大资源开销,影响传输效率。 3-03 网络适配器的作用是什么?网络适配器工作在哪一层? 答:适配器(即网卡)来实现数据链路层和物理层这两层的协议的硬件和软件 网络适配器工作在TCP/IP协议中的网络接口层(OSI中的数据链里层和物理层) 3-04 数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决? 答:帧定界是分组交换的必然要求 透明传输避免消息符号与帧定界符号相混淆

计算方法引论课后答案.

第一章 误差 1. 试举例,说明什么是模型误差,什么是方法误差. 解: 例如,把地球近似看为一个标准球体,利用公式2 4A r π=计算其表面积,这个近似看为球体的过程产生 的误差即为模型误差. 在计算过程中,要用到π,我们利用无穷乘积公式计算π的值: 12 222...q q π=? ?? 其中 11 2,3,... n q q n +?=?? ==?? 我们取前9项的乘积作为π的近似值,得 3.141587725...π≈ 这个去掉π的无穷乘积公式中第9项后的部分产生的误差就是方法误差,也成为截断误差. 2. 按照四舍五入的原则,将下列各数舍成五位有效数字: 816.956 7 6.000 015 17.322 50 1.235 651 93.182 13 0.015 236 23 解: 816.96 6.000 0 17.323 1.235 7 93.182 0.015 236 3. 下列各数是按照四舍五入原则得到的近似数,它们各有几位有效数字? 81.897 0.008 13 6.320 05 0.180 0 解: 五位 三位 六位 四位 4. 若1/4用0.25表示,问有多少位有效数字? 解: 两位 5. 若 1.1062,0.947a b ==,是经过舍入后得到的近似值,问:,a b a b +?各有几位有效数字? 解: 已知4311 d 10,d 1022 a b --

算法设计与分析课后部分习题答案

算法实现题3-7 数字三角形问题 问题描述: 给定一个由n行数字组成的数字三角形,如图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。编程任务: 对于给定的由n行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数字和的最大值。数据输入: 有文件input.txt提供输入数据。文件的第1行是数字三角形的行数n,1<=n<=100。接下来的n行是数字三角形各行的数字。所有数字在0-99之间。结果输出: 程序运行结束时,将计算结果输出到文件output.txt中。文件第1行中的数是计算出的最大值。 输入文件示例输出文件示 例 input.txt output.txt 5 30 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 源程序: #include "stdio.h" voidmain() { intn,triangle[100][100],i,j;//triangle数组用来存储金字塔数值,n表示行数 FILE *in,*out;//定义in,out两个文件指针变量 in=fopen("input.txt","r"); fscanf(in,"%d",&n);//将行数n读入到变量n中

for(i=0;i=0;row--)//从上往下递归计算 for(int col=0;col<=row;col++) if(triangle[row+1][col]>triangle[row+1][col+1]) triangle[row][col]+=triangle[row+1][col]; else triangle[row][col]+=triangle[row+1][col+1]; out=fopen("output.txt","w"); fprintf(out,"%d",triangle[0][0]);//将最终结果输出到output.txt中 } 算法实现题4-9 汽车加油问题 问题描述: 一辆汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产出一个最优解。编程任务: 对于给定的n和k个加油站位置,编程计算最少加油次数。数据输入: 由文件input.txt给出输入数据。第1行有2个正整数n和k ,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来的1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第

计算机网络课后题答案第七章

第七章网络安全 7-01 计算机网络都面临哪几种威胁?主动攻击和被动攻击的区别是什么?对于计算机网 络的安全措施都有哪些? 答:计算机网络面临以下的四种威胁:截获(),中断(),篡改(),伪造()。 网络安全的威胁可以分为两大类:即被动攻击和主动攻击。 主动攻击是指攻击者对某个连接中通过的进行各种处理。如有选择地更改、删除、 延迟这些。甚至还可将合成的或伪造的送入到一个连接中去。主动攻击又可进一步 划分为三种,即更改报文流;拒绝报文服务;伪造连接初始化。被动攻击是指观察和分析某一个协议数据单元而不干扰信息流。即使这些数据对 攻击者来说是不易理解的,它也可通过观察的协议控制信息部分,了解正在通信的协议 实体的地址和身份,研究的长度和传输的频度,以便了解所交换的数据的性质。这种被 动攻击又称为通信量分析。 还有一种特殊的主动攻击就是恶意程序的攻击。恶意程序种类繁多,对网络安全威胁 较大的主要有以下几种:计算机病毒;计算机蠕虫;特洛伊木马;

逻辑炸弹。 对付被动攻击可采用各种数据加密动技术,而对付主动攻击,则需加密技术与适当的 鉴别技术结合。 7-02 试解释以下名词:(1)重放攻击;(2)拒绝服务;(3)访问控制;(4)流量分析; (5)恶意程序。 答:(1)重放攻击:所谓重放攻击()就是攻击者发送一个目的主机已接收 过的包,来达到欺骗系统的目的,主要用于身份认证过程。(2)拒绝服务:( )指攻击者向因特网上的服务器不停地发送大量 分组,使因特网或服务器无法提供正常服务。 (3)访问控制:()也叫做存取控制或接入控制。必须对接入网络的权限 加以控制,并规定每个用户的接入权限。 (4)流量分析:通过观察的协议控制信息部分,了解正在通信的协议实体的地址和 身份,研究的长度和传输的频度,以便了解所交换的数据的某种性质。这种被动攻击又 称为流量分析()。 (5)恶意程序:恶意程序()通常是指带有攻击意图所编写的

计算方法习题答案

计算方法第3版习题答案 习题1解答 1.1 解:直接根据定义得 *411()102x δ-≤?*411()102r x δ-≤?*3*12211 ()10,()1026 r x x δδ--≤?≤?*2*5331()10,()102r x x δδ--≤?≤ 1.2 解:取4位有效数字 1.3解:433 5124124124 ()()() 101010() 1.810257.563 r a a a a a a a a a δδδδ----++++++≤≤=?++? 123()r a a a δ≤ 123132231123 ()()() a a a a a a a a a a a a δδδ++0.016= 1.4 解:由于'1(),()n n f x x f x nx -==,故***1*(())()()()n n n f x x x n x x x δ-=-≈- 故** * ***(()) (())()0.02()r r n f x x x f x n n x n x x δδδ-= ≈== 1.5 解: 设长、宽和高分别为 ***50,20,10l l h h εεωωεεεε=±=±=±=±=±=± 2()l lh h ωωA =++,*************()2[()()()()()()]l l l h h l h h εδωωδδδωδδωA =+++++ ***4[]320l h εωε=++= 令3201ε<,解得0.0031ε≤, 1.6 解:设边长为x 时,其面积为S ,则有2()S f x x ==,故 '()()()2()S f x x x x δδδ≈= 现100,()1x S δ=≤,从而得() 1 ()0.00522100 S x x δδ≈ ≤ =? 1.7 解:因S ld =,故 S d l ?=?,S l d ?=?,*****()()()()()S S S l d l d δδδ??≈+?? * 2 ()(3.12 4.32)0.010.0744S m δ=+?=, *** ** * () () 0.0744 ()0.55%13.4784 r S S S l d S δδδ= = = ≈ 1.8 解:(1)4.472 (2)4.47 1.9 解:(1) (B )避免相近数相减 (2)(C )避免小除数和相近数相减 (3)(A )避免相近数相减 (3)(C )避免小除数和相近数相减,且节省对数运算 1.10 解 (1)357sin ...3!5!7!x x x x x =-+-+ 故有357 sin ..3!5!7! x x x x x -=-+-, (2) 1 (1)(1)1lnxdx ln ln ln N+N =N N +-N N +N +-? 1 (1)1ln ln N +=N +N +-N 1.11 解:0.00548。 1.12解:21 16 27 3102 ()()() -? 1.13解:0.000021

《数据结构与算法》课后习题答案(课件)

《数据结构与算法》课后习题 答案 2.3 课后习题解答 2.3.2 判断题 1.线性表的逻辑顺序与存储顺序总是一致的。(×) 2.顺序存储的线性表可以按序号随机存取。(√) 3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。(×) 4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。(√)...文档交流仅供参考... 5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。(×) 6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。(√) 7.线性表的链式存储结构优于顺序存储结构。(×) 8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。(√) 9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(√)

10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(×)11.静态链表既有顺序存储的优点,又有动态链表的优点。所以它存取表中第i个元素的时间与i无关。(×) 12.线性表的特点是每个元素都有一个前驱和一个后继。(×) 2.3.3 算法设计题 1.设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。...文档交流仅供参考... 【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x,最后修改表示表长的变量。...文档交流仅供参考... int insert (datatypeA[],int *elenum,datatype x)???/*设elenum为表的最大下标*/...文档交流仅供参考...

计算方法课后题答案之习题二

习题二 1. 证明方程043 =-+x x 在区间[1,2]内有一个根。如果用二分法求它具有5位有效数字的根,需要 二分多少次。 证明: (1) 不妨令 4)(3-+=x x x f ,求得: 02)1(<-=f 06)2(>=f 又因为4)(3-+=x x x f 在区间[1,2]内是连续的,所以在区间[1,2]内有至少一个根。 又因为 13)(2'+=x x f 在区间[1,2]内013)(2'>+=x x f ,所以4)(3-+=x x x f 单调。 得证,043 =-+x x 在区间[1,2]内仅有一个根。 (2)具有5位有效数字的根,说明根可以表示成 5 4321.a a a a a ,所以绝对误差限应该是 5a 位上的 一半,即: 4105.0-?=ε。由公式: ε≤-+1 2 k a b 可得到, 14=k 迭代次数为151=+k 次。 ---------------------------------------------------------------------------------------------------------------------- 2. 用二分法求方程 0)2 (sin )(2=-=x x x f 在区间[1.5,2]内的近似根(精确到10-3)。 解:043499.05625.099749.0)25.1(5.1sin )5.1(2 >=-=-=f 009070.0190930.0)22(2sin )2(2 <-=-=-=f 所以0)2 (sin )(2 =-=x x x f 在区间[1.5,2]内有根,又 x cos )('-=x x f 在区间[1.5,2]内 0x cos )('<-=x x f 所以 0)2 (sin )(2=-=x x x f 在区间[1.5,2]内有根,且唯一。符合二分条件,可以用二分法,二分的 次数为:

算法和数据结构C语言版课后习题集答案解析(机械工业出版社)第34章习题集参考答案解析

第3章栈和队列 一、基础知识题 3.1有五个数依次进栈:1,2,3,4,5。在各种出栈的序列中,以3,4先出 的序列有哪几个。(3在4之前出栈)。 【解答】34215 ,34251, 34521 3.2铁路进行列车调度时,常把站台设计成栈式结构,若进站的六辆列车顺序 为:1,2,3,4,5,6,那么是否能够得到435612, 325641, 154623和135426的出站序列,如果不能,说明为什么不能;如果能,说明如何得到(即写出"进栈"或"出栈"的序列)。 【解答】输入序列为123456,不能得出435612和154623。不能得到435612的理由是,输出序列最后两元素是12,前面4个元素(4356)得到后,栈中元素剩12,且2在栈顶,不可能让栈底元素1在栈顶元素2之前出栈。不能得到154623的理由类似,当栈中元素只剩23,且3在栈顶,2不可能先于3出栈。 得到325641的过程如下:1 2 3顺序入栈,32出栈,得到部分输出序列32;然后45入栈,5出栈,部分输出序列变为325;接着6入栈并退栈,部分输出序列变为3256;最后41退栈,得最终结果325641。 得到135426的过程如下:1入栈并出栈,得到部分输出序列1;然后2和3入栈,3出栈,部分输出序列变为13;接着4和5入栈,5,4和2依次出栈,部分输出序列变为13542;最后6入栈并退栈,得最终结果135426。 3.3若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别 为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少? 【解答】2和 4 3.4设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通 过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e3,e5,e4,e6,e2,e1,则栈S的容量至少应该是多少? 【解答】 4 3.5循环队列的优点是什么,如何判断“空”和“满”。 【解答】循环队列解决了常规用0--m-1的数组表示队列时出现的“假溢出”(即队列未满但不能入队)。在循环队列中我们仍用队头指针等于队尾指针表示队空,而用牺牲一个单元的办法表示队满,即当队尾指针加1(求模)等于队头指针时,表示队列满。也有通过设标记以及用一个队头或队尾指针加上队中元素个数来区分队列的“空”和“满”的。 3.6设长度为n的链队列用单循环链表表示,若只设头指针,则入队和出队的 时间如何?若只设尾指针呢? 【解答】若只设头指针,则入队的时间为O(n),出队的时间为O(1)。若只设尾指针,则入队和出队的时间均为O(1)。 3.7指出下面程序段的功能是什么? (1)void demo1(SeqStack S) {int i,arr[64],n=0; while(!StackEmpty(S)) arr[n++]=Pop(S);

计算机网络课后题答案解析

第一章 一、名词解释 广域网:覆盖范围从几十公里到几千公里,是一个国家、地区或横跨几个洲的网络。城域网:可以满足几十公里范围内的大量企业、机关、公司的多个局域网互联的需要,并能实现大量用户与数据、语音、图像等多种信息传输的网络。 局域网:用于有限地理范围,将各种计算机、外设互联起来的网络。 通信子网:由各种通信控制处理机、通信线路与其他通讯设备组成,负责全网的通信处理业务。 资源子网:由各种主机、外设、软件与信息资源组成,负责全网的数据处理业务,并向网络用户提供各种网络资源与网络服务。 计算机网络:以能够相互共享资源的方式互联起来的自制计算机系统的集合。 分布式系统:存在着一个能为用户自动管理资源的网络操作系统,由它来自动调用完成用户任务所需的资源,整个网络系统对用户来说就像一个大的计算机系统一样。 公用数据网:由邮电部门或通信部门统一组建与管理,向社会用户提供数据通信服务的网络。 广播网络:网络中的计算机或设备使用一个共享的通信介质进行数据传播,网络中的所有结点都能收到任一结点发出的数据信息。 点—点网络:是两台计算机之间通过一条物理线路连接的网络。 四、简答题 1、计算机网络的发展可以划分为几个阶段?每个阶段的特点? 四个阶段:1)远程联机阶段2)互联网络阶段3)标准化网络阶段4)网络互连与高速网络阶段 远程特点:系统中只有一个计算机处理中心,各终端通过通信线路共享主计算机的硬件和软件资源,主计算机负担过重,终端独占线路,资源利用率低。 互联特点:实现计算机与计算机通信的计算机网络系统,呈现出的是多台计算机处理中心的特点。 标准化网络阶段:网络体系结构与协议标准化的研究广域网、局域网与分组交换技术的研究与应用 网络互联与高速网络阶段:Internet技术的广泛应用网络计算技术的研究与发展宽带城域网与接入网技术的研究与发展网络与信息安全技术的研究与发展。 2. 按照资源共享的观点定义的计算机网络应具备哪几个主要特征? 建立的主要目的是实现计算机资源的共享;互连的计算机是分布在不同地理位置的多台独立“自治系统”;连网计算机在通信过程中必须遵循相同的网络协议。 3、什么是计算机网络? 计算机网络是把分布在不同地点,并具有独立功能的多个计算机系统通过通信设备和线路连接起来,在功能完善的网络软件和协议的管理下,以实现网络中资源共享为目标的系统。 4、计算机网络的主要功能是什么? 1)资源共享:硬件资源、软件资源、数据资源、信道资源;2)网络通信;3)分布式处理;4)集中管理;5)均衡负载 5、计算机网络硬件包括哪些? 主计算机、网络工作站、网络终端、通信处理机、通信线路、信息变换设备

数据结构课程 课后习题答案

《数据结构简明教程》练习题及参考答案 练习题1 1. 单项选择题 (1)线性结构中数据元素之间是()关系。 A.一对多 B.多对多 C.多对一 D.一对一 答:D (2)数据结构中与所使用的计算机无关的是数据的()结构。 A.存储 B.物理 C.逻辑 D.物理和存储 答:C (3)算法分析的目的是()。 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 答:C (4)算法分析的两个主要方面是()。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 答:A (5)计算机算法指的是()。 A.计算方法 B. 排序方法 C.求解问题的有限运算序列 D.调度方法 答:C (6)计算机算法必须具备输入、输出和()等5个特性。 A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性 答:B 2. 填空题 (1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。 答:①逻辑结构②存储结构③运算 (2)数据结构按逻辑结构可分为两大类,它们分别是①和②。 答:①线性结构②非线性结构 (3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

答:①数据元素 ②关系 (4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。 答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。 答:①前驱 ②1 ③后继 ④任意多个 (6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。 答:任意多个 (7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。 答:①顺序 ②链式 ③索引 ④哈希 (8)一个算法的效率可分为 ① 效率和 ② 效率。 答:①时间 ②空间 3. 简答题 (1)数据结构和数据类型两个概念之间有区别吗? 答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素的集合。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 (2)简述线性结构、树形结构和图形结构的不同点。 答:线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 (3)设有采用二元组表示的数据逻辑结构S=(D,R),其中D={a ,b ,…,i },R={(a ,b ),(a ,c ),(c ,d ),(c ,f ),(f ,h ),(d ,e ),(f ,g ),(h ,i )},问相对于关系R ,哪些结点是开始结点,哪些结点是终端结点? 答:该逻辑结构为树形结构,其中a 结点没有前驱结点,称为根结点,b 、e 、g 、i 结点没有后继结点,是终端结点,也称为叶子结点。 (4)以下各函数是算法中语句的执行频度,n 为问题规模,给出对应的时间复杂度: T 1(n )=n log 2n -1000log 2n T 2(n )=3log 2n -1000log 2n T 3(n )=n 2 -1000log 2n T 4(n )=2n log 2n -1000log 2n 答:T 1(n )=O(n log 2n ),T 2(n )=O( ),T 3(n )=O(n 2 ),T 4(n )=O(n log 2n )。 (5)分析下面程序段中循环语句的执行次数。 int j=0,s=0,n=100; do { j=j+1; s=s+10*j; } while (j

数值计算方法习题答案(绪论,习题1,习题2)

引论试题(11页) 4 试证:对任给初值x 0, 0)a >的牛顿迭代公式 112(),0,1 ,2,......k a k k x x x k +=+= 恒成立下列关系式: 2112(1)(,0,1,2,.... (2)1,2,...... k k k x k x x k x k +-=≥= 证明: (1 )(2 2 11222k k k k k k k k x a x a x x x x x +-??-+=+= =? ?? (2) 取初值00>x ,显然有0>k x ,对任意0≥k , a a x a x x a x x k k k k k ≥+??? ? ??-=???? ??+=+2 12121 6 证明: 若k x 有n 位有效数字,则n k x -?≤ -1102 1 8, 而() k k k k k x x x x x 28882182 1-=-???? ??+=-+ n n k k x x 21221102 1 5.22104185 .28--+?=??<-∴>≥ 1k x +∴必有2n 位有效数字。 8 解: 此题的相对误差限通常有两种解法. ①根据本章中所给出的定理: (设x 的近似数* x 可表示为m n a a a x 10......021*?±=,如果* x 具有l 位有效数字,则其相对误差限为 ()11 * *1021 --?≤ -l a x x x ,其中1a 为*x 中第一个非零数) 则7.21=x ,有两位有效数字,相对误差限为

025.0102 21 111=??≤--x x e 71.22=x ,有两位有效数字,相对误差限为 025.0102 21 122=??≤--x x e 3 2.718x =,有两位有效数字,其相对误差限为: 00025.0102 21 333=??≤--x e x ②第二种方法直接根据相对误差限的定义式求解 对于7.21=x ,0183.01<-e x ∴其相对误差限为 00678.07 .20183 .011≈<-x e x 同理对于71.22=x ,有 003063 .071 .20083 .022≈<-x e x 对于718.23=x ,有 00012.0718 .20003 .033≈<-x e x 备注:(1)两种方法均可得出相对误差限,但第一种是对于所有具有n 位有效数字的近似数都成立的正确结论,故他对误差限的估计偏大,但计算略简单些;而第二种方法给出较好的误差限估计,但计算稍复杂。 (2)采用第二种方法时,分子为绝对误差限,不是单纯的对真实值与近似值差值的四舍五入,绝对误差限大于或等于真实值与近似值的差。 11. 解: ......142857.3722≈,.......1415929.3113 255≈ 21021 722-?≤-∴ π,具有3位有效数字 6102 1 113255-?≤-π,具有7位有效数字

计算机网络课后习题答案

计算机网络课后习题答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

1习题 一、填空题 1.在OSI参考模型中,网络层所提供的服务包括虚电路服务和数据报服务。 2.如果网络系统中的每台计算机既是服务器,又是工作站,则称其为对等网。 3.网络协议主要由语法、语义和规则三个要素组成。 4.OSI参考模型规定网络层的主要功能有:分组传送、流量控制和网络连接建立与管理。 5.物理层为建立、维护和释放数据链路实体之间二进制比特传输的物理连接,提供机械的、电气的、功能的和规程的特性。 6.设置传输层的主要目的是在源主机和目的主机进程之间提供可靠的端到端通信。7.在OSI参考模型中,应用层上支持文件传输的协议是文件传送、存取和管理 FTAM ,支持网络管理的协议是报文处理系统MHS 。 二.选择题 1.按覆盖的地理范围分类,计算机网络可以分成局域网、城域网和广域网。 2.如果某种局域网的拓扑结构是 A ,则局域网中任何一个结点出现故障都不会影响整个网络的工作。 A)总线型结构 B)树型结构 C)环型结构 D)星型结构 3.网状拓扑的计算机网络特点是:系统可靠性高,但是结构复杂,必须采用路由选择算法和流量控制方法。 4.在OSI七层结构模型中,执行路径选择的层是 B 。 A)物理层 B)网络层 C)数据链路层 D)传输层

5.在OSI七层结构模型中,实现帧同步功能的层是 C 。 A)物理层 B)传输层 C)数据链路层 D)网络层 6.在OSI七层协议中,提供一种建立连接并有序传输数据的方法的层是C。 A)传输层 B)表示层 C)会话层 D)应用层 7.在地理上分散布置的多台独立计算机通过通信线路互联构成的系统称为(C)使信息传输与信息功能相结合,使多个用户能够共享软、硬件资源,提高信息的能力。 A)分散系统B)电话网C)计算机网络D)智能计算机 8.若要对数据进行字符转换和数字转换,以及数据压缩,应在OSI(D)层上实现。A)网络层B)传输层C)会话层D)表示层 三、思考题 1.简述计算机网络的定义、分类和主要功能。 计算机网络的定义: 计算机网络,就是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统互连起来,以功能完善的网络软件(即网络通信协议、信息交换方式、网络操作系统等)实现网络中资源共享和信息传递的系统。 计算机网络可以从不同的角度进行分类: (1)根据网络的交换功能分为电路交换、报文交换、分组交换和混合交换; (2)根据网络的拓扑结构可以分为星型网、树型网、总线网、环型网、网状网等; (3)根据网络的通信性能可以分为资源共享计算机网络、分布式计算机网络和远程通信网络; (4)根据网络的覆盖范围与规模可分为局域网、城域网和广域网;

最新算法与数据结构C语言习题参考答案1-5章讲解学习

1.绪论 1.将下列复杂度由小到大重新排序: A.2n B.n! C.n5D.10 000 E.n*log2 (n) 【答】10 000< n*log2(n)< n5< 2n < n! 2.将下列复杂度由小到大重新排序: A.n*log2(n) B.n + n2 + n3C.24D.n0.5 【答】24< n0.5< n*log2 (n) < n + n2 + n3 3.用大“O”表示法描述下列复杂度: A.5n5/2 + n2/5 B.6*log2(n) + 9n C.3n4+ n* log2(n) D.5n2 + n3/2 【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2) 4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。又n!应排在第几位? 【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。 n!的增长率比它们中的每一个都要大,应排在最后一位。 5. 计算下列程序片断的时间代价: int i=1; while(i<=n) { printf(“i=%d\n”,i); i=i+1; } 【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。所以该程序段总的时间代价为: T(n) = 1 + n + 2n = 3n+ 1 = O(n) 6. 计算下列程序片断的时间代价: int i=1; while(i<=n) { int j=1; while(j<=n) { int k=1;

计算机网络课后习题答案

计算机网络课后习题答案(第五章) (2009-12-14 18:28:04) 转载▼ 标签: 课程-计算机 教育 第五章传输层 5—01试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别为什么运输层是必不可少的 答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务 运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。 各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。 5—02网络层提供数据报或虚电路服务对上面的运输层有何影响 答:网络层提供数据报或虚电路服务不影响上面的运输层的运行机制。 但提供不同的服务质量。 5—03当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向无连接的 答:都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的。 5—04试用画图解释运输层的复用。画图说明许多个运输用户复用到一条运输连接上,而这条运输连接有复用到IP数据报上。 5—05试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠的TCP。 答:VOIP:由于语音信息具有一定的冗余度,人耳对VOIP数据报损失由一定的承受度,但对传输时延的变化较敏感。 有差错的UDP数据报在接收端被直接抛弃,TCP数据报出错则会引起重传,可能带来较大的时延扰动。 因此VOIP宁可采用不可靠的UDP,而不愿意采用可靠的TCP。 5—06接收方收到有差错的UDP用户数据报时应如何处理 答:丢弃 5—07如果应用程序愿意使用UDP来完成可靠的传输,这可能吗请说明理由

计算机操作系统(第四版)课后习题答案第五章

第五章 7.试比较缺页中断机构与一般的中断,他们之间有何明显的区别? 答:缺页中断作为中断,同样需要经历保护CPU现场、分析中断原因、转缺页中断处理程序进行处理、恢复CPU现场等步骤。但缺页中断又是一种特殊的中断,它与一般中断的主要区别是: ( 1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后去检查是否有中断请求到达。若有便去响应中断;否则继续执行下一条指令。而缺页中断是在指令执行期间,发现所要访问的指令或数据不在内存时产生和处理的。 (2)一条指令在执行期间可能产生多次缺页中断。例如,对于一条读取数据的多字节指令,指令本身跨越两个页面,假定指令后一部分所在页面和数据所在页面均不在内存,则该指令的执行至少产生两次缺页中断。 8.试说明请求分页系统中的页面调入过程。 答:请求分页系统中的缺页从何处调入内存分三种情况: (1)系统拥有足够对换区空间时,可以全部从对换区调入所需页面,提高调页速度。在进程运行前将与该进程有关的文件从文件区拷贝到对换区。 (2)系统缺少足够对换区空间时,不被修改的文件直接从文件区调入;当换出这些页面时,未被修改的不必换出,再调入时,仍从文件区直接调入。对于可能修改的,在换出时便调到对换区,以后需要时再从对换区调入。 (3)UNIX 方式。未运行页面从文件区调入。曾经运行过但被换出页面,下次从对换区调入。UNIX 系统允许页面共享,某进程请求的页面有可能已调入内存,直接使用不再调入。 19.何谓工作集?它是基于什么原理确定的? 答:工作集:在某段时间间隔里,进程实际所要访问页面的集合。 原理:用程序的过去某段时间内的行为作为程序在将来某段时间内行为的近似。 24.说明请求分段式系统中的缺页中断处理过程。 答:在请求分段系统中,每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入操作系统后由缺段中断处理程序将所需的段调入内存。缺段中断机构与缺页中断机构类似,它同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。

算法与数据结构习题答案

算法与数据结构习题答案.txt机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论。那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,相守才是真爱。3.3 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素? 答: 在等概率情况下,顺序表中插入一个结点需平均移动n/2个结点。删除一个结点需平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置i。i 越接近n则所需移动的结点数越少。 3.12 已知由单链表表示的线性表中,含有三类字符的数据元素(如:字母字符、数字字符和其它字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。 解: 要解决这样的问题,只要新建三个头结点,然后在原来的单链表中依次查询,找到一类字符结点时,就摘下此结点链接到相应头结点指明的新链表中就是了。 算法如下: //设已建立三个带头结点的空循环链表A,B,C且A、B、C分别是尾指针. void DivideList( LinkList L, LinkList A, LinkList B, LinkList C) { ListNode *p=L->next, *q; while ( p ) { if ( p->data>='a' &&p->data<='z'|| p->data>='A' &&p->data<='Z') { q=p->next; p=p->next;//指向下一结点 q->next=A->next;//将字母结点链到A表中 A->next=q;A=q; } else if( p->data>='0' && p->data<='9') { // 分出数字结点 q=p->next; p=p->next;//指向下一结点 q->next=B->next;//将数字结点链到B表中 B->next=q;B=q; } else { //分出其他字符结点 q=p->next; p=p->next;//指向下一结点 q->next=C->next;//将其他结点链到C表中 C->next=q;C=q; } } }//结束

相关文档
最新文档