蓝桥杯C语言三届真题_第1页
蓝桥杯C语言三届真题_第2页
蓝桥杯C语言三届真题_第3页
蓝桥杯C语言三届真题_第4页
蓝桥杯C语言三届真题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

造成高房价的原因有许多,比如土地出让价格。既然地价高,土地的面积必须仔细计算。遗憾的是,有些地块的形状不规则,比如是如图【ljpg】中所示的五边形。一般需要把它划分为多个三角形来计算。已知三边求三角形的面积需要用海伦定理,参见【2.jpg】各条边长数据如下:AB=52.lBC=57.2CD=43.5DE=5l.9EA=33.4EB=68.2EC=7l.9根据这些数据求五边形地块的面积。四舍五入到小数后两位。只写结果,不要源代码答案写在“解答.txt”中,不要写在这里!二、大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。欧拉随便问:“卖了多少鸡蛋呢?”不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。你猜猜看!”欧拉猜不出。另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。欧拉想了想,说出了正确答案。我们不是数学家,懒得列出公式来分析。但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!请写出每人鸡蛋的数目(顺序不限),用逗号隔开。答案写在“解答.txt”中,不要写在这里!福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE*?=EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把ABCDE所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!四、小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。魔术的内容是这样的:他手里握着一叠扑克牌:A,2,J,Q,K一共13张。他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2; 如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K请你计算一下,小明最开始的时候手里牌的顺序是怎样的。把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。考场不提供扑克牌,你只能用计算机模拟了,撕碎草稿纸模拟扑克属于作弊行为!另外,你有没有把录像倒着放过?很有趣的!回去试试!五、在我国古代和近代,一直采用干支法纪年。它采用10天干和12地支配合,一个循环周期为60年。10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸12地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥如果某年是甲子,下一年就是乙丑,再下是丙寅, 癸酉,甲戌,乙亥,丙子, 总之天干、地址都是循环使用,两两配对。今年(2012)是壬辰年,1911年辛亥革命下面的代码根据公历年份输出相应的干支法纪年。已知最近的甲子年是1984年。voidf(intyear){char*x[]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};char*y[]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};intn=year-1984;while(n<0)n+=60;printf("%s%s\n",x[ ],y[ ]);}intmain(intargc,char*argv[]){f(1911);f(1970);f(2012);return0;}请分析代码逻辑,并推测划线处的代码。答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。六、如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以!因为有人的身份证最后一位是"X"实际上,除了最后一位的X,不会出现其它字母!身份证号码18位=17位+校验码校验码的计算过程:例如:身份证前17位=ABCDEFGHIJKLMNOPQA~Q每位数字乘以权值求和(每位数字和它对应的“权”相乘后累加)17位对应的权值分别是:7910584216379105842求出的总和再对11求模然后按下表映射:余数0 1 2 3 4 5 6 7 8 9 10校验码:1 0 X 9 8 7 6 5 4 3 2下面的代码实现了校验过程,输入串为身份证前17位,返回了校验码。charverifyCode(char*s){staticintweight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};staticcharmap[]={'1','0','X','9','8','7','6','5','4','3','2'};intsum=0;for(inti=0;i<17;i++){sum+=( )*weight[i];//填空}returnmap[ ];//填空}请分析代码逻辑,并推测划线处的代码。答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。七、对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:123456789101112141516转置后变为:5913610147111581216但,如果是对该方阵顺时针旋转(不是转置),却是如下结果13951106211731284下面的代码实现的功能就是要把一个方阵顺时针旋转。voidrotate(int*x,intrank){int*y=(int*)malloc( );//填空for(inti=0;i<rank*rank;i++){y[ ]=x[i];//填空}for(i=0;i<rank*rank;i++){x[i]=y[i];}free(y);}intmain(intargc,char*argv[]){intx[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};intrank=4;rotate(&x[0][0],rank);for(inti=0;i<rank;i++){for(intj=0;j<rank;j++){printf("%4d",x[i][j]);}printf("\n");}return0;}请分析代码逻辑,并推测划线处的代码。答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。八、30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:1.如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。2.前三个数字相同,或后三个数字相同,都加3分。例如:4888,6665,7777都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了6分。符合AABB或者ABAB模式的加1分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了2分。含有:6,8,9中任何一个数字,每出现一次加1分。例如4326,6875,9918都符合加分标准。其中,6875被加2分;9918被加3分。尾号最终得分就是每条标准的加分总和!要求程序从标准输入接收数据,在标准输出上输出结果。输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。输出格式为:n行整数。例如,输入:1430450211234565437777888878787788668824242244991867898866则输出:005681233511385请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的"解答.txt”中即可。相关的工程文件不要拷入。源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库)。九、古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!罗马数字的表示主要依赖以下几个基本符号:I1V5X10L50C100D500M1000这里,我们只介绍一下1000以内的数字的表示法。单个符号重复多少次,就表示多少倍。最多重复3次。比如:CCC表示300XX表示20,但150并不用LLL表示,这个规则仅适用于IXCM。如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。比如:IX表示9IV表示4XL表示40更多的示例参见下表,你找到规律了吗?I,1II,2III,3IV,4V,5VI,6VII,7VIII,8IX,9X,10XI,11XII,121314151617XVIII,1819202122XXIX,29XXX,30XXXIV,34XXXV,35XXXIX,39XL,40L,50LI,51LV,55LX,60LXV,65LXXX,80XC,90XCIII,93XCV,95XCVIII,98XCIX,99C,100CC,200CCC,300CD,400D,500DC,600DCC,700DCCC,800CM,900CMXCIX,999本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。输入格式是:第一行是整数n,表示接下来有n个罗马数字(nvlOO)。以后每行一个罗马数字。罗马数字大小不超过999。要求程序输出n行,就是罗马数字对应的十进制数据。例如,用户输入:3LXXXXCIIIDCCII则程序应该输出8093702请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库)。十、2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如图【l.jpg】所示。和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:ABDECABCDE为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:AB*DECABCD*E题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0。初始状态为:ABCDE*用户输入的格式是:先是一个整数n表示接下来有n行状态。程序输出也应该是n行1或0例如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论