下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 程序员2007年1107xcxyx

程序员2007年1107xcxyx.doc

程序员2007年1107xcxyx

lastwar
2018-09-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《程序员2007年1107xcxyxdoc》,可适用于IT/计算机领域

全国计算机技术与软件专业技术资格(水平)考试年下半年程序员下午试卷(考试时间:~:共分钟)请按下述要求正确填写答题纸在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。在答题纸的指定位置填写准考证号、出生年月日和姓名。答题纸上除填写上述内容外只能写解答。本试卷共道题试题一至试题四是必答题试题五至试题七选答道。每题分满分分。试题号一~四五~七选择方法必答题解答时字迹务必清楚字迹不清时将不评分。仿照下面例题将解答写在答题纸的对应栏内。例题年下半年全国计算机技术与软件专业技术资格(水平)考试日期是()月()日。因为正确的解答是“月日”故在答题纸的对应栏内写上“”和“”(参看下表)。例题解答栏()()试题一(共分)阅读以下说明和流程图填补流程图中的空缺()~()将解答填入答题纸的对应栏内。说明某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次。下面流程图的功能是:在n(n≥)个数据D、D、…、Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上。该流程图的算法如下:第个数据必然被选出然后从第个数据开始逐个考察其余的数据。假设D、D、…、Dm(m≥)是已经选出的、不重复的数据则对于数据Di(m<i≤n)将其依次与Dm、Dm、…、D进行比较若没有发现与之相同者则Di被选出并置于Dm的位置上否则对Di不做处理。例如如下个数据:(n=)经过上述算法处理后的结果为:(k=)流程图MDMM←M注:循环开始的说明按照“循环变量名:循环初值循环终值增量”格式描述。试题二(共分)阅读以下说明和C语言函数将应填入(n)处的字句写在答题纸的对应栏内。说明已知年月日是星期一下面的函数count(intyear)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是日又是星期五的日期。函数count(intyear)首先算出年份year的月日是星期几然后依次计算每个月的日是星期几若是星期五则计数。程序中使用了函数isLeapYear(intyear)其功能是判断给定年份是否为闰年返回值为(或)分别表示year是(或不是)闰年。C语言函数intcount(intyear){intdate*date为表示星期日为~分别表示星期一至星期六*longdays=*days记录天数*intm,y,c=*c用于表示黑色星期五的个数*if(year<)return*计算从年月日起至给定年份year的月日间隔的天数*days=for(y=y<yeary){days=if(isLeapYear(y))()daysdays=days=days}date=((days))*算出给定年份year的月日是星期几*c=(()date==):for(m=()m<m){switch(m){case:case:case:case:case:case:case:days=breakcase:case:case:case:days=breakcase:days=if(()isLeapYear(year)或year==year!=||year==)days=break}*endofswitch*date=((days)()date)if(date==)c}*endoffor*returnc}试题三(共分)阅读以下说明和C语言程序将应填入(n)处的字句写在答题纸的对应栏内。说明某电信公司记录了每个用户的详细通话情况(每次通话数据记录在一行)现将某用户某月的通话数据存入一个文本文件“dialtxt”其数据格式如下:  拨入或拨出标记通话开始时间通话结束时间对方号码  注:数据字段以一个空格作为分隔符。注:拨入和拨出标记均为小写字母。拨入标记为“i”表示其他用户呼叫本机本机用户不需付费拨出标记为“o”表示本机呼叫其他用户此时本机用户需要付费。注:通话开始和结束时间的格式均为:HH:MM:SS。其中HH表示小时取值~MM表示分钟取值~SS表示秒取值~。从通话开始到结束这段时间称为通话时间假定每次通话时间以秒为单位最短为秒最长不超过小时。注:跨月的通话记录计入下个月的通话数据文件。  例如“o::::…”表示本次通话是本机呼叫其他用户时间从时分秒至次日的时分秒通话时间为分秒。下面程序的功能是计算并输出该用户本月电话费(单位:元)。  通话计费规则为:月通话费按每次通话费累加每次的通话费按通话时间每分钟元计算不足分钟时按分钟计费。对于每次的拨出通话程序中先分别计算出通话开始和结束时间相对于当日点分秒的时间长度(以秒为单位)然后算出本次通话时间和通话费。例如若输入文件dialtxt的数据如下所示则输出fee=。o::::i::::o::::o::::C程序代码#include<stdioh>FILE*finintmain(){charstrinth,h,m,m,s,slongtstart,tend,intervalintcdoublefee=fin=fopen("dialtxt","r")if(!fin)returnwhile(!feof(fin)){if(!fgets(str,,fin))breakif(()str=='i'或*str=='i')continueh=(str)*strm=(str)*strs=(str)*strh=(str)*strm=(str)*strs=(str)*strtstart=h**m*s*通话开始时间*tend=h**m*s*通话结束时间*if(()tend<tstart)*若通话开始和结束时间跨日*interval=()**tstarttendelseinterval=tendtstartc=()interval*计算完整分钟数表示的通话时间*if(interval)()cc=c=cfee=c*}fclose(fin)printf("fee=lfn",fee)return}试题四(共分)阅读以下说明和C语言函数将应填入(n)处的字句写在答题纸的对应栏内。说明已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序函数compress(NODE*head)的功能是去掉其中重复的元素使得链表中的元素互不相同。处理过程中当元素重复出现时保留元素第一次出现所在的结点。图(a)、(b)是经函数compress()处理前后的链表结构示例图。图链表的结点类型定义如下:typedefstructNode{intdatastructNode*next}NODEC语言函数voidcompress(NODE*head){NODE*ptr,*qptr=()head>next*取得第一个元素结点的指针*while(()ptrptr>next){q=ptr>nextwhile(q()q>data==ptr>data或ptr>next>data==ptr>data){*处理重复元素*()ptr>next=q>nextfree(q)q=ptr>next}()ptr=ptr>next}*endofwhile*}*endofcompress*试题五(共分)阅读下列说明、图和C代码回答问题至问题将解答写在答题纸的对应栏内。说明已知四个类之间的关系如图所示分别对每个类的方法进行编号例如Shape的perimeter()方法为号表示为“:perimeter()”Rectangle类的perimeter()为号表示为“:perimeter()”依此类推其中每个类的perimeter方法都为虚函数且方法签名相同。图类图C代码Triangle*tr=newTriangle()Square*sq=newSquare()Shape*sh=tr问题关于上述C代码中sh和tr的以下叙述中哪两个是正确的(①⑤)。①sh和tr分别引用同一个对象②sh和tr分别引用同一类型的不同的对象③sh和tr分别引用不同类型的不同对象④sh和tr分别引用同一个对象的不同拷贝⑤sh和tr所引用的内存空间是相同的。问题写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用请填写“无”)。tr>height()()sh>perimeter()()sq>height()()无sq>perimeter()()sh>height()()无tr>perimeter()()问题不考虑内存释放问题下列赋值语句中哪两个是合法的(写出合法赋值语句的②⑤)。①sq=sh②sh=tr③tr=sq④sq=tr⑤sh=sq试题六(共分)阅读以下应用说明以及VisualBasic程序代码将应填入(n)处的字句写在答题纸的对应栏内。应用说明某电视台拟开发应用程序来显示戏曲大赛中~号四位选手决赛的现场投票情况。该程序从现场观众中(不超过人)每秒收集一次对这四位选手的支持票数并在屏幕上动态显示这四位选手的票柱(以高度反映票数)与累计得票数如图所示。投票过程限时秒每名观众最多为名选手投票。投票结束后系统通过比较各位选手的累计得票数显示决赛结果:“*号胜出”(如有单个冠军)或“继续进行PK”(如有多人获得相同的最高票数)。图在开发该程序的过程中创建的主要控件及其初始属性值说明如下:控件名类型用途初始属性设置ShpM(to)形状数组显示各选手得票情况矩形实心高度txtM(to)文本框数组显示各选手得票数cmdStart命令按钮启动计票标题:开始投票txtResult文本框显示决赛结果空Tim计时器每半秒收集处理一次间隔时间秒关闭状态该程序中设置公共变量T动态记录投票时间。四个形状ShpM(to)动态增长的底线固定。VisualBasic程序代码DimTAsInteger'声明全局变量PrivateSubFormLoad()Fori=ToShpM(i)Top=:ShpM(i)Height='初始票柱高度为TxtM(i)Text=NextiTimEnabled=False:TimInterval=:T=EndSubPrivateSubCmdStartClick()TimEnabled=True'开始投票CmdStartEnabled=FalseEndSubPrivateSubTimTimer()Dimn(To)AsInteger'n(to)为每次收集的票数DimiAsInteger,jAsIntegerDimGAsInteger'G用于计算最高票数DimngAsInteger'ng用于计算冠军个数Fori=Ton(i)=…'收集i号选手的票数此处省略TxtM(i)Text=TxtM(i)Textn(i)'累计票(VB能进行自动转换)ShpM(i)Top=ShpM(i)Topn(i)ShpM(i)Height=ShpM(i)Height()n(i)'算出票柱高度NextiT=T'计时IfT=Then'投票时间到()TimEnabled=False'停止数据收集处理ng=G=TxtM()TextFori=ToIfG<TxtM(i)TextThenG=TxtM(i)Textng=()j=iElseIfG=TxtM(i)TextThenng=()ng'计算冠军个数EndIfNextiIfng=ThentxtResultText=()Str$(j)"号胜出"或Str(j)"号胜出"'单个冠军结果ElsetxtResultText="继续进行PK"EndIfEndIfEndSub试题七(共分)阅读下列说明、图和Java代码回答问题至问题将解答写在答题纸的对应栏内。说明已知四个类之间的关系如图所示分别对每个类的方法进行编号例如Shape的perimeter()为号表示为“:perimeter()”Rectangle类的perimeter()为号表示为“:perimeter()”依此类推其中每个类的perimeter方法签名相同。图类图Java代码Triangletr=newTriangle()Squaresq=newSquare()Shapesh=tr问题关于上述Java代码中sh和tr的以下叙述中哪两个是正确的(①⑤)。①sh和tr分别引用同一个对象②sh和tr分别引用同一类型的不同的对象③sh和tr分别引用不同类型的不同对象④sh和tr分别引用同一个对象的不同拷贝⑤sh和tr所引用的内存空间是相同的。问题写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用请填写“无”)。trheight()()shperimeter()()sqheight()()无sqperimeter()()shheight()()无trperimeter()()问题下列赋值语句中哪两个是合法的(②⑤ )。①sq=sh②sh=tr③tr=sq④sq=tr⑤sh=sq从下列道试题(试题五至试题七)中任选道解答。如果解答的试题数超过道则题号小的道解答有效。:height():perimeter():perimeter()SquareTriangleRectangleShape:perimeter():perimeter():perimeter()SquareTriangleRectangleShape:height():perimeter():perimeter():perimeter()�EMBEDVisioDrawing���年下半年程序员下午试卷第页(共页)vsd�����m←()n>�循环开始i:(),n,循环结束输出处理结果�YN主控循环开始j:(),,Di=Dj()←Di()循环结束返回NY返回处理数据Di处理数据Di�vsd

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/12

程序员2007年1107xcxyx

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利