C语言实验题及参考答案文档格式.docx

上传人:b****5 文档编号:20276308 上传时间:2023-01-21 格式:DOCX 页数:76 大小:109.84KB
下载 相关 举报
C语言实验题及参考答案文档格式.docx_第1页
第1页 / 共76页
C语言实验题及参考答案文档格式.docx_第2页
第2页 / 共76页
C语言实验题及参考答案文档格式.docx_第3页
第3页 / 共76页
C语言实验题及参考答案文档格式.docx_第4页
第4页 / 共76页
C语言实验题及参考答案文档格式.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

C语言实验题及参考答案文档格式.docx

《C语言实验题及参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实验题及参考答案文档格式.docx(76页珍藏版)》请在冰豆网上搜索。

C语言实验题及参考答案文档格式.docx

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

输出样例:

321

{inta,ge,shi,bai,b;

b=ge*100+10*shi+bai;

b);

4、求整数均值(10分)

本题要求编写程序,计算4个整数的和与平均值。

题目保证输入与输出均在整型范围内。

输入在一行中给出4个整数,其间以空格分隔。

在一行中按照格式“Sum=和;

Average=平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。

1234

Sum=10;

Average=

{inta,b,c,d,sum;

floatave;

%d%d%d%d"

a,&

b,&

c,&

d);

sum=a+b+c+d;

ave=sum/;

Sum=%d;

Average=%.1f\n"

sum,ave);

5、是不是太胖了(10分)

据说一个人的标准体重应该是其身高(单位:

厘米)减去100、再乘以所得到的公斤数。

已知市斤是公斤的两倍。

现给定某人身高,请你计算其标准体重应该是多少(顺便也悄悄给自己算一下吧……)

输入第一行给出一个正整数H(100<

H≤300),为某人身高。

在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。

169

{

inth;

floatw;

h);

w=(h-100)**2;

%.1f\n"

w);

6、日期格式化(10分)

世界上不同国家有不同的写日期的习惯。

比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。

下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。

题目保证给出的日期是1900年元旦至今合法的日期。

在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

03-15-2017

2017-03-15

{intyear,month,day;

%d-%d-%d"

month,&

day,&

year);

%d-%02d-%02d\n"

year,month,day);

}

7、整数四则运算(10分)

本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内。

输入在一行中给出2个正整数A和B。

在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。

32

3+2=5

3-2=1

3*2=6

3/2=1

{inta,b;

%d%d"

b);

%d+%d=%d\n"

a,b,a+b);

%d-%d=%d\n"

a,b,a-b);

%d*%d=%d\n"

a,b,a*b);

%d/%d=%d\n"

a,b,a/b);

8、计算存款利息(10分)

本题目要求计算存款利息,计算公式为interest=money×

(1+rate)?

year?

?

money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。

输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。

在一行中按“interest=利息”的格式输出,其中利息保留两位小数。

10003

interest=

floatmoney,rate,year,interest;

%f%f%f"

money,&

year,&

rate);

interest=money*pow((1+rate),year)-money;

interest=%.2f\n"

interest);

实验二

1、比较大小(15分)

本题要求将输入的任意3个整数从小到大输出。

输入在一行中给出3个整数,其间以空格分隔。

在一行中将3个整数从小到大输出,其间以“->

”相连。

428

2->

4->

8

{

inta,b,c,t;

%d%d%d"

c);

if(a>

b){t=a;

a=b;

b=t;

c){t=a;

a=c;

c=t;

if(b>

c){t=b;

b=c;

%d->

a,b,c);

2、计算运费(15分)

运输公司对用户计算运费。

路程(s)越远,每千米运费就越低。

标准如下:

s<250km,没有折扣;

250km≤s<500km,2%的折扣;

500km≤s<1000km,5%的折扣;

1000km≤s<2000km,8%的折扣;

2000km≤s<3000km,10%的折扣;

3000km≤s,15%的折扣。

设每千米每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:

f=p×

(1-d)

在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。

在一行输出计算出来的运费,精确到小数点后2位的值。

在这里给出一组输入。

例如:

10020300

在这里给出相应的输出。

freight=

{

intc,s;

floatp,w,d,f;

scanf("

%f%f%d"

p,&

w,&

s);

if(s>

=3000)c=12;

elsec=s/250;

switch(c)

case0:

d=0;

break;

case1:

d=2;

case2:

case3:

d=5;

case4:

case5:

case6:

case7:

d=8;

case8:

case9:

case10:

case11:

d=10;

case12:

d=15;

f=p*w*s*(1-d/;

freight=%.2f\n"

f);

3、三天打鱼两天晒网(15分)

中国有句俗语叫“三天打鱼两天晒网”。

假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”

输入在一行中给出一个不超过1000的正整数N。

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“indayN”。

输入样例1:

103

输出样例1:

Fishinginday103

输入样例2:

34

输出样例2:

Dryinginday34

{intN,x;

N);

x=N%5;

if(x>

=1&

&

x<

=3)printf("

Fishinginday%d\n"

N);

elseprintf("

Dryinginday%d\n"

4、计算分段函数[2](15分)

本题目要求计算下列分段函数f(x)的值:

注:

可在头文件中包含,并调用sqrt函数求平方根,调用pow函数求幂。

输入在一行中给出实数x。

在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。

输入样例1:

10

输出样例1:

f=

输入样例2:

输出样例2:

floatx,y;

%f"

=0)y=sqrt(x);

elsey=(x+1)*(x+1)+2*x+1/x;

f(%.2f)=%.2f\n"

x,y);

5、判断输入的字符是哪种类型(15分)

通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。

输入一个字符。

在一行中输出该字符是哪种类型的字符。

若用户输入字符为'

0'

和'

9'

之间,输出Thisisadigit.

若用户输入字符在'

A'

Z'

之间,输出Thisisacapitalletter.

a'

z'

之间,输出Thisisasmallletter.

其他情况,输出Othercharacter.

Thisisadigit.

charc;

c=getchar();

if(c>

='

c<

)printf("

Thisisadigit."

);

elseif(c>

Thisisacapitalletter."

Thisisasmallletter."

Othercharacter."

6、求一元二次方程的根(15分)

本题目要求一元二次方程的根,结果保留2位小数。

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"

ZeroEquation"

5)如果a和b为0,c不为0,则输出"

NotAnEquation"

 

123

+

输入样例3:

024

输出样例3:

输入样例4:

000

输出样例4:

ZeroEquation

输入样例5:

001

输出样例5:

NotAnEquation

floata,b,c;

floatx1,x2,p,y;

if(a==0&

b==0&

c==0){printf("

return0;

c!

=0){printf("

p=b*b-4*a*c;

if(a==0){x1=-c/b;

%.2f\n"

x1);

if(p>

=0&

a!

=0)

0)

{x1=(-b+sqrt(p))/(2*a);

x2=(-b-sqrt(p))/(2*a);

%.2f\n%.2f\n"

x1,x2);

else

{x1=-b/(2*a);

elseif(b!

=0){p=sqrt(-p);

x1=-b/(2*a);

y=p/(2*a);

%.2f+%.2fi\n"

x1,y);

%.2f-%.2fi\n"

else{y=sqrt(-p)/(2*a);

if(y>

0)printf("

+%.2fi\%.2fi\n"

y,y);

-y,-y);

7、A除以B(15分)

真的是简单题哈——给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。

输入在第一行给出两个整数A和B(?

100≤A,B≤100),数字间以空格分隔。

在一行中输出结果:

如果分母是正数,则输出“A/B=商”;

如果分母是负数,则要用括号把分母括起来输出;

如果分母为零,则输出的商应为Error。

输出的商应保留小数点后2位。

-12

-1/2=

1-3

1/(-3)=

输入样例3:

50

输出样例3:

5/0=Error

{intA,B;

A,&

B);

if(B==0)

%d/%d=Error\n"

A,B);

if(B<

%d/(%d)=%.2f\n"

A,B,(float)A/B);

%d/%d=%.2f\n"

8、计算火车运行时间(15分)

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。

每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。

在一行输出该旅途所用的时间,格式为“hh:

mm”,其中hh为2位小时数、mm为2位分钟数。

12011530

03:

29

{inth1,h2,hour1,hour2,men1,men2,a,b;

h1,&

h2);

hour1=h1/100;

men1=h1%100;

hour2=h2/100;

men2=h2%100;

if(men2<

men1)

men2=men2+60;

hour2--;

a=hour2-hour1;

b=men2-men1;

%02d:

%02d\n"

a,b);

实验三

1、求交错序列前N项和(15分)

本题要求编写程序,计算交错序列1-2/3+3/5-4/7+5/9-6/11+...的前N项之和。

输入在一行中给出一个正整数N。

在一行中输出部分和的值,结果保留三位小数。

5

inti,N,s=1;

floata,b,t,sum=0;

a=1;

b=1;

for(i=1;

i<

=N;

i++)

{t=a/b;

sum+=s*t;

s=-s;

a++;

b=b+2;

%.3f\n"

2、统计整数的位数(15分)

从键盘读入一个整数,统计该数的位数。

例如,输入12534,输出5;

输入-99,输出2;

输入0,输出1。

输入一个整数N(?

10?

5?

≤N≤10?

)。

在一行中按如下格式输出该数的位数。

Itcontains位数digits.

12534

Itcontains5digits.

intN,s=0;

if(N==0)printf("

Itcontains%ddigits.\n"

++s);

else{

if(N<

0)N=-N;

while(N!

s++;

N=N/10;

s);

3、最大公约数和最小公倍数(15分)

本题要求两个给定正整数的最大公约数和最小公倍数。

输入在一行中给出两个正整数M和N(≤1000)。

在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

511292

732044

intmain()

intM,N,gys,gbs;

intt;

&

M,&

if(M>

N){

t=M;

M=N;

N=t;

for(gys=N;

;

gys--)

if(M%gys==0&

N%gys==0)break;

gbs=M*N/gys;

gys,gbs);

4、统计字符(15分)

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入为10个字符。

最后一个回车表示输入结束,不算在内。

在一行内按照

letter=英文字母个数,blank=空格或回车个数,digit=数字字符个数,other=其他字符个数

的格式输出。

aZ&

09Az

letter=4,blank=3,digit=2,other=1

inti,letter,blank,digit,other;

letter=blank=digit=other=0;

for(i=0;

10;

{scanf("

%c"

if((c>

)||(c>

))letter++;

)digit++;

elseif(c=='

'

||c=='

\n'

)blank++;

elseother++;

letter=%d,blank=%d,digit=%d,other=%d\n"

letter,blank,digit,other);

5、简写转全称(15分)

在一行中输入若干个字符作为简写字符,字符之间没有空格间隔,并按如下规则产生输出:

每个简写字母对应一行输出

若字符为C或c,则该行输出"

BEIJINGOLYMPICGAMES"

若字符为J或j,则该行输出"

JAPANWORLDCUP"

若字符为K或k,则该行输出"

KOREAWORLDCUP"

若为其他字符,则该行原样输出该字符。

输入在一行中输入若干个字符,字符之间没有空格间隔,以回车结束。

按题目要求产生若干行输出。

kijckj

KOREAWORLDCUP

i

JAPANWORLDCUP

BEIJINGOLYMPICGAMES

#includ

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

当前位置:首页 > 医药卫生 > 药学

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

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