首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
选择填入流程图2.2的合适的语句,它们都完成计算“1+2+3+4+5”的功能。 (14)是()
查看本题答案
包含此试题的试卷
初级程序员《简单单选》真题及答案
点击查看
你可能感兴趣的试题
系统的信息处理流程图不是由来完成的
工序流程图
工艺流程图
业务流程图
数据流程图
信息流程图
选择填入流程图2.2的合适的语句它们都完成计算1+2+3+4+5的功能 15是
i<5
i>=5
i<=5
i>5
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入答题纸的对应栏内 下面的流程图采用公式计算ex
试题一阅读以下说明和流程图填补流程图中的空缺1~5将解答填入答题纸的对应栏内 [说明]本流程图用于
[问题1] 请在下列选项中选择合适的答案填入图3-1图3-2的方框a和方框b B的公钥B的私钥摘
项目实施期间由于时间限制项目经理只能将精力集中在有限的问题上为了实现这个目的下列哪些技术最合适
帕累托分析
控制图
流程图
检查
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入答题纸的对应栏内 【说明】下面的流程图可在正
数据字典是对数据定义信息的集合它所定义的对象都包含于
数据流程图
程序流程图
软件结构图
业务流程图
在Station中调用某一流程图可以直接在命令行输入流程图名
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入答题纸的对应栏内【说明】两个包含有限个元素的
阅读以下说明和流程图回答问题将解答填入对应栏 [说明] 下面的流程图用来完成计算一组数组中的中值
选择填入流程图2.2的合适的语句它们都完成计算1+2+3+4+5的功能 14处应选择
i<5
i>=5
i<=5
i>5
选择填入流程图2.2的合适的语句它们都完成计算1+2+3+4+5的功能 15处应选择
i<5
i>=5
i<=5
i>5
则是要选择使用培养和储备合适的人员组成合适的团队以便实施战略决策
人员流程
战略流程
运营流程
监督流程
22.下面是某车辆管理所的验车流程图请用简洁的语句介绍验车的整个流程要求内容完整表述准确语言连贯
描述模块的层次结构和它们之间联系的工具是
数据流程图
系统流程图
模块流程图
HIPO分层图
设计算法求的值.要求画出流程图写出用基本语句编写的流程图.
选择填入流程图2.2的合适的语句它们都完成计算1+2+3+4+5的功能
i<5
i>=5
i<=5
i>5
阅读以下说明和流程图回答问题将解答填入对应栏[说明]下面的流程图用来完成计算一组数组中的中值其方法是
试题一 阅读下列说明和流程图将应填入n处的字句写在答题纸的对应栏内 [流程图说明] 流程图1-1描
热门试题
更多
[说明]已知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;
[说明]函数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;
写出下面消息对应的方法编号如果该消息错误或者没有对应的方法调用请填写无sh->height
不考虑内存释放问题下列赋值语句中哪两个是合法的写出合法赋值语句的编号①sq=sh②sh=tr③tr=sq④sq=tr⑤sh=sq
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在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;
写出下面消息对应的方法编号如果该消息错误或者没有对应的方法调用请填写无sq->height
[说明] 已知对某载客车辆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;
[说明]函数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处填
请补齐上述代码中的空缺1和2
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术