第四章 习题课程序分析
习题课2(4~5章)
第四章习题讲解4.6 实训实训1【实训内容】简单if语句。
【实训目的】掌握简单if语句的使用。
【实训题目】分析下面两个程序,写出程序的功能并上机验证。
【程序1】#include <stdio.h>main(){float x,y,z;printf("Please enter x,y,z:");scanf("%f,%f,%f",&x,&y,&z);if(x<y) x=y;if(x<z) x=z;printf("%5.2f\n",x);}【程序2】#include <stdio.h>main(){float x,y,z,max;printf("Please enter x,y,z:");scanf("%f,%f,%f",&x,&y,&z);max=x;if(max<y) max=y;if(max<z) max=z;printf("%5.2f\n",max);}实训2【实训内容】if-else语句。
【实训目的】掌握if-else语句的使用。
【实训题目】简单加法练习程序。
阅读程序并上机调试,改正其中的错误,使之能正常运行。
#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int num1,num2,answer;srand(time(NULL));num1=rand()%100;num2=rand()%100;printf("%d+%d=",num1,num2);scanf("%d",&answer);if(answer==num1+num2)printf("回答正确.\n");elseprintf("回答错误.\n");}实训3【实训内容】if嵌套【实训】编写程序,根据输入的某年某月,输出该月的天数。
操作系统第4章习题带答案
第四章一、问答题1、同步机制应遵循的准则是什么?2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?3、简述死锁的定义和死锁产生的原因。
4、简述死锁定理和解除死锁的方法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产生的4个必要条件是什么?它们是彼此独立的吗?二、计算题(共20分)1、当前系统中出现下述资源分配情况:利用银行家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满足<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所示。
回答:问:采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满足。
3、一个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发生死锁?并说明理由答:n=2理由同第4题(进程资源最大需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执行过程中动态申请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。
C语言程序设计-第四章简单计算器小程序-分支程序设计
P1 逻辑运算符 P2
或
逻辑运算符 P2
课堂练习: 求下面逻辑表达式的值: 2>1 && 4 && 7<3+!0
值为0
等价于((2>1)&&4)&&(7<(3+(!
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算的重要规则
a&&b:当a为0时,不管b为何值,结果为0
课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a && b && (c=a+10,d=100) 逻辑表达式执行后,a,b,c,d的值各为多少?
任务实现效果演示 例题源代码:switchcalculator.c
相关知识 1. switch语句 2. break语句
1 switch多分支选择结构
❖ 尽管用if…else if结构可以实现多分支,注但意当:分常支量较表多达时式,必程须序是结整构型较、复字杂符。型或枚举类型,不能是 实型表达式,每个case关键字后的常量表达式应互不相同
值为0 等价于i==(k>j),值为1
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算符与逻辑表达式
&&(逻辑与)、||(逻辑或)、!(逻辑非)(单目)
逻辑表达式的一般形式:
优先级: 1.由低到高: ||→ && → !; 2.多种运算符一起: = →|| →&& →关系运算符 →算术运算符→ !。
【】 简单计算器小程序:由用户输入运算数和四则运算符(+、-、*、/),输出计算结果。
【】
软件项目管理第四章课后习题答案
四、项目进度管理1.简述时间管理包括哪些内容。
答:项目时间管理(也称进度管理)管理包括进度管理规划、活动定义、活动排序、活动资源估算、活动历时估算、制定进度计划和进度控制等管理过程。
在某些小的软件项目中,定义活动、排列活动顺序、估算活动资源、估算活动历时及制定进度计划等过程之间的联系非常密切,以至于可视为一个过程,由一个人在较短时间内完成。
2.如何理解项目进度管理的重要性,以及其他管理过程对进度管理的影响。
答:按时、保质完成项目是对项目的基本要求,但软件项目工期拖延的情况却时常发生,因而合理地安排项目时间是项目管理中的一项关键内容。
项目进度管理就是采用科学的方法确定项目进度,编制进度计划和资源供应计划,进行进度控制,在与质量、费用目标协调的基础上,实现项目的进度目标。
(1)范围、质量因素对进度的影响软件开发项目比其他任何建设项目都会有更经常的变更,大概是因为软件程序是一种“看不见”又“很容易修改”的东西吧,用户是想改就改,造成需求的蔓延,项目经理有时还不知如何拒绝,加上要说“我能”的心理因素,一般都会答应修改。
这样集少成多,逐渐影响了项目进度。
如果某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必然要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。
不管是从横向或纵向来看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。
(2)资源、预算变更对进度的影响资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的情况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。
还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能提供不了,而是需要去收集或购买,如果不能按时得到,就会影响需求分析、设计或编码的工作。
其他资源,如开发设备或软件没有到货,也会对进度造成影响。
预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。
第四章 数列的求和(三)习题课 课件-高二上学期数学人教A版(2019)选择性必修第二册
Sn
n(a1 an ) 2
或 Sn
n(n 1) na1+ 2 d
2.等比数列前n项和公式(错位相减法)
Sn
naa1(111,qqqn )1
a1 anq 1 q
,
q 1
3.两类特殊数列的前n项和(二次幂和、三次幂和)
①12+22+32+…+n2=16n(n+1)(2n+1) ②13+23+33+…+n3=14n2(n+1)2
(1)形如cn=an·bn, 一个是等差数列,一个是等比数列; (2)步骤:乘公比,错位减
6.裂项相消法
(1)通项公式为分式,可用待定系数法对通项公式拆项; (2)记住常见的拆项公式
7.绝对值型求和
实际就是一个去绝对值的过程, 绝对值的临界值就是分类讨论的点.
2022年
(a1 6)2 (a1 2)(a1 12) , a1 6
an a1 (n 1)d 2n 4
1
1
1
1
1( 1 1 )
anan1 (2n 4)(2n 6) 4 (n 2)(n 3) 4 n 2 n 3
11 1 1 1
1 1 11 1
n
Tn
4
[( 3
) 4
( 4
) 5
...
综上, Tn
n2
2
21n
,
n
11
n2
21n 2
220
,
n
12
.
课堂小结 求数列前n项和的方法
5.裂项相消法
(1)把数列的每一项拆成两项之差,求和时有些部分可以相互抵消,从而达到求和的
目的.
(2)裂项原则:一般是前边裂几项,后边就裂几项直到发现被消去项的规律为止.
操作系统 第三章,第四章,第九章课后习题整理
第3章进程描述和控制复习题:什么是指令跟踪?答:指令跟踪是指为该进程而执行的指令序列。
通常那些事件会导致创建一个进程?答:新的批处理作业;交互登录;操作系统因为提供一项服务而创建;由现有的进程派生。
(详情请参考表3.1)对于图3.6中的进程模型,请简单定义每个状态。
答:运行态:该进程正在执行。
就绪态:进程做好了准备,只要有机会就开始执行。
阻塞态:进程在某些事件发生前不能执行,如I/O操作完成。
新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。
退出态:操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。
抢占一个进程是什么意思?答:处理器为了执行另外的进程而终止当前正在执行的进程,这就叫进程抢占。
什么是交换,其目的是什么?答:交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。
当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。
为什么图3.9(b)中有两个阻塞态?答:有两个独立的概念:进程是否在等待一个事件(阻塞与否)以及进程是否已经被换出主存(挂起与否)。
为适应这种2*2的组合,需要两个阻塞态和两个挂起态。
列出挂起态进程的4个特点。
答:1.进程不能立即执行。
2.进程可能是或不是正在等待一个事件。
如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
3.为了阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统。
4.除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。
对于哪类实体,操作系统为了管理它而维护其信息表?答:内存、I/O、文件和进程。
列出进程控制块中的三类信息。
答:进程标识,处理器状态信息,进程控制信息。
为什么需要两种模式(用户模式和内核模式)?答:用户模式下可以执行的指令和访问的内存区域都受到限制。
这是为了防止操作系统受到破坏或者修改。
操作系统第4章习题带答案
操作系统第4章习题带答案第四章⼀、问答题1、同步机制应遵循的准则是什么?2、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?3、简述死锁的定义和死锁产⽣的原因。
4、简述死锁定理和解除死锁的⽅法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产⽣的4个必要条件是什么?它们是彼此独⽴的吗?⼆、计算题(共20分)1、当前系统中出现下述资源分配情况:利⽤银⾏家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满⾜<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所⽰。
回答:问:采⽤死锁避免的⽅法进⾏资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满⾜?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满⾜。
3、⼀个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发⽣死锁?并说明理由答:n=2理由同第4题(进程资源最⼤需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执⾏过程中动态申请该类资源,但在该系统上运⾏的每⼀个进程对该资源的占有量任何时刻都不会超过m+1个。
工业工程导论课后习题含答案-未删减版
《基础工业工程》课后思考题第一章1.企业的生产运作有哪几种类型?各有什么特点?企业的生产运作有离散型制造、流程型制造、重入离散型制造、服务型。
离散型是指一个个单独的零部件组装成最终产品的生产方式。
流程型是指通过对一些原材料进行加工,使其物理形状或化学属性发生变化,最终成新形状或者新材料的生产方式。
重入离散型指产品重复进入同一工序、工艺次数多,生产管理复杂的生产方式。
服务型是指为人们提供服务,为社会提供服务为中心组织生产。
2.企业生产运作与管理存在的主要问题是什么?没有一套标准、规范、优化的作业流程,运作时间长,效率低。
3.生产率从本质上讲反映的是什么?产出与投入之比4.生产率测评的意义是什么?(1)评价系统效率,确定发展目标,制定管理方针。
(2)确定目标水品和评价体系,制定有效策略。
(3)为企业实现自检,确定优化方向(4)有助于同类企业、经济比较,提出改进措施(5)有助于内部绩效管理,协同管理。
5.生产率测评的种类与方法有哪些?(1)单要素生产率(2)多要素生产率(3)全要素生产率方法:单要素生产、多要素生产、全要素生产、动态生产指数、系统评价6.提高生产率的方法有哪些?(1)增加资源投入(2)提高劳动者积极性、技术水平第二章1.什么是工业工程?试简明地表述IE的定义应用工程和管理的知识,评价、分析、改进、管理生产系统的方法体系,目的是提高生产效率。
2.如何理解工业工程的内涵?(1)核心是降成本、提高质量和生产率(2)是综合性的应用知识体系(3)注重人的因素(4)系统优化(5)重视现场管理3.试述经典IE与现代IE的关系。
如何理解经典IE是现代IE的基础和主要部分?经典IE是对时间研究和动作研究的继承和发展,经典IE重视与工程技术相结合,具有独立的专业工程性质。
现代IE是在经典IE的基础上,吸收了系统工程和信息技术的现代科技知识,有了理论基础和科学手段,由经验为主发展到定量分析为主,以研究生产局部或小系统的改善,到研究大系统整体优化和生产率提高,成为一门独立的学科。
机械制造技术基础(第)第四章课后习题答案
《机械制造技术基础》部分习题参考解答第四章机械加工质量及其控制4-1什么是主轴回转精度?为什么外圆磨床头夹中的顶尖不随工件一起回转,而车床主轴箱中的顶尖则是随工件一起回转的?解:主轴回转精度——主轴实际回转轴线与理想回转轴线的差值表示主轴回转精度,它分为主轴径向圆跳动、轴向圆跳动和角度摆动。
车床主轴顶尖随工件回转是因为车床加工精度比磨床要求低,随工件回转可减小摩擦力;外圆磨床头夹中的顶尖不随工件一起回转是因为磨床加工精度要求高,顶尖不转可消除主轴回转产生的误差。
4-2 在镗床上镗孔时(刀具作旋转主运动,工件作进给运动),试分析加工表面产生椭圆形误差的原因。
答:在镗床上镗孔时,由于切削力F的作用方向随主轴的回转而回转,在F作用下,主轴总是以支承轴颈某一部位与轴承内表面接触,轴承内表面圆度误差将反映为主轴径向圆跳动,轴承内表面若为椭圆则镗削的工件表面就会产生椭圆误差。
4-3为什么卧式车床床身导轨在水平面内的直线度要求高于垂直面内的直线度要求?答:导轨在水平面方向是误差敏感方向,导轨垂直面是误差不敏感方向,故水平面内的直线度要求高于垂直面内的直线度要求。
4-4某车床导轨在水平面内的直线度误差为0.015/1000mm,在垂直面内的直线度误差为0.025/1000mm,欲在此车床上车削直径为φ60mm、长度为150mm的工件,试计算被加工工件由导轨几何误差引起的圆柱度误差。
解:根据p152关于机床导轨误差的分析,可知在机床导轨水平面是误差敏感方向,导轨垂直面是误差不敏感方向。
水平面内:0.0151500.002251000R y∆=∆=⨯=mm;垂直面内:227()0.025150/60 2.341021000zRR-∆⎛⎫∆==⨯=⨯⎪⎝⎭mm,非常小可忽略不计。
所以,该工件由导轨几何误差引起的圆柱度误差0.00225R∆=mm。
4-5 在车床上精车一批直径为φ60mm、长为1200mm的长轴外圆。
已知:工件材料为45钢;切削用量为:v c=120m/min,a p=0.4mm, f =0.2mm/r; 刀具材料为YT15。
高等数学 同济六版 第四章 习题课(A).
I1,
从而,原式 sin x ex . C. 1 cos x
7/18
例3 求
ln( x 1 x2 ) 5 dx.
1 x2
解 d [ln( x 1 x2 ) 5]
1
(1 2x )dx
x 1 x2
2 1 x2
原式
dx , 1 x2
ln( x 1 x2 ) 5 d[ln( x 1 x2 ) 5]
2
2
1 [(1 x2 ) ln(1 x2 ) x2 ]arctan x
2
1
2
[ln(1
x2)
x2 1 x2
]dx
.
12/18
例6
dx x(2 x10)
x9dx x10(2 x10 )
1
10
d ( x10 ) 1 x10 (2 x10 ) 20
(2 x10
x10 ) (2
1)没有万能的积分法;
2)有的初等函数的积分不是初等函数,从而 “积不出来”,如
积分对数
ex x
dx
和
ln1xdx,
积 分 正 弦
sin x
x
dx 、积 分 余 弦
cos x
x
dx,
及更一般形式
ex xn
dx 、
1 lnn
x
dx 、
sin x xn
dx
、
cos x xn
dx,
还有 e x2dx、 sin(x2 )dx、 cos(x2 )dx、 .
C3
1 C2
,
C3
C2
1 2
.
17/18
记 C2 C,得
max{1,| x |}dx
1 2
【课程练习】习题解答-第四章-概要设计
第四章概要设计1.什么是软件概要设计?该阶段的基本任务是什么?软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。
基本任务:(1)设计软件系统结构(简称软件结构)a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)b.确定模块的功能。
(功能)c.确定模块之间的调用关系。
(调用)d.确定模块之间的接口,即模块之间传递的信息。
(接口)e.评价模块结构的质量。
(质量)(2)数据结构及数据库设计a.数据结构设计b.数据库设计:(概念设计、逻辑设计、物理设计)(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划)(4)评审2.软件设计的基本原理包括哪些内容?软件设计的基本原理:(1)模块化(四个属性:接口、功能、逻辑、状态) (2)抽象(3)信息隐蔽 (4)模块独立性(两个定性的度量标准:耦合性与内聚性)3.衡量模块独立性的两个标准是什么?它们各表示什么含义?两个定性的度量标准:耦合与内聚性耦合性:也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:也称块内联系。
指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,内聚性越高。
4.模块间的耦合性有哪几种?它们各表示什么含义?耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。
(无直接关系)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
(数据值)标记耦合:指两个模块之间传递的是数据结构。
(数据结构)控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能(控制变量)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
第四章习题课动力学
为零,此时受力分析如图所示.
第四章
牛顿运动定律
对 A、B 整体有 F=2Ma 对 A 有,水平方向:F-FNsin 60° =Ma, 竖直方向:FNcos 60° -Mg=0 由以上几式解得 F=2 3Mg 所以 F 的取值范围是 0<F<2 3Mg.
【答案】 0<F<2 3 Mg
第四章
牛顿运动定律
s时间内,F为变力,0.2 s以后,F为恒力,求:力F的最大
值与最小值.(sin 37°=0.6,取g=10 Nhomakorabeam/s2)
第四章
牛顿运动定律
解析:从受力角度看,两物体分离的条件是两物体间的正压
力为0,从运动学角度看,一起运动的两物体恰好分离时, 两物体在沿斜面方向上的加速度和速度仍相等.
设刚开始时弹簧压缩量为x0
第四章
牛顿运动定律
2.如图所示,底角为 α 的斜面体在水平面上向左以加速度 a 做匀加速直线运动时,放在斜面体光滑斜面上的质量为 m 的滑块刚好停在斜面体上,由此可知( ) A.滑块 m 受到斜面的支持力为 mgcos α mg B.滑块 m 受到斜面的支持力为 cos α C.滑块 m 受到斜面的支持力为 masin α ma D.滑块 m 受到斜面的支持力为 sin α
第四章
牛顿运动定律
4.解题关键:解决此类问题的关键是对物体运动情况的正 确分析,对临界状态的判断与分析,找出处于临界状态时存
在的独特的物理关系,即临界条件.
常见的三类临界问题的临界条件 (1)相互接触的两个物体将要脱离的临界条件是:相互作用 的弹力为零. (2)绳子松弛的临界条件是:绳的拉力为零. (3)存在静摩擦的系统,当系统外力大于最大静摩擦力时, 物体间不一定有相对滑动,相对滑动与相对静止的临界条件 是:静摩擦力达到最大值.
Java语言程序设计[郑莉]第四章课后习题答案解析
Java语言程序设计第四章课后习题答案1.子类将继承父类所有的属性和方法吗?为什么?答:不,子类不能直接访问从父类中继承的私有属性及方法,但可以对公有及保护方法进行访问。
2.方法的覆盖与方法的重载有何不同?答:覆盖是运用在子类中实现与父类相同的功能,但采用不同的算法或公式;在名字相同的方法中,要做比父类更多的事情;在子类中需要取消从父类继承的方法。
3.声明两个带有无参构造方法的两个类A和B,声明A的子类C,并且声明B为C的一个成员,不声明C 的构造方法。
编写测试代码,生成类C的实例对象,并观察结果。
//A类public class A {public A () {System.out.println ("输出A类");}}//B类public class B {public B () {System.out.println ("输出B类");}}//C类public class C extends A {B b = new B ();}//测试类public class test4_3 {public static void main (String args[]) {C c = new C();}}运行结果:4.声明一个基类A,它只有一种非默认构造方法;声明A的子类B,B具有默认方法及非默认方法,并在B的构造方法中调用基类A的构造方法。
//A类public class A {public A (String lin) {System.out.println("A类的非默认构造方法 "+lin);}}//B类public class B extends A{public B () {super ("Fuck your teacher");System.out.println ("B默认类构造方法");}public B (String lin) {super (lin);System.out.println ("B类非构造方法");}}//测试类public class test4_4 {public static void main (String args[]) {new B();System.out.println ();new B("Fuck my teacher");}}运行结果:5.声明一个类,它具有一种方法,此方法被重载三次,派生一个新类,并增加一种新的重载方法,编写测试类验证四种方法对于派生类验证四种方法对于派生类都有效。
计算机体系结构第四章练习题参考解答
计算机体系结构第四章练习题参考解答第四章4.52 浮点数系统使⽤的阶码基值r e =2,阶值位数q=2,尾数基值r m =10,尾数位数p ′=1,即按照使⽤的⼆进制位数来说,等价于p=4。
计算在⾮负阶、正尾数、规格化情况下的最⼩尾数值、最⼤尾数值、最⼤阶值、可表⽰的最⼩值和最⼤值及可表⽰数的个数。
解: 最⼩尾数值:r m -1 = 10-1 = 0.1最⼤尾数值:1- r m -p ′ =1-10-1 = 0.9 最⼤阶值:2q -1=3可表⽰数的最⼩值:1×r m -1 = 10-1 = 0.1 可表⽰数的最⼤值:r m 2q-1×(1- r m -p ′)=103(1-10-1)= 900可表⽰数的个数:2q ×r m p ′(r m -1)/r m = 22×101(10-1)/10 = 364.53 ⼀台机器要求浮点数的字长的精度不低于10-7.2,表数的范围正数不⼩于1038,且正负对称。
尾数⽤原码、纯⼩数表⽰,阶码⽤移码、整数表⽰。
设计这种浮点数的格式。
解依题意,取表数范围N =1038,表数精度δ=10-7.2。
由式(4-4)得:37log(log10log 21)log 2q +> = 6.99,上取整,得到阶码字长q=7。
由式(4-5)得:16log1053.2log 2p -->=,上取整,得到尾数字长p=24。
从⽽加上⼀个尾数符号位和⼀个阶码符号位,浮点数的总字长为:p+q+2=24+7+2=33。
实际浮点数总字长应为8的倍数,故取浮点数总字长为40位。
多出的7位可以加到尾数字长p 中⽤于提⾼浮点数的表数精度,也可以加到阶码字长q 中来扩⼤浮点数的表数范围。
暂且让p 增加6位,q 增加1位,即p=30,q=8。
如图4-8所⽰是设计出来的浮点数格式。
图4-8 例4.2浮点数的设计格式4.58 ⽤于⽂字处理的某专⽤机,每个⽂字符⽤4位⼗进制数字(0~9)编码表⽰,空格⽤︼表⽰。
数据结构课后习题答案第四章
第四章串一、单项选择题1.B2. B3.B4.C5. C二、填空题1.空、字符2.由空格字符(ASCII值32)所组成的字符串空格个数3.长度、相等、子、主4.55.011223126.(1)char s[ ] (2) j++ (3) i >= j7.[题目分析]本题算法采用顺序存储结构求串s和串t的最大公共子串。
串s用i指针(1<=i<=s.len)。
t串用j指针(1<=j<=t.len)。
算法思想是对每个i(1<=i<=s.len,即程序中第一个WHILE循环),来求从i开始的连续字符串与从j(1<=j<=t.len,即程序中第二个WHILE循环)开始的连续字符串的最大匹配。
程序中第三个(即最内层)的WHILE循环,是当s中某字符(s[i])与t中某字符(t[j])相等时,求出局部公共子串。
若该子串长度大于已求出的最长公共子串(初始为0),则最长公共子串的长度要修改。
(1) i+k<=s.len && j+k<=t.len && s[i+k]==t[j+k] //所有注释同上(a)(2) con=0 (3) j+=k (4) j++ (5) i++三、应用题1.空格是一个字符,其ASCII码值是32。
空格串是由空格组成的串,其长度等于空格的个数。
空串是不含任何字符的串,即空串的长度是零。
2.(a)A+B “ mule”(b)B+A “mule ”(c)D+C+B “myoldmule”(d)SUBSTR(B,3,2) “le”(e)SUBSTR(C,1,0) “”(f)LENGTH(A) 2(g)LENGTH(D) 2(h)INDEX(B,D) 0(i)INDEX(C,”d”) 3(j)INSERT(D,2,C) “myold”(k)INSERT(B,1,A) “m ule”(l)DELETE(B,2,2) “me”(m)DELETE(B,2,0) “mule”3.朴素的模式匹配(Brute-Force)时间复杂度是O(m*n),KMP算法有一定改进,时间复杂度达到O(m+n)。
第四章 数列的求和(一习题课 件高二上学期数学人教A版(2019)选择性必修第二册
(2)易知 bn=2nn--11,,nn为为偶奇数数,, 所以 T2n=b1+b2+b3+…+b2n =(b1+b3+…+b2n-1)+(b2+b4+…+b2n) =(0+2+…+2n-2)+(2+23+…+22n-1) =2n-2 2n+244-n-11 =13·22n+1+n2-n-23。
巩固练习
1.已知数列{an}的前n项和为Sn,a1=t,点(Sn,an+1)在直线y=3x+1上.
(1)当实数t为何值时,数列{an}是等比数列? 因为点(Sn,an+1)在直线y=3x+1上, 所以an+1=3Sn+1, 当n≥2时, an=3Sn-1+1. 于是an+1-an=3(Sn-Sn-1)⇒an+1-an=3an⇒an+1=4an. 又当n=1时, a2=3S1+1⇒a2=3a1+1=3t+1, 所以当t=1时,a2=4a1,此时,数列{an}是等比数列.
Sn
n(a1 an ) 2
或 Sn
n(n 1) na1+ 2 d
2.等比数列前n项和公式(错位相减法)
Sn
naa1(111,qqqn )1
a1 anq 1 q
,
q 1
3.两类特殊数列的前n项和(二次幂和、三次幂和)
①12+22+32+…+n2=16n(n+1)(2n+1) ②13+23+33+…+n3=14n2(n+1)2
f
(0)
②
n 1
由① + ②可得 2an n 1 ,an 2
所以数列an 是首项为
1,公差为
1 2
的等差数列,其前
20
项和为 201
20 1 2
115
2
巩固练习
2.
A.36
已知数列{an}的通项公式为an=n-2(n∈N*),设f(x)=x+log228+-xx ,
计算机组成原理第四章课后习题和答案解析[完整版]
第4章存储器1. 解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。
答:主存:主存储器,用于存放正在执行的程序和数据。
CPU可以直接进行随机读写,访问速度较高。
辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。
Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。
RAM:半导体随机存取存储器,主要用作计算机中的主存。
SRAM:静态半导体随机存取存储器。
DRAM:动态半导体随机存取存储器。
ROM:掩膜式半导体只读存储器。
由芯片制造商在制造时写入内容,以后只能读出而不能写入。
PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。
EPROM:紫外线擦写可编程只读存储器。
需要修改内容时,现将其全部内容擦除,然后再编程。
擦除依靠紫外线使浮动栅极上的电荷泄露而实现。
EEPROM:电擦写可编程只读存储器。
CDROM:只读型光盘。
Flash Memory:闪速存储器。
或称快擦型存储器。
2. 计算机中哪些部件可以用于存储信息?按速度、容量和价格/位排序说明。
答:计算机中寄存器、Cache、主存、硬盘可以用于存储信息。
按速度由高至低排序为:寄存器、Cache、主存、硬盘;按容量由小至大排序为:寄存器、Cache、主存、硬盘;按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。
3. 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章习题课程序分析
1.定义一个有抽象方法display( )的父类SuperClass;提供实现其抽象方法的子类SubClassA和SubClassB。
创建一个测试类PolyTest,测试类有一个具有两个元素的SuperClass对象数组,数组元素分别指定为SubClassA和SubClassB。
循环调用每个数组元素的共享方法display。
public abstract class SuperClass
{ public abstract void display(); }
class SubClassA extends SuperClass
{ public void display()
{ System.out.println(“This is subclass A.”); }
}
class SubClassB extends SuperClass
{ public void display()
{ System.out.println(“This is subclass B.”); }
public class PolyTest
{ public static void main(String args[])
{ SuperClass array[ ]=new SuperClass[2];
array[0]=new SubClassA();
array[1]=new SubClassB();
for(int i=0; i<>
array[i].display();
}
}
2.设计一个交通工具类vehicle,其中的属性包括速度speed、种类kind;方法包括:设置颜色setColor,取得颜色getColor。
再设计一个子类Car,增加属性passenger表示可容纳旅客人数,添加方法取得最大速度getMaxSpeed()。
import java.awt.*;
public class vehicle
{ private int speed;
private String kind;
//private Color color;
public vehicle()
{ speed=2000;
kind= "TO";
color=Color.red;
}
public vehicle(int s, String k, Color c)
{ speed=s;
kind= k;
color=c;
}
public void setColor(Color cl)
{ color=cl; }
public void getColor(String)
{ if(equals(kind, k))
{ return color; }
}
}
class Car extends vehicle
{ super(2000,"DD",blue);
int passengers;
public int getMaxSpeed()
{ ……}
}
3.创建两个具有继承关系的类:Produce父类和Sales子类。
(1)父类声明产品名称name、产品价格price成员数据,并声明一方法将产品名称、产品价格信息进行输出显示。
(2)子类数据成员包含:产品名称、产品价格name、产品价格price、销售数量num、折扣discount。
并包含费用cost计算方法,费用计算方法完成商品销售计算:总金额 = 价格×数量×折扣。
(3)设计应用程序,在Produce_sales中创建子类Sales类的对象并统计显示输出。
对象s1为洗衣机销售情况:洗衣机,666.99,400,0.9。
对象s2为电冰箱销售情况:电冰箱,6887.78,70,0.95。
class Produce
{ protected String name;
protected double price;
public Produce(String name,double price)
{ =name;
this.price=price;
}
public String toString( )
{ String s=n ame+ “\t” + price;
return s;
}
}
class Sales extends Produce
{ protected int num;
protected double discount;
public Sales(String name,double price,int num,double discount) { super(name,price);
this.num=num;
this.discount=discount;
}
public double cost( )
{ double cost=super.price*num*discount;
return cost;
}
}
public class Produce_sales
{ public static void main(String args[ ])
{ Sales s1=new Sales(“洗衣机”,666.99,400,0.9);
Sales s2=new Sales(“电冰箱”,6887.78,70,0.95);
System.out.println(“产品”+ “\t单位价格”+ “\t个数”+ “\t折扣”+ “\t总金额”);
System.out.println(+ “\t”+s1.num+
“\t”+s1.discount+ “\t”+s1.cost());
System.out.println(+ “\t”+s2.num+
“\t”+s2.discount+ “\t”+s2.cost());
}
}
4.利用接口继承完成对Biology(生物)、Animal(动物)、Man(人)三个接口的定义,其中Biology接口定义一个breath()抽象方法,Animal接口定义了sex()和ate()两个抽象方法,Man接口定义了think()和study()两个抽象方法。
定义一个NormalMan 类,显示并实现上述三个接口中定义的抽象方法。
根据程序段1,以NormalMan为类名实现所定义的三个接口,体现是一个有思维、要学习、要吃饭、有性别的活人;主类为InterfaceExtend,定义一个名为李四(对象Li4)的人,将其对应信息显示出来。
interface Biology
{ abstract void breath(); } //生物会呼吸
interface Animal extends Biology
{ abstract void sex(); //动物有性别
abstract void ate(); //要吃饭
}
interface Man extends Animal
{ abstract void think(); //有思维
abstract void study(); //要学习
}
class NormalMan implements Man,Animal,Biology
{ public void breath()
{ System.out.println("Biology have breath");
}
……;
}
class NormalMan implements Man,Animal,Biology
{ private String name;
NormalMan(String name)
{ =name; }
public String getName()
{ return name; }
public void breath()
{ System.out.println(name+":breath with lung"); }
public void sex()
{ System.out.println(name+":have sex"); }
public void ate()
{ System.out.println(name+":need food"); }
public void think()
{ System.out.println(name+":can think something"); } public void study()
{ System.out.println(name+":reading book "); } }
public class InterfaceExtend
{ public static void main(String args[])
{ NormalMan Li4=new NormalMan("李四");
System.out.println("下面是"+Li4.getName()+"的特点:");
Li4.breath();
Li4.sex();
Li4.think();
Li4.study();
}
}。