习题六-参考答案

合集下载

《管理学》习题第六章 决策(参考答案)

《管理学》习题第六章 决策(参考答案)

第六章决策(练习与思考-参考答案)一、单项选择题1. ( )大多由中层管理者来进行,主要是对组织内部的资源进行有效的组织和利用,以提高管理效力。

A. 业务性决策B. 战略性决策C. 战术性决策D. 程序化决策2. 决策树适合下列哪种类型的决策?( )A. 确定型决策B. 非确定型决策C. 风险型决策D. 非程序化决策3. 有一种说法认为“管理就是决策”,这实际上意味着( )。

A. 对于管理者来说只要善于决策就一定能够获得成功B. 管理的复杂性和挑战性都是由于决策的复杂性而导致的C. 决策能力对于管理的成功具有特别重要的作用D. 管理首先需要的就是面对复杂的环境作出决策4. 波士顿矩阵中的瘦狗业务是指( )。

A. 高增长、低市场份额B. 低增长、低市场份额C. 高增长、高市场份额D. 低增长、高市场份额5. 某企业生产某产品,固定成本8万元,单位可变成本每件5元,该产品每件售价13元,则产品的盈亏平衡点产量是( )。

A. 8000件B. 10000件C. 12000件D. 20000件参考答案:1.C; 2.C; 3.D; 4.B;5.B;二、多项选择题1. 以下属于主观决策法的主要有( )。

A. 头脑风暴法B. 发散思维法C. 德尔菲法D. 定量决策法E. 后悔值最小法2. 下列选项中不属于企业短期决策的是( )。

A. 投资方向的选择B. 人力资源的开发C. 组织规模的确定D. 企业日常营销E. 本季度研发支出的投入3. 决策的影响因素有( )。

A. 环境B. 过去的决策C. 决策者的风险态度D. 组织成员对组织变化所持的态度E. 决策者的素质4. 量本利分析法中的所谓“量、本、利”是指( )。

A. 产量B. 成本C. 产出D. 利润E. 利益参考答案:1.ABC; 2.ABC; 3.ABCD; 4.ABD;三、判断题1. 按照决策条件的可控程度,决策可分为程序性决策和非程序性决策者。

( ) 2. 不确定型决策面临的是多种可能的自然状态,可选方案在不同自然状态下的结果不同,未来会出现哪一种自然状态,事前虽难以肯定,但却可以预测其出现的概率。

6习题及参考答案

6习题及参考答案

第六章思考题与练习题 解题参考6-1试比较尖顶、滚子和平底从动件的优缺点。

答:(略)6-2试从冲击的观点来比较等速、等加速等减速、余弦加速度、正弦加速度四种常用运动规律。

答:等速运动——在运动开始和终止的瞬间,由于速度突变,此时理论上的加速度为无穷大(由于材料有弹性变形,实际上不能达到无穷大),其惯性力将引起刚性冲击。

等加速、等减速运动——加速度有突变,但为一有限值,因而产生的惯性力也是有限的,结果对凸轮机构产生柔性冲击。

余弦加速度运动——这种运动规律的从动件在始点、终点有柔性冲击。

正弦加速度运动——加速度没有突变,因而没有冲击,是较理想的变化规律。

6-3滚子半径的选择与理论轮廓的曲率半径有何关系?作图如出现实际轮廓变尖或相交,可以采取哪些措施来加以解决?答:1、对于外凸的凸轮轮廓曲线,应使滚子半径r T 小于理论廓线的最小曲率半径ρmin ,通常取r T ≤0.8ρmin ; 2、加大滚子半径或把凸轮基圆尺寸加大,重新计凸轮轮廓曲线。

6-4何谓凸轮机构的压力角?压力角的大小与凸轮的尺寸有何关系?压力角的大小对凸轮机构的作用力和转动有何影响?答:1、凸轮机构中,从动件运动方向和它受力方向所夹的锐角称为压力角。

2、压力角的大小,与基圆半径成反比,与有效分力的大小成反比。

6-5用反转法原理,求图中凸轮从图示位置转过45°后,从动件与轮廓接触处的压力角值,并标注在图面上。

解:6-6试设计一对心式直动滚子从动件的盘形凸轮,已知凸轮顺时针方向以等角速度回转,凸轮基圆半径为40mm ,滚子半径为15mm ,从动件运动规律为:推程角180°作余弦旋运动,远休止角为30°,回程角120°作等加速等减速运动,近休止角30°,行程为30mm ,试作出从动件位移线图及凸轮轮廓曲线。

解:(略,参考课件例题)6-7如下图所示为润滑油泵的示意图。

活塞由一偏心轮驱动。

(1)绘制活塞的位移曲线。

应用数理统计课后习题参考答案

应用数理统计课后习题参考答案

习题五1 某钢厂检查一月上旬内的五天中生产的钢锭重量,结果如下:(单位:k g)日期重旦量1 5500 5800 5740 57102 5440 5680 5240 56004 5400 5410 5430 54009 5640 5700 5660 570010 5610 5700 5610 5400试检验不同日期生产的钢锭的平均重量有无显著差异? ( =0.05)解根据问题,因素A表示日期,试验指标为钢锭重量,水平为 5.2假设样本观测值y j(j 123,4)来源于正态总体Y~N(i, ),i 1,2,...,5检验的问题:H。

:i 2 L 5, H i : i不全相等.计算结果:注释当=0.001表示非常显著,标记为*** '类似地,=0.01,0.05,分别标记为查表F0.95(4,15) 3.06,因为F 3.9496 F0.95(4,15),或p = 0.02199<0.05 ,所以拒绝H。

,认为不同日期生产的钢锭的平均重量有显著差异2 考察四种不同催化剂对某一化工产品的得率的影响,在四种不同催化剂下分别做试验解根据问题,设因素A表示催化剂,试验指标为化工产品的得率,水平为 4 .2假设样本观测值y j(j 1,2,..., nJ来源于正态总体Y~N(i, ), i 1,2,...,5 .其中样本容量不等,n分别取值为6,5,3,4 .日产量操作工查表 F O .95(3,14) 3.34,因为 F 2.4264 F °.95(3,14),或 p = 0.1089 > 0.05, 所以接受H 。

,认为在四种不同催化剂下平均得率无显著差异3试验某种钢的冲击值(kg Xm/cm2 ),影响该指标的因素有两个,一是含铜量 A ,另一个是温度试检验含铜量和试验温度是否会对钢的冲击值产生显著差异? ( =0.05 )解 根据问题,这是一个双因素无重复试验的问题,不考虑交互作用设因素A,B 分别表示为含铜量和温度,试验指标为钢的冲击力,水平为 12.2假设样本观测值y j (i 1,2,3, j 1,2,3,4)来源于正态总体 Y j ~N (j ,),i 1,2,3,j 1,2,3,4 .记i 为对应于A 的主效应;记 j 为对应于B j 的主效应;检验的问题:(1) H i 。

习题参考答案6-压电式传感器

习题参考答案6-压电式传感器

习题6 六、压电式传感器(一) 习 题6-1. 以钛酸钡为例,在y 轴受到1N/m 2的切应力。

试求出在各方向产生的电荷密度。

答:121111213141516322122232425264331323334353656T T d d d d d d T d d d d d d T d d d d d d T T σσσ⎡⎤⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎣⎦=1524313233000000000000000010d d d d d ⎡⎤⎢⎥⎢⎥⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦其中12121212120000250100002501000781078101901000ij d -----⎡⎤⨯⎢⎥⎡⎤=⨯⎢⎥⎣⎦⎢⎥-⨯-⨯⨯⎣⎦12122111112213314415516615525010125010d T d T d T d T d T d T d T C m σ--∴=+++++==⨯⨯=⨯ 22112222332442552660d T d T d T d T d T d T σ=+++++=33113223333443553660d T d T d T d T d T d T σ=+++++=即在x ,y ,z 轴面上产生的电荷密度分别为250×10-12C/m 2,0,0。

6-2 已知电压前置放大器输入电阻及总电容分别为R i =1MΩ,C i =100pF ,求与压电加速度计相配测量1Hz 的振动时幅值误差为多大?答:对于电压前置放大器,其实际输入电压与理想输入电压之比的相对幅频特性为()()21ωτωτω+=A i i C R =τ f πω2=当被测信号的频率为f=1Hz 时,有()()()421261262103.6101001011211010010112212---⨯=⨯⨯⨯⨯⨯+⨯⨯⨯⨯⨯=+=ππππωi i i i C fR C fR A所以幅值误差为%94.999994.01103.64-=-=-⨯=-δ由此可见测量误差太大了,原因在于输入阻抗太小。

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

其基本结构包括顺序结构、选择结构和循环结构三种。

2.算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。

#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。

图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。

电子电路第六章习题及参考答案

电子电路第六章习题及参考答案

习题六6-1 什么是本征半导体?什么是杂质半导体?各有什么特征?答:所谓本征半导体就是指完全纯净的、结构完整的半导体。

在本征半导体中掺入杂质后的半导体称为杂质半导体。

本征的半导体中的自由电子数量和空穴的数量是相等的,而杂质半导体中根据掺杂的元素不同可分为N 型半导体和P 型半导体,在N 型半导体中电子的浓度远远大于空穴的浓度,而P 型半导体恰恰相反。

6-2 掺杂半导体中多数载流子和少数载流子是如何产生的?答:在本征半导体中,由于半导体最外层有四个电子,它与周边原子的外层电子组成共价键结构,价电子不仅受到本身原子核的约束,而且受到相邻原子核的约束,不易摆脱形成自由电子。

但是,在掺杂的半导体中,杂质与周边的半导体的外层电子组成共价键,由于杂质半导体的外层电子或多(5价元素)或少(3价元素),必然有除形成共价键外多余的电子或不足的空穴,这些电子或空穴,或者由于受到原子核的约束较少容易摆脱,或者容易被其它的电子填充,就形成了容易导电的多数载流子。

而少数载流子是相对于多数载流子而言的另一种载流子,它是由于温度、电场等因素的影响,获得更多的能量而摆脱约束形成的。

6-3,黑表笔插入COM ,红表笔插入V/Ω(红笔的极性为“+”),将表笔连接在二极管,其读数为二极管正向压降的近似值。

用模拟万用表测量二极管时,万用表内的电池正极与黑色表笔相连;负极与红表笔相连。

测试二极管时,将万用表拨至R ×1k 档,将两表笔连接在二极管两端,然后再调换方向,若一个是高阻,一个是低阻,则证明二极管是好的。

当确定了二极管是好的以后就非常容易确定极性,在低阻时,与黑表笔连接的就是二极管正极。

6-4 什么是PN 结的击穿现象,击穿有哪两种。

击穿是否意味着PN 结坏了?为什么? 答:当PN 结加反向电压(P 极接电源负极,N 极接电源正极)超过一定的时候,反向电流突然急剧增加,这种现象叫做PN 结的反向击穿。

击穿分为齐纳击穿和雪崩击穿两种,齐纳击穿是由于PN 结中的掺杂浓度过高引起的,而雪崩击穿则是由于强电场引起的。

操作系统原理 庞丽萍 答案 习题六答案

操作系统原理 庞丽萍 答案 习题六答案

习题六参考答案(P132)6-2某系统进程调度状态变迁图如图6.5所示(设调度方式为非剥夺方式),请说明:(1)什么原因将引起发生变迁2、变迁3、变迁4?(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?(3生?(a ) 图6.5解答:(1)当运行进程在分得的时间片内未完成,时间片到将发生变迁2;当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3;当等待进程等待的事件发生了,将会发生变迁4。

o m PDF dT r i al(2)正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时会立即引起一个就绪进程被调度执行的变迁1。

(3)a .3->1的因果变迁可能发生正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。

b.3->2的因果变迁不可能发生。

c.2->1的因果变迁必然发生正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。

6-3若题2中所采用的调度为可剥夺式,请回答题2中提出的问题: (1)什么原因将引起发生变迁2、变迁3、变迁4?(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?(3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生?(a )3->1;(b )3->2;(c )2->1解答:(1)当运行进程在分得的时间片内未完成,时间片到将发生变 迁2;或者新创建一个进程或一个等待进程变成就绪,它具有比当前进程更高的优先级,也将发生变迁2。

h t tp ://w w w .p d f d o .c o m PDF do P a s s w o r d R e m o v e r T r i al当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。

第六章习题参考答案

第六章习题参考答案

第六章 MCS-51的定时/计数器1. 如果采用晶振的频率为3MHz ,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少? 解答:因为机器周期)(410312126s f T OSC cy μ=⨯==, 所以定时器/计数器工作方式0下,其最大定时时间为)(768.321042261313ms T T C MAX =⨯⨯=⨯=-;同样可以求得方式1下的最大定时时间为262.144ms ;方式2下的最大定时时间为1.024ms 。

2. 定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。

定时时间与时钟频率和定时初值有关。

3. 定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。

4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。

定时1ms 后,又转为计数方式,如此循环不止。

假定MCS-51单片机的晶体振荡器的频率为6MHz ,请使用方式1实现,要求编写出程序。

解:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。

除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。

编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: M OV TMOD,#06H ;定时器/计数器T0为计数方式2 MOV TL0,#156 ;计数100个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮为定时方式的标志位W AIT: AJMP W AITIT0P: CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EA RETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合? 答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为 2,b 的其余元素都为 0.
(3)说明标识符 p 是一个指针数组,它的元素是能指向整型数据的指针。 (4)说明标识符 q 是一个指针,它能指向的是数组,数组的元素是整型的。 (5)说明标识符 u 是一个指针,它能指向的是函数,要求函数有两个整型形参,并返 回整型结果。 (6)说明标识符 v 是一个函数,它有两个整型形参,并返回整型结果。
习题六
1. 举例说明什么是指针?如何让指针指向一个变量? 答: 在 C 语言中,一个程序对象的开始存储地址也是一种数据,这种数据也能存于变量中,这种 数据的类型是一种指针类型。专用于存储指针类型值的变量称为指针变量,简称指针。 设有一个 int 类型的变量 k,一个能存储 int 类型变量指针值的指针变量 intPt,则只要将变 量 i 的地址赋给 intPt,就能让 intPt 指向变量 i,如以下代码所示: Int I, *intPt; //定义整型变量 i 和整型指针变量 intPt intPt = &I; //把变量 i 的地址赋给变量 intPt,使 intPt 指向 i 2. 举例说明指针的定义和引用指针及引用指针所指变量的方法? 答: 以下代码定义两个整型变量 i 和 j,两个整型指针变量 iPt 和 jPt,并让这两个指针变量 iPt 和 jPt 分别指向两个整型变量 i 和 j,然后通过指针变量 iPt 和 jPt 间接引用整型变量 i 和 j。 Int I = 2, j=3, *iPt, jPt; //定义整型变量 i 和 j,整型指针变量 iPt 和 jPt iPt = &I; jPt = &j; //指针变量 iPt 和 jPt 分别指向整型变量 i 和 j *iPt = *jPt+*iPt+5; //使变量 i 的值为 10 iPt = jPt; //让指针变量 iPt 也指向变量 j 3. 举例说明指针与数组名之间的联系与区别。 答: 当指针指向数组的元素时,指针能如同数组哪样使用,由于指针是变量,其值能改变,能使 它指向数组的别的元素。但数组名只能表示数组首元素的指针,并且不能改变。以下代码用 指针求数组元素的和: int a[] = {1, 2, 3, 4, 5}, *pt , s; for(s=0, pt = a; pt <=&a[4]; pt++) s += *pt; 4. 试指出让一个字符指针指向字符串的首字符与用数组存储一个字符串的区别。 答:在 C 语言中,字符串最终存于一个字符数组中。通过数组元素的引用方法,可以引用字 符数组中的字符串的每个字符, 也可通过指向字符串某个字符的字符指针引用字符串的每个 字符, 由于字符指针有简单的运算, 在编写字符串处理程序时, 用字符指针可能更简便一些。 在 C 程序中,程序直接用数组存储字符串时,这个数组一定是程序定义的,如让字符指针指 向字符串首字符, 这个指针所指向的可能是程序定义的字符数组的某个字符, 也可能是程序 中出现的字符串常量的首字符。 5. 指针赋值应注意哪些问题? 答: 给指针赋值有两种可能目的,一是为指针设定初值,二是改变指针的值,让它不再指向原来 它指向的变量,而让它指向另一个变量。对于后者,要防止指针原来所指的如果是一个动态 变量,并且只有这个指针指向它。这样的改变就让哪个动态变量不再有指针指向它。如果发 生这种情况,这上动态变量就成为程序无法访问的变量。
(2)
#include <iostream.h> void main() { float score[][4]={{60, 70, 80, 90}, {50, 60, 70, 80}, 90, 100, 60}}; float *search(float(*pt)[4]); float *p; int k, j; for(k=0; k<4; k++) { p=search(score+k); if(p==*(score+k)) { cout << "No." << k+1 << " SCORE:" << endl; for(j=0; j<4; j++) cout << *(p + j) << " "; cout << endl; } } } float *search(float(*pt)[4]) { int k; float *p=NULL; for(k=0; k<4; k++) if(*(*pt+k)<60) p=*pt; return p; }
for(int**i = ptA; i < ptA+n; i++) if(*i == pt) return *i; return NULL; } void init(int start){//为变量初始化 int **p; for(p = intPtArray; p < intPtArray +6; p++) **p = start++; } 13.用指针编写删除字符串中重复字符的函数。 答: #include <stdio.h> char str[] = "ABCDEFGHABCDEIJKLMNOPQRSTSTUVWXYZUVWCDEFGHIJKGHIJKLMNOPQRST"; char *clearStr(char *s){ char *ch, *p, *q; for(p = q = s; *p; p++){ for(ch = s; ch < q; ch++) if(*ch == *p) break; if(ch == q) *q++ = *p; } *q = '\0'; return s; } void main(){ printf("%s\n", clearStr(str)); } 14.分别编写 4 个函数,计算两个整数的和、差、积、商。主函数提供一个菜单,能让使用 者指定运算, 主函数根据用户的指定选取函数的指针, 并以函数指针为实参调用计算函 数 execute()完成计算。 答: #include <stdio.h> double add(double x, double y){ return x+y; } double sub(double x, double y){ return x-y; } double mul(double x, double y){ return x*y;
6. 什么情况下需要为函数设置指针形参? 答: 在 C 程序中,通过函数调用改变调用环境中的变量值有 3 种常用方案。一是使用全局变量, 函数执行直接改变全局变量。 这种有副作用的方案是程序设计中使用最少的。 二是由调用环 境把函数调用的返回结果保存于某个变量中, 这种函数本身不直接影响调用环境的方案是程 序设计使用最多的,因为这种方案程序安全性最好,这样的程序也最容易调试。三是函数设 置指针形参, 函数调用将值可能要改变的变量的指针传递给函数的指针形参, 而函数通过指 针形参间接引用环境中的变量,可以访问其值,也可改变其值。 与第一种方案相比较, 第三种方案比较明确, 并且更灵活。 当函数要改变调用环境中的变量, 并且可由调用者随意指定时,就需要设置指针形参。 对应 C 语言的第 3 种方案,在 C++程序中,函数可设置引用形参,其优点是在书写形式上较 C 语言的指针形参更简便。函数内不再简接引用形参所指的变量,调用时也不再需要提供变 量的指针,直接用变量名即可。 7. 函数指针有何作用? 答: 由于函数指针也是变量,能让它在不同时刻指向不同的函数,这样,同样的函数间接调用代 码能调用不同的函数。 8. 如何使用函数指针? 答: 在相对比较复杂的情况,函数要调用别的函数,并且这个被调用的函数能由调用环境指定, 函数就需要设置函数指针形参。调用这样的函数时,需提供一个函数指针,被调用函数就可 利用这个函数指针简接调用函数。例如,迭代法求实函数根的函数,迭代法求根函数是按求 根算法编写的函数, 一般的实函数都能用这个函数求根, 则这个求根函数应有一个函数指针 形参。 9. 试指出以下代码的意义: (1)int a[10]; (2)int b[][3]={{1}, {}, {}, {4, 2}}; (3)int *p[]; (4)int (*q)[]; (5)int (*u)(int, int); (6)int *v(int, int); (7)int *(*w)(int, int); 答: (1)定义有 10 个整型数据组成的数组,数组的名为 a; (2) 定义一个 4 行 3 列的两维整型数组 b, 并初始化为 b[0][0]为 1, b[3][0]为 4,b[4][1]
答: (1) ABCD A UVW Z (2) No.2 SCORE: 50 60 70 80
No.3 SCOPE: 90 88 35 77 11.有若干个学生,每人考 4 门课程,设用二维数组存储学生的成绩,二维数组的一行对应 一个学生的成绩,每行的第一个数是学生的学号。试以此数据结构为基础,编写两个函 数。一个是已知成绩表和学号,返回该生成绩表的函数。另一个是已知某个学生表,输 出学生学号和成绩的函数。要求两个函数采用指针编写。 答: #include <stdio.h> typedef int (*sTbl)[5];//单个学生成绩单类型 int scoreTbl[][5] = { //全体学生成绩表 {1, 50, 60, 70, 80}, {2, 60, 70, 80, 90}, {3, 70, 80, 90, 100} }; /* 已知成绩表和学号,返回该生成绩表的函数。 */ int* searchSTbl(int allSTbl[][5], int n, int no){ for(sTbl i = (sTbl)allSTbl[0]; i <= (sTbl)allSTbl[n-1]; i++) if(**i == no) return *i; return NULL; } /* 已知某个学生成绩单,输出学生学号和成绩的函数。 */ void outScore(int * spt) { if(spt == NULL) return; printf("学号:%d\n", *spt); for(int *p = spt+1;p < spt+5; p++) printf("课目%d:%d\n", p - spt, *p); } void main(){ int n; printf("输入学生的学号: "); scanf("%d", &n); outScore(searchSTbl(scoreTbl, 3, n)); } 12.用指针编写在数组中查找指定值指针的函数。 答: int a, b, c, x, y, z; int *intPtArray[] = { &a, &b, &c, &x, &y, &z};//一个预定义的指针数组 int *searchPt(int *ptA[], int n, int *pt){ //在数组中查找指定值指针的函数
相关文档
最新文档