C语言PTA平台习题与答案

  • 格式:doc
  • 大小:189.18 KB
  • 文档页数:18

.

. 第二章 作业

1

①.本题要求编写程序,输出一个短句“Welcome to You!”

#include

int main()

{

printf("Welcome to You!\n");

return 0;

}

②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

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

#include

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

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 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

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

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 .

. 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

#include

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

#include

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

输出样例:1

f(10.0) = 0.1

输入样例2:

234

输出样例2:

f(234.0) = 234.0

#include

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

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

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 -1

116

#include

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的位数及其各位数字之和,中间用一个空格隔开

321

3 6

#include

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

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个空格分隔。

9

88 74 101 26 15 0 34 22 77

3 6

#include

int main()