北方工大学程序设计专题前三章编程答案_第1页
北方工大学程序设计专题前三章编程答案_第2页
北方工大学程序设计专题前三章编程答案_第3页
北方工大学程序设计专题前三章编程答案_第4页
北方工大学程序设计专题前三章编程答案_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

实验一简单计算问题1、数字求和问题描述给定一个正整数A,以及另外的5个正整数,问题是这5个整数中,小于A的整数的和是多少输入形式输入一行,只包括6个小于100的正整数,其中第一个正整数就是A。输出形式输出一行,给出一个正整数,是5个数中小于A的数的和。样例输入10123411样例输出10/INCLUDEINTMAININTA6INTIINTSUM0FORI0IAISUMSUMAIPRINTF“D“,SUMRETURN0/2、两倍数问题描述给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足数对中一个数是另一个数的两倍。比如给定1432971822,得到的答案是3,因为2是1的两倍,4是2的两倍,18是9的两倍。输入形式输入包括多组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。输入的最后一行只包括一个整数1,这行表示输入数据的结束,不用进行处理。输出形式对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。样例输入143297182202481007511131301样例输出320/INCLUDEINTMAINVOIDINTA2015INTI0,J0,K,T,W,SUM0SCANF“D“,WHILET1IFT0AIJTELSEAIJTIJ0SCANF“D“,FORK0,J0,W0KINTMAININTFUNINTXINTA,B,NINTTSCANF“DDD“,WHILEA0SCANF“DDD“,RETURN0INTFUNINTXIFX1|X2T1ELSETFUNX1AFUNX2B7PRINTF“DN“,TRETURNT4、肿瘤检测问题描述一张CT扫描的灰度图像可以用一个NN(0INTMAININTA200200INTI,J,SIZE0,CIRCLE0INTNSCANF“D“,FORI0I50|AI1J50|AIJ150|AIJ150CIRCLEPRINTF“DD“,SIZE,CIRCLERETURN05、填词问题描述ALEX喜欢填词游戏。填词是游戏是一个非常简单的游戏。填词游戏包括一个NM大小的矩形方格盘和P个单词。玩家需要把每个方格中填上一个字母使得每个单词都能在方格盘上找到。每个单词都能找到要满足下面的条件每个方格都不能同时属于超过一个的单词。一个长为K的单词一定要占据K个方格。单词在方格盘中出现的方向只能是竖直的或者水平的。你的任务是首先在方格盘上找到所有的单词,当然在棋盘上可能有些方格没有被单词占据。然后把这些没有用的方格找出来,把这些方格上的字母按照字典序组成一个“神秘单词”。如果你还不了解规则,我们可以具一个例子,比如在下图中寻找单词BEG和GEE。输入形式输入的第一行包括三个整数N,M和P2INCLUDEINTMAININTCH26MEMSETCH,0,SIZEOFCHINTI,N,M,PCHARSTR200CHARCSCANF“DDD“,WHILENSCANF“S“,STRFORI0STRI0ICHSTRIAWHILEPSCANF“S“,STRFORI0STRI0ICHSTRIAFORI0IINCLUDEINTMAININTCH26MEMSETCH,0,SIZEOFCHINTI,N,M,PCHARSTR200CHARCSCANF“DDD“,WHILENSCANF“S“,STRFORI0STRI0ICHSTRIAWHILEPSCANF“S“,STRFORI0STRI0ICHSTRIAFORI0I80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2五四奖学金,每人4000元,期末平均成绩高于85分(85),并且班级评议成绩高于80分(80)的学生均可获得;3成绩优秀奖,每人2000元,期末平均成绩高于90分(90)的学生均可获得;4西部奖学金,每人1000元,期末平均成绩高于85分(85)的西部省份学生均可获得;5班级贡献奖,每人850元,班级评议成绩高于80分(80)的学生干部均可获得;只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。输入形式输入的第一行是一个整数N(1INCLUDEINCLUDEINCLUDESTRUCTSTUDENTSCHARNAME21INTSCORE1,SCORE2CHARC1,C2INTNUM,MONEYSTUDENT100VOIDJUDGESTRUCTSTUDENTSSBIFSBSCORE180IFSBSCORE185IFSBSCORE190SBMONEY2000IFSBSCORE185IFSBSCORE280/VOIDJUDGESTRUCTSTUDENTSSBIFSBSCORE180IFSBSCORE185IFSBSCORE190SBMONEY2000IFSBSCORE185IFSBSCORE280/INTMAININTNSCANF“D“,INTI,J,SUM0FORI0IMAXMAXSTUDENTIMONEYJIPRINTF“SNDNDN“,STUDENTJNAME,STUDENTJMONEY,SUMSYSTEM“PAUSE“RETURN08、简单密码问题描述JULIUSCAESAR曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。密文ABCDEFGHIJKLMNOPQRSTUVWXYZ明文VWXYZABCDEFGHIJKLMNOPQRSTU你的任务是对给定的密文进行解密得到明文。你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。输入形式输入中的测试数据不超过100组。每组数据都有如下的形式,而且各组测试数据之间没有空白的行。一组测试数据包括三部分起始行一行,包括字符串“START“密文一行,给出密文,密文不为空,而且其中的字符数不超过200结束行一行,包括字符串“END“在最后一组测试数据之后有一行,包括字符串“ENDOFINPUT“。输出形式对每组数据,都有一行输出,给出密文对应的明文。样例输入STARTNSBFW,JAJSYXTKNRUTWYFSHJFWJYMJWJXZQYTKYWNANFQHFZXJXENDSTARTNBTZQIWFYMJWGJKNWXYNSFQNYYQJNGJWNFSANQQFLJYMFSXJHTSINSWTRJENDSTARTIFSLJWPSTBXKZQQBJQQYMFYHFJXFWNXRTWJIFSLJWTZXYMFSMJENDENDOFINPUT样例输出INWAR,EVENTSOFIMPORTANCEARETHERESULTOFTRIVIALCAUSESIWOULDRATHERBEFIRSTINALITTLEIBERIANVILLAGETHANSECONDINROMEDANGERKNOWSFULLWELLTHATCAESARISMOREDANGEROUSTHANHEINCLUDEINCLUDEINCLUDEINCLUDECONSTINTN200INTMAINCHARSTRN1INTNINTANWHILESCANF“D“,IINCLUDEINCLUDEINCLUDECONSTINTN100INTMAINCHARSTRNINTCWHILESCANF“S“,STRIFSTRCMPSTR,“ENDOFINPUT“RETURN0ELSEMEMSETSTR,0,SIZEOFSTRCGETCHARFGETSSTR,N,STDININTI0WHILESTRI0IFSTRI10PUTCHARSTRIBREAKELSEIFISUPPERSTRIIFSTRIESTRI5ELSESTRIVAPUTCHARSTRIIMEMSETSTR,0,SIZEOFSTRSCANF“S“,STRMEMSETSTR,0,SIZEOFSTR10、密码问题描述BOB和ALICE开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了N个不同的数A1,AN,它们都大于0小于等于N。机密过程如下待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于I位置的字母将被写到加密信息的第AI个位置,AI是位于I位置的密钥。加密信息如此反复加密,一共加密K次。信息长度小于等于N。如果信息比N短,后面的位置用空格填补直到信息长度为N。请你帮助ALICE和BOB写一个程序,读入密钥,然后读入加密次数K和要加密的信息,按加密规则将信息加密。输入形式输入包括几块。每块第一行有一个数字N,0INCLUDEINCLUDEINCLUDECONSTINTN200INTMAINCHARSTRN1INTNINTANWHILESCANF“D“,IVOIDTEN_TO_RINTA,INTRIFA0TEN_TO_RA/R,RINTTEMPARIFTEMPINCLUDEINCLUDEVOIDR_TO_TENINTA,INTRCHARSTR10000SPRINTFSTR,“D“,AINTLENSTRLENSTRINTC10000,B0FORINTI0IINCLUDEINCLUDEINCLUDEINCLUDECONSTINTN1000CHARSTRN8VOIDPICKCHARSTRING,INTKINTI0,J0WHILESTRINGI0STRCPYTEMP,STRISTRCPYSTRI,STRJSTRCPYSTRJ,TEMPVOIDPRINTINTKINTI,J,FLAG0FORI0I1PRINTF“CCCCCCCDN“,STRI0,STRI1,STRI2,STRI3,STRI4,STRI5,STRI6,COUNTICOUNTELSEIIFFLAGPRINTF“NODUPLICATESN“INTMAININTK,ISCANF“D“,CHARSTRING20FORI0IINCLUDE/INCLUDEINCLUDE/INCLUDECONSTINTN100CHARSTR2N0VOIDPICKCHARSTRING,INTKCHARPSTRINGINTJ0WHILEP0IFISALPHAPSTRKJTOLOWERPJIFP10STRKJ10JPINTMAINCHARSTRINGNINTNINTI,JSCANF“D“,FORI0IINCLUDEINTMAINCHARA10CHARB5INTI,J,K,M,NSCANF“S“,ASCANF“S“,BIK0J0WHILEISTRLENBPRINTF“B“,BRETURN1ELSEPRINTF“SN“,BRETURN06、不吉利日期问题描述在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年以及该年一月一日是星期W(W17),求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。输入形式输入有一行,第一个整数为年份,第二个整数为该年一月一日是星期几(W)。(1INTHOW_LONG_AFTER_1ST_JANUARYINTY,INTMINTA130,31,28,31,30,31,30,31,31,30,31,30,31INTSUM0FORINTI1IINCLUDE/INCLUDE/INCLUDE/INCLUDECONSTINTN61CHAR_NUMN0,_RESULTN0INTRESULTN0INTLEN0VOIDBIGN_MULTIPLYINTB,INTLB,INTA,INTLAINTI,JFORI0I_NUMIFP_NUMP_RESULTIF_COMPAREP_NUM1,P_RESULT1RETURN1_COMPAREP_NUM,P_RESULT1VOIDJUDGELENSTRLEN_NUMINTNUMN0INTI,JFORI0IINCLUDEINCLUDEINCLUDEINCLUDECONSTINTN100INTCN0VOIDBIGN_MULTIPLYINTB,INTLB,INTA,INTLAINTI,JFORI0I1PRINTF“D“,BJJPRINTF“N“INTMAININTBSCANF“D“,_POW2,BRETURN09、拼装模型问题描述DZX从日本回来了,并为TN准备了礼物一个恐龙模型。TN想把它尽快拼好,但是由于模型很庞大,TN又实在比较懒,所以他希望你为他寻找一个最节省时间的拼装方案。模型是由N个零件组成的,每次TN可以选取两个零件拼装在一起来组成一个新的零件,直到得到完整的模型。由于零件的复杂程度不同,TN每次拼装所需要的时间也是不同的,对于两个零件A和B,假设他们的复杂程度分别为A和B,则TN要将这两个零件拼装在一起所需要的时间为AB,而这由两个零件所组成的新零件的复杂程度为AB。现在TN已经统计出了每个零件的复杂程度,你能告诉他最快的拼装方发需要多少时间么输入形式LINE1N1/INCLUDE/INCLUDE/INCLUDE/INCLUDECONSTINTN100INTTHINKINTN,INTAIFN2RETURNA1A0INTI,JFORI0ICONSTINTN50STRUCTPEANUTSINTX,YINTNUMINTSTEPPEANUTNNVOIDINPUTINTM,INTNINTI,J,K1FORI1IBRETURNABELSERETURNBAVOIDSORT_AND_STEPINTM,INTNINTI,JFORI1ISTEP_LIMITPRINTF“DN“,COUNTBREAKELSECOUNTPEANUTINUMINTMAININTM,N,K,TINTISCANF“D“,FORI0IINTMAININTA,B,C,D,E,FSCANF“D“,FORB1BINCLUDEDEFINEMAX10010INTMAXMAXMAX,AMAXMAXINTMAININTN,I,JMEMSETMAX,0,SIZEOFMAXSCANF“D“,FORI1I1IFORJ1JMAXIJ1MAXI1JMAXIJAI1JELSEMAXI1JMAXIJ1AI1JPRINTF“DN“,MAX11RETURN03、大整数加法问题描述求两个不超过200位的非负整数的和。输入形式有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出形式一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入2222222222222222222233333333333333333333样例输出55555555555555555555INCLUDEINCLUDEDEFINEN100/大整数的最大位数CHARN1N“/第一个大整数CHARN2N“/第二个大整数CHARN3N1“/两个大整数之和VOIDADDINTMAIN/PRINTF“N1“SCANF“S“,N1/PRINTF“N2“SCANF“S“,N2ADDRETURN0VOIDADDINTILEN1INTILEN2INTICARRY0INTN0FORILEN1STRLENN11,ILEN2STRLENN21ILEN10ILEN1,ILEN2N3NN1ILEN10N2ILEN20ICARRYICARRYN3N/10N3N10NFORILEN10ILEN1N3NN1ILEN10ICARRYICARRYN3N/10N3N10NFORILEN20ILEN2N3NN2ILEN20ICARRYICARRYN3N/10N3N10NFORNN0NPRINTF“D“,N3N4、大整数乘法问题描述求两个不超过200位的非负整数的积。输入形式有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出形式一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入1234567890098765432100样例输出1219326311126352690000INCLUDEINTMAININTC5000,I,J,B1,A1,KEY0,T,KCHARA201,B201GETSAGETSBFORI0AI0IA1I1FORJ0BJ0JB1J1FORJB11J0JFORIA11I0ICKEYCKEYBJ0AI0IFCKEY10TCKEYCKEYT10CKEY1CKEY1T/10KEYKEYB1JFORI499I0IIFCI0KIBREAKFORIKI0IPRINTF“D“,CIPRINTF“N“RETURN05、大整数除法问题描述求2个大的正整数相除的商输入形式第1行是测试数据的组数N,每组测试数据占2行,第1行是被除数,第2行是除数。每组测试数据之间有一个空行,每行数据不超过100个字符输出形式N行,每组测试数据有一行输出是相应的整数商样例输入324053373129633733590092604577420574392304964939303555957976607910827396462987192585318701752584429931160870372907079248971095012509790550883793197894100000000000000000000000000000000000000001000000000054096567750978508956870567980689709345465465756767686784354353451样例输出010000000000000000000000000000005409656775097850895687056798068970934546546575676768678435435345INCLUDEINCLUDEDEFINEMAX_LEN101INTAN1MAX_LENINTAN2MAX_LENINTTMPAN2MAX_LENINTANRESULTMAX_LENCHARSZLINE1MAX_LENCHARSZLINE2MAX_LENCHARSZNOUSEMAX_LENVOIDSUBSTRACTINTNMAXLEN,INTAN1,INTAN2/大整数AN1减去AN2。两者最多NMAXLEN位,AN1必须不小于AN2,差放在AN1里INTNSTARTPOS0INTIFORI0I0IIFIN0TMPAN2IAN2INELSETMPAN2I0INTMAXINTNMAXLEN,INTAN1,INTAN2/求大整数AN1和AN2中的数值大小INTIFORINMAXLEN1I0IIFAN1IAN2IRETURN1/说明AN1大ELSEIFAN1I0GETSSZLINE1GETSSZLINE2/库函数MEMESET将地址AN1开始的SIZEOFAN1字节内容置成0,SIZEOFAN1的值就是AN1的长度,MEMSET函数在STRINGH中声明MEMSETAN1,0,SIZEOFAN1MEMSETAN2,0,SIZEOFAN2/下面将SZLINE1,SZLINE2中存储的字符串形式的整数转换到AN1,AN2中去,AN10,AN20对应于个位NLEN1STRLENSZLINE1FORJ0,INLEN11I0IAN1JSZLINE1I0NLEN2STRLENSZLINE2FORJ0,INLEN21I0IAN2JSZLINE2I0NHIGHESTPOS0MEMSETANRESULT,0,SIZEOFANRESULTNSHIFTLENNLEN1NLEN2WHILEMAXMAX_LEN,AN1,AN20/只要AN1大于AN2,就不停相减/算出AN1的10的NSHIFTLEN次方倍SHIFTLEFTMAX_LEN,AN2,TMPAN2,NSHIFTLEN/重复减去AN1的10的NSHIFTLEN次方倍,看能减几次WHILEMAXMAX_LEN,AN1,TMPAN20SUBSTRACTMAX_LEN,AN1,TMPAN2ANRESULTNSHIFTLEN/记录商对应位IFNHIGHESTPOS0/记录结果最高位的位置NSHIFTLENFORINHIGHESTPOSI0IPRINTF“D“,ANRESULTIPRINTF“N“IFN1GETSSZNOUSENRETURN06、菲波那契数列问题描述菲波那契数列是指这样的数列数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数A,要求菲波那契数列中第A个数对1000取模的结果是多少。输入形式第1行是测试数据的组数N,后面跟着N行输入。每组测试数据占1行,包括一个正整数A1CONSTINTN100INTLITTLE_FIBONACCI_SEQUENCEINTNIFN1|N2RETURN1ELSEINTA1,B1INTI,TEMPF

温馨提示

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

评论

0/150

提交评论