第三届蓝桥杯决赛试题.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三届蓝桥杯决赛试题

【结果填空】 (满分5分) 1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历,windows计算器,Excel公式,。。。。。 当然,也可以编程! 不要求写出具体是哪些年,只要一个数目! 千万不要提交源代码! 答案不要写在这里,写在“解答.txt”中 【代码填空】(满分16分) 某工业监控设备不断发回采样数据。每个数据是一个整数(0到1000之间)。各个数据间用空白字符(空格,TAB或回车换行)分隔。这些数据以文本形式被存储在文件中。 因为大多数时候,相邻的采样间隔数据是相同的,可以利用这个特征做数据的压缩存储。其方法是:对n(n1)个连续相同的数字只记录n和该数字本身;对m(m0)个连续不重复的数字,则记录 m*-1 和这些数字本身(之所以用负数,是为了与第一种情况区分,便于解压缩)。 例如:采样数字: 12 34 34 25 25 25 25 11 15 17 28 14 22 22 22 13 则根据上述规则变化后: -1 12 2 34 4 25 -5 11 15 17 28 14 3 22 -1 13 下面的程序实现了这个功能。请仔细阅读分析代码,填写空白的部分。 void pop(int s, int* buf, int c, FILE* fp) { int i; if(s) { fprintf(fp, %d %d , c, *buf); } else { fprintf(fp, %d , -c); for(i=0; ic; i++) { fprintf(fp, %d , buf[i]); } } } void dopack(FILE* r, FILE* w) { int buf[BUF_N]; int pos = 0; // 下一个数字在buf中将要存放的位置 int c = 0; // 当前段已读入的整数个数 int pst; int cst; while(fscanf(r, %d, buf+pos)==1) { if(c==0) { c = pos = 1; continue; } if(c==1) { pst = buf[0] == buf[1]; pos = pos + 1 - pst; c = 2; continue; } cst = buf[pos-1] == buf[pos]; if(pst !cst) { pop(pst, buf, c, w); buf[0] = buf[1]; c = pos = 1; pst = cst; } else if(!pst cst || pos == BUF_N-1) { pop(pst, buf, c-1, w); buf[0] = buf[pos-1]; c = 2; if(!cst) { buf[1] = buf[pos]; pos = 2; } else { pos = 1; pst = ______________; // 填空1 } } else { c++; if(!pst) pos++; } } // while if(c0) _____________________________; // 填空2 } void main() { FILE* rfp; FILE* wfp; if((rfp=fopen(RFILE, r)) == NULL) { printf(can not open %s!\n, RFILE); exit(1); } if((wfp=fopen(WFILE, w)) == NULL) { printf(can not open %s!\n, WFILE); fclose(rfp); exit(2); } dopack(rfp, wfp); fclose(wfp); fclose(rfp); } 【注意】 只填写缺少的部分,不要抄写已有的代码。 所填写代码不超过1条语句(句中不会含有分号) 所填代码长度不超过256个字符。 答案写在“解答.txt”中,不要写在这里! 【编程题】(满分19分)

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档