已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言试题四69巧分橘子一家农户以果园为生,一天,父亲拿出一堆橘子,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆橘子分完,每个人分到的橘子的个数都不相同。然后他说“老大,把你分到的橘子分1/8给老二,老二拿到后,连同原来的橘子分1/7给老三,老三拿到后,连同原来的橘子分1/6给老四,以此类推,最后老六拿到后,连同原来的橘子分1/3给老大,这样,你们每个人分到的橘子就一样多了。”问兄弟6人原先各分到多少只橘子。请将兄弟6人的橘子数存储到一维数组中,并按照下列各式输出(下面只提供格式,数据不准确)X1111X2222X3333X4444X5555X6666INCLUDESTDIOHVOIDMAININTA6,B6,IFORI0I6IAI2520/6BI8IA0A0A5/B51FORI5I1IAIAIAI/BI1AI1/BI11A0A0B0/B01FORI0I6IPRINTFXDDN,I1,AI选做题61大家一起做游戏幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下所有的小朋友绕成一圈,顺序排号,从第一个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,直到只剩下一位小朋友游戏才中止。每个小朋友都希望自己能有更多的练习数数的机会,所以都希望成为最终被留下的那位。现在,请大家帮小朋友们计算一下,在第一次排号的时候排到第几位才能成为最终被留下的小朋友。输入小朋友的个数(50),要被练习的数字输出最终被留下的小朋友的序号说明如“要被练习的数字”是5,则每次数到5的同学要退出该游戏INCLUDESTDIOHVOIDMAININTN,N,I,S0,ASCANFDD,N,NFORI2INISSNIAS1PRINTFTHELEFTCHILDISNODN,A选做题62猜数字有如下一组数字,其中每个数字都在163之间,135791113151719212325272931333537394143454749515355575961632367101114151819222326273031343538394243464750515455585962634567121314152021222328293031363738394445464752535455606162638910111213141524252627282930314041424344454647565758596061626316171819202122232425262728293031484950515253545556575859606162633233343536373839404142434445464748495051525354555657585960616263现在需要编写一个程序,当从键盘输入某数字在且仅在哪几行出现了,该程序可以“猜”出这个数字是几。输入程序的输入是一串以空白符分开的数字,当输入0时表示输入结束。输出输出猜到的数字。INCLUDESTDIOHINCLUDEMATHHVOIDMAININTI,SUM0DOSCANFD,ISUMSUMPOW2,I1WHILEI0PRINTFDN,SUM选做题63小蜜蜂一只小蜜蜂在如下图所示的蜂窝上爬行。它爬行时,只能从一个格爬到相邻的大号格子中。例如,从1号格子可以爬到2号或者3号格子,从2号则可以爬到3号或者4号格子。请问从一个格子A爬到一个格子B一共有多少种可行的路线。输入分别是起始点A和终止点B的编号。(A和B在1100之间,且AB。)输出可行的路线数目INCLUDESTDIOHVOIDMAININTA,B,X,IINTF100F11F22SCANFDD,A,BXBAIFX1PRINTFDN,F1IFX2PRINTFDN,F2IFX3FORI3IXIFIFI1FI2PRINTFDN,FX选做题64数制转换我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12和5,在十进制下它们是不等的,但若12使用3进制而5使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12和5就可以是相等的。程序的输入是两个数字M和N其十进制的值不超过1000000000,它们的进制在236之间。对于十以下的数字,用09表示,而十以上的数字,则使用大写的AZ表示。求出分别在236哪种进制下M和N相等。若相等则输出相应的进制,若不等则输出错误信息。信息的格式见测试用例。DEFINEN50INCLUDESTRINGHINCLUDESTDIOHINTMAINCHARAN,BN,DN,EN,D0NINTI,J,O,R,G,H,W,T,L,K,MAX1,MAX2DOUBLEPN,QN0,UN,VN0,CN,FN,M,NFORI0INISCANFC,AIIFAIX20LIBREAKGETSDIFD0X20KSTRLENDGOTOCIFD0X20STRCPYD0,DGSTRLEND0FORI0D0IX20IJIFORI0IGJIDID0IJKGJCFORI0ILIBIALI1IFBIX39BIX30CIBI0IFBIX5ABIX41CIBI7FORI0IKIEIDKI1IFEIX39EIX30FIEI0IFEIX5AEIX41FIEI7MAX1C0FORI1ILIIFMAX1CIMAX1CIIFMAX10MAX11MAX2F0FORI1IKIIFMAX2FIMAX2FIIFMAX20MAX21FORIMAX11I36IFORJ0JLJMCJFORG0GJGMMIQIQIMFORIMAX21I36IFORJ0JKJNFJFORG0GJGNNIVIVINFORGMAX11G36GFORHMAX21H36HIFQGVHWG,THGOTOOUTFORI0ILIPRINTFC,AIPRINTFISNOTEQUALTOFORI0IKIPRINTFC,DIPRINTFINANYBASE236NGOTOOUTSOUTFORI0ILIPRINTFC,AIPRINTFBASED,WFORI0IKIPRINTFC,DIPRINTFBASEDN,TOUTS选做题65等值数列段如果一个数列中的某一段(至少有两个元素)的各元素值均相同,则称之为等值数列段。等值数列段中元素的个数叫做等值数列段的长度。输入由N个元素组成的整数数列A(其中N50输出A中长度最大的等值数列段的始末位置,如果没有等值数列段,则输出NOEQUALNUMBERLIST说明始末位置是指数组下标,即0表示第一个元素。如果有多个同等长度的等值数列,只输出第一个等值数列的起始位置。当在一个LIST中出现两个等长的连续串的时候,我们的答案应该是第一个等长串。INCLUDESTDIOHVOIDMAININTA50INTF100INTN,I,J,K1,T,Q,S,O,O1,COUNT1,MAX1SCANFD,NFORI0IN1ISCANFD,AIDOFORJ0JN1JIFAJAJ1COUNTCOUNT1KCOUNTFJ1FJ1KIFAJAJ1COUNT1CONTINUEMAXKWHILEMAXKIFMAX1PRINTFNOEQUALNUMBERLISTN/FORQ0QN1Q/PRINTFD,FQ/PRINTFNELSEOF0FORS1SN1SIFFSOOFSO1S/PRINTFDD,O1,O/PRINTFNPRINTFTHELONGESTEQUALNUMBERLISTISFROMDTODN,O1O1,O1选做66邮票组合背景我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。输入四种邮票的面值。输出用这四种面值组成的邮资最大的从1开始的一个连续的区间。说明如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释邮资就是你寄东西需要花多少钱。邮票面额是由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。INCLUDESTDIOHINTNENGINTA,INTMAXINTI,J,K,M,NINTSUMFORI0I5IFORJ0J5JFORK0K5KFORM0M5MFORN0N5NSUMAIAJAKAMANIFSUMMAXRETURN1RETURN0VOIDMAININTA5,IINTMAX0A40SCANFDDDD,A0,A1,A2,A3WHILE1IFNENGA,MAXMAXELSEBREAKPRINTFTHEMAXISDN,MAX1选做67十进制数转换为16位二进制数将任一正整数(65536)转换为16位二进制形式。输入正整数输出正整数的16位二进制数友情提示定义一个整型数组,数组有16个元素,保存变换后的二进制数。INCLUDESTDIOHVOIDMAININTN,IINTA16SCANFD,NIFN0N65536FORI0I15IAIN2NN/2FORI15I0IPRINTFD,AIPRINTFNELSEPRINTFINVALIDINPUTN选做题69折半插入排序排序是程序设计中的重要内容之一,据不完全统计,在一般的数据处理程序中,排序占去了处理机时间的四分之一,而在典型的安装程序中,一半以上的时间用在对表的排序上。常用的排序算法有直接插入排序,折半插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序等。其中直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。在直接插入排序中,为了找到插入位置,采用了顺序查找的方法。为了提高查找速度,可以采用折半查找,这种排序称折半插入排序。折半查找法先取有序数组的中间元素与查找值相比较。如相等则查找成功;如查找值大于中间元素,则再取高半部的中间元素与查找值相比较。如查找值小于中间元素,则再取低半部的中间元素与查找值相比较。如此重复直到查找成功或最终未找到该数为止。在折半插入排序算法中,由于进行关键字比较的次数比较少,所以算法的效率就比较高。例如有序列10,90,80,30,20,15。我们进行折半插入排序的过程如下初始(第1趟)有序子序列为空。待排序数据为10,则不需要进行关键字比较,直接插入。第2趟有序子序列为“10”,待排序数据为90,进行1次比较就可以确定插入位置,得到长度1的有序子序列“10,90”。此时比较次数为1。第2趟有序子序列为“10,90”。待排序数据为80,取有序序列中间(取整)的元素10进行第1次比较,80大;则应该从“90”这个子序列中进行折半插入80,进行第2次比较,定位应该的插入位置,得到有序序列“10,80,90”。此趟比较次数为2。第3趟有序子序列为“10,80,90”。待排序数据为30,取有序序列中间的元素80进行第1次比较,30小;则应该从“10”这个子序列中进行折半插入30,进行第2次比较,可以定位应该插入的位置,得到新的长度1的有序子序列。此趟比较次数为2。第4趟有序子序列为“10,30,80,90”。待排序数据为20,取有序序列中间的元素30进行第1次比较,20小;则应该从“10”这个子序列中进行折半插入20,进行第2次比较,可以确定应该插入的位置。此趟比较次数为2。第5趟有序子序列为“10,20,30,80,90”。待排序数据为15,取有序序列中间的元素30进行第1次比较,15小;则应该从“10,20”这个子序列中进行折半插入15,取子序列中间的元素10,进行第2次比较,15大,则应该从“20”这个子序列中进行折半插入排序,再进行1次比较就可以确定应该插入的位置。此趟比较次数为3。此时,完成排序,得到升序序列“10,15,20,30,80,90”。在整个排序过程中进行关键字比较的总次数01222310。输入数列中元素个数(元素数量100)数列输出使用折半插入排序后的有序升序数列在折半插入排序过程中进行关键字比较的次数说明输出个数列之间用空格分隔INCLUDESTDIOHINTMAININTN,A100,B100,I,J,COUNT0,LENGTHB1SCANFDN,NFORI0INISCANFD,AIB0A0FORI1INIINTC0,DLENGTHB1,FLAG0DOIFAIBCD/2/待插入数字大于中间值CCD/21COUNTELSEIFAIBCD/2/待插入数字小于中间值DCD/21COUNTELSECOUNTFLAG1BREAKWHILECD/处理最后一个数字IFFLAG0FORJI1JCJBJ1BJBCAILENGTHBFORI0ILENGTHBIPRINTFD,BIIFILENGTHB1PRINTFPRINTFNDN,COUNTRETURN081合并字符串输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。输入两个已经排好顺序(升序)的两个字符串输出一个合并在一起的有序(升序)的字符串要求设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。如果采用先进行串连接,然后再进行排序的算法,则效率太低了。INCLUDESTDIOHINCLUDESTDLIBHINCLUDESTRINGHINTMAINCHARA100,B100,TINTK,I,JGETSAGETSBSTRCATA,BKSTRLENAFORJ1JKJFORI0IKJIIFAIAI1TAIAIAI1AI1TPUTSARETURN083删除重复字符背景输入一个长度不超过100的字符串,删除串中的重复字符。输入输入要检查的字符串,长度不超过100个字符。例如ABACAEEDABCDCD。输出删除重复字符后的字符串。例如ABCED。INCLUDESTDIOHINCLUDESTDLIBHINCLUDESTRINGHINTMAINCHARA100,B100INTN,I,J,CNT1GETSANSTRLENAB0A0FORI1INIFORJ0JIJIFAIAJBREAKIFAIAJIJBCNTAICNTFORI0ICNTIPRINTFC,BIPRINTFNRETURN084删除字符串中指定字符输入两个字符串S1和S2,在S1中删除任何S2中有的字符。例如,S1“ABC123AD”,S2“A1”,则输出“BC23D”。输入两个字符串S1和S2输出删除后的字符串S1INCLUDESTDIOHINCLUDESTDLIBHINCLUDESTRINGHINTMAINCHARA100,B100,C100INTX,Y,I,J,CNTSCANFS,ASCANFS,BXSTRLENBYSTRLENAFORJ0JXJCNT0FORI0IYIIFAIBJCCNTAICNTSTRCPYA,CYCNTFORI0ICNTIPRINTFC,CIPRINTFNRETURN085单词有多少用空格或换行分开的字符串称为单词。输入多行字符串,直到遇到了单词STOP时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。输入多个字符串输出单词的数量INCLUDESTDIOHINCLUDEMALLOCHINCLUDESTRINGHVOIDMAININTCOUNT0CHARWORDWHILE1WORDCHARMALLOCSIZEOFCHAR20SCANFS,WORDCOUNTIF0STRCMPWORD,STOPBREAKFREEWORDPRINTFDN,COUNT186在指定位置插入字符串输入两个字符串S1、S2和S1中任意字符K,在S1中的指定字符K第一次出现的位置处插入字符串S2并输出。输入两个字符串S1、S2和S1中任意字符K输出插入后的字符串S1INCLUDESTDIOHINCLUDESTRINGHVOIDMAINCHARS1100,S2100,S3100CHARCINTI,J,N,T,COUNT1GETSS1GETSS2NSTRLENS1TSTRLENS2SCANFC,CFORI0IN1ICOUNTCOUNT1IFCS1IBREAKFORI0ICOUNTIS3IS1IFORICOUNTICOUNTTIS3IS2ICOUNTFORICOUNTTINTIS3IS1ITPUTSS3/FORI0IQIPRINTFC,S3IPRINTFN/选做T81拱猪计分背景拱猪是一种很有趣的扑克牌游戏。即使你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性。假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则,在牌局结束时计算四位玩家所得分数。我们分别以S、H、D及C来代表黑桃,红心,方块及梅花,并以数字1至13来代表A、2、Q、K等牌点,例如H1为红心A,S13为黑桃K。牌局结束时,由各玩家持有的有关计分的牌计分牌仅有S12猪,所有红心牌,D11羊及C10加倍等16张牌。其它牌均弃置不计。若未持有这16张牌之任一张则以得零分计算。若持有C10的玩家只有该张牌而没有任何其它牌则得50分,若除了C10还有其它计分牌,则将其它计分牌所得分数加倍计算。若红心牌不在同一家,则H1至H13等13张牌均以负分计,其数值为50,2,3,4,5,6,7,8,9,10,20,30,40。而且S12与D11分别以100及100分计算。若红心牌H1至H13均在同一家,有下列情形所有红心牌以200分计算。若S12、D11皆在吃下所有红心牌之一家,则此玩家得500分。而C10还是以前面所述原则计算之。例一若各玩家持有计分牌如下每行代表一玩家所持有之牌S12H3H5H13D11H8H9C10H1H2H4H6H7H10H11H12则各家之得分依序为148、83、138及60。例二若各玩家持有计分牌如下第四家未持有任何计分牌H1H2H3H4H5H6H7H8H9H10H11H12H13S12C10D11则各家之得分依序为200、200、100及0。例三若有一玩家持有所有16张计分牌,则得1000分。其余三家均得零分。输入每个输入文件由多组测试数据构成,每组测试数据有四行,每一行第一个数为该玩家所持有计分牌总数,而后列出其所持有之所有计分牌,牌数与各计分牌均以一个以上的空格分开。相邻两组测试数据之间不会有空白行,读到四家持牌数都为0表示文件结束。输出每一行输出一组测试数据对应的结果,依次输出各家所得分数,共四个整数含正负号,0除外,相邻两个整数之间以一个空格分开,符号和数字间不可以有空格。每组输出间不需要有空白行。INCLUDESTDIOHINTMYINPUTINTCARD,INTNUMBERINTI,NCHARS5FORI0I4ISCANFD,NNUMBERINWHILENSCANFS,SSWITCHS0CASESCARD13IBREAKCASEDCARD14IBREAKCASECCARD15IBREAKCASEHS20CARDS11ICARDS2110IRETURNNUMBER0NUMBER1NUMBER2NUMBER3INTMAININTVALUE1550,2,3,4,5,6,7,8,9,10,20,30,40,100,100,CARD16,SCORE40,0,0,0,NUMBER4,I,S,INPUTWHILEMYINPUTCARD,NUMBERFORI0,S0I13ISCARDIIFS13FORI0I15ISCORECARDIVALUEIELSEIFCARD0CARD13CARD13CARD14SCORECARD0500ELSESCORECARD0200SCORECARD14VALUE14SCORECARD13VALUE13SCORECARD15NUMBERCARD15150SCORECARD15FORI0I4IPRINTFSDS,SCOREI0,SCOREI,I3NFORI0I4ISCOREI0RETURN0选作T82合并果子在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过N1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力31215。可以证明15为最小的体力耗费值。输入输入包括两行,第一行是一个整数N1N10000,表示果子的种类数。第二行包含N个整数,用空格分隔,第I个整数AI1AI10000是第I种果子的数目。输出输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231。INCLUDESTDIOHINCLUDESTRINGH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年11月立冬活动方案 立冬与自然变化
- 安全经营风险管理制度
- 2026 年学生遭遇诈骗之后正确处置流程教学班会
- 2026年秋季开学初中开学第一课(垃圾分类)课件
- 海运货物运输代理合同(范本)
- 2025年黑龙江省五大连池市《行测》考试备考题库含答案详解【B卷】
- 2025年福建省福安市《行测》考试备考题库及完整答案详解(考点梳理)
- 2025年福建省晋江市《行测》考试笔试题库及答案详解【易错题】
- 2025年河北省涿州市《行测》考试考前冲刺密卷附答案详解【基础题】
- (2026版)校园欺凌信息报告制度
- 《指导服务企业安全生产工作指引》一般化工及医药企业现场安全管理指引分册
- T/CFPA 027-2023红外热成像感温火灾探测器
- 企业绿色发展管理制度
- 一年级幼小衔接开学第一课系列:《会问好》教学课件
- 中国电信新一代智算数据中心基础设施技术方案白皮书
- 结肠癌护理查房-课件
- 陕22N1 供暖工程标准图集
- 数据库说课实例课件
- 学前比较教育全套教学课件
- 生产制造行业岗位薪酬等级表
- 中国华电集团公司班组建设管理规定
评论
0/150
提交评论