文档库 最新最全的文档下载
当前位置:文档库 › 上机题及答案

上机题及答案

上机题及答案
上机题及答案

描述

已知华氏温度到摄氏温度的转换公式为:摄氏温度= (华氏温度- 32)×5/9,写程序将给定的华氏温度转换为摄氏温度输出

输入说明

只有一个整数,表示输入的华氏温度

输出说明

输出一个表示摄氏温度的实数,小数点后保留2位有效数字,多余部分四舍五入

输入样例

50

输出样例

2计算球体重量

描述

已知铁的比重是,金的比重是。写一个程序,分别计算出给定直径的铁球与金球的质量,假定PI=

输入说明

输入两个整数,分别表示铁球与金球的直径(单位为毫米)

输出说明

输出两个浮点数,分别表示铁球与金球的质量(单位为克),小数点后保留3位小数,两个浮点数之间用空格分隔

输入样例

100 100

输出样例

提示

#include<>

int main(){

double Fe=,Au=,Pi=;

int m,n;

scanf("%d %d",&m,&n);.3f.3f.2f.2f.6f

输入说明

输入包含多组数据,第一行为整数n表示有几组数据,其后为n行数据,每行一个整数。

输出说明

对每一个整数,若该整数为回文数,则输出整数各位数字之和,否则输出no,然后换行。

输入样例

2

131

24

输出样例

5

no

#include<>

#include<>

int main(){

int a[200]={0},b,c,d=0,m,n,i,k,p,sum=0;

scanf("%d",&n);

for(m=0;m

scanf("%d",&b);

for(k=1,c=10;b/c>0;++k)c*=10; 9f.,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出圈为止。

输入说明

仅有一组数据,输入数据第一行为两个正整数n(0

输出说明

在一行输出n个整数表示依次出圈人的编号,整数之间用空格分隔

输入样例

7 5

3 8 1 22

4 9 15

输出样例

5 2

6

7 4 3 1

#include<>

int main(){

int m,n,i,j,k,p,q,a[100];

scanf("%d%d",&n,&m);

for(i=0;i

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

for(k=0,i=0;k

for(j=i,p=0,q=0;p

i=j+q;

if(i>n-1)i=i%n;

if(a[i]==0)--p;

}

m=a[i];

a[i]=0;

printf("%d%c",i+1,' ');

for(++i>n-1?i=i%n:i;kn-1?i=i%n:i);

}

printf("\n");

return 0;

}

20字符串压缩

描述

有一种简单的字符串压缩算法,对于字符串中连续出现的同一个字符,用该字符加上连续出现的次数来表示(连续出现次数小于3时不压缩),例如,字符串aaaaabbbabaaaaaaaaaaaaabbbb 可压缩为a5b3aba13b4。请设计一个程序,将采用该压缩方法得到的字符串解压缩,还原出原字符串并输出。

输入说明

只有一组数据,数据为一个字符串(长度不大于50,只包含字母和数字)

输出说明

在一行上输出解压缩后的字符串(长度不超过100),最后换行。

输入样例

a5b3aba13b4

输出样例

Aaaaabbbabaaaaaaaaaaaaabbbb

#include<>

#include<>

int main(){

int i,j,c,n,m;

gets(a);

for(i=0;(c=a[i])!='\0';++i){

if(isalpha(c)){

m=a[i];++i;c=a[i];

if(isdigit(c)){

for(n=0;isdigit(c)&&c!='\0';c=a[i]){++i;n=10*n+(c-'0');}

if(n>=3)

for(j=0;j

else

printf("%c%c",m,a[i-1]);

--i;

}

else{

--i;

printf("%c",a[i]);}

}

else

printf("%c",a[i]);

}

printf("\n");

return 0;

}

21括号匹配

描述

请写一个程序,判断给定表达式中的括号是否匹配。表达式中的合法括号为“(”、“)”、“[”、“]”、“{”、“}”,这三种括号可以按照任意的次序嵌套使用。

输入说明

有多个表达式,每个表达式占一行。当输入的表达式为空字符串(长度为0)时表示输入结束

输出说明

对每个表达式,若其中的括号是匹配的,则输出“yes”,否则输出“no”。

输入样例

[(d+f)*{}2]

[(2+3))

()}

[4(6]7)9

输出样例

yes

no

no

no

22 电话费

描述

随着电话日益普及,人与人之间的信息交流更方便快捷。请你为电话公司编写一个电话计费程序,用户每月每次通话情况记录在文件""中,文件中每次通话数据记录在一行,格式如下:拨入或拨出标记通话时长

1、拨入标记为"IN",表示外地用户呼叫本机,此时本机用户不需计费:拨出标记为"OUT",表示本机呼叫外地用户,此时本机拥护需要记费。拨入和拨出标记均为大写字母。

2、通话时长以秒为单位,假定每次通话时间最短为1秒,最长不超过24小时。

通话计费规则为:

1、计算总时间为各次拨出通话时间总和,以3分钟为一个计算单位,不足3分钟的按3分钟计;

2、计费单价为每3分钟元。

计算并输出该用户本月电话费用M(单位:元,精确到分)。

输入说明

输入来自于文本文件"",文件中每一行为一条通话记录

输出说明

输出总话费,以元为单位,精确到分,即保留两位小数

输入样例

OUT 362

IN 234

OUT 833

输出样例

#include <>

#include <>

#include <>

#include <>

int main()

{

char ch[10];

int s=0;

float ans;

long time=0;

freopen("","r",stdin);

while(scanf("%s %d\n",&ch,&s)!=EOF)

{

if(ch[0]=='O')

{

time+=s;

}

}

time=((time/180)+1);

ans=time*;

printf("%.2f",ans);

return 0;

}

相关文档