C语言PTA平台习题与答案.docx

上传人:b****8 文档编号:12671728 上传时间:2023-06-07 格式:DOCX 页数:58 大小:130.93KB
下载 相关 举报
C语言PTA平台习题与答案.docx_第1页
第1页 / 共58页
C语言PTA平台习题与答案.docx_第2页
第2页 / 共58页
C语言PTA平台习题与答案.docx_第3页
第3页 / 共58页
C语言PTA平台习题与答案.docx_第4页
第4页 / 共58页
C语言PTA平台习题与答案.docx_第5页
第5页 / 共58页
C语言PTA平台习题与答案.docx_第6页
第6页 / 共58页
C语言PTA平台习题与答案.docx_第7页
第7页 / 共58页
C语言PTA平台习题与答案.docx_第8页
第8页 / 共58页
C语言PTA平台习题与答案.docx_第9页
第9页 / 共58页
C语言PTA平台习题与答案.docx_第10页
第10页 / 共58页
C语言PTA平台习题与答案.docx_第11页
第11页 / 共58页
C语言PTA平台习题与答案.docx_第12页
第12页 / 共58页
C语言PTA平台习题与答案.docx_第13页
第13页 / 共58页
C语言PTA平台习题与答案.docx_第14页
第14页 / 共58页
C语言PTA平台习题与答案.docx_第15页
第15页 / 共58页
C语言PTA平台习题与答案.docx_第16页
第16页 / 共58页
C语言PTA平台习题与答案.docx_第17页
第17页 / 共58页
C语言PTA平台习题与答案.docx_第18页
第18页 / 共58页
C语言PTA平台习题与答案.docx_第19页
第19页 / 共58页
C语言PTA平台习题与答案.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言PTA平台习题与答案.docx

《C语言PTA平台习题与答案.docx》由会员分享,可在线阅读,更多相关《C语言PTA平台习题与答案.docx(58页珍藏版)》请在冰点文库上搜索。

C语言PTA平台习题与答案.docx

C语言PTA平台习题与答案

第二章作业1

①.本题要求编写程序,输出一个短句“WelcometoYou!

#include

intmain()

{

printf("WelcometoYou!

\n");

return0;

}

②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:

C=5×(F−32)/9,式中:

C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr=100,celsius=计算所得摄氏温度的整数值

#include

intmain()

{

intfahr=100;

intcelsius=5*(fahr-32)/9;

printf("fahr=100,celsius=%d\n",celsius);

return0;

}

第二章作业2

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

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

在一行中按照格式“Sum=和;Average=平均值”顺序输出和与平均值,其中平均值精确到小数点后一位

#include

intmain()

{

inta,b,c,d,Sum;

doubleAverage;

scanf("%d%d%d%d",&a,&b,&c,&d);

Sum=a+b+c+d;

Average=(a+b+c+d)/4.0;

printf("Sum=%d,Average=%.1f\n",Sum,Average);

return0;

}

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

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

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

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

#include

intmain()

{

inta;

intb;

scanf("%d%d",&a,&b);

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

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

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

printf("%d/%d=%d",a,b,a/b);

return0;

}

③整数152的各位数字本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值

152=个位数字+十位数字*10+百位数字*100

#include

intmain()

{

inta=152/100;

intc=152%10;

intcount=152%100;

intb=count/10;

printf("152=%d+%d*10+%d*100",c,b,a);

return0;

}

第二章作业3

①求奇数分之一序列前N项和

计算序列1+1/3+1/5+...的前N项之和

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

在一行中按照“sum=S”的格式输出部分和的值S,精确到小数点后6位。

题目保证计算结果不超过双精度范围

#include

intmain()

{

intn;

inti=1;

doubles=0;

scanf("%d",&n);

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

{s+=1.0/(2*i-1);}

printf("sum=%.6f",s);

return0;

}

②计算序列1-1/4+1/7-1/10+...的前N项之和在一行中按照“sum=S”的格式输出部分和的值S,精确到小数点后三位。

题目保证计算结果不超过双精度范围

#include

intmain()

{

intfm=1,N,b=1;

doubleitem,sum=0,i;

scanf("%d",&N);

for(i=1.0;i<=N;i++)

{

item=b*(i/fm);

sum=sum+item;

b=-b;

fm=fm+2;

}

printf("%.3f\n",sum);

return0;

}

③求平方根序列前N项和

计算平方根序列√​1​​​+√​2​​​+√​3​​​+⋯的前N项之和

#include

#include

intmain()

{

intn,i;

doublex,s=0;

scanf("%d",&n);

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

{

x=sqrt(i);

s=s+x;

}

printf("sum=%.2f\n",s);

return0;

}

④特殊a串数列求和

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

#include

#include

intmain()

{

intn,a,i,j;

doublenum=0,sum=0;

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

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

{

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

{

num=num+a*pow(10,j-1);

}

sum=sum+num;

num=0;

}

printf("s=%d",sum);

return0;

}

第二章作业4

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

输入在一行中给出实数x

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

输入样例1:

10

输出样例:

1

f(10.0)=0.1

输入样例2:

234

输出样例2:

f(234.0)=234.0

#include

intmain()

{

doublex;

scanf("%lf",&x);

if(x==10){printf("f(%0.1f)=0.1",x);}

else{printf("f(%0.1f)=%0.1f",x,x);}

return0;

}

②计算分段函数

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

注:

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

#include

intmain()

{

doublea;

scanf("%lf",&a);

if(a>=0){printf("f(%0.2f)=%0.2f",a,sqrt(a));}

else{printf("f(%0.2f)=%0.2f",a,(a+1)*(a+1)+2*a+1/a);}

return0;

}

③新胖子公式输入在一行中给出两个正数,依次为一个人的体重(以kg为单位)和身高(以m为单位),其间以空格分隔。

其中体重不超过1000kg,身高不超过3.0m。

首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后1位。

如果这个数值大于25,就在第二行输出 PANG,否则输出 HaiXing。

#include

intmain()

{

doublea,b;

scanf("%lf%lf",&a,&b);

doublec=a/(b*b);

printf("%0.1f\n",c);

if(c>25){printf("PANG");}

else{printf("HaiXing");}

return0;

}

第三章作业2

 ①求奇数和输入在一行中给出一系列正整数,其间以空格分隔。

当读到零或负整数时,表示输入结束,该数字不要处理

在一行中输出正整数序列中奇数的和。

87437056101-1

116

#include

intmain()

{

intn=0;

intsum=0;

do

{

scanf("%d",&n);

if(n%2==1){sum+=n;}

}

while(n>0);

printf("%d",sum);

return0;

}

②求整数的位数及各位数字之和

输入在一行中给出一个不超过10​9​​的正整数N

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开

321

36

#include

intmain()

{

intn,h,i,sum=0;

scanf("%d",&n);

do

{

h=n%10;

n/=10;

sum+=h;

i++;

}

while(n>0);

printf("%d%d",i,sum);

return0;

}

③简单的猜数字游戏

#include

intmain()

{

intx;

constintM=38;

scanf("%d",&x);

if(x>38){printf("Toobig!

");}

if(x==38){printf("GoodGuess!

");}

if(x<38){printf("Toosmall!

");}

return0;

}

第四章作业1

①奇偶分家输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

在一行中先后输出奇数的个数、偶数的个数。

中间以1个空格分隔。

9

887410126150342277

36

#include

intmain()

{

inti,n,N;

inta=0,b=0;

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&N);

if(N%2==0){a++;}

else{b++;}

}

printf("%d%d",b,a);

}

②A除以B定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果

在一行中输出结果:

如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error

#include

intmain()

{

inta,b;

scanf("%d%d",&a,&b);

if(b>0)printf("%d/%d=%.2f",a,b,a*1.0/b);

elseif(b<0)printf("%d/(%d)=%.2f",a,b,a*1.0/b);

elseprintf("%d/%d=Error",a);

return0;

}

③高速公路超速处罚

在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证

输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。

在一行中输出处理意见:

若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceedx%.Ticket200”;若应吊销驾驶证,则输出“Exceedx%.LicenseRevoked”。

其中x是超速的百分比,精确到整数。

110100

Exceed10%.Ticket200

#include

intmain()

{

inta,b;

intx;

scanf("%d%d",&a,&b);

x=round(1.0*(a-b)/b*100);

if(x<10){printf("OK\n");}

elseif(x<50){printf("Exceed%d%%.Ticket200\n",x);}

elseprintf("Exceed%d%%.LicenseRevoked\n",x);

return0;

}

④输出三角形面积和周长

根据输入的三角形的三条边a、b、c,计算并输出面积和周长。

注意:

在一个三角形中,任意两边之和大于第三边。

三角形面积计算公式:

area=√​s(s−a)(s−b)(s−c)​,其中s=(a+b+c)/2。

area=面积;perimeter=周长Thesesidesdonotcorrespondtoavalidtriangle

553

area=7.15;perimeter=13.00

#include

#include

intmain()

{

doublea,b,c,s;

doublearea,perimeter;

scanf("%lf%lf%lf",&a,&b,&c);

area=0;

perimeter=0;

if((a+b)>c&&(a+c)>b&&(b+c)>a){

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

perimeter=a+b+c;

printf("area=%.2f;perimeter=%.2f",area,perimeter);

}else{

printf("Thesesidesdonotcorrespondtoavalidtriangle");

}

return0;

}

⑤输出闰年

输入在一行中给出21世纪的某个截止年份。

逐行输出满足条件的所有闰年年份,即每个年份占一行。

输入若非21世纪的年份则输出"Invalidyear!

"。

若不存在任何闰年,则输出“None”。

闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除

#include

intmain()

{

intyear,i,count=0;

scanf("%d",&year);

if(year<=2000||year>2100)

printf("Invalidyear!

\n");

else{

for(i=2001;i<=year;i++){

if(i%4==0&&i%100!

=0||i%400==0){

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

count++;

}

}

if(count==0)

printf("None\n");

}

return0;

}

⑥逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。

注意:

当输入的数字含有结尾的0时,输出不应带有前导的0。

比如输入700,输出应该是7。

#include

intmain()

{

inta,b,c,n;

scanf("%d",&a);

b=a/100;c=(a/10)%10;n=a%10;

if(n==0&&c==0)printf("%d",b);

if(n==0&&c!

=0)printf("%d%d",c,b);

if(n!

=0)printf("%d%d%d",n,c,b);

return0;

}

第四章作业2

①.统计学生成绩

大于等于90分为A;

小于90且大于等于80为B;

小于80且大于等于70为C;

小于70且大于等于60为D;

小于60为E。

输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。

在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

7

77549273606569

10231

#include

intmain()

{

intn,score;

inti;

intA,B,C,D,E;

A=B=C=D=E=0;

scanf("%d",&n);

for(i=1;i<=n;i++){

scanf("%d",&score);

if(score>=90)

A++;

elseif(score>=80)

B++;

elseif(score>=70)

C++;

elseif(score>=60)

D++;

else

E++;

}

printf("%d%d%d%d%d",A,B,C,D,E);

return0;

}

②计算油费。

(本题编程不完全对)现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。

为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m-自助,e-协助),计算并输出应付款。

4097m

301.34

#include

intmain()

{

floatr1,r2;

inta,b;

charc;

doubles;

scanf("%d%d%c",&a,&b,&c);

switch(b)

{

case90:

r1=6.95;break;

case93:

r1=7.44;break;

case97:

r1=7.93;break;

}

switch(c)

{

case'm':

r2=0.95;break;

case'e':

r2=0.97;break;

}

s=a*r1*r2;

printf("%.2lf",s);

return0;

}

③分别是薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),单价分别对应为3.0元/公斤、2.5元/公斤、4.0元/公斤、3.5元/份。

首先在屏幕上显示以下菜单:

[1]crisps

[2]popcorn

[3]chocolate

[4]cola[0]exit

用户可以输入编号1~4查询对应食品的单价。

当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0

首先在屏幕上显示菜单。

然后对应用户的每个输入,在一行中按格式“price=价格”输出查询结果,其中价格保留一位小数。

当用户连续查询次数超过5次、或主动输入0时,程序结束,显示“Thanks”。

1702

[1]crisps

[2]popcorn

[3]chocolate

[4]cola

[0]exit

price=3.0

price=0.0

Thanks

【程序】

#include

intmain()

{

inti,a;

printf("[1]crisps\n"

"[2]popcorn\n"

"[3]chocolate\n"

"[4]cola\n"

"[0]exit\n");

for(i=1;i<=5;i++){

scanf("%d",&a);

if(a==0)

break;

else

switch(a){

case1:

printf("price=3.0\n");break;

case2:

printf("price=2.5\n");break;

case3:

printf("price=4.0\n");break;

case4:

printf("price=3.5\n");break;

default:

printf("price=0.0\n");break;

}

}

printf("Thanks\n");

return0;

}

④读入一个实数、一个操作符(仅限于+-*/)、一个实数,求该表达式的值。

若除数为0,输出“Thedivisoris0

#include

intmain()

{

inta,b;

charop;

doublec;

scanf("%d%c%d",&a,&op,&b);

if(b==0)

switch(op){

case'+':

c=a+b;printf("%.2f",c);break;

case'-':

c=a-b;printf("%.2f",c);break;

case'*':

c=a*b;printf("%.2f",c);break;

case'/':

printf("Thedivisoris0.");break;

}

else

switch(op){

case'+':

c=a+b;printf("%.2f",c);break;

case'-':

c=a-b;printf("%.2f",c);break;

case'*':

c=a*b;printf("%.2f",c);break;

case'/':

c=1.0*a/b;printf("%.2f",c);break;}

return0;

}

第四章作业3

①.有重复,本题略

②对于给定的正整数N,求它的位数及其各位数字之和

321

36

#include

intmain()

{

intn,h,i=0,sum=0;

scanf("%d",&n);

do

{

h=n%10;

n/=10;

sum+=h;

i++;

}

while(n>0);

printf("%d%d",i,sum);

return0;

}

③找出给定一系列整数中的最小值。

输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。

在一行中按照“min=最小值”的格式输出n个整数中的最小值。

4-2-1231000

min=-123

#include

intmain()

{

intn,i,m,min;

scanf("%d",&n);

scanf("%d",&m);

min=m;

for(i=1;i

scanf("%d",&m);

if(min>m)

min=m;

}

printf("min=%d",min);

return0;

}

④输入一个整数,输出每个数字对应的拼音。

当整数为负数时,先输出fu字。

十个数字对应的拼音如下:

0:

ling1:

yi2:

er3:

sa

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2