蓝桥杯2011决赛c本科试题及答案.doc

蓝桥杯2011决赛c本科试题及答案.doc

ID:58829519

大小:67.00 KB

页数:20页

时间:2020-09-24

蓝桥杯2011决赛c本科试题及答案.doc_第1页
蓝桥杯2011决赛c本科试题及答案.doc_第2页
蓝桥杯2011决赛c本科试题及答案.doc_第3页
蓝桥杯2011决赛c本科试题及答案.doc_第4页
蓝桥杯2011决赛c本科试题及答案.doc_第5页
资源描述:

《蓝桥杯2011决赛c本科试题及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2011年决赛c本科考生须知:考试时间为5小时。本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。其中代码填空:9+14=23分程序设计:19+28+30=77分填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号)。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通

2、用的,不能只对试卷中给定的数据有效。对每个题目,要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。对于编程题目,要求选手给出的解答完全符合ANSIC标准,不能使用c++特性;不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。1.代码填空(满分9分)题目在考生文件夹下对应题号的“题目.rar”中,请先解压该文件。解压密码以现场公布为准。仔细阅读和调试题目提供的源代码,根据要求填写缺失的代码部分。注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。直接写在题面中不

3、能得分。数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。我们可以通过计算机验证其在有限范围的正确性。对于大数,简单的循环嵌套是不适宜的。下面的代码给出了一种分解方案。请仔细阅读,填写空缺的代码(下划线部分)。注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。直接写在题面中不能得分。intf(intn,inta[],intidx){if(______________)return1;//填空1if(idx==4)return0;for(inti=(int)sqrt(n);i>=1;i--){a[idx]=i;if(_

4、______________________)return1;//填空2}return0;}intmain(intargc,char*argv[]){for(;;){intnumber;printf("输入整数(1~10亿):");scanf("%d",&number);inta[]={0,0,0,0};intr=f(number,a,0);printf("%d:%d%d%d%d",r,a[0],a[1],a[2],a[3]);}return0;}本题满分:9分填空1:(3分)n==0或者:0==n填空2:(6分)f(n-i*i,a,idx+1)或者:f(n-i*i,a,idx+1

5、)>0f(n-i*i,a,idx+1)==11.代码填空(满分14分)题目在考生文件夹下对应题号的“题目.rar”中,请先解压该文件。解压密码以现场公布为准。仔细阅读和调试题目提供的源代码,根据要求填写缺失的代码部分。在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。解密的方法就是再执行一次同样的操作。加密过程中n位二进制数会循环使用。并且其长度也可能不是8的整数倍。下面的代码演示了如何实现该功能。请仔细阅读,填写空缺的代码(下划线部分)。voidf(char*buf,unsignedchar*uckey,intn){inti;for(i=0;i

6、)buf[i]=buf[i]^uckey[i];//异或运算,即:buf[i]^=uckey[i]}intmain(intargc,char*argv[]){charp[]="abcd中国人123";//待加密串char*key="";//以串的形式表达的密匙,运算时要转换为按位存储的形式。intnp=strlen(p);intnk=strlen(key);unsignedchar*uckey=(unsignedchar*)malloc(np);//unsignedchar是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位)//密匙串需要按位的形式循环拼入uckey中

7、inti;for(i=0;i

8、=(unsignedchar)0x80>>(i%8)___;//填空1按位或else___uckey[i/8]&=~((unsignedchar)0x80>>(i%8))___;//填空2按位与}f(p,uckey,strlen(p));f(p,uckey,strlen(p));printf("%s",p);free(uckey

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。