c语言20题上机题目.docx

上传人:b****4 文档编号:11711609 上传时间:2023-03-30 格式:DOCX 页数:24 大小:21.30KB
下载 相关 举报
c语言20题上机题目.docx_第1页
第1页 / 共24页
c语言20题上机题目.docx_第2页
第2页 / 共24页
c语言20题上机题目.docx_第3页
第3页 / 共24页
c语言20题上机题目.docx_第4页
第4页 / 共24页
c语言20题上机题目.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

c语言20题上机题目.docx

《c语言20题上机题目.docx》由会员分享,可在线阅读,更多相关《c语言20题上机题目.docx(24页珍藏版)》请在冰豆网上搜索。

c语言20题上机题目.docx

c语言20题上机题目

1.计算球体积

ProblemDescription

根据输入的半径值,计算球的体积。

Input

输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

Output

输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

SampleInput

11.5

SampleOutput

4.18914.137

2.成绩转换

ProblemDescription

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:

90~100为A;

80~89为B;

70~79为C;

60~69为D;

0~59为E;

Input

输入数据有多组,每组占一行,由一个整数组成。

Output

对于每组输入数据,输出一行。

如果输入数据不在0~100范围内,请输出一行:

“Scoreiserror!

”。

SampleInput

5667100123

SampleOutput

EDAScoreiserror!

3.第几天?

ProblemDescription

给定一个日期,输出这个日期是该年的第几天。

Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sampleinput,另外,可以向你确保所有的输入数据是合法的。

Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

SampleInput

1985/1/202006/3/12

SampleOutput

2071

4.求奇数的乘积

ProblemDescription

给你n个整数,求他们中所有奇数的乘积。

Input

输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

Output

输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

SampleInput

312342345

SampleOutput

315

5.平方和与立方和

ProblemDescription

给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

Input

输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。

Output

对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。

你可以认为32位整数足以保存结果。

SampleInput

1325

SampleOutput

42820152

6.数值统计

ProblemDescription

统计给定的n个数中,负数、零和正数的个数。

Input

输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

Output

对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

SampleInput

60123-10512340.50

SampleOutput

123005

 

7.多项式求和

ProblemDescription

多项式的描述如下:

1-1/2+1/3-1/4+1/5-1/6+...

现在请你求出该多项式的前n项的和。

Input

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

Output

对于每个测试实例n,要求输出多项式前n项的和。

每个测试实例的输出占一行,结果保留2位小数。

SampleInput

212

SampleOutput

1.000.50

8.素数判定

ProblemDescription

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x

Input

输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

Output

对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

SampleInput

0100

SampleOutput

OK

9.蟠桃记

ProblemDescription

喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:

悟空是在研究一个数学问题!

什么问题?

他研究的问题是蟠桃一共有多少个!

不过,到最后,他还是没能解决这个难题,呵呵^-^

当时的情况是这样的:

第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。

聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

Input

输入数据有多组,每组占一行,包含一个正整数n(1

Output

对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。

SampleInput

24

SampleOutput

422

10.青年歌手大奖赛_评委会打分

ProblemDescription

青年歌手大奖赛中,评委会给参赛选手打分。

选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

Input

输入数据有多组,每组占一行,每行的第一个数是n(2

Output

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

SampleInput

39998974100999897

SampleOutput

98.0098.50

11.求平均成绩

ProblemDescription

假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。

Input

输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。

然后是n行数据,每行包括m个整数(即:

考试分数)。

Output

对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。

每个测试实例后面跟一个空行。

SampleInput

225101020

SampleOutput

7.5015.007.5015.001

12.汉字统计

ProblemDescription

统计给定文本文件中汉字的个数。

Input

输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。

Output

对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。

[Hint:

]从汉字机内码的特点考虑~

 

SampleInput

2WaHaHa!

WaHaHa!

今年过节不说话要说只说普通话WaHaHa!

WaHaHa!

马上就要期末考试了Areyouready?

SampleOutput

149

13.三角形

ProblemDescription

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

Input

输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。

其中A,B,C<1000;

Output

对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。

SampleInput

2123222

SampleOutput

NOYES

14.小明A+B

ProblemDescription

小明今年3岁了,现在他已经能够认识100以内的非负整数,并且能够进行100以内的非负整数的加法计算.

对于大于等于100的整数,小明仅保留该数的最后两位进行计算,如果计算结果大于等于100,那么小明也仅保留计算结果的最后两位.

例如,对于小明来说:

1)1234和34是相等的

2)35+80=15

给定非负整数A和B,你的任务是代表小明计算出A+B的值.

Input

输入数据的第一行为一个正整数T,表示测试数据的组数.然后是T组测试数据.每组测试数据包含两个非负整数A和B(A和B均在int型可表示的范围内).

Output

对于每组测试数据,输出小明A+B的结果.

SampleInput

23580151152

SampleOutput

1567

15.最小公倍数

ProblemDescription

求最小公倍数

输入一对数x,y(均为正整数)

输出二者的最小公倍数

处理到文件结束

SampleInput

1520

SampleOutput

60

16.查找最大元素

ProblemDescription

 

对于输入的每个字符串,查找其中的最大字母(即相应的ASCII值最大),在该字母后面插入字符串“(max)”。

Input

输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。

Output

对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。

SampleInput

abcdefgfedcba

xxxxx

SampleOutput

abcdefg(max)fedcba

x(max)x(max)x(max)x(max)x(max)

17,.整除的尾数

ProblemDescription

 

一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?

Input

输入数据有若干组,每组数据包含二个整数a,b(0

Output

对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。

同组数据的输出,其每个尾数之间空一格,行末没有空格。

SampleInput

20040

199295

00

SampleOutput

004080

15

18.计算两点间的距离

ProblemDescription

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

Input

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

Output

对于每组输入数据,输出一行,结果保留两位小数。

SampleInput

00010110

SampleOutput

1.001.41

19.数据的交换输出

ProblemDescription

输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

Input

输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。

n=0表示输入的结束,不做处理。

Output

对于每组输入数据,输出交换后的数列,每组输出占一行。

SampleInput

421345543210

SampleOutput

123414325

20.首字母变大写

ProblemDescription

输入一个英文句子,将每个单词的第一个字母改成大写字母。

Input

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

Output

请输出按照要求改写后的英文句子。

SampleInput

ilikeacmiwanttogetanaccepted

SampleOutput

ILikeAcmIWantToGetAnAccepted

 

答案:

1.#include

intmain()

{doubler,V,pi;

while(scanf("%lf",&r)!

=EOF)

{pi=3.1415927;

V=(4.0/3)*pi*r*r*r;

printf("%.3lf\n",V);

}

return0;

}

2.#include

intmain()

{inta,s;

while(scanf("%d",&a)!

=EOF)

{if(a>100||a<0)

printf("Scoreiserror!

\n");

else{s=a/10;

switch(s)

{case0:

case1:

case2:

case3:

case4:

case5:

printf("E\n");break;

case6:

printf("D\n");break;

case7:

printf("C\n");break;

case8:

printf("B\n");break;

case9:

case10:

printf("A\n");break;

}

}

}

return0;

}

3.#include

voidmain()

{intmonths[12]={0,31,28,31,30,31,30,31,31,30,31,30};

intyear,month,day;

intflag,i;intsum;

while(scanf("%d/%d/%d",&year,&month,&day)!

=EOF)

{sum=0;

for(i=0;i

sum+=months[i];

if((year%4==0)||(year%100!

=0&&year%400==0))

{flag=1;

}

else

{flag=0;

}

sum=sum+day+flag;

printf("%d\n",sum);

}

}

4.#include

main()

{

intn,a,p;

while(scanf("%d",&n)!

=EOF)

{

p=1;

while(n--)

{

scanf("%d",&a);

if(a%2==1)p=p*a;

}

printf("%d\n",p);

}

}

5.#include

intmain()

{

inta,b,i,p,l,t;

while(scanf("%d%d",&a,&b)!

=EOF)

{

if(a>b)

{

t=a;

a=b;

b=t;

}

l=p=0;

for(i=a;i<=b;i++)\\这里第二个i被我写成了a

T0T

{

if(i%2==0)

{p=p+i*i;

}

else

{

l=l+i*i*i;

}

}

printf("%d%d\n",p,l);}

return0;}

6.#include

main()

{

intn,x,i,a,b,c;

while(scanf("%d",&n)!

=EOF)

{

a=0;b=0;c=0;

for(i=0;i

{

scanf("%d",&x);

if(x<0)

a++;

else

if(x=0)

b++;

else

if(x>0)

c++;

}

printf("%d%d%d\n",a,b,c);

}

}

7.#include

#include

intmain()

{intn,m,i,j;

floats[100];

scanf("%d",&m);

for(i=0;i

{

s[i]=0;

scanf("%d",&n);

}for(i=0;i

{

for(j=1;j<=n;j++)

s[i]=s[i]+(pow((-1),(j+1))/j);

}

for(i=0;i

printf("%.2lf\n",s[i]);

return0;

}

8.#include

#include

#include

inta[3001];main()

{

intn,x,y,i,j,f;

for(i=2;i<=3000;i++)

a[i]=1;

for(i=2;i<=3000;i++)

{

if(1==a[i])

{

for(j=i+1;j<=3000;j++)

if(0==j%i)a[j]=0;

}

}

while(scanf("%d%d",&x,&y)&&(x||y))

{

f=0;

if(x>y){n=x;x=y;y=n;}

for(n=x;n<=y;n++)

{

if(!

a[n*n+n+41])

{

f=1;

break;

}

}

if(!

f)printf("OK\n");

elseprintf("Sorry\n");

}

}

9.#include

intmain(void)

{

intn,sum,i;

while(scanf("%d",&n)!

=EOF)

{

sum=1;

for(i=1;i

sum=(sum+1)*2;

printf("%d\n",sum);

}

return0;

}

10.#include

#include

intmain()

{

intn,i;

floata[100],sum,av,max,min;

while(scanf("%d",&n)!

=EOF)

{

sum=0;av=0;

for(i=0;i

scanf("%f",&a[i]);

max=min=a[0];

for(i=0;i

{if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

sum+=a[i];

}

av=(sum-min-max)/(n-2);

printf("%.2f\n",av);

}

return0;

}

11.#include

#include

#include

intmain()

{intm,n,i,j;

doubleavg_r[51],avg_k[6],sum_r[51],sum_k[6];

ints[51][6];

while(~scanf("%d%d",&n,&m))

{

if(!

(n&&m))

{

printf("0.00\n0.00\n0\n\n");

continue;

}

intt=0;

for(i=0;i

{

sum_r[i]=0;

for(j=0;j

{

scanf("%d",&s[i][j]);

sum_r[i]+=s[i][j];

}

avg_r[i]=sum_r[i]/m;

}

for(j=0;j

{

sum_k[j]=0;

for(i=0;i

{

sum_k[j]+=s[i][j];

}

avg_k[j]=sum_k[j]/n;

}

for(i=0;i

{

intflag=1;

for(j=0;j

{

if(s[i][j]

{

flag=0;

break;

}

}

if(flag)

{

t++;

}

}

for(i=0;i

{printf("%.2lf",avg_r[i]);

}

printf("%.2lf\n",avg_r[i]);

for(j=0;j

{printf("%.2lf",avg_k[j]);

}

printf("%.2lf\n",avg_k[j]);

printf("%d\n\n",t);

}

return0;

}

12.#include

#include

charstr[100001];

intmain()

{

intcases;

scanf("%d\n",&cases);

while(cases--)

{

gets(str);

intlen=strlen(str);

intnum=0;

for(inti=0;i<=len;i++)

{

if(str[i]<0&&str[i+1]<0)

{

if(str[i+1]=='\0')

break;

num++;

i++;

}

}

printf("%d\n",num);

}

return0;

}

13.#include

intmain()

{

int

M,i;doubleA,B,C;

scanf("%d",&M);for(i=0;i

{

scanf("%lf%lf%lf",&A,&B,&C);

if(A+B>C&&A+C>B&&B+C>A)printf("YES\n");

elseprintf("NO\n");

}

return0;

}

14.#include"stdio.h"

main()

{

intt;

intn,m;

scanf("%d",&t);

while(t--)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1