首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
通常,文件的逻辑结构可以分为两大类:无结构的流式文件和有结构的 (164) 。 (165) 组 织方式,既适合于交互方式应用,也适合于批处理方式应用。
查看本题答案
包含此试题的试卷
初级程序员《简单单选》真题及答案
点击查看
你可能感兴趣的试题
从逻辑上可以把数据结构分为两大类
动态结构、静态结构
顺序结构、链式结构
线性结构、非线性结构
初等结构、构造型结构
通常文件的逻辑结构可以分为两大类无结构的1和有结构的记录式文件2组织方式既适合与以交互方式应用也适合
堆文件
流式文件
索引顺序文件
顺序文件
数据的逻辑结构有线性结构和______两大类
数据结构按逻辑结构可分为两大类它们分别是和
通常文件的逻辑结构可以分为两大类无结构的流式文件和有结构的记录式文件______组织方式既适合于交互
堆文件
流式文件
索引顺序文件
顺序文件
通常文件的逻辑结构可以分为两大类无结构的13 和有结构的记录式文件14 组织方式既适
堆文件
流式文件
索引文件
直接(Has文件
操作系统的文件系统中若按逻辑结构划分可将文件划分成【7】和记录式文件两大类
通常文件的逻辑结构可以分为两大类无结构的______和有结构的记录式文件______组织方式既适合与
堆文件
流式文件
索引顺序文件
顺序文件
通常文件的逻辑结构可以分为两大类无结构的和有结构的记录式文件组织方式既适合于交互方式应用也适合
堆文件
顺序文件
索引顺序文件
流式文件
通常文件的逻辑结构可以分为两大类无结构的13 和有结构的记录式文件14 组织方式既适
堆文件
流式文件
索引顺序文件
顺序文件
通常文件的逻辑结构可以分为两大类无结构的1和有结构的记录式文件2组织方式既适合与以交互方式应用也适合
堆文件
流式文件
索引文件
直接(Hash)文件
通常文件的逻辑结构可以分为两大类无结构的流式文件和有结构的164165组织方式既适合于交互方式应用也
堆文件
顺序文件
索引顺序文件
流式文件
文件的逻辑结构可以分为两大类无结构的和有结构的记录式文件组织方式既适合于交互方式应用也适合于批
堆文件
流式文件
索引文件
直接文件
文件的逻辑结构可以分为两大类无结构的和有结构的记录式文件组织方式既适合于交互方式应用也适合于批
堆文件
流式文件
顺序文件
索引顺序文件
通常文件的逻辑结构可以分为两大类无结构的______和有结构的记录式文件______组织方式既适合与
堆文件
流式文件
索引文件
直接(Hash)文件
分时操作系统的主要特征之一是提高了13实现不同的作业处理方式如批处理分时处理实时处理等主要是基于操作
堆文件
流式文件
索引文件
直接(Hash)文件
通常文件的逻辑结构可以分为两大类无结构的和有结构的记录式文件组织方式既适合于交互方式应用也适合
索引文件
流式文件
堆文件
直接(Hash)文件
数据结构按照逻辑关系的不同可以分为两大类
树结构和链表结构
队列结构和非线性结构
线性结构和非线性结构
堆栈结构和链表结构
分时操作系统的主要特征之一是提高了13实现不同的作业处理方式如批处理分时处理实时处理等主要是基于操作
堆文件
流式文件
索引顺序文件
顺序文件
热门试题
更多
[说明]已知1900年1月1日是星期一下面的函数count_5_13intyear用于计算给定的年份year中有几个黑色星期五黑色星期五指既是13日又是星期五的日期函数count_5_13intyear首先算出年份year的1月13日是星期几然后依次计算每个月的13日是星期几若是星期五则计数程序中使用了函数isLeapYearintyear其功能是判断给定年份是否为闰年返回值为1或0分别表示year是或不是闰年[C语言函数]intCount_5_13intyearintdate;/*date为0表示星期日为1~6分别表示星期一至星期六*/longdays=0;/*days记录天数*/intmyc=0;/*c用于表示黑色星期五的个数*/ifyear<1900return-1;/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/days=12fory=1900;y<year;y++days+=365;ifiSLeapYearY1;date=days%7+1%7;/*算出给定年份year的1月13日是星期几+/c=21:0;form=1;3;m++switchmcase1:case3:case5:case7:case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;break;case2:days=28;if4days=29;break;/*endofswitch*/date=days%7+5%7;ifdate==5c++;/*endoffor*/returnc;
[说明]下面的程序按照以下规则输出给定名词的复数形式1若名词以y结尾则删除y并添加ies2若名词以sch或sh结尾则添加es3其他所有情况直接添加s[C程序]#include<stdio.h>#include<string.h>char*pluralchar*wordintn;char*pstr;n=strlenword;/*求给定单词的长度*/pstr=char*mallocn+3;/*申请给定单词的复数形式存储空间*/if!pstr||n<2returnNULL;strcpypstrword;/*复制给定单词*/if1pstr[n-1]=’i’;pstr[n]=’e’;pstr[n+1]=’s’;2;elseifpstr[n-1]==’s’||pstr[n-1]==’h’&&3pstr[n]=’e’;pstr[n+1]=’s’;pstr[n+2]=’/0’;elsepstr[n]=’s’;pstr[n+1]=’/0’;4;maininti;char*ps;charwc[9][10]=chairdairybosscircusflydogchurchcluedish;fori=0;i<9;i++ps=5;printf%s:%s/nwc[i]ps;/*输出单词及其复数形式*/freeps;/*释放空间*/systempause;
[说明]已知1900年1月1日是星期一下面的函数count_5_13intyear用于计算给定的年份year中有几个黑色星期五黑色星期五指既是13日又是星期五的日期函数count_5_13intyear首先算出年份year的1月13日是星期几然后依次计算每个月的13日是星期几若是星期五则计数程序中使用了函数isLeapYearintyear其功能是判断给定年份是否为闰年返回值为1或0分别表示year是或不是闰年[C语言函数]intCount_5_13intyearintdate;/*date为0表示星期日为1~6分别表示星期一至星期六*/longdays=0;/*days记录天数*/intmyc=0;/*c用于表示黑色星期五的个数*/ifyear<1900return-1;/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/days=12fory=1900;y<year;y++days+=365;ifiSLeapYearY1;date=days%7+1%7;/*算出给定年份year的1月13日是星期几+/c=21:0;form=1;3;m++switchmcase1:case3:case5:case7:case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;break;case2:days=28;if4days=29;break;/*endofswitch*/date=days%7+5%7;ifdate==5c++;/*endoffor*/returnc;
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
[说明]函数countmonthsDATEstartDATEend的功能是计算两个给定日期之间所包含的完整月份数该函数先算出起止日期中所含的完整年数再计算余下的完整月份数规定两个相邻年份的同月同日之间的问隔为1年例如2007.5.30—2008.5.30的间隔为1年若相邻两年中前一年是闰年并且日期是2月29日则到下一年的2月28日为1年即2008.2.29—2009.2.28的间隔为1年规定两个相邻月份的相同日之间的间隔为1个月但需要特别考虑月末的特殊情况例如2007.1.29—2007.2.28的间隔为1个月同理2007.1.30—2007.2.282007.1.31—2007.2.28的间隔都是1个月计算起止日期间隔不足一年的完整月份数时分两种情况1起止日期不跨年度先用终止日期的月号减去起始日期的月号得到月份数然后再根据情况进行修正例如起止日期为2008.3.31—2008.9.20通过月号算出月份数为6修正时通过调用函数makevalid将2008.9.31改为2008.9.30与终止日期2008.9.20比较后将月份数修正为52起止日期跨年度计算方法如下例所示对于起止日期2008.7.25—2009.3.31先计算2008.7.25—2008.12.25的月份数为5再算出2008.12.25—2009.3.25的月份数为3因此2008.7.25—2009.3.31之间的完整月份数为8日期数据类型定义如下typedefstructintyear;intmonth;intday;/*日期的年号4位月和日号*/DATE;程序中使用的函数cmp_dateisLeapYear和makevalid说明如表11-8所示表11-8函数说明函数名参数返回值说明cmp_dateDATEstartDATEend-1start<end0start=end1start>end比较两个日期的大小例如2007.1.30小于2007.5.152008.11.23等于2008.11.232008.1.31大于2007.5.15isLeapYearintyear1year表示的年号是闰年0year表示的年号不是闰年判断给定年号是否为闰年makevalidDATE*r无若日期*r是非法的即*r不是闰年时其日期为2月29日或者其46911等月份出现了31日则将其日期改为当月最后[C语言函数]intcount_monthsDATEstartDATEendintyears=0months=0;DATEr;ifcmp_datestartend>0r=start;start=end;end=r;years=end.year-start.year;/*计算年数*/r=start;r.year=end.year;ifcmp_daterend>0/*修正年数*/1;r.year--;ifr.year<end.year/*跨年度时先计算到12月的月份数*/months=2;r.month=12;months+=end.month+12-r.month%12;r.year=end.year;r.month=end.month;makeva!id3;/*将日期r修正为有效日期*/ifcmp_daterend>0/*修正月份数*/4;months+=5;/*计算总月份数*/returnmonths;
[说明]下面的程序按照以下规则输出给定名词的复数形式1若名词以y结尾则删除y并添加ies2若名词以sch或sh结尾则添加es3其他所有情况直接添加s[C程序]#include<stdio.h>#include<string.h>char*pluralchar*wordintn;char*pstr;n=strlenword;/*求给定单词的长度*/pstr=char*mallocn+3;/*申请给定单词的复数形式存储空间*/if!pstr||n<2returnNULL;strcpypstrword;/*复制给定单词*/if1pstr[n-1]=’i’;pstr[n]=’e’;pstr[n+1]=’s’;2;elseifpstr[n-1]==’s’||pstr[n-1]==’h’&&3pstr[n]=’e’;pstr[n+1]=’s’;pstr[n+2]=’/0’;elsepstr[n]=’s’;pstr[n+1]=’/0’;4;maininti;char*ps;charwc[9][10]=chairdairybosscircusflydogchurchcluedish;fori=0;i<9;i++ps=5;printf%s:%s/nwc[i]ps;/*输出单词及其复数形式*/freeps;/*释放空间*/systempause;
指出该代码是否存在内存泄漏
类Stock的定义中有两处错误请指出错误所在行号并给出该行修改后的完整结果
[说明]下面C程序代码的功能是对于输入的一个正整数n100≤n<1000先判断其是否是回文数正读反读都一样的数若不是则将n与其反序数相加再判断得到的和数是否为回文数若还不是再将该和数与其反序数相加并进行判断依此类推直到得到一个回文数为止例如278不是回文数其反序数为872相加后得到的1150还不是回文数再将1150与其反序数511相加得到的1661是回文数函数intisPalmlongm的功能是将正整数m的各位数字取出存入数组中然后判断其是否为回文数若m是回文数则返回1否则返回0[C程序代码]#include<stdio.h>#include<stdlib.h>intisPalmlongminti=0k=0;charstr[32];whilem>0str[k++]=1+’0’;m=m/10;fori=0;i<k/2;i++ifstr[i]!=str[2]return0;return1;intmainlongnat;printfinputapositiveinteger:;scanf%ld&n;ifn<100||n>=1000return-1;while3printf%id->n;fora=0t=n;t>0;a=4*10+t%10;t=t/10;n=5;printf%id/nn;systempause;return0;
[说明]某电信公司记录了每个用户的详细通话情况每次通话数据记录在一行现将某用户某月的通话数据存入一个文本文件dial.txt中其数据格式如下拨入或拨出标记通话开始时间通话结束时间对方号码注1数据字段以一个空格作为分隔符注2拨入和拨出标记均为小写字母拨入标记为i表示其他用户呼叫本机本机用户不需付费拨出标记为o表示本机呼叫其他用户此时本机用户需要付费注3通话开始和结束时间的格式均为HH:MM:SS其中HH表示小时取值00~23MM表示分钟取值00~59SS表示秒取值00~59从通话开始到结束这段时间称为通话时间假定每次通话时间以秒为单位最短为1秒最长不超过24小时注4跨月的通话记录计入下个月的通话数据文件例如o23:01:1200:12:15表示本次通话是本机呼叫其他用户时间从23时01分12秒至次日的0时12分15秒通话时间为71分03秒下面程序的功能是计算并输出该用户本月电话费单位元通话计费规则为1月通话费按每次通话费累加2每次的通话费按通话时间每分钟0.08元计算不足1分钟时按1分钟计费对于每次的拨出通话程序中先分别计算出通话开始和结束时间相对于当日0点0分0秒的时间长度以秒为单位然后算出本次通话时间和通话费例如若输入文件dial.txt的数据如下所示则输出fee=7.44o14:05:2314:11:2582346789i15:10:0016:01:1513890000000o10:53:1211:07:0563000123o23:01:1200:12:1513356789001[C语句程序代码]#include<stdio.h>FILE*fin;intmaincharstr[80];inth1h2m1m2s1s2;longt_startt_endinterval;intc;doublefee=0;fin=fopendial.txtrj;if!finreturn-1;while!feoffinif!fgetsstr80finbreak;if1continue;h1=str[2]-48*10+str[3]-48;m1=str[5]-48*10+str[6]-48;s1=str[8]-48*10+str[9]-48;h2=str[11]-48*10+str[12]-48;m2=str[14]-48*10+str[15]-48;s2=str[17]-48*10+str[18]-48;t_start=h1*60*60+m1*60+s1;/*通话开始时间*/t_end=h2*60*60+m2*60+s2/*通话结束时间*/if2/*若通话开始和结束时间跨日*/interval=3-t_start+t_end;elseinterval=t_end-t_start;c=4;/*计算完整分钟数表示的通话时间*/ifinterval%605;fee+=c*0.08;fclosefin;printffee=%.21f/nfee;return0;
[说明]下面C程序代码的功能是对于输入的一个正整数n100≤n<1000先判断其是否是回文数正读反读都一样的数若不是则将n与其反序数相加再判断得到的和数是否为回文数若还不是再将该和数与其反序数相加并进行判断依此类推直到得到一个回文数为止例如278不是回文数其反序数为872相加后得到的1150还不是回文数再将1150与其反序数511相加得到的1661是回文数函数intisPalmlongm的功能是将正整数m的各位数字取出存入数组中然后判断其是否为回文数若m是回文数则返回1否则返回0[C程序代码]#include<stdio.h>#include<stdlib.h>intisPalmlongminti=0k=0;charstr[32];whilem>0str[k++]=1+’0’;m=m/10;fori=0;i<k/2;i++ifstr[i]!=str[2]return0;return1;intmainlongnat;printfinputapositiveinteger:;scanf%ld&n;ifn<100||n>=1000return-1;while3printf%id->n;fora=0t=n;t>0;a=4*10+t%10;t=t/10;n=5;printf%id/nn;systempause;return0;
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 5处填
[说明]某电信公司记录了每个用户的详细通话情况每次通话数据记录在一行现将某用户某月的通话数据存入一个文本文件dial.txt中其数据格式如下拨入或拨出标记通话开始时间通话结束时间对方号码注1数据字段以一个空格作为分隔符注2拨入和拨出标记均为小写字母拨入标记为i表示其他用户呼叫本机本机用户不需付费拨出标记为o表示本机呼叫其他用户此时本机用户需要付费注3通话开始和结束时间的格式均为HH:MM:SS其中HH表示小时取值00~23MM表示分钟取值00~59SS表示秒取值00~59从通话开始到结束这段时间称为通话时间假定每次通话时间以秒为单位最短为1秒最长不超过24小时注4跨月的通话记录计入下个月的通话数据文件例如o23:01:1200:12:15表示本次通话是本机呼叫其他用户时间从23时01分12秒至次日的0时12分15秒通话时间为71分03秒下面程序的功能是计算并输出该用户本月电话费单位元通话计费规则为1月通话费按每次通话费累加2每次的通话费按通话时间每分钟0.08元计算不足1分钟时按1分钟计费对于每次的拨出通话程序中先分别计算出通话开始和结束时间相对于当日0点0分0秒的时间长度以秒为单位然后算出本次通话时间和通话费例如若输入文件dial.txt的数据如下所示则输出fee=7.44o14:05:2314:11:2582346789i15:10:0016:01:1513890000000o10:53:1211:07:0563000123o23:01:1200:12:1513356789001[C语句程序代码]#include<stdio.h>FILE*fin;intmaincharstr[80];inth1h2m1m2s1s2;longt_startt_endinterval;intc;doublefee=0;fin=fopendial.txtrj;if!finreturn-1;while!feoffinif!fgetsstr80finbreak;if1continue;h1=str[2]-48*10+str[3]-48;m1=str[5]-48*10+str[6]-48;s1=str[8]-48*10+str[9]-48;h2=str[11]-48*10+str[12]-48;m2=str[14]-48*10+str[15]-48;s2=str[17]-48*10+str[18]-48;t_start=h1*60*60+m1*60+s1;/*通话开始时间*/t_end=h2*60*60+m2*60+s2/*通话结束时间*/if2/*若通话开始和结束时间跨日*/interval=3-t_start+t_end;elseinterval=t_end-t_start;c=4;/*计算完整分钟数表示的通话时间*/ifinterval%605;fee+=c*0.08;fclosefin;printffee=%.21f/nfee;return0;
[说明] 已知对某载客车辆Car进行类建模如图12-2所示其中类Engine表示发动机引擎类Wheel表示车轮类Body表示车身类Driver表示司机类Passenger表示乘客 constint1=7;//定义最多载客数 constintMAX_WHEELS=5;//定义最多轮胎数 classBody//此处代码省略;//车身类 classPassenger//此处代码省略;//乘客类 ClassWheel//此处代码省略;//车轮类 ClassDriver//司机类 public stringname;//表示第几路公交车司机 DriverstringdriverNamemarne2;//构造函数 ; classEngine//引擎类 public stringengineNo;//引擎编号 EnginestringengineNo3->engineNo=engineNo; //构造函数 ; ClassCar//汽车类 protected: Engine*engine;Driver*driver;Bodybody; Wheel*wheels[MAX_WHEELS];Passenger*passengers[MAX_PASSENGERS]; public CarDriver*driver//构造函数 this->driver=driver; engine=newEngine"TX6536型号引擎"; forintindex=0;index<MAX_WHEELS;index++ wheels[index]=newWheel; forintindex=0;indexpassengers[index]=NULL; virtual-Car//析构函数 forintindex=0;index<MAX_WHEELS;index++ deletewheels[index]; delete4; intgetPassengerNumber//获取车上乘客数量 //此处代码省略 voidgetonpassengerPassenger*apassenger //乘客上车 //此处代码省略 voidrun//开车 ifdriver==NULLcout<<"司机尚未上车!";return; //此处代码省略 ; voidmain Driverdriver"第五路公交车司机"; Carcar5; Passengerpassengers[MAX_PASSENGERS]; forintindex=0;index<MAX_PASSENGERS;index++ //乘客上车处理 car.getOnPasSenger&passengers[index]; car.run; 5处填
写出下面消息对应的方法编号如果该消息错误或者没有对应的方法调用请填写无tr->height
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 3处填
[说明]下面待修改的C程序完成的功能是对于给定的一个长正整数从其个位数开始每隔一位取一个数字即取其个位百位万位等数字形成一个新的整数并输出例如将该程序修改正确后运行时若输入14251382则输出的整数为4532下面给出的C程序代码中有5个错误请指出所有的错误[C程序代码]01#include<stdio.h>0203intmain0405longnnum;06inti;0708do09printf清输入一个正整数:;10scanf%idn;11whilen<=0;12k=1;13fori=1;n>=0;i++14ifiio2=115Rum=num+n%10*k;16k=k*10;1718n=n/10;1920printf新数据为:%d/nnum;21return0;22
[说明]C++标准模板库中提供了vector模板类可作为动态数组使用并可容纳任意数据类型其所属的命名空问为stdvector模板类的部分方法说明如表12-3所示表12-3vector模板类的部分方法方法含义push_backk向vector对象的尾部添加一个元素kbegin返回一个迭代器对象该对象指向vector中的第一个元素end返回一个迭代器对象该对象指向vector中的最后一个元素empty测试vector对象是否为空eraseptr删除vector中ptr指向的元素[C++代码]#include<iostream>#include<vector>usingnamespace1;typedefvector<2>INTZECTOR;constintARRAY_SIZE=6;voidShowVectorINTVECTOR&theVector;intmainINTVECTORtheVector;//初始化theVector将theVector的元素依次设置为0至5forintcEachItem=0;cEachItem<ARRAY_SIZE;cEachItem++theVector.push_back3;ShowVectortheVector;//依次输出theVector中的元素theVector.erasetheVector.begin+3;ShowVectortheVector;voidShowVectorINTVECTOR&theVectoriftheVector.emptycout<<theVectorisempty.<<endl;return;INTVECTORiterator4;fortheIterator=theVector.begin;theIterator!=theVector.end;theIterator++cout<<*theIterator;iftheIterator!=thevector.end-1cout<<;cout<<endl;该程序运行后的输出结果为0123455
[说明]下面待修改的C程序完成的功能是对于给定的一个长正整数从其个位数开始每隔一位取一个数字即取其个位百位万位等数字形成一个新的整数并输出例如将该程序修改正确后运行时若输入14251382则输出的整数为4532下面给出的C程序代码中有5个错误请指出所有的错误[C程序代码]01#include<stdio.h>0203intmain0405longnnum;06inti;0708do09printf清输入一个正整数:;10scanf%idn;11whilen<=0;12k=1;13fori=1;n>=0;i++14ifiio2=115Rum=num+n%10*k;16k=k*10;1718n=n/10;1920printf新数据为:%d/nnum;21return0;22
[说明]C++标准模板库中提供了vector模板类可作为动态数组使用并可容纳任意数据类型其所属的命名空问为stdvector模板类的部分方法说明如表12-3所示表12-3vector模板类的部分方法方法含义push_backk向vector对象的尾部添加一个元素kbegin返回一个迭代器对象该对象指向vector中的第一个元素end返回一个迭代器对象该对象指向vector中的最后一个元素empty测试vector对象是否为空eraseptr删除vector中ptr指向的元素[C++代码]#include<iostream>#include<vector>usingnamespace1;typedefvector<2>INTZECTOR;constintARRAY_SIZE=6;voidShowVectorINTVECTOR&theVector;intmainINTVECTORtheVector;//初始化theVector将theVector的元素依次设置为0至5forintcEachItem=0;cEachItem<ARRAY_SIZE;cEachItem++theVector.push_back3;ShowVectortheVector;//依次输出theVector中的元素theVector.erasetheVector.begin+3;ShowVectortheVector;voidShowVectorINTVECTOR&theVectoriftheVector.emptycout<<theVectorisempty.<<endl;return;INTVECTORiterator4;fortheIterator=theVector.begin;theIterator!=theVector.end;theIterator++cout<<*theIterator;iftheIterator!=thevector.end-1cout<<;cout<<endl;该程序运行后的输出结果为0123455
[说明]函数countmonthsDATEstartDATEend的功能是计算两个给定日期之间所包含的完整月份数该函数先算出起止日期中所含的完整年数再计算余下的完整月份数规定两个相邻年份的同月同日之间的问隔为1年例如2007.5.30—2008.5.30的间隔为1年若相邻两年中前一年是闰年并且日期是2月29日则到下一年的2月28日为1年即2008.2.29—2009.2.28的间隔为1年规定两个相邻月份的相同日之间的间隔为1个月但需要特别考虑月末的特殊情况例如2007.1.29—2007.2.28的间隔为1个月同理2007.1.30—2007.2.282007.1.31—2007.2.28的间隔都是1个月计算起止日期间隔不足一年的完整月份数时分两种情况1起止日期不跨年度先用终止日期的月号减去起始日期的月号得到月份数然后再根据情况进行修正例如起止日期为2008.3.31—2008.9.20通过月号算出月份数为6修正时通过调用函数makevalid将2008.9.31改为2008.9.30与终止日期2008.9.20比较后将月份数修正为52起止日期跨年度计算方法如下例所示对于起止日期2008.7.25—2009.3.31先计算2008.7.25—2008.12.25的月份数为5再算出2008.12.25—2009.3.25的月份数为3因此2008.7.25—2009.3.31之间的完整月份数为8日期数据类型定义如下typedefstructintyear;intmonth;intday;/*日期的年号4位月和日号*/DATE;程序中使用的函数cmp_dateisLeapYear和makevalid说明如表11-8所示表11-8函数说明函数名参数返回值说明cmp_dateDATEstartDATEend-1start<end0start=end1start>end比较两个日期的大小例如2007.1.30小于2007.5.152008.11.23等于2008.11.232008.1.31大于2007.5.15isLeapYearintyear1year表示的年号是闰年0year表示的年号不是闰年判断给定年号是否为闰年makevalidDATE*r无若日期*r是非法的即*r不是闰年时其日期为2月29日或者其46911等月份出现了31日则将其日期改为当月最后[C语言函数]intcount_monthsDATEstartDATEendintyears=0months=0;DATEr;ifcmp_datestartend>0r=start;start=end;end=r;years=end.year-start.year;/*计算年数*/r=start;r.year=end.year;ifcmp_daterend>0/*修正年数*/1;r.year--;ifr.year<end.year/*跨年度时先计算到12月的月份数*/months=2;r.month=12;months+=end.month+12-r.month%12;r.year=end.year;r.month=end.month;makeva!id3;/*将日期r修正为有效日期*/ifcmp_daterend>0/*修正月份数*/4;months+=5;/*计算总月份数*/returnmonths;
[说明]下面C程序代码的功能是对于输入的一个正整数n100≤n<1000先判断其是否是回文数正读反读都一样的数若不是则将n与其反序数相加再判断得到的和数是否为回文数若还不是再将该和数与其反序数相加并进行判断依此类推直到得到一个回文数为止例如278不是回文数其反序数为872相加后得到的1150还不是回文数再将1150与其反序数511相加得到的1661是回文数函数intisPalmlongm的功能是将正整数m的各位数字取出存入数组中然后判断其是否为回文数若m是回文数则返回1否则返回0[C程序代码]#include<stdio.h>#include<stdlib.h>intisPalmlongminti=0k=0;charstr[32];whilem>0str[k++]=1+’0’;m=m/10;fori=0;i<k/2;i++ifstr[i]!=str[2]return0;return1;intmainlongnat;printfinputapositiveinteger:;scanf%ld&n;ifn<100||n>=1000return-1;while3printf%id->n;fora=0t=n;t>0;a=4*10+t%10;t=t/10;n=5;printf%id/nn;systempause;return0;
[说明]某电信公司记录了每个用户的详细通话情况每次通话数据记录在一行现将某用户某月的通话数据存入一个文本文件dial.txt中其数据格式如下拨入或拨出标记通话开始时间通话结束时间对方号码注1数据字段以一个空格作为分隔符注2拨入和拨出标记均为小写字母拨入标记为i表示其他用户呼叫本机本机用户不需付费拨出标记为o表示本机呼叫其他用户此时本机用户需要付费注3通话开始和结束时间的格式均为HH:MM:SS其中HH表示小时取值00~23MM表示分钟取值00~59SS表示秒取值00~59从通话开始到结束这段时间称为通话时间假定每次通话时间以秒为单位最短为1秒最长不超过24小时注4跨月的通话记录计入下个月的通话数据文件例如o23:01:1200:12:15表示本次通话是本机呼叫其他用户时间从23时01分12秒至次日的0时12分15秒通话时间为71分03秒下面程序的功能是计算并输出该用户本月电话费单位元通话计费规则为1月通话费按每次通话费累加2每次的通话费按通话时间每分钟0.08元计算不足1分钟时按1分钟计费对于每次的拨出通话程序中先分别计算出通话开始和结束时间相对于当日0点0分0秒的时间长度以秒为单位然后算出本次通话时间和通话费例如若输入文件dial.txt的数据如下所示则输出fee=7.44o14:05:2314:11:2582346789i15:10:0016:01:1513890000000o10:53:1211:07:0563000123o23:01:1200:12:1513356789001[C语句程序代码]#include<stdio.h>FILE*fin;intmaincharstr[80];inth1h2m1m2s1s2;longt_startt_endinterval;intc;doublefee=0;fin=fopendial.txtrj;if!finreturn-1;while!feoffinif!fgetsstr80finbreak;if1continue;h1=str[2]-48*10+str[3]-48;m1=str[5]-48*10+str[6]-48;s1=str[8]-48*10+str[9]-48;h2=str[11]-48*10+str[12]-48;m2=str[14]-48*10+str[15]-48;s2=str[17]-48*10+str[18]-48;t_start=h1*60*60+m1*60+s1;/*通话开始时间*/t_end=h2*60*60+m2*60+s2/*通话结束时间*/if2/*若通话开始和结束时间跨日*/interval=3-t_start+t_end;elseinterval=t_end-t_start;c=4;/*计算完整分钟数表示的通话时间*/ifinterval%605;fee+=c*0.08;fclosefin;printffee=%.21f/nfee;return0;
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 1处填
[说明]函数countmonthsDATEstartDATEend的功能是计算两个给定日期之间所包含的完整月份数该函数先算出起止日期中所含的完整年数再计算余下的完整月份数规定两个相邻年份的同月同日之间的问隔为1年例如2007.5.30—2008.5.30的间隔为1年若相邻两年中前一年是闰年并且日期是2月29日则到下一年的2月28日为1年即2008.2.29—2009.2.28的间隔为1年规定两个相邻月份的相同日之间的间隔为1个月但需要特别考虑月末的特殊情况例如2007.1.29—2007.2.28的间隔为1个月同理2007.1.30—2007.2.282007.1.31—2007.2.28的间隔都是1个月计算起止日期间隔不足一年的完整月份数时分两种情况1起止日期不跨年度先用终止日期的月号减去起始日期的月号得到月份数然后再根据情况进行修正例如起止日期为2008.3.31—2008.9.20通过月号算出月份数为6修正时通过调用函数makevalid将2008.9.31改为2008.9.30与终止日期2008.9.20比较后将月份数修正为52起止日期跨年度计算方法如下例所示对于起止日期2008.7.25—2009.3.31先计算2008.7.25—2008.12.25的月份数为5再算出2008.12.25—2009.3.25的月份数为3因此2008.7.25—2009.3.31之间的完整月份数为8日期数据类型定义如下typedefstructintyear;intmonth;intday;/*日期的年号4位月和日号*/DATE;程序中使用的函数cmp_dateisLeapYear和makevalid说明如表11-8所示表11-8函数说明函数名参数返回值说明cmp_dateDATEstartDATEend-1start<end0start=end1start>end比较两个日期的大小例如2007.1.30小于2007.5.152008.11.23等于2008.11.232008.1.31大于2007.5.15isLeapYearintyear1year表示的年号是闰年0year表示的年号不是闰年判断给定年号是否为闰年makevalidDATE*r无若日期*r是非法的即*r不是闰年时其日期为2月29日或者其46911等月份出现了31日则将其日期改为当月最后[C语言函数]intcount_monthsDATEstartDATEendintyears=0months=0;DATEr;ifcmp_datestartend>0r=start;start=end;end=r;years=end.year-start.year;/*计算年数*/r=start;r.year=end.year;ifcmp_daterend>0/*修正年数*/1;r.year--;ifr.year<end.year/*跨年度时先计算到12月的月份数*/months=2;r.month=12;months+=end.month+12-r.month%12;r.year=end.year;r.month=end.month;makeva!id3;/*将日期r修正为有效日期*/ifcmp_daterend>0/*修正月份数*/4;months+=5;/*计算总月份数*/returnmonths;
[说明] 已知对某载客车辆Car进行类建模如图12-2所示其中类Engine表示发动机引擎类Wheel表示车轮类Body表示车身类Driver表示司机类Passenger表示乘客 constint1=7;//定义最多载客数 constintMAX_WHEELS=5;//定义最多轮胎数 classBody//此处代码省略;//车身类 classPassenger//此处代码省略;//乘客类 ClassWheel//此处代码省略;//车轮类 ClassDriver//司机类 public stringname;//表示第几路公交车司机 DriverstringdriverNamemarne2;//构造函数 ; classEngine//引擎类 public stringengineNo;//引擎编号 EnginestringengineNo3->engineNo=engineNo; //构造函数 ; ClassCar//汽车类 protected: Engine*engine;Driver*driver;Bodybody; Wheel*wheels[MAX_WHEELS];Passenger*passengers[MAX_PASSENGERS]; public CarDriver*driver//构造函数 this->driver=driver; engine=newEngine"TX6536型号引擎"; forintindex=0;index<MAX_WHEELS;index++ wheels[index]=newWheel; forintindex=0;indexpassengers[index]=NULL; virtual-Car//析构函数 forintindex=0;index<MAX_WHEELS;index++ deletewheels[index]; delete4; intgetPassengerNumber//获取车上乘客数量 //此处代码省略 voidgetonpassengerPassenger*apassenger //乘客上车 //此处代码省略 voidrun//开车 ifdriver==NULLcout<<"司机尚未上车!";return; //此处代码省略 ; voidmain Driverdriver"第五路公交车司机"; Carcar5; Passengerpassengers[MAX_PASSENGERS]; forintindex=0;index<MAX_PASSENGERS;index++ //乘客上车处理 car.getOnPasSenger&passengers[index]; car.run; 3处填
[说明] 著名的菲波那契数列定义式为 f1=1f2=1fn=fn-1+fn-2n=34… 因此从第1项开始的该数列为1123581321…函数fib1和fib2分别用递归方式和迭代方式求解菲波那契数列的第n项调用fib1fib2时可确保参数n获得一个正整数1 [C函数代码] 将函数fib1和fib2改正后进行测试发现前46项都正确而第47项的值是一个负数请说明原因
[说明] 已知对某载客车辆Car进行类建模如图12-2所示其中类Engine表示发动机引擎类Wheel表示车轮类Body表示车身类Driver表示司机类Passenger表示乘客 constint1=7;//定义最多载客数 constintMAX_WHEELS=5;//定义最多轮胎数 classBody//此处代码省略;//车身类 classPassenger//此处代码省略;//乘客类 ClassWheel//此处代码省略;//车轮类 ClassDriver//司机类 public stringname;//表示第几路公交车司机 DriverstringdriverNamemarne2;//构造函数 ; classEngine//引擎类 public stringengineNo;//引擎编号 EnginestringengineNo3->engineNo=engineNo; //构造函数 ; ClassCar//汽车类 protected: Engine*engine;Driver*driver;Bodybody; Wheel*wheels[MAX_WHEELS];Passenger*passengers[MAX_PASSENGERS]; public CarDriver*driver//构造函数 this->driver=driver; engine=newEngine"TX6536型号引擎"; forintindex=0;index<MAX_WHEELS;index++ wheels[index]=newWheel; forintindex=0;indexpassengers[index]=NULL; virtual-Car//析构函数 forintindex=0;index<MAX_WHEELS;index++ deletewheels[index]; delete4; intgetPassengerNumber//获取车上乘客数量 //此处代码省略 voidgetonpassengerPassenger*apassenger //乘客上车 //此处代码省略 voidrun//开车 ifdriver==NULLcout<<"司机尚未上车!";return; //此处代码省略 ; voidmain Driverdriver"第五路公交车司机"; Carcar5; Passengerpassengers[MAX_PASSENGERS]; forintindex=0;index<MAX_PASSENGERS;index++ //乘客上车处理 car.getOnPasSenger&passengers[index]; car.run; 1处填
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
请补齐上述代码中的空缺1和2
热门题库
更多
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术
电话交换专业技术