首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。 [说明] 某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-
阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。 [说明] 某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-
admin
2009-02-15
34
问题
阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。
[说明]
某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-10表格所示)。表4-10粗略地描述了曲线Ratio(temp)。
校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,需要用更多的列表值细致地描述曲线K(temp),如表4-11所示。
在表4-11中,各温度值所对应的K值是对表4-10进行线性插值再求倒数得到的,具体的计算方法如下。
1) 根据temp值,在表4-10中用二分法查找;
2) 若找到相应的温度值,则按相应的Ratio值求倒数得到K值;
3) 若没找到相应的温度值,则可确定temp所在的温度区间[Tp1,Tp2],同时获得了相应的Ratio1和 Ratio2,再按如下公式计算K值:
在程序中,当temp高于50℃或低于-40℃C时,设定K=0。
[C程序]
#include
typedef struct {
int Temp; /* 环境温度 */
double Ratio; /* 传感器的输出值 */
}CURVE;
#define ITEMS 7
double GetK(int Temp,CURVE *p,int n)
{ /* 用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值 */
int low, high, m;
double Step;
low = 0;
high = n-1;
if ((Temp<p->Temp) || (Temp>(p+high)->Temp))
return 0.0; /* 超出温度范围时返回 0.0 */
while (low<=high)
{ m=(1);
if (Temp==(p+m)->Temp)
return (2);
if (Temp<(p+m) >Temp)
high=m-1;
else
low=(3);
}
p+=high;
Step=( (4) )/((p+1)->Temp-p->Temp);
return 1.0/ (p->Ratio + Step*( (5) ) ;
}
void main()
{ int Degree;
double k;
CURVE Curve [ITEMS]={{-40,0.2},{-20,0.60.},{-10,0.8},{0,1.0},{10,1.17},{30,1.50},{50,1.8}};
printf ("环境温度 校正系数\n");
for (Degree=-40;Degree<=50;Degree++)
{ k=GetK ( Degree, Curve, ITEMS);
printf("%3d %4.2f\n",Degree,k);
}
}
选项
答案
这是一道要求读者掌握线性插值计算及二分查找算法的C语言程序设计题。本题的解答思路如下。 1) 试题中已给出函数GetK(intTemp,CURVE *p,int n)用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值,表中的元素已经按照温度有序排列。 2) 结合本题的应用背景,二分查找算法是指先计算表的中间位置,即[(low+high)/2],若待查元素等于中间位置上的元素,则查找成功并结束查找过程;若待查元素大,则在后半区间([m+1,high])继续进行二分查找:否则,在前半区间(low,m-1])进行二分查找,如图4-17所示。本试题中low=0,m=3,high=6。 [*] 图4-17 二分查找算法示意图1 3) 以查找温度值20℃C为例,由于20℃>0℃,因此设置下一个查找区间为([m+1,high)),即[4,6],如图4—18所示。 [*] 图4-18 二分查找算法示意图2 4) 由于20℃<30℃,因此取high等于m-1,即下一个查找区间为([low,m-1]),即[4,5]。再进一步分析,由于20℃>10℃,因此取low等于m+1,即再下一个查找区间为[5,5]。而查找区间[5,5]上的数据30≠20,至此可确定此次查找失败,即如图4-19所示。 [*] 图4-19 二分查找算法示意图3 5) 由以上分析可知,(1)空缺处应填入“(low+high)/2”。 6) 程序中“if(Temp==(p+m)->Temp)”语句用于判断是否找到相应的温度值,若找到,则执行“return (2)”语句以返回相应温度的校正系数K。由试题关键信息“若找到相应的温度值,则按相应的Ratio值求倒数得到K值”可推理出,(2)空缺处应填入“1.0/(p+m)->Ratio”。 7) 当“if(Temp==(p+m)->Temp)”语句的判断条件不满足时,将执行“if(Temp<(p+m)->Temp)”判断语句。若待查元素小,将执行“high=m-1;”语句,即在前半区间([low,m-11)进行二分查找。若待查元素大,则在后半区间([m+1,high],继续进行二分查找,因此else语句中则需将“low”指针向上移动,即执行“low=m+1”语句。 8) 根据题干中给出的计算式子“Step=[*]”,以及题目中要求线性插值再求倒数得到K值可推理出(4)空缺处应填入“(p+1)->Ratio-p->Ratio”。 9) 同理,根据题干中给出的计算式子“[*]”可推理出,(5)空缺处应入“Temp-p->Temp”。
解析
转载请注明原文地址:https://jikaoti.com/ti/WvW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
下列软件中,(35)可以完成文件压缩和还原。
PowerPoint内置的动画效果中,不包括(60)。
对用户来说,信息系统的(14)反映了系统的功能。
在Excel2007中,设单元格A1中的值为-1,B1中的值为1,A2中的值为0,B2中的值为1,若在C1单元格中输入函数“=IF(AND(A1>0,B1>0),A2,B2)”,按回车键后,C1单元格中的值为______。
在调查某地区各类用户所喜欢的电视栏目时,信息处理技术员小王制作了用户类(U)与电视栏目(V)关系图。下面的示意图描述了五类用户(从上到下U1~U5)与四个电视栏目(从上到下V1~V4)之间的关系:如果某类用户大多喜欢某个电视栏目,则在它们之间画一条连线。从
(31)________________接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
在PowcrPoint2010中,幻灯片________________是一张特殊的幻灯片,包含已设定格式的占位符。这些占位符是为标题、主要文本和所有幻灯片中出现的背景项目而设置的。
将四个元素a,b,c,d分成非空的两组,不计组内顺序和组间顺序,共有()种分组方法。
抽样调查是收集数据的重要方法之一。抽样调查所遵循的原则不包括______。
在Windows7中,若删除桌面上某个应用程序的快捷方式图标,则(31)。
随机试题
立体底面为抛物线y=x2与直线y=1围成的平面图形,如图10-13所示.而任一垂直于y轴的截面分别是:(1)正方形(见图a);(2)等边三角形(见图b);(3)半圆形(见图c).求这三种情形下立体的体积.
Thispassagedealsmostlywith______.Thepassageimpliesthattherearemanysenseswe______.
女性,36岁,因胆囊结石行胆囊切除术.术后5天出现右小腿肿胀、可凹陷性水肿,腓肠肌压痛,诊断为右下肢深静脉血栓形成。其深静脉血栓的性质是
中药品质变异现象之一是
某政府投资的工程建设项目组织工程施工招标,招标人共受理了24份投标文件。开标后,招标人在开标现场外约12km处选择了一个宾馆组织封闭评标。如评标委员会人数为7人,怎样组建本项目评标委员会?
注销税务登记时,应遵循一定的程序。下列各项中,属于注销税务登记程序的有()。
某市财政局对某公司执行《会计法》情况进行检查,发现存在如下事项:(1)为充实会计科力量,公司从外地招聘了一名会计人员李某,李某持有外地的会计从业资格证书,其相关的会计从业资格相关档案尚未调入该公司所在地财政部门,经查,李某的会计从业资格相关档案调
某工业企业是增值税一般纳税人,2009年2月,该企业销售自己使用过的汽车,取得不含税销售收入10万元,该汽车在2007年购入时的原值为20万元。该辆汽车在企业的固定资产目录内并按固定资产进行管理,则该企业该笔业务应该缴纳的增值税为()。
鲁迅先生曾于1927年在《无声的中国》一文中写到:“中国人的性情总是喜欢调和、折中的,譬如你说,这屋子太暗,说在这里开一个天窗,大家一定是不允许的,但如果你主张拆掉屋顶,他们就会来调和,愿意开天窗了。”这种先提出很大的要求,接着提出较小较少的要求,在心理学
某芭蕾舞练习室有4个女孩和2个男孩,他们的年龄各不相同,最大的10岁,最小的4岁。最大的男孩比最小的女孩大4岁,最大的女孩比最小的男孩也大4岁。由此可以推出的是()。
最新回复
(
0
)