当前位置:文档之家› C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业 1①.本题要求编写程序,输出一个短句“Welcome to You!”#include<stdio.h>int main(){printf("Welcome to You!\n");return 0;}②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include<stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr-32)/9;printf("fahr = 100,celsius = %d\n",celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值。

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

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio.h>int main(){int a,b,c,d,Sum;double Average;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);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

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

#include<stdio.h>int main(){int a;int b;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);return 0;}③整数152的各位数字本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值152 = 个位数字+ 十位数字*10 + 百位数字*100#include<stdio.h>int main(){int a=152/100;int c=152%10;int count=152%100;int b=count/10;printf("152 = %d + %d*10 + %d*100",c,b,a);return 0;}第二章作业3①求奇数分之一序列前N项和计算序列1 + 1/3 + 1/5 + ... 的前N项之和输入在一行中给出一个正整数N。

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

题目保证计算结果不超过双精度范围#include<stdio.h>int main(){int n;int i=1;double s = 0;scanf("%d",&n);for (i=1;i<=n;i++){s+=1.0/(2*i-1);}printf("sum = %.6f",s);return 0 ;}②计算序列1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。

题目保证计算结果不超过双精度范围#include<stdio.h>int main(){int fm=1,N,b=1;double item,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);return 0;}③求平方根序列前N项和计算平方根序列√1+√2+√3+⋯的前N项之和#include<stdio.h>#include<math.h>int main(){int n,i;double x,s=0;scanf("%d",&n);for(i=1;i<=n;i++){x = sqrt(i);s = s+x;}printf("sum = %.2f\n",s);return 0 ;}④特殊a串数列求和给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

#include<stdio.h>#include<math.h>int main(){int n,a,i,j;double num=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);return 0;}第二章作业4①本题目要求计算下列分段函数f(x)的值:输入在一行中给出实数x在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

输入样例1:10输出样例:1f(10.0) = 0.1输入样例2:234输出样例2:f(234.0) = 234.0#include<stdio.h>int main(){double x;scanf("%lf",&x);if(x==10){printf("f(%0.1f) = 0.1",x);}else {printf("f(%0.1f) = %0.1f",x,x);}return 0;}②计算分段函数本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

#include<stdio.h>int main(){double a;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);}return 0;}③新胖子公式输入在一行中给出两个正数,依次为一个人的体重(以kg 为单位)和身高(以m 为单位),其间以空格分隔。

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

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

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

#include<stdio.h>int main(){double a,b;scanf("%lf %lf",&a,&b);double c=a/(b*b);printf("%0.1f\n",c);if(c>25){printf("PANG");}else { printf("Hai Xing");}return 0;}第三章作业2①求奇数和输入在一行中给出一系列正整数,其间以空格分隔。

当读到零或负整数时,表示输入结束,该数字不要处理在一行中输出正整数序列中奇数的和。

8 7 4 3 70 5 6 101 -1116#include<stdio.h>int main(){int n=0;int sum=0;do{scanf("%d",&n);if(n%2==1) {sum+=n;}}while (n>0);printf("%d",sum);return 0;}②求整数的位数及各位数字之和输入在一行中给出一个不超过109的正整数N在一行中输出N的位数及其各位数字之和,中间用一个空格隔开3213 6#include<stdio.h>int main(){int n,h,i,sum=0;scanf("%d",&n);do{h=n%10;n/=10;sum+=h;i++;}while (n>0);printf("%d %d",i,sum);return 0;}③简单的猜数字游戏#include<stdio.h>int main(){int x;const int M=38;scanf ("%d",&x);if(x>38){printf("Too big!");}if(x==38){printf("Good Guess!");}if(x<38){printf("Too small!");}return 0;}第四章作业1①奇偶分家输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

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

中间以1个空格分隔。

988 74 101 26 15 0 34 22 773 6#include<stdio.h>int main(){int i,n,N;int a=0,b=0;scanf("%d",&n);for (i = 0;i < n;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<stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);if(b>0)printf("%d/%d=%.2f",a,b,a*1.0/b);else if(b<0)printf("%d/(%d)=%.2f",a,b,a*1.0/b);else printf("%d/%d=Error",a);return 0;}③高速公路超速处罚在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。

相关主题