首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序,将应填入(n)处。 [说明] 某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表1)。该表粗略地描述了曲线Ratio(t
阅读以下说明和C程序,将应填入(n)处。 [说明] 某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表1)。该表粗略地描述了曲线Ratio(t
admin
2008-04-03
35
问题
阅读以下说明和C程序,将应填入(n)处。
[说明]
某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表1)。该表粗略地描述了曲线Ratio(temp)。
校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要用更多的列表值细致地描述曲线K(temp),如表2所示。在表2中,各温度值所对应的K值是对表1进行线性插值再求倒数得到的,具体的计算方法如下:
1.根据temp值,在表1中用二分法查找;
2.若找到相应的温度值,则按相应的Ratio值求倒数得到K值:
3.若没找到相应的温度值,则可确定temp所在的温度区间[Tp1, Tp2],同时获得了相应的Ratio1和Ratio2,再按如下公式计算K值:
Step=(Ratlo1-Ratio2)/(Tp1-Tp2)
K=1.0/(Ratio1+Step*(temp-Tp1))
在程序中,当temp高于50℃或低于-40℃时,设定K=0。
[程序]
#include <stdio.h>
typedef struct {
int Temp; /*环境温度*/
double Ratio; /*传感器的输出值*/
}CURVE;
#define ITEMS 7
double GetK(int, CURVE*, int);
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);
}
}
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)));
}
选项
答案
(1)(low+high)/2 (2)1.0/(p+m)->Ratio (3)m+1 (4)(p+1)->Ratio-p->Ratio (5)Temp-p->Temp
解析
本题考查了线性插值计算及二分查找。
函数GetK(int Temp,CURVE *p,int n)用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值,表中的元素已经按照温度值有序排列。进行二分查找时,首先计算表的中间位置,即[(low+high)/2],若待查元素等于中间位置上的元素,则查找成功并结束查找过程;若待查元素大,则在后半区间([m+1,high])继续进行二分查找:否则,在前半区间(pow,m-1])进行二分查找。如下图所示。
以查找温度值-25为例,由于-25<0,因此设置下一个查找区间为[0,2],如下图所示。
由于-25<-20,所以取high等于m-1,进一步,由于-25>-40,所以取low等于 m+1,如下图所示,至此,由于查找区间为空(10w>high),则可确定查找失败。
因此,空(1)处应填入“(low+high)/2”,空(3)处应填入“m+1”。根据题干的描述,若找到相应的温度值,则按相应的Ratio值求倒数得到K值,因此空(2)处应填入“1.0/(p+m)->Ratio”。若未找到相应的温度值,则结束查找时low>high。
根据题干中描述的线性插值再求倒数计算方法和p+=high:可得到计算Step和K的算式:
Step=((p+1)->Ratio-p->Ratio)/(Tp1-Tp2)
K=1.0/(p->Ratio+Step*(Temp-p->Temp))
转载请注明原文地址:https://kaotiyun.com/show/IsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
小张承担了某信息处理项目,在完成之日向领导做了汇报,将计划进度与实际进度画出了如下两条曲线:从该图可以看出,与计划进度相比,实际进度(69)。
在Windows7中,剪贴板是用来在程序和文件间传递信息的临时存储区,此存储区是______。
一个完整的计算机系统由______组成。
设有关系R、S、T如下所示,则________。
打开一个命名为1.PPT的文件,修改后另存为2.PPT,则______。
信息系统设计方案中的操作界面部分,特别是输入界面设计方案需要征求信息处理技术员的意见。在如下设计理念中,(66)是不正确的。
标准化的作用不包括________________。
阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本,将应填入(n)处的语句对应栏内。[说明]这是一个修改字符串的题目,此题中将字符串“hello,Iamnotastudent,Idonotlikecompute
阅读下列说明和HTML文本,分析其中嵌入的JavaScript脚本,[说明]这是一个修改字符串的题目,此题中将字符串“hello,Iamnotastudent,Idonotlikecomputer!”中的"not"去掉,并在
随机试题
我国刑罚的一般预防对象不包括()
全身最粗大的脊神经是()
前列腺增生最主要的症状是
某施工企业结合自身情况确定砌筑“1砖混水砖墙”子目中人工消耗量。已知砌筑小组由3名工人组成,在正常施工条件下,经测算完成10m3砖墙砌筑耗时40小时。则在正常施工条件下,砌筑10m3“1砖混水砖墙”的劳动定额为()工日。
有线电视系统室内应设置共同接地线,所有室内设备均应良好接地,接地电阻小于3Ω,接地线可用钢材或铜导线,接地体要求用(),规格根据接地电阻而定。
备受世人瞩目的世界第一高楼“上海环球金融中心”于2007年9月顺利封顶,并进入紧张的后期施工阶段。中建三局作为“上海环球金融中心”的承建商,必须保证暖通空调的安装和运行达到设计标准的节能、绿色的要求。暖通空调在组装完成之后必须进行调试,来检验施工的效果。德
生物反馈法源于()。
环境保护部副部长张力军在回答记者提问时说,我国传统的污染物排放量仍然很大,超过我国的环境容量,致使一些地区环境质量达不到国家规定的标准。随着经济的快速发展,一些新的环境问题不断产生,特别是危险化学品、持久性有机污染物、电子垃圾等。我国水和大气的环境问题还没
2009年7月,全国粗钢产量同比增长12.6%,增速比上月提高6.6个百分点;钢材产量同比增长19.4%,增速比上月提高5.4个百分点;焦炭产量同比增长6.3%;铁合金产量同比增长15.1%。钢材出口181万吨,比上月增加38万吨;进口174万吨,比上月
TheFrenchgovernmentistobanstudentsfromusingmobilephonesinthecountry’sprimary,juniorandmiddleschools.Children
最新回复
(
0
)