PTA实验题集一,所有题

7-1 测试c++

倒序输出从控制台输入的n个整数

输入格式:

第一行输入一个数n,代表行数
依次输入n个整数

输出格式:

将n个整数倒序输出

输入样例:

3
1 2 3

输出样例:

321
#include <iostream>
using namespace std;
int main()
{
    int n,a;
    cin>>n;
    int b[n],i;
    for(i=0;i<=n-1;i++)
    {
        cin>>a;
        b[i]=a;
    }
    for(i=n-1;i>=0;i--)
    {
        cout<<b[i];
    }
    return 0;
}

7-2 计算圆的面积

从键盘输入圆的半径,计算圆的面积并输出。圆周率PI=3.1415926。

输入格式:

在这里写输入圆的半径,例如:
3.6

输出格式:

在这里输出圆的面积,例如:
40.715

输入样例:

1.5

输出样例:

7.06858

#include <iostream>
using namespace std;
#define PI 3.1415926
int main()
{
     double r;
     cin>>r;
     cout<<(PI*r*r);
    return 0;
}

7-3 计算三角形面积

从键盘输入三个数,用来表示三角形的三条边长。如果能构成三角形就输出三角形的面积,否则就输出No。

输入格式:

请在这里写输入三角形的三条边长,例如:
3.1 4.2 5.3

输出格式:

请在这里输出三角形的面积,例如:

6.50661

输入样例:

3.0 4.0 5.0
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    double a,b,c;
    cin>>a>>b>>c;
    double p=(a+b+c)/2;
    if(a+b>c&&a+c>b&&b+c>a)
    {
        cout<<sqrt(p*(p-a)*(p-b)*(p-c));
    }
    else
    {
        cout<<"No";
    }
    return 0;
}

4 问候

输出问候:Hello!What's your name?
从键盘输入名字,然后输出欢迎信息。

输入格式:

请在这里写输入姓名。例如:
GaiFuShuai

输出格式:

请在这里描述输出,例如:

Hello!What's your name?

GaiFuShuai,Welcome to learn OOP using C++!

输入样例:

BaiFuMei

输出样例:

Hello!What's your name?
BaiFuMei,Welcome to learn OOP using C++!

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string c;
    cin>>c;
    cout<<"Hello!What's your name?"<<endl<<c<<",Welcome to learn OOP using C++!";
}

7-5 求奇数的平均数

输入若干个整数,求其中所有奇数之和。

输入格式:

输入一列数据,其中第一个整数n(n≤50)表示这列数据的总个数,后面是n个整数。

输出格式:

输出n个整数中所有奇数的平均数,要求输出结果精确到小数点后3位。

输入样例:

在这里给出一组输入。例如:

5 6 5 18 -1 7

输出样例:

在这里给出相应的输出。例如:

3.667
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n,i,c;
    double sum=0;
    cin>>n;
    double a;
    int count=0;
    for(i=0;i<=n-1;i++)
    {
        cin>>c;
        if(c%2!=0)
        {
            sum=sum+c;
            count++;
        }
    }
    a=sum/count;
    cout<<fixed<<setprecision(3)<<a<<endl;
    return 0;
    
}

7-6 计算阶乘

输入一个非负整数n,计算其阶乘。其定义为:
n!={1ifn=0n×(n−1)×(n−2)×...×2×1ifn>0​

输入格式:

输入一个整数n

输出格式:

输出n的阶乘

输入样例1:

在这里给出一组输入。例如:

0

输出样例1:

在这里给出相应的输出。例如:

1
#include <iostream>
using namespace std;
int main()
{
    int n,i;
    long long int sum=1;
    cin>>n;
    if(n==0)
    {
        cout<<"1"<<endl;
    }
    if(n>0)
    {
        for(i=1;i<=n;i++)
        {
            sum=sum*i;
        }
        cout<<sum<<endl;
    }
    return 0;
    
}

7-7 求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的和

求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的和

输入格式:

输入一个整数。

输出格式:

输出所求的和。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

sum = 10

#include <iostream>
using namespace std;
int main()
{
    int n,i,sum=0,SUM=0;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        sum=sum+i;
        SUM=SUM+sum;
    }
    cout<<"sum = "<<SUM<<endl;
    return 0;
}

7-8 两整数求和

本题目要求读入2个整数num1和num2,然后输出它们的和。

输入格式:

输入:在一行中给出2个绝对值不超过1000的整数num1和num2。

输出格式:

对每一组输入,在一行中输出num1+num2的值。

输入样例:

1 2

输出样例:

3

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int num1,num2;
    cin>>num1>>num2;
    if(fabs(num1)<=1000&&fabs(num2)<=1000)
    {
        cout<<num1+num2<<endl;
    }
    return 0;
}

7-9 按顺序输出

本题目要求读入3个整数a,b,c,然后按从小到大的顺序输出。

输入格式:

输入在一行中给出2个绝对值不超过1000的整数a,b,c。

输出格式:

对每一组输入,按照从小到大的顺序在一行内输出两个数,中间用“<”分割(行尾无需换行)。

输入样例:

5 3 4

输出样例:

3<4<5
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    if(fabs(a)<=1000&&fabs(b)<=1000&&c<=1000)
    {
        if(a<b)
        {
            d=b;
            b=a;
            a=d;
        }
        if(a<c)
        {
            d=c;
            c=a;
            a=d;
        }
        if(b<c)
        {
            d=c;
            c=b;
            b=d;
        }
        cout<<c<<"<"<<b<<"<"<<a<<endl;
    }
    return 0;
}

7-10 使用结构体数组求10个学生三门课总平均成绩,及最高分学生信息

学生结构体数组管理10名学生的信息,分别是学号、姓名、3门课的成绩(double型),从键盘输入10名学生的全部信息,打印出总的平均成绩与最高分学生信息

输入格式:

依次输入10名学生的信息,包括学号char num[6]、姓名char name[8]、三门课分数 double score[3]

输出格式:

输出10名学生总的平均成绩,与3门课程总成绩最高的学生分数,所有成绩输出保留小数点后2位小数

输入样例:

在这里给出一组输入。例如:

101 wang 93 89 87
102 li 86 80 78
103 zhao 76 40 98
104 ma 77 70 84
105 han 70 67 60
106 zhang 99 97 95
107 zhou 88 89 88
108 chen 87 88 85
109 yang 72 70 69
110 liu 78 80 83

输出样例:

在这里给出相应的输出。例如:

80.77
106 zhang 99.00 97.00 95.00
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
struct
{
    char num[6];
    char name[8];
    double score[3];
}a[10];
int main()
{
    int n=0;
    double SUM=0;
    double sum[10]={0};
    for(int i=0;i<10;i++)
    {
        cin>>a[i].num;
        cin>>a[i].name;
        for(int j=0;j<3;j++)
        {
            cin>>a[i].score[j];
            sum[i]+=a[i].score[j];
        }
        SUM+=sum[i];
        if(sum[n]<sum[i])
        {
            n=i;
        }
    }
    double s=SUM/30.0;
    cout<<fixed<<setprecision(2)<<s<<endl;
    cout<<a[n].num<<" "<<a[n].name<<" ";
    for (int j=0;j<3;j++)
    {
        cout<<fixed<<setprecision(2)<<a[n].score[j];
        if(j<2)
        {
            cout<<" ";
        }
    }
    return 0;
}

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值