收藏 分销(赏)

C语言考试平台.docx

上传人:pc****0 文档编号:6448582 上传时间:2024-12-08 格式:DOCX 页数:70 大小:388.87KB
下载 相关 举报
C语言考试平台.docx_第1页
第1页 / 共70页
C语言考试平台.docx_第2页
第2页 / 共70页
C语言考试平台.docx_第3页
第3页 / 共70页
C语言考试平台.docx_第4页
第4页 / 共70页
C语言考试平台.docx_第5页
第5页 / 共70页
点击查看更多>>
资源描述

1、一A+B ProblemTime Limit:1000MS Memory Limit:65536KTotal Submit:2153 Accepted:1096 Description Calculate a+bInput Two integer a,b (0=a,b=10)Output Output a+bSample Input 1 2Sample Output 3Hint Here is a sample solution for problem using C/GCC: #include int main() int a,b; scanf(%d %d,&a, &b); printf(%

2、dn,a+b); return 0; #includeint main() int a,b; scanf(%d %d,&a, &b); printf(%dn,a+b); return 0; 二第三届程序设计大赛 让气球飞起来Time Limit:1000MS Memory Limit:65536KTotal Submit:325 Accepted:103 Description 比赛又一次开始了,看着气球漂浮在周边是多么兴奋的事情啊,但是告诉你一个秘密,裁判最喜欢做的事情就是猜一个问题,即数目最多的气球颜色。当比赛结束时,他们会数每种颜色的气球数目并公布结果。今年,他们决定将数气球的事情交给你

3、做。Input 测试数据第一行是一个N(0 N = 100),表示放飞的气球总数;紧接着的N行中每行表示一种气球颜色。每种气球颜色是由不多于15个小写字母组成。Output 对于每组测试数据,对应一行输出颜色最多的气球颜色,测试数据能保证对应的结果唯一。Sample Input 5greenredblueredredSample Output redSource #include#includeint main() int a100=0;char str10016;int x,i,j;scanf(%d,&x);for(i=0;ix;i+)scanf(%s,&stri0);for(i=0;ix;

4、i+)for(j=i;jx;j+)if(strcmp(&stri0,&strj0)=0)+ai; for(i=1;ix;i+)if(a0ai)strcpy(&str00,&str10);a0=ai;printf(%s,&str00);return 0; 三3_6搬砖问题Time Limit:1000MS Memory Limit:65536KTotal Submit:2842 Accepted:823 Description 某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块,有多少种搬法用45人正好搬45块砖?Input 无Output men= women= child

5、=Sample Input 无Sample Output men=0 women=15 child=30men=3 women=10 child=32men=6 women=5 child=34men=9 women=0 child=36Source #includemain()float c,y,m,w;for(m=0;m=45;m+)for(w=0;w=45;w+)c=45-m-w;y=m*3.0+w*2.0+c/2.0;if(y=45)printf(men=%.0f women=%.0f child=%.0fn,m,w,c);return 0;四3_3统计不同类型字符Time Limit

6、:1000MS Memory Limit:65536KTotal Submit:1954 Accepted:397 Description 输入一行字符,分别统计其中英文字母、空格、数字和其它字符的个数。Input 键盘上的任意字符串,以;结束。Output character= ,blank= ,digit= ,other= ;Sample Input case 1:printf(very good!);Sample Output character=18,blank=2,digit=1,other=6;Source #include#includemain()char str100;int

7、 c=0,b=0,d=0,o=0;int i,sum=0;for(i=0;i+)scanf(%c,&stri);+sum;if(stri=;)break;for(i=0;i=a & stri=z | (stri=A)+c;else if(stri= )+b;else if(stri=0)+d;else+o;printf(character=%d,blank=%d,digit=%d,other=%d;,c,b,d,o);return 0;五3_5求正整数的位数及各位数字和Time Limit:1000MS Memory Limit:65536KTotal Submit:2612 Accepted

8、:585 Description 输入个正整数num,求它的位数以及各位数字之和。Input 正整数num (0num100000)Output 位数n;各位数字之和sum。Sample Input 123Sample Output n=3;sum=6Source #includemain()int a50=0;int x,sum=0,n=0;int i,them,p=10;scanf(%d,&x);them=x;for(i=0;i+)them/=10;+n;if(them=0)break;for(i=1;in-1;i+)p*=10;for(i=1;i=n;i+)them=x/p;ai=the

9、m;ai*=10;p/=10;sum+=them-ai-1;printf(n=%d;sum=%d,n,sum);return 0;六3_4计算无限序列Time Limit:1000MS Memory Limit:65536KTotal Submit:1025 Accepted:530 Description 输入一个正整数n,计算1-1/4+1/7-1/10+1/13-1/16+.的前n项之和,输出时保留3位小数。Input 正整数n (1n20)Output 结果保留3位小数。Sample Input 3Sample Output 0.893Source#include#includemai

10、n()float x,y=1,p=1,sum=0;int n,i=1;scanf(%d,&n);while(i=n)sum+=p;y=y+3;if(i%2=0)p=1/y;elsep=-1/y;+i;printf(%.3f,sum);return 0;七3_1分段程序求值Time Limit:1000MS Memory Limit:65536KTotal Submit:1617 Accepted:662 Description 输入x,计算并输出下列分段函数f(x)的值。 Input 实数x (-20n20)Output 保留2位小数。Sample Input -1Sample Output

11、-3.00Source #include#includemain()float x,y;scanf(%f,&x);if(x0)y=(x+1)*(x+1)+2*x+1/x;elsey=sqrt(x);printf(%.2f,y);return 0;八3_2二次方程求根Time Limit:1000MS Memory Limit:65536KTotal Submit:2476 Accepted:554 Description 输入参数a、b、c,求一元二次方程ax2+bx+c=0的根。Input 三个实数a、b、c,并确保0。Output 方程两个实根,保留两位小数。Sample Input 1

12、2 -8Sample Output x1=2.00 x2=-4.00Source #include#includemain()float a,b,c;float x1,x2;scanf(%f%f%f,&a,&b,&c);x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a);printf(x1=%.2f x2=%.2f,x1,x2);return 0;九Exp3_1温度转换Time Limit:1000MS Memory Limit:65536KTotal Submit:1263 Accepted:542 Description 输入

13、一个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32)。Input 华氏温度Output 摄氏温度,保留2位小数。Sample Input 100.25Sample Output 37.92Source #include#includemain()float f,c;scanf(%f,&f);c=5.0/9.0*(f-32.0);printf(%.2f,c);return 0;十Exp3_5手机收费Time Limit:1000MS Memory Limit:65536KTotal Submit:1518 Accepted:684 Description 假设手机有两种收费方式,第一

14、种是每分钟0.6元,无月租费;另一种是每分钟0.4元再收50元月租费,输入一个月打电话的时间(分钟),判断那一种方案更省钱。Input 输入一个月打电话的时间,整型。Output 输出最经济的话费,实型,保留两位小数。Sample Input 100Sample Output 60.00Source #include#includemain()float m1,m2;int t;scanf(%d,&t);m1=0.6*t;m2=50.0+0.4*t;if(m1m2)printf(%.2f,m2);elseprintf(%.2f,m1);return 0;十一Exp3_6税收问题Time Lim

15、it:1000MS Memory Limit:65536KTotal Submit:1350 Accepted:396 Description 假设某国家收税是分段计费,标准如下:在1万元以上部分收税20%;5000-10000元部分收税10%;1000-5000元部分收税5%;1000元以下部分免税。根据输入的金额计算应缴纳的税金。 如:某人收入是12000元,则应缴纳的税金为4000*5%+5000*10%+2000*20%=1100元Input 输入一个月的收入,实型。Output 输出应缴纳的税金,实型,保留两位小数。Sample Input 12000Sample Output 11

16、00.00Source #includemain()float x,sum;scanf(%f,&x);if(x1000)sum=0;else if(x5000)sum=(x-1000.0)*0.05;else if(x10000)sum=(x-5000.0)*0.1+200.0;elsesum=(x-10000.0)*0.2+700.0;printf(%.2f,sum);return 0;十二第三届程序设计大赛 大优惠Time Limit:1000MS Memory Limit:65536KTotal Submit:680 Accepted:212 Description 中国移动推出最新的手

17、机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天?Input 输入的测试数据为一行,实例包括2个整数M, K(2 = K = M = 1000)。Output 输出一个整数,表示M元可以用的天数。Sample Input 4 3Sample Output 5Source #includemain()int m,k;int d=0,i;scanf(%d%d,&m,&k);for(i=1;i=1000;i+)+d;if(i=k)+m;i=0;if(d=m)break;printf(%d,d);return 0;十三第三届程序设计

18、大赛 阶乘之和Time Limit:1000MS Memory Limit:65536KTotal Submit:143 Accepted:76 Description 给你一个非负数整数N,判断N是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出NoInput 第一行有一个整数M(0 M 100)表示有M组测试数据; 每组测试数据有一个正整数N(0 N = 100000);Output 如果符合条件,输出Yes,否则输出No;Sample Input 3242931Sample Output YesNoYesSource #inc

19、ludemain()long int n101,a101;int m,p=0;long int y=0,them=1;int i,j,k;scanf(%d,&m);for(i=0;im;i+)scanf(%d,&ni);for(i=0;im;i+)p=0;y=0;them=1;for(j=1;j=ni)for(k=j;k0;k-)if(ni-ak=0)p=1;break;else if(ni-ak0)ni=ni-ak;if(p=1)printf(Yesn);elseprintf(Non);return 0;十四第三届程序设计大赛 五彩的卡片Time Limit:1000MS Memory Li

20、mit:65536KTotal Submit:132 Accepted:60 Description Tom拥有许多色彩缤纷的卡片,一共有4种颜色,分别为:红,绿,蓝,黄。 Tom随机取出N张卡片排成一列,他突然觉得不够美观。他决定替换掉某些卡片使得相邻两张卡片的颜色各不相同。 你的任务就是帮他计算出至少需要替换掉的卡片数量。由于每种颜色的卡片他都有很多,所以可以认为每种颜色的卡片数量是无限的。Input 输入数据的第一行为一个整数N,表示序列中有N个字符(1 = N = 10000)。接着一行有N个字符A1,An,Ai为R, G, B, Y中的一个字符,表示第i张卡片的颜色,R表示红色,G表

21、示绿色,B表示蓝色,Y表示黄色。Output 输出一个整数C,表示至少需要替换掉的卡片数。Sample Input 10RGGBBBRYYBSample Output 3Source #includemain()int n,m=0,i;char str10000;scanf(%d,&n);scanf(%s,str);for(i=1;in;i+)if(stri=stri-1)stri=0;+m;printf(%d,m);return 0;十五第三届程序设计大赛 汽车加油Time Limit:1000MS Memory Limit:65536KTotal Submit:296 Accepted:7

22、4 Description 一辆汽车加满油后可行驶N公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。Input 第一行有2 个正整数N和K(1 = N = 100,1 = K = 100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。接下来的1 行中,有K+1 个整数,表示第K个加油站与第K-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第K+1 个整数表示第K个加油站与目的地的距离。Output 将编程计算出的最少加油次数输出。如果无法到达目的地,则输出 No Solution(注意:No和Solution之间有一个空格

23、)Sample Input 8 83 2 3 6 5 4 2 7 2Sample Output 5Source #includemain()int n,k,p=1,time=0;int i;int a102;scanf(%d%d,&n,&k);for(i=0;i=k;i+)scanf(%d,&ai);for(i=0;in)p=0;break;for(i=1;in)+time;else if(ai+ai-1=n)+time;+i;elseai=ai-1+ai;if(p=1)printf(%d,time);elseprintf(No Solution);return 0;十六第三届程序设计大赛 搬

24、果实Time Limit:1000MS Memory Limit:65536KTotal Submit:161 Accepted:55 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆,只有相邻的两堆可以合并。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过N-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的

25、种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。Input 输入包括两行,第一行是一个整数N(1 N = 100),表示果子的种类数。第二行包含N个整数,用空格分隔,每个整数M(1 = M = 200)是第M种果子的数目。Output 包括一行,这一行只包含一个整数,也就是最小的体力耗费值。Sample Input 31 2 9Sample Output 15Source #includemain()int n,sum=0,p,temp,k;int a105=0,b104=0;int i,j;scanf(%d,&n);for(i=0;i

26、=2)temp=0;for(i=0;i=k-2;i+)bi=ai+ai+1;for(i=0;ibi)b0=bi;temp=i;sum+=b0;atemp=b0;for(i=temp+1;in;i+)ai=ai+1;-k;printf(%d,sum);return 0;测试时用的数据#includemain()int n,sum=0,p,temp,k;int a105=0,b104=0;int i,j;scanf(%d,&n);for(i=0;i=2)temp=0;for(i=0;i=k-2;i+)bi=ai+ai+1;printf(%d*,bi);for(i=0;ibi)b0=bi;temp=

27、i;sum+=b0;printf(b0=%d,sum=%d,temp=%d,b0,sum,temp);atemp=b0;for(i=temp+1;in;i+)ai=ai+1;-k;for(i=0;ik;i+)printf(.%d.,ai);printf(,k=%d,k);printf(n);printf(%d,sum);return 0;十七第三届程序设计大赛 哥德巴赫猜想Time Limit:1000MS Memory Limit:65536KTotal Submit:134 Accepted:60 Description 1742年,哥德巴赫在给好友欧拉的一封信里陈述了他著名的猜想哥德巴赫

28、猜想:任何一个大于4的偶数都是两个素数之和。 例如: 8=3+5,3和5都是素数。 20=3+17=7+13 42=5+37=11+31=13+29=19+23 你的任务是写出10000以内的哥德巴赫猜想。Input 输入包含一组或多组测试数据。 测试数据每一行是一个偶数N(0 N = 10000) 输入数据以0为结束符,0不需要处理。Output 对于每行测试数据,对应一行形式为N=a+b输出(a b),a和b必须是素数。如果有多种结果,请输出b-a最大的一组。Sample Input 820420Sample Output 8=3+520=3+1742=5+37Source#include

29、#define N 10000main()int nN;int k=0,p,a,b;int str10002;int i,j,v,m=0,x;for(i=2;i10000;i+)x=0;for(j=2;ji;j+)if(i%j=0)x=1;if(x=0)strm=i;+m;for(i=0;i+)scanf(%d,&ni);+k;if(ni=0)break;-k;for(i=0;ik;i+)p=1;for(j=0;j=0;v-)if(ni=strj+strv)a=strj;b=strv;printf(%d=%d+%dn,ni,a,b);p=0;break;if(p=0)break;return

30、0;十八第二届程序设计大赛 亏多少?Time Limit:1000MS Memory Limit:65536KTotal Submit:91 Accepted:71 Description 商人能赚钱也能赔钱。 比如,商人吕不韦花40元买了某商品,他决定70元卖掉。一个顾客给了吕不韦100元,吕不韦找了他30元,理论上吕不韦赚了30元。但很不幸,吕不韦发现那100元是假的,于是他亏了70元(40元商品+30元的找钱)。Input 我们有多组测试数据,第一行是一个X(1 = X =20),表示你要分析的X个问题。 接下来的X行中,每行由4个数字构成,分别为N,M,P和C(数字范围0-32767)

31、,数字之间以一个空格分开。 N:商品的成本 M:商品的售价 P:吕不韦收到假钱总数 C:吕不韦找给顾客的钱 其中:N M;P可能小于M,因为顾客可能给一部分假钱,一部分真钱。Output 每行输入数据对应一个输出数据,告诉吕不韦亏多少钱,如果还是赚钱的,那么请输出负数。 Sample Input 340 70 100 3040 70 50 2014604 32391 3902 153Sample Output 7020-13885Hint 提示:例子2分析:顾客支付了90元(50元假钱+40元真钱),吕不韦亏了20元(得到40元真钱-找给顾客20元-40元商品价格)Source #includ

32、eint main()int x,n,m,p,c;int sum21=0;int i;scanf(%d,&x);for(i=0;ix;i+)scanf(%d %d %d %d,&n,&m,&p,&c);if(p=m+c)sumi+=(c+n);elsesumi+=(n+p-m);for(i=0;ix;i+)printf(%dn,sumi);return 0;十九第二届程序设计大赛 IP地址Time Limit:1000MS Memory Limit:65536KTotal Submit:110 Accepted:57 Description 常见的IP地址的表示方式为x.x.x.x,如172.

33、16.163.66,它还可以用“位”来表示。 你的任务是将32个0和1构成的二进制序列转换为十进制的表示格式,每8位之间以.间隔。Input 输入数据第一行是一个正整数N(1 = N = 20),表示有N组数据需要转换。 接下来的N行表示N组数据。Output 每行输入数据对应一行输出数据。 每行输入的二进制数据对应一个十进制的输出数据,每8位以.间隔。Sample Input 4000000000000000000000000000000000000001110000000111111111111111111001011100001001110010110000000010100000001

34、00000000000000000001Sample Output 0.0.0.03.128.255.255203.132.229.12880.16.0.1Source #includeint fact(int n);int main()int n,i,j,k;int a204=0,b8;char str32;scanf(%d,&n);for(i=0;in;i+)scanf(%s,str);for(k=0;k4;k+)for(j=8*k;j8*(k+1);j+)if(strj=0)bj-8*k=0;elsebj-8*k=fact(7-j+8*k);for(j=8*k;j8*(k+1);j+)a

35、ik+=bj-8*k;for(i=0;in;i+)printf(%d.%d.%d.%dn,ai0,ai1,ai2,ai3);return 0;int fact(int n)int res;if(n=0)res=1;elseres=2*fact(n-1);return res; 二十求和问题Time Limit:1000MS Memory Limit:65536KTotal Submit:861 Accepted:349 Description 求s=a+aa+aaa+aaaa+aaaa的值,其中a是一个数字,例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入

36、。Input 输入的测试数据为1行,实例包括2个整数,分别是a的值和加数的个数。Output 输出1个整数,表示求和结果。Sample Input 3 5Sample Output 37035Source #includeint main()int a,n,sum=0,p=1;int j;scanf(%d%d,&a,&n);for(j=n;j0;j-)p=a*j;a*=10;sum+=p;printf(%d,sum);return 0;二十一Problem A:字符串Time Limit:1000MS Memory Limit:65536KTotal Submit:277 Accepted:132 Description 从键盘中输入一串字符串(长度不超过80个字符),假定输入的字符串中只含有字母和#号,请将字符串中的前导#全部移到字符串的尾部,中间的#保持不变。可使用数组或指针实现,不能使用字符串复制函数。Input 输入一串字符串,长度不超过80个字符,只包含字母和#号,并且以#开头和结束。Output 输出移动后的字符串。Sample Input

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服