C语言PTA平台习题与答案.docx
《C语言PTA平台习题与答案.docx》由会员分享,可在线阅读,更多相关《C语言PTA平台习题与答案.docx(51页珍藏版)》请在冰豆网上搜索。
C语言PTA平台习题与答案
第二章作业1
1.本题要求编写程序,输出一个短句“WelcometoYou!
”
#include
intmain()
{
printf("WelcometoYou!
\n");
return0;
}
2.本题要求编写程序,计算华氏温度100°耐应的摄氏温度。
计算公式:
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
1求整数均值本题要求编写程序,计算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个正整数的和、差、积、商并输出。
题目保证
输入和输出全部在整型范围内I
输入在一行中给出2个正整数A和B。
在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。
|
#include
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;
}
3整数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”的格式输出部分和的侵,
精确到小数点后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,精确到小数点后三位。
题目保证计算结果不超过双精度范围
intmain()
{
intfm=1,N,b=1;|
doubleitem,sum=O,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项和
计算平方根序列V1+V2+V3+?
的前N项之和
#include|
#include|
intmain()|
{
|intn,i;
|doublex,s=0;|
|scanf("%d",&n);|
|for(i=1;i<=n;i++)|
{
x=sqrt(i);
|s=s+x;|
}
Iprintf("sum=%.2f\n",s);|
|return0;|
}
4特殊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)的值:
XX#
F=fg「\
I,!
I
输入在一行中给出实数x
在一行中按“f(x)=result”的格式输出,其中result都保留一位小数。
输入样例1:
10
输出样例:
1
f(10.0)=0.1
输入样例2:
234
输出样例2:
f(234.0)=234.0
#includeintmain()|
{
|doublex;|
|scanf("%lf',&x);|
|if(x==10){printf("f(%0.1f)=0.1",x);}|
|else{printf("f(%0.1f)=%0.1f',x,x);}|
|return0;|
}
2计算分段函数
本题目要求计算下列分段函数f(x)的值:
/(*>=
注:
可在头文件中包含math.h,并调用sqrt函数求平方根,调用
pow函数求幂。
#include
intmain()
{
doublea;
|scanf("%lf",&a);|
if(a>=O){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
输入在一行中给出一个不超过109的正整数N
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开
321
#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()
①求奇数和输入在一行中给出一系列正整数,其间以空格分隔。
当读到零或负整数时,表示输入结束,该数字不要处理
在一行中输出正整数序列中奇数的和。
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;
}
②求整数的位数及各位数字之和
intx;
constintM=38;
scanf("%d",&x);
if(x>38){printf("Toobig!
");}
if(x==38){printf("GoodGuess!
");}
if(x<38){printf("Toosmall!
");}
return0;
第四章作业1
①奇偶分家输入第一行给出一个正整N(W1000);第2行给出N个非负整数,以空格分
隔。
在一行中先后输出奇数的个数、偶数的个数。
中间以1个空格分隔。
9
887410126150342277
36
#include
intmain()
{
inti,n,N;
inta=0,b=0;
seanf("%d",&n);
for(i=0;i{
seanf("%d",&N);
if(N%2==0){a++;}
else{b++;}
}
printf("%d%d",b,a);
}
2A除以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;
}
3高速公路超速处罚
在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超
出5