程序设计百题

时间:2024-03-12 19:54:50

                    

程序设计基础课程  设计

2019程序设计课程实践编程百题

要求:

1、  每道题都写出解题思路

2、  写出编程过程中自己碰到的问题,总结一下自己在解题过程中碰到的问题及解决方法。

3、  保存所有题目的源代码,并保存输入输出的截图。(注意测试用例需要包括临界值、覆盖所有程序分支)

4、  完成所有题目后编写总结报告(将所有题目的1-3步骤整理到一个文档,并总结)。

5、  报告命名方式为学号+姓名+提交文档日期。(注意文档命名,为按照规范命名的文档可能会收不到,无法记录成绩)

基础题

1、 函数f(x)可表示为:

                   2x+1   (x<0)

         f(x) =    0      (x=0)

                   3x2-1  (x>0)

 

编程实现输入一个x值,输出y值。

 

2、 从键盘上输入一个百分制成绩score,按下列原则输出其等级:

88≤score,等级为A;

78≤score<88,等级为B;

68≤score<78,等级为C;

60≤score<68,等级为D;

score<60,等级为E。用switch实现。

 

3、 在厨王争霸赛中,有12个评委为现场厨师打分,满分100。每位厨师最后得分是:去掉一个最高分和一个最低分,求其余得分的平均值。请编写一个程序实现。

 

4、   猴子摘了一堆桃,第一天吃了一半,还嫌不过瘾,又吃了两个;第二天又吃了剩下的一半,然后又多吃了两个;以后每天如此。到第n天,猴子一看只剩下三个了。问最初有多少个桃子?

 

5、  问77777的约数中最大的三位数是多少?

 

6、求77的23次方的最后三位数.(mod操作)

 

7、 在屏幕上显示杨辉三角形

           1
          1 1
        1 2 1
       1 3 3 1
      1 4 6 4 1
   1 5 10 10 5 1

 

8、 输入今年的任意两个日期,格式如“2018-09-10,2018-09-11”,计算两个日期间间隔的天数。

 

9、 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。

 

10、 假设银行整存整取存款不同期限的月息利率分别为:0.63% 期限=1年;0.66% 期限=2年;0.69% 期限=3年;0.75% 期限=5年;0.84% 期限=8年。利息=本金*月息利率*12*存款年限。

现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。

 

11、 用数组实现以下功能:输入5个学生成绩,而后求出这些成绩的平均值并显示出来。 

 

12、 输入一个字符串,通过指针对字符串进行处理,将其中的小写字母改成大写后输出。

 

13、 有一头母猪,它每年初生一头小母猪。每头小母猪从第四个年头开始,每年年初也生一头小母猪。请编程实现在第n年的时候,共有多少头母猪?(先找规律)

 

14、 通过指针实现删除所有*号。规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******,

删除后字符串中的内容应当是:ABCDEFG。

 

15、 输入一串字符,如果字符串都是字母、数字组成,则在其后加上“this is a string”,输出修改后的字符串,否则输出“No”。

 

16、 输入N个数,对前一半数进行升序排序,后一半数进行降序排序;

 

17、 求一个3×3矩阵主对角线元素之和。从键盘输入矩阵元素的值并输出和的值。

 

18、 将一个3行5列二维数组每一行的最小值放到最前面,最大值放到最后面。

 

19、 输入一个3行5列的二维数组,对数组的每一行进行升序排序。

 

20、 编写一个函数,计算任一输入的整数的各位数字之和。主函数包括输入输出和调用该函数。如给子函数传递参数1234,则子函数返回10。(例10=1+2+3+4)。

 

21、 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。(保证输入数据的绝对值都不相等)

 

22、 编写Encrypt函数和Decrypt函数,分别实现字符串的加密和解密。加密方法为字母字符的ASCII码值+5(需要考虑如何处理字母越界)。解密过程为字母字符的ASCII码值-5。在主函数中输入字符串,通过调用加密函数和解密函数,然后输出加密结果和解密后结果。

 

23、 个位数为6且能被3整除的四位数共有多少?

 

24、 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。

 

25、 设N是一个四位数,它的9倍恰好是其反序数,求N。(反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。)

 

26、 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少?

 

27、 如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如 407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。

 

28、 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

 

29、 自守数是指一个数的平方的尾数等于该数自身的自然数。

例如:252=625,762=5776,93762=87909376。

请求出200000以内的自守数。(考虑int的表示范围)

 

30、 求具有abcd=(ab+cd)2性质的四位数。3025这个数具有一种独特的性质:

将它平分为二段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025本身。

请求出具有这样性质的全部四位数。

 

31、 歌德巴赫猜想。验证:2000以内的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。

 

32、 求四位的可逆素数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。

 

33、 素数幻方。求四阶的素数幻方。即在一个4X4 的矩阵中,每一个格填入一个数字,使每一行、每一列和两条对角线上的4 个数字所组成的四位数,均为可逆素数。

 

34、 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

 

35、 若一个口袋中放有12个球,其中有3个红的。3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配,输出所有的颜色搭配?

 

36、 最大公约数和最小公倍数。求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)

 

37、 编程比较两个分数的大小。如输入4/5,8/9,对输入的数进行比较。 

 

38、 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。输出插入数字后的序列。

 

39、 用指针实现一个一维数组的前后数据交换。

 

40、 输入一串文本,统计输入文本中汉字的个数。

 

41、 输入一个字符串,通过指针对字符串进行处理,将其中的小写字母改成大写后输出。

 

42、 输入一个字符串,删除里面的数字字符后输出,如输入”23daf89dfdfaiei89”,输出” dafdfdfaiei”。(用指针实现)

 

43、 数字字符串相加。输入一个字符串,将字符串中连续的数字子串转换成数字后相加,输出相加后的结果。如输入 “23daf89dfdfaiei89”, 输出23+89+89的和。

 

44、 有一种数列叫做斐波那契数列。F(0)=0,F(1)=1,F(2)=1,F(3)=2,F(4)=3,F(5)=5…现在输入n,输出F(n)结果。(请分别使用递归和非递归的两种方法编写函数)

 

45、 给定三条边,请你判断一下能不能组成一个三角形。

 

46、 定义一个结构体数组,包括学生学号、姓名、年龄和3门课的成绩。然后输入5个学生信息,查找各科平均分最高的学生,并输出该学生的信息。

 

47、 定义一个有5个元素的字符型指针数组,分别初始化执行5个字符串“China”,“France”,“England”,“Italy”,“Japan”,然后编写函数对字符串进行升序排序,排序后的结果在主函数输出。

 

48、 有一个数组int S[N],要求写一个函数:

int *myfunc(int *p,int n);

将S中的0都移到数组末尾,将非0的移至开始(保持原来的顺序不变)。

如S原来是:1,0,3,4,0,-4,8,处理后是1,3,4,-4,8,0,0

 

49、 输入两个整数a和b,输出a+b, a-b,(分析int,double,longlong,不同数据类型的表示范围)示例如:

输入:2576493547,65485971

输出:2641979518,2511007576

 

50、 众所周知,7是一个神奇的数字,所以围绕着7的话题也有很多。输入3个0~100的数字,对其进行任意排序,判断是否可以通过任意顺序的加法和减法得到结果7。如果可以,输出任意一种有效结果,如果不能,输出no。如:

输入:1、1、5

输出:1+1+5=7

输入:2、5、4

输出:5+4-2=7

 

51、 字符串匹配问题。输入字符串a,b(a的长度大于b),输出b在a中第一次出现的位置,如果不匹配,则输出no。如

输入:ATGVHUL, HU

输出:5

 

52、 有1、2、3、4个数字,能组成多少个互不相同,且无重复数字的三位数?都是多少?

 

53、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

 

54、 输入7个整数,对这十个数进行冒泡排序法(升序),输出每次冒泡的变化结果。如:

输入:6,3,8,2,9,1

输出:3,6,2,8,1,9 -> 3,2,6,1,8,9 -> 2,3,1,6,8,9 -> 2,1,3,6,8,9 -> 1,2,3,6,8,9

 

55、 用“#”号输出字母M的图案(大小任意,看着像M就行)

 

56、 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

 

57、 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

 

58、 利用递归方法求n!,n(<20)用户输入。

 

59、 输入的5个字符,利用递归函数调用方式,将所输入的多个字符,以相反顺序打印出来。

 

60、 采用指针数组编程,用户输入数字‘1~7’,对应输出‘星期一~星期日’。

 

61、本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

2.12 88 c 4.7

输出样例:

c 88 2.12 4.70

 

62、输出Fibonacci数列前40项。

 

63、判断一年是否为闰年。

 

64、冒泡法对10个数据进行排序

 

65、编程计算1!+2!+…+10!的值。

 

66、求以下数列前15项的和:2/1,3/2,5/3,8/5,13/8

 

67、判断输入的字符串是否为“回文”,即顺读和反读都一样。

 

68、随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体重。 

 

69、实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。

 

70、编写一个程序,从4个整数中找出最小的数,并显示此数。

提高题

 

1、 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),求用这些砝码能称出不同的重量个数。输入1g、2g、3g、5g、10g、20g的砝码个数。输出能称出不同重量的个数。

如输入:1 1 0 0 0 0

输出:3

 

 

2、 给你n(n<=105)个整数,然后要有m (m<=105)个查询。每个查询包括两个整数i和j,输出每次询问第i个数字到第j个数字所有数字之和。

 

 

3、 给你一个有n(n<=100000)个整数的序列,要求求出其中最大连续子序列的和。最大连续子序列的和是指连续的若干个数,其和是所有子序列和的最大值。如

输入:1 5 6 7 9 12 10

输出:18

 

4、 设计程序判断一个密码是否是安全的,规则如下:

1)、 如果密码长度小于 6 位,则不安全

2)、 如果组成密码的字符只有一类,则不安全

3)、 如果组成密码的字符有两类,则为中度安全

4)、如果组成密码的字符有三类或以上,则为安全

通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。

要求:输入密码,输出密码的安全等级。

 

5、 输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。如

输入:abcdef  bcefghi

输出:abbccdeeffghi

 

6、 在一些科学研究领域,常常会遇到很大的数字,比如:光年(1光年=9,460,730,472,580,800米) 当面对这些非常巨大的数字时,计算机内基础类型(如int,longlong,double等)就很难存储它们,并进行运算了,所以,现在需要你来解决这个问题。输入a和b,(a,b > 1020),输出a+b的结果

输入:9234567880123, 1111111111111

输出:10345678991234

 

7、输入一个十进制数N,将它转换成R进制数输出。如:

输入:32,16

输出:20

 

8、 现在有一个编织地毯的问题。就是把地毯一圈一圈的往外编织,使得从上往下看时,地毯花色交错。输入是三个数据,分别是:地毯尺寸n(n为满足0<n<60的奇整数),中心花色字符,外围花色字符,后二者都为ASCII可见字符。输出是织在一起的地毯图案,中心花色与地毯外边花色字符从内层起交错相叠。输出的地毯之间应有一行间隔。示例如下:

输入:

11 B A

5 @ W

输出:

AAAAAAAAAAA

ABBBBBBBBBA

ABAAAAAAABA

ABABBBBBABA

ABABAAABABA

ABABABABABA

ABABAAABABA

ABABBBBBABA

ABAAAAAAABA

ABBBBBBBBBA

AAAAAAAAAAA

 

@@@@@

@WWW@

@W@W@

@WWW@

@@@@@

 

9、 现在有两条子母字符串,母字符串较长,子字符串较短。现在要从母字符串中裁剪出尽可能多的子字符串。

输入中含有一些数据,分别是成对出现的母字符串和子字符串,字符串都是用可见ASCII字符表示的,可见的ASCII字符有多少个,字符串的编码也有多少种样式。输入的字符串都不会超过1000个字符长。如果遇见#字符,则不再进行工作。

输出能从母字符串中剪出的最多子字符串个数,如果一条都没有,那就老老实实输出0,每个结果之间应换行。

输入:

Abcde

a3

aaaaaa

aa

#

输出:

0

3

 

10、有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程。
例如:

x + y = 9,x * y = 15 ? 找不到这样的整数x和y

1+4=5,1*4=4,所以,加起来等于5,乘起来等于4的二个整数为1和4

7+(-8)=-1,7*(-8)=-56,所以,加起来等于-1,乘起来等于-56的二个整数为7和-8

输入数据为成对出现的整数n,m(-10000<n,m<10000),它们分别表示整数的和与积,如果两者都为0,则输入结束。输出时,只需要对于每个n和m,输出“Yes”或者“No”,明确有还是没有这种整数就行了。

 

11、有一个经典数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?

 

输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。

输入:

1

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

输出:

30

 

12、统计一篇文章里不同单词的总数。有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

输入:

you are my friend

#

输出:

4

 

13、输入10个学生的成绩存入数组,分别用函数实现:

(1)求平均成绩;

(2)按分数高低进行排序并输出;

(3)如果输入的学生信息除了成绩外,还包括学生的学号和姓名。实现Search函数,通过输入学生学号查找并返回成绩。(用结构体做)。

 

14、有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

 

15、求矩阵中的“鞍点”。鞍点是在某个数值矩阵中,如果某个元素的值在本行中最大数,而在本列中最小数,则该数就为该矩阵的鞍点,一个矩阵只有一个鞍点或没有鞍点,编程寻找某个矩阵的鞍点,如果有则输出该数的值及行号和列号,若没有则输出“not found”信息。寻找鞍点并在函数中实现。

 

16、编一程序,设置一个排序函数sort,该函数将数组按照从小到大的顺序进行排序,其中有两个形式参数,一个为指向数组的指针p,另一个为数组的元素个数n。在主函数main()中要求从键盘输入10个数存入数组data[10]中,同时要求调用函数sort对data进行排序,并在main()中输出最终的排序结果。

 

17、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:①输入10个数;②进行处理;③输出10个数。所有函数的参数均用指针。

 

18、有一个班的4个学生,有5门课程。(建议使用结构体数组)

1)、求第一门课的平均分;

2)、找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分

3)、找出平均分在90分以上或全部课程成绩在85分以上的学生。

分别编写三个函数来实现以上三个要求

 

19、有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法。输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50)。对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。

输入:

1
/*-

2

输出:

3

6                            

 

20、 ISBN号码。【问题描述】  每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。  识别码的计算方法如下: 首位数字乘以1加上次位数字乘以2„„以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+„„+2×9=158,然后取158 mod 11的结果4作为识别码。请编程对输入的ISBN码进行判断,如果正确则输出right,否则输出wrong。

 

综合题

1、学生信息管理系统

实现一个学生信息管理系统,学生信息包括(学号,姓名,性别,年龄,5门课成绩)。实现过程中需要用链表,一个节点对应一个学生的信息。数据存放到文件。软件启动时,从文件中读取数据并生成链表。插入、删除和查询都在链表中完成。软件关闭时,将数据更新到文件中。系统具体功能如下:

提示用户要完成什么操作:

A ( Add );D ( Delete );M ( Modify );Q ( Query );S(Statistics);E ( Exit )

用户选择A,完成添加一个新的学生信息;

用户选择D,提示用户输入需要删除的学生学号,如果没有该学号,提示用户输入学号错误,重新输入学号。如果输入的学号存在,则删除对应的学生所有信息。

用户选择M,提示用户输入需要修改的学生学号,如果没有该学号,提示用户输入学号错误,重新输入学号。如果输入的学号存在,则提示用户需要更新的学生信息。

用户选择Q,提示用户输入需要查询的学生学号,如果没有该学号,提示用户输入学号错误,重新输入学号。如果输入的学号存在,则输出该学号对应的学生信息(学号,姓名,性别,年龄,5门课成绩)。

用户选择S,直接输出统计信息,统计信息包括:每门课的平均分、每门课90-100,80-89,70-79,60-69,<60的人数。

用户选择E,退出系统。否则一直重复操作。

D、M、Q、S操作都可以终止,即用户选择D、M、Q或S后,即可以重新进入操作选择阶段,也可以终止。

 

2、通讯录。

设计要求:编写一个通讯录管理系统进行简单的通讯录信息管理。每个成员的相关信息包括:姓名、性别、年龄、联系电话、E-mail、住址等。 具体实现功能如下:

1)通讯录信息的输入、修改、删除、查找、排序、信息输出、文件保存等功能。

2)查找时如果有同名的记录,需要输出所有的记录信息。

*3)思考如何提高通讯录的查询效率。

 

3、计算日期差。

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”(注意是否包含闰年)。如

输入:1990-01-06

输入:打鱼

 

4、扑克牌游戏

拱猪是一种很有趣的扑克牌游戏。即使你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性。 假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则,在牌局结束时计算四位玩家所得分数。

我们分别以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还是以前面所述原则计算之。

例一:若各玩家持有计分牌如下: ( 每列代表一玩家所持有之牌 )

S12 H3 H5 H13

D11 H8 H9

C10 H1 H2 H4 H6 H7

H10 H11 H12

则各家之得分依序为: -148 、 +83 、 -138 及 -60 。

例二:若各玩家持有计分牌如下:(第四家未持有任何计分牌)

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13

S12 C10

D11

则各家之得分依序为: +200 、 -200 、 +100 及 0 。

例三:若有一玩家持有所有 16 张计分牌,则得 +1000 分。其余三家均得零分。

输入: 每个输入文件由多组测试数据构成,每组测试数据有四行,每一行第一个数为该玩家所持有计分牌总数,而后列出其所持有之所有计分牌,牌数与各计分牌均以一个以上的空格分开。相邻两组测试数据之间不会有空白行,读到四家持牌数都为 0 表示文件结束。

输出: 每一行输出一组测试数据对应的结果,依次输出各家所得分数,共四个整数 ( 含正负号,0 除外),相邻两个整数之间以一个空格分开,符号和数字间不可以有空格。每组输出间不需要有空白行。

 

5、 大数再临

前面我们已经解决了大数加法的问题,现在,我们要来解决大数乘法的问题。输入a和b,(a,b > 1020),输出a*b的结果。(123456*1111 = 123456*1000+123456*100+123456*10+123456*1)

输入:1234567890123, 10000000000000000000

输出:12345678901230000000000000000000

 

6、 大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。同时,不同学校之间的同学,可以在拨出长号前+“600”,即可在不同学校之间进行校园网通话。(输入数据中,短号不重复)

现在,如果给你n个同学的信息,以及m条查询

输入,第一行输入n,m:代表接下来n行输入数据为学生id,对应学生的手机号码,和对应学生所在的学校;接下来有m行输入,表示有m条呼叫查询,如“A want call B”

输出:每条查询中,学生需要拨出的号码

输入:

6,3

A  13512345678  School 1

B  13556789654  School 1

C  16845678912  School 1

D  16796325874  School 2

E  13569741258  School 2

F  17869854712  School 3

A  want  call  B

A  want  call  F

D  want  call  B

输出:

689654

60017869854712

60013556789654

 

7、 平常的上机考试虽然有实时的排名,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。

测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号 (题目号由1到M)。 当读入的考生人数为0时,输入结束,该场考试不予处理。 

对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高 到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考号的升序输出。

(建议采用结构体数组)

输入:

4 5 25

10 10 12 13 15

CS004 3 5 1 3

CS003 5 2 4 1 3 5

CS002 2 1 2

CS001 3 2 3 5

1 2 40

10 30

CS001 1 2 2 3 20

10 10 10

CS000000000000000001 0

CS000000000000000002 2 1 2

0

输出:

3

CS003 60

CS001 37

CS004 37

0

1

CS000000000000000002 20

 

8、 我们每个人都有身份证。从身份证上,我们可以获得每个人的具体个人信息。这个数字有18位,前17位数字有特殊含义:前6位代表你来自的地区,然后是接下来的8位代表你的生日。其他4位代表什么?你可以百度或谷歌它。以下是代表您所在地区的代码。

Zhejiang 330000

Beijing 110000

* 710000

* 810000

Macao 820000

Tibei 540000

Liaoning 210000

Shanghai 310000

但是,在您的卡中,可能只显示33,因为0000被其他数字替换。这是小明的身份证号码331004198910120036你能说出他来自哪里吗?

前2个数字告诉他来自浙江省,19891012号是他的生日日期(yy / mm / dd)。Ps:第17位是表示性别的哦,男性是奇数,女性是偶数。所以小明是男性。

输入将包含2个部分:第一行中的数字n,这里的n表示有n个测试用例。对于每个测试用例,都有一串ID卡号。基于上述表格输出他来自哪里以及何时是他的生日。您可以参考样本输出的格式。(输入数据的地区编码不会超出上述表格所示范围)

输入:

2

330000198910120036

330000198910120046

输出:

He is from Zhejiang, and his birthday is on 10,12,1989.

She is from Zhejiang, and her birthday is on 10,12,1989.

 

9、 Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。Sky非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Sky数。但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。

输入含有四位正整数的n,如果为0,则输入结束。若n为Sky数,则输出“#n is a Sky Number.”,否则输出“#n is not a Sky Number.”。每个结果占一行。注意:#n表示所读入的n值。

输入:

2992

1234

0

输出:

2992 is a Sky Number.

1234 is not a Sky Number.

 

10、 龟兔赛跑(新)

很久以前,兔子赛跑输给乌龟后,心中郁闷,发誓要报仇,终于练成了绝技,能够以恒定的速度(VR m/s)一直跑。兔子想找机会教训乌龟。于是兔子再次向乌龟发起挑战。乌龟接受挑战。

比赛是设在一条笔直的道路上,长度为L米,规则很简单,谁先到达终点谁就算获胜。

为了能够再赢兔子,乌龟买了一辆电瓶车。这辆车在有电的情况下能够以VT1 m/s的速度“飞驰”,可惜电池容量有限,每次充满电最多只能行驶C米的距离,以后就只能用脚来蹬了,乌龟用脚蹬时的速度为VT2 m/s。更过分的是,乌龟竟然在跑道上修建了很多很多(N个)的供电站,供自己给电动车充电。但是,每次充电需要花费的时间竟然是0秒。每次,乌龟经过一个充电站的时候可以选择去或不去充电,但是因为充电时间为0秒,聪明的乌龟当然是每次都去充电啦。

比赛马上开始了,兔子和带着充满电的电动车的乌龟并列站在起跑线上。你的任务就是写个程序,判断乌龟能不能赢了一直以恒定速度奔跑的兔子。

输入数据

本题目包含多组测试。每个测试包括四行:

第一行是一个整数L代表跑道的总长度

第二行包含三个整数N,C,分别表示充电站的个数,电动车冲满电以后能行驶的距离

第三行也是三个整数VR,VT1,VT2,分别表示兔子跑步的速度,乌龟开电动车的速度,乌龟脚蹬电动车的速度

第四行包含了N(N<=100)个整数p1,p2...pn,分别表示各个充电站离跑道起点的距离,其中0<p1<p2<...<pn<L

其中每个数都在32位整型范围之内。

输出数据:

当乌龟赢的时候输出一行 “What a pity rabbit!"。否则输出一行"Good job,rabbit!";

题目数据保证不会出现乌龟和兔子同时到达的情况。

输入:

100

3 30

10 20 2

30 60 90

输出:

What a pity rabbit!