C语言在线评测题目.docx
- 文档编号:30365156
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:80
- 大小:61.53KB
C语言在线评测题目.docx
《C语言在线评测题目.docx》由会员分享,可在线阅读,更多相关《C语言在线评测题目.docx(80页珍藏版)》请在冰豆网上搜索。
C语言在线评测题目
1000A+B问题
问题描述:
计算两个10以内的两个整数的和。
输入:
用空格分开的两个整数a和b(0≤a,b≤10)。
输出:
输出a+b的和。
输入示例:
12
输出示例:
程序运行效果示例:
来源:
POJ:
1000
1001鸡兔同笼I
问题描述:
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?
输入:
第1行是测试数据的组数n,后面跟着n行输入。
每组测试数据占1行,每行一个正整数a(a<32768)。
输出:
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。
如果没有满足要求的答案,则输出两个0。
输入示例:
2
3
20
输出示例:
00
510
程序运行效果示例:
来源:
POJ:
2750
1002校门外的树
问题描述:
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。
我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
马路上有一些区域要用来建地铁,这些区域用它们在数轴上的起始点和终止点表示。
已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。
现在要把这些区域中的树(包括区域端点处的两棵树)移走。
你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入:
输入的第一行有两个整数L(1≤L≤10000)和M(1≤M≤100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。
接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出:
输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
输入示例:
5003
150300
100200
470471
输出示例:
298
程序运行效果示例:
来源:
POJ:
2808
1003求平均年龄
问题描述:
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入:
第一行有一个整数n(1≤n≤100),表示学生的人数。
其后n行每行有1个整数,取值为15到25。
输出:
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
输入示例:
2
18
17
输出示例:
17.50
程序运行效果示例:
来源:
POJ:
2714
1004成绩评定
问题描述:
现在有若干个同学的期末考试成绩,我们需要根据下面的规则根据每个同学考试成绩所在的分数段对其成绩进行评定,请编写程序完成这个任务。
成绩评定规则如下:
✧若成绩在100分和90分(含100分和90分)之间,则判定为“A”;
✧若成绩在90分和80分(含80分)之间,则判定为“B”;
✧若成绩在80分和60分(含60分)之间,则判定为“C”;
✧若成绩在60分以下0分以上(含0分),则判定为“D”;
✧否则无法判定,给出错误提示。
输入:
第一行是一个整数n,表示需要评定的成绩的个数。
接下来有n行输入,每行都是一个浮点数,表示某个同学的成绩。
输出:
对应于每个同学的成绩,输出一行表示判定结果,对于无法判定的成绩,输出一行“Invalid”。
输入示例:
4
84
128
45.3
97
输出示例:
B
Invalid
D
A
程序运行效果示例:
来源:
杨珂
1005数字求和
问题描述:
给定一个正整数a,以及另外的5个正整数,问题是:
这5个整数中,小于a的整数的和是多少?
输入:
输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出:
输出一行,给出一个正整数,是5个数中小于a的数的和。
输入示例:
10123411
输出示例:
10
程序运行效果示例:
来源:
POJ:
2796
1006质数判定
问题描述:
质数被定义为一个不能除了1和它本身整除的正整数。
你的任务就是要编写一个程序,判定任意一个大于等于2的正整数是否是质数。
输入:
输入只有一行,即要判定的这个正整数a(2≤a≤200)。
输出:
输出只有一行,若a是质数,输出“Y”,否则输出“N”。
输入示例:
53
输出示例:
Y
程序运行效果示例:
来源:
杨珂
1007求分数序列和
问题描述:
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,……,求这个分数序列的前n项之和。
输入:
输入有一行:
正整数n(0≤n≤500)。
输出:
输出有一行:
分数序列中前n项的和,要求精确到小数点后4位。
输入示例:
99
输出示例:
160.4849
提示:
为避免溢出错误,在程序中的中间变量尽可能都使用double类型。
程序运行效果示例:
来源:
POJ:
2683
1008陶陶摘苹果
问题描述:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。
苹果成熟的时候,陶陶就会跑去摘苹果。
陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。
假设她碰到苹果,苹果就会掉下来。
输入:
输入包括两行数据。
第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。
第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出:
输出文件包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入示例:
100200150140129134167198200111
110
输出示例:
5
程序运行效果示例:
来源:
POJ:
2719
1009装箱问题
问题描述:
一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1,2×2,3×3,4×4,5×5,6×6。
这些产品通常使用一个6×6×h的长方体包裹包装然后邮寄给客户。
因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。
他们很需要有一个好的程序帮他们解决这个问题从而节省费用。
现在这个程序由你来设计。
输入:
输入文件包括几行,每一行代表一个订单。
每个订单里的一行包括六个整数,中间用空格隔开,分别为1×1至6×6这六种产品的数量。
输入文件将以6个0组成的一行结尾。
输出:
除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件的一行,每一行输出一个整数代表对应的订单所需的最小包裹数。
输入示例:
004001
751000
000000
输出示例:
2
1
程序运行效果示例:
来源:
POJ:
1017
1010棋盘上的距离
问题描述:
国际象棋的棋盘是黑白相间的8*8的方格,棋子放在格子中间。
如下图所示:
王、后、车、象的走子规则如下:
✧王:
横、直、斜都可以走,但每步限走一格。
✧后:
横、直、斜都可以走,每步格数不受限制。
✧车:
横、竖均可以走,不能斜走,格数不限。
✧象:
只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。
输入:
第一行是测试数据的组数t(0≤t≤20)。
以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。
位置用“字母-数字”的形式表示,字母从“a”到“h”,数字从“1”到“8”。
输出:
对输入的每组测试数据,输出王、后、车、象所需的最少步数。
如果无法到达,就输出“Inf”。
输入示例:
2
a1c3
f5f8
输出示例:
2121
311Inf
程序运行效果示例:
来源:
POJ:
1657
1011奖金发放
问题描述:
企业每个月发放的奖金根据当月利润进行提成。
利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000<I≤200000)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;200000<I≤400000时,低于20万元的部分仍按上述办法提成(下同)。
高于20万的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000<I≤1000000时,高于60万元的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。
现在请你编写一段程序,读取一年中每个月的利润,计算并输出这一年内的应发奖金总额。
输入:
输入数据一共有12行,每一行都是一个正整数,其中第i(1≤i≤12)行的整数表示第i个月的利润(以元为单位)。
每个整数都不超过2000000。
输出:
输出只有一行,即该企业在这一年内应该发放的奖金总额(以元为单位),要求精确到小数点后两位。
输入示例:
400000
106000
50000
580000
620000
1030000
1700000
122000
640000
76000
60000
540000
输出示例:
287000.00
提示:
程序中运算涉及到的浮点数请使用float类型变量而不要使用double类型,否则有可能导致WrongAnswer。
程序运行效果示例:
来源:
杨珂
1012计算书费
问题描述:
下面是一个图书的单价表:
给定每种图书购买的数量,编程计算应付的总费用。
输入:
输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。
每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。
每两个整数用一个空格分开。
输出:
对于每组测试数据,输出一行。
该行包含一个浮点数f,表示应付的总费用。
精确到小数点后两位。
输入示例:
2
15810511234
356310011010
输出示例:
2140.20
4427.80
程序运行效果示例:
来源:
POJ:
2675
1013鸡兔同笼II
问题描述:
笼子中有若干只鸡和若干只兔子,现在只知道笼子中总共有a个头和b只脚(a和b都是非负整数),请你编写一个程序计算笼子中分别有多少只鸡和多少只兔。
笼子中鸡的数量和兔的数量都必须是一个非负整数,否则就是无效答案。
输入:
输入只有一行,包括两个非负整数,分别表示笼中头的数量a和脚的数量b。
输出:
输出也只有一行,包括用空格分开的两个整数,分别表示笼中鸡的数量和兔的数量。
若为无效答案则输出一行“Error”。
输入示例:
2158
输出示例:
138
程序运行效果示例:
来源:
杨珂
1014两倍
问题描述:
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:
数对中一个数是另一个数的两倍。
比如给定1432971822,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
输入:
输入包括多组测试数据。
每组数据包括一行,给出2到15个两两不同且小于100的正整数。
每一行最后一个数是0,表示这一行的结束,这个数不属于那2到15个给定的正整数。
输入的最后一行只包括一个整数-1,这行表示输入数据的结束,不用进行处理。
输出:
对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。
输入示例:
14329718220
248100
751113130
-1
输出示例:
3
2
0
程序运行效果示例:
来源:
POJ:
2807
1015打印极值点下标
问题描述:
在一个整数数组中,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
输入:
有2×n+1行输入:
第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4≤k≤80),第二行是k个整数,每两个整数之间用空格分隔。
输出:
输出为n行:
每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
输入示例:
3
10
10121211111223241212
15
12121221122222112222217636312342567676
15
12141221122222222222217636312342567673
输出示例:
07
234561012
023101214
程序运行效果示例:
来源:
POJ:
2691
1016肿瘤面积
问题描述:
在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。
其它肿瘤内和肿瘤外的点都用255表示。
现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。
已知肿瘤的边缘平行于图像的边缘。
输入:
只有一个测试样例。
第一行有一个整数n,表示正方形图像的边长。
其后n行每行有n个整数,取值为0或255。
整数之间用一个空格隔开。
已知n不大于100。
输出:
输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。
输入示例:
5
255255255255255
255000255
25502550255
255000255
255255255255255
输出示例:
1
程序运行效果示例:
来源:
POJ:
2713
1017肿瘤检测
问题描述:
一张CT扫描的灰度图像可以用一个N*N(0<N<100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。
我们假设给定的图像中有且只有一个肿瘤。
在图上监测肿瘤的方法如下:
如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。
我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。
任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。
肿瘤的边界点的个数称为肿瘤的周长。
现在给定一个图像,要求计算其中的肿瘤的面积和周长。
输入:
输入第一行包含一个正整数N(0<N<100),表示图像的大小;接下来N行,每行包含图像的一行。
图像的一行用N个整数表示(所有整数大于等于0,小于等于255),两个整数之间用一个空格隔开。
输出:
输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。
输入示例:
6
999999999999
999999509999
999949495051
995020255299
405099999999
999999999999
输出示例:
98
程序运行效果示例:
来源:
POJ:
2677
1018财务管理
问题描述:
兰利今年毕业了并且最后找到了一份工作。
他赚了很多钱,可是钱却总是不够花。
兰利最后决定,他必须要能够对他的财政情况进行详细的管理,这样才可以解决自己的财政问题。
而这样第一个要解决的问题就是他必须要清楚这些钱都拿去干什么了。
兰利手里有自己的银行帐单,他需要知道自己到底有多少钱。
现在需要请你帮兰利编写一个程序,让兰利可以把这一年来每个月的存款余额输入进去,而让程序最终计算出兰利的平均账户金额。
输入:
输入数据总共有十二行。
每一行就是近一年来某个月在兰利账户上的余额。
每一个数都是一个正数并且精确到小数点后两位。
输入的时候不输入美元符号$。
输出:
输出数据就是一个单个的数字,表示这一年来兰利账户上的平均余额。
同样的,输出的数字必须四舍五入保留到小数点后两位(精确到分),并且在输出的时候必须在前面输出美元符号$表示货币,并以换行符作为输出的结束。
在输出中不能包括任何的空格或其它字符。
输入示例:
100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
输出示例:
$1581.42
程序运行效果示例:
来源:
杨珂翻译自POJ:
1004
1019判决素数个数
问题描述:
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入:
两个整数X和Y,X和Y的大小任意。
输出:
输出一个整数,结果可以是0,或大于0的整数。
输入示例:
1100
输出示例:
25
提示:
自然数2是最小的素数。
程序运行效果示例:
来源:
POJ:
3177
1020星号三角形
问题描述:
编写一个程序输出一个由n行星号“*”构成的三角形。
输入:
输入只有一行,即由星号构成的三角形的行数n。
输出:
输出由星号构成的n行三角形,同一行中每两个星号之间用空格分开,形状如输出示例所示。
输入示例:
5
输出示例:
*
**
***
****
*****
提示:
最后一行星号前面不要有空格,否则会造成PresentationError。
程序运行效果示例:
来源:
杨珂
1021字母三角形
问题描述:
编写程序,输出一个由n行大写字母组成的三角形。
输入:
输入只有一个正整数n(1≤n≤20),表示要输出的字母三角形的行数。
输出:
输出一个由n行大写字母构成的三角形,如输出示例所示。
同一行中每两个大写字母之间用一个空格分开。
保证每行的第一列不全为空格。
输入示例:
4
输出示例:
A
BAB
CBABC
DCBABCD
提示:
最后一行字母前面不要有空格,否则会造成PresentationError。
程序运行效果示例:
来源:
杨珂
1022倒置的字母三角形
问题描述:
请你编写一段程序,输出一个由指定行数的大写字母构成的倒置三角形,这个字母三角形必须满足下列条件(请参照示例):
倒置三角形的最下角顶点是固定字符‘A’;
倒置三角形的中心线上的字符从下到上依次是‘A’、‘B’、‘C’、……;
倒置三角形每一行上的字母必须按中心线左右对称:
在中心线左侧,字母依次减小,在中心线右侧,字母依次增大;
倒置三角形每一行上的每两个字母之间用一个空格分开,第一行的第一个字母前没有空格。
输入:
输入只有一个整数,即倒置字母三角形的行数n(1≤n≤10)。
输出:
输出指定行数的倒置字母三角形。
输入示例:
4
输出示例:
GFEDEFG
EDCDE
CBC
A
提示:
注意观察每一行中大写字母的变化规律。
第一行是数字三角形的底边,在这一行的第一个字母前不应该输出任何空格。
程序运行效果示例:
来源:
杨珂
1023求字符串长度
问题描述:
求一个长度不大于100的字符串的长度,要求不使用strlen方法,通过自定义的函数实现字符串长度的计算。
函数定义为:
intGetStrLen(char*pStr)
输入:
一行字符串,使用(gets(str)方法读取此行字符串)。
输出:
输出只有一行,只包含一个整数,表示字符串的长度。
输入示例:
IloveBeijing.
输出示例:
15
程序运行效果示例:
来源:
POJ:
2681
1024首字母大写
问题描述:
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
每个单词之间用除了字母以外的其它字符分割开来。
输入:
输入一行:
待处理的字符串,字符串长度小于等于80。
输出:
输出一行:
经过转换后的字符串,字符串中的每个单词都是首字母大写的。
输入示例:
ifso,youalreadyhaveagoogleaccount.youcansigninontheright.
输出示例:
IfSo,YouAlreadyHaveAGoogleAccount.YouCanSignInOnTheRight.
提示:
注意单词之间的分隔符可以是除了字母以外的任意字符,包括空格、标点符号或者数字等。
程序运行效果示例:
来源:
POJ:
2690
1025字符替换
问题描述:
把一个字符串中特定的字符用给定的字符替换,得到一个新的字符串。
输入:
输入有多行,第一行是要处理的字符串的数目n。
其余各行每行由三个字符串组成,第一个字符串是待替换的字符串,字符串长度小于等于30个字符;
第二个字符串是一个字符,为被替换字符;
第三个字符串是一个字符,为用于替换的字符。
输出:
有多行,每行输出对应的替换后的字符串。
输入示例:
1
hello-how-are-youoO
输出示例:
hellO-hOw-are-yOu
程序运行效果示例:
来源:
POJ:
2700
1026忽略大小写比较字符串大小
问题描述:
一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。
如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如“Hello”和“hello”,在忽略字母大小写时是相等的。
请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
要求用一个自定义函数实现忽略大小写的比较过程,用函数的返回值表示比较的结果:
若返回值为0表示两个字符串相等;若返回值为1表示第一个字符串比第二个字符串大;若返回值为-1表示第一个字符串比第二个字符串小。
函数定义为:
intMyStrCmp(char*pStr1,char*pStr2)
输入:
输入数据共有两行,每行一个字符串,字符串中可能包含空格和其它非字母字符,并且每个字符串长度都不超过80个字符。
输出:
如果第一个字符串比第二个字符串小,输出一个字符“<”;
如果第一个字符串比第二个字符串大,输出一个字符“>”;
如果两个字符串相等,输出一个字符“=”。
输入示例:
Hello
hello
输出示例:
=
程序运行效果示例:
来源:
POJ:
2721
1027和数
问题描述:
给定一个整数序列,判断其中有多少个数,等于数列中其它两个数的和。
比如,对于数列1234,这个问题的答案就是2,因为3=2+1,4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 在线 评测 题目