C语言PTA平台习题与答案文档格式.docx
- 文档编号:18920963
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:50
- 大小:131.56KB
C语言PTA平台习题与答案文档格式.docx
《C语言PTA平台习题与答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言PTA平台习题与答案文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
%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"
a,b,a/b);
③整数152的各位数字本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值
152=个位数字+十位数字*10+百位数字*100
inta=152/100;
intc=152%10;
intcount=152%100;
intb=count/10;
152=%d+%d*10+%d*100"
c,b,a);
第二章作业3
①求奇数分之一序列前N项和
计算序列1+1/3+1/5+...的前N项之和
输入在一行中给出一个正整数N。
在一行中按照“sum=S”的格式输出部分和的值S,精确到小数点后6位。
题目保证计算结果不超过双精度范围
intn;
inti=1;
doubles=0;
%d"
n);
for(i=1;
i<
=n;
i++)
{s+=1.0/(2*i-1);
sum=%.6f"
s);
return0;
②计算序列1-1/4+1/7-1/10+...的前N项之和在一行中按照“sum=S”的格式输出部分和的值S,精确到小数点后三位。
{
intfm=1,N,b=1;
doubleitem,sum=0,i;
scanf("
N);
for(i=1.0;
=N;
i++)
item=b*(i/fm);
sum=sum+item;
b=-b;
fm=fm+2;
}
printf("
%.3f\n"
sum);
③求平方根序列前N项和
计算平方根序列√1+√2+√3+⋯的前N项之和
math.h>
intn,i;
doublex,s=0;
for(i=1;
{
x=sqrt(i);
s=s+x;
}
sum=%.2f\n"
④特殊a串数列求和
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
intn,a,i,j;
doublenum=0,sum=0;
for(j=1;
j<
=i;
j++)
num=num+a*pow(10,j-1);
}
sum=sum+num;
num=0;
s=%d"
第二章作业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
doublex;
%lf"
x);
if(x==10){printf("
f(%0.1f)=0.1"
x);
else{printf("
f(%0.1f)=%0.1f"
x,x);
②计算分段函数
本题目要求计算下列分段函数f(x)的值:
注:
可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
doublea;
a);
if(a>
=0){printf("
f(%0.2f)=%0.2f"
a,sqrt(a));
a,(a+1)*(a+1)+2*a+1/a);
③新胖子公式输入在一行中给出两个正数,依次为一个人的体重(以kg为单位)和身高(以m为单位),其间以空格分隔。
其中体重不超过1000kg,身高不超过3.0m。
首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后1位。
如果这个数值大于25,就在第二行输出
PANG,否则输出
HaiXing。
doublea,b;
%lf%lf"
doublec=a/(b*b);
%0.1f\n"
c);
if(c>
25){printf("
PANG"
else{printf("
HaiXing"
第三章作业2
①求奇数和输入在一行中给出一系列正整数,其间以空格分隔。
当读到零或负整数时,表示输入结束,该数字不要处理
在一行中输出正整数序列中奇数的和。
87437056101-1
116
intn=0;
intsum=0;
do
if(n%2==1){sum+=n;
while(n>
0);
②求整数的位数及各位数字之和
输入在一行中给出一个不超过109的正整数N
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开
321
36
intn,h,i,sum=0;
h=n%10;
n/=10;
sum+=h;
i++;
i,sum);
③简单的猜数字游戏
intx;
constintM=38;
scanf("
if(x>
38){printf("
Toobig!
"
if(x==38){printf("
GoodGuess!
if(x<
Toosmall!
第四章作业1
①奇偶分家输入第一行给出一个正整N(≤1000);
第2行给出N个非负整数,以空格分隔。
在一行中先后输出奇数的个数、偶数的个数。
中间以1个空格分隔。
9
887410126150342277
inti,n,N;
inta=0,b=0;
for(i=0;
i<
n;
if(N%2==0){a++;
else{b++;
b,a);
②A除以B定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果
在一行中输出结果:
如果分母是正数,则输出“A/B=商”;
如果分母是负数,则要用括号把分母括起来输出;
如果分母为零,则输出的商应为Error
inta,b;
if(b>
0)printf("
%d/%d=%.2f"
a,b,a*1.0/b);
elseif(b<
%d/(%d)=%.2f"
elseprintf("
%d/%d=Error"
a);
③高速公路超速处罚
在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;
若达到或超出50%,就要吊销驾驶证
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
在一行中输出处理意见:
若属于正常行驶,则输出“OK”;
若应处罚款,则输出“Exceedx%.Ticket200”;
若应吊销驾驶证,则输出“Exceedx%.LicenseRevoked”。
其中x是超速的百分比,精确到整数。
110100
Exceed10%.Ticket200
x=round(1.0*(a-b)/b*100);
10){printf("
OK\n"
elseif(x<
50){printf("
Exceed%d%%.Ticket200\n"
Exceed%d%%.LicenseRevoked\n"
④输出三角形面积和周长
根据输入的三角形的三条边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
doublea,b,c,s;
doublearea,perimeter;
%lf%lf%lf"
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;
area=%.2f;
perimeter=%.2f"
area,perimeter);
}else{
Thesesidesdonotcorrespondtoavalidtriangle"
⑤输出闰年
输入在一行中给出21世纪的某个截止年份。
逐行输出满足条件的所有闰年年份,即每个年份占一行。
输入若非21世纪的年份则输出"
Invalidyear!
。
若不存在任何闰年,则输出“None”。
闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除
intyear,i,count=0;
&
year);
if(year<
=2000||year>
2100)
printf("
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"
⑥逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。
当输入的数字含有结尾的0时,输出不应带有前导的0。
比如输入700,输出应该是7。
inta,b,c,n;
b=a/100;
c=(a/10)%10;
n=a%10;
if(n==0&
c==0)printf("
b);
c!
=0)printf("
%d%d"
c,b);
if(n!
%d%d%d"
n,c,b);
第四章作业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
intn,score;
inti;
intA,B,C,D,E;
A=B=C=D=E=0;
for(i=1;
scanf("
score);
if(score>
=90)
A++;
elseif(score>
=80)
B++;
=70)
C++;
=60)
D++;
else
E++;
%d%d%d%d%d"
A,B,C,D,E);
②计算油费。
(本题编程不完全对)现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。
为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m-自助,e-协助),计算并输出应付款。
4097m
301.34
floatr1,r2;
charc;
doubles;
%d%d%c"
switch(b)
case90:
r1=6.95;
break;
case93:
r1=7.44;
case97:
r1=7.93;
switch(c)
case'
m'
:
r2=0.95;
e'
r2=0.97;
s=a*r1*r2;
%.2lf"
③分别是薯片(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
[4]cola
[0]exit
price=3.0
price=0.0
Thanks
【程序】
inti,a;
[1]crisps\n"
"
[2]popcorn\n"
[3]chocolate\n"
[4]cola\n"
[0]exit\n"
=5;
i++){
if(a==0)
else
switch(a){
case1:
price=3.0\n"
break;
case2:
price=2.5\n"
case3:
price=4.0\n"
case4:
price=3.5\n"
default:
price=0.0\n"
Thanks\n"
④读入一个实数、一个操作符(仅限于+-*/)、一个实数,求该表达式的值。
若除数为0,输出“Thedivisoris0
inta,b;
charop;
doublec;
%d%c%d"
op,&
if(b==0)
switch(op){
case'
+'
:
c=a+b;
%.2f"
-'
c=a-b;
*'
c=a*b;
/'
Thedivisoris0."
c=a+b;
c=a-b;
c=a*b;
c=1.0*a/b;
第四章作业3
①.有重复,本题略
②对于给定的正整数N,求它的位数及其各位数字之和
intn,h,i=0,sum=0;
do
h=n%10;
while(n>
③找出给定一系列整数中的最小值。
输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。
在一行中按照“min=最小值”的格式输出n个整数中的最小值。
4-2-1231000
min=-123
intn,i,m,min;
m);
min=m;
for(i=1;
n;
if(min>
m)
min=%d"
min);
④输入一个整数,输出每个数字对应的拼音。
当整数为负数时,先输出fu字。
十个数字对应的拼音如下:
0:
ling1:
yi2:
er3:
san4:
s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 PTA 平台 习题 答案