PTA—C语言练习题

一、基本数据处理

1-1:温度转换

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

#include
int main(void){
   
    int fahr,celsius;  //定义华氏温度和摄氏温度
    fahr = 150;  //初始化华氏温度
    celsius = 5 * (fahr - 32) / 9;
    printf("fahr = %d, celsius = %d", fahr, celsius);
    return 0;
}

1-2:计算平均分

要求:已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。
输出格式:math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩

#include
int main(void){
   
    //定义数学、英语、计算机课程、平均成绩并初始化
    int math=87, eng=72, comp=93, average;
    average = (math+eng+comp)/3;
    printf("math = %d, eng = %d, comp = %d, average = %d", math, eng, comp, average);
    return 0;
}

1-3:整数152的各位数字

要求:本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
输出格式:152 = 个位数字 + 十位数字*10 + 百位数字*100

#include
int main(void){
   
    int one,ten,hundred;  //定义个、十、百位
    int num = 152;
    one = num % 10;
    ten = (num - one) % 100 / 10;
    hundred = (num - one -(ten * 10)) / 100;
    printf("152 = %d + %d*10 + %d*100", one, ten, hundred);
    return 0;
}

二、分支结构

2-1:计算符号函数的值

要求:对于任一整数n,符号函数sign(n)的定义如下:
在这里插入图片描述
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。

#include 
int main(void)
{
   
    int n, sign;
    scanf("%d", &n);
    if (n < 0){
   
        sign = -1;
    }
    else if (n > 0){
   
        sign = 1;
    }
    else
        sign = 0;
    printf("sign(%d) = %d", n, sign);
    return 0;
}

2-2:求一元二次方程的根

要求:本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数。
输入格式:
输入在一行中给出3个浮点系数a、b、c,中间用空格分开。
输出格式:
根据系数情况,输出不同结果:
1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;
2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;
3)如果方程只有一个根,则直接输出此根;
4)如果系数都为0,则输出"Zero Equation";
5)如果a和b为0,c不为0,则输出"Not An Equation"。

#include 
#include 
int main(void){
   
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);

    if (a != 0){
   
        double delta = b * b - 4 * a * c;
        if (delta > 0){
   
            double x1, x2;
            x1 = (-b + sqrt(delta)) / (2 * a);
            x2 = (-b - sqrt(delta)) / (2 * a);
            printf("%.2lf\n", x1);
            printf("%.2lf\n", x2);
        }
        else if (delta < 0){
   
            if (b != 0){
   
                double real = -b * 1.0 / (2 * a);
                double imag = sqrt(-delta) * 1.0 / (2 * a);
                printf("%.2lf%+.2lfi\n", real, imag);
                printf("%.2lf%+.2lfi\n", real, -imag);
            }
            else{
   
                double imag = sqrt(-delta) * 1.0 / (2 * a);
                printf("%.2lf%+.2lfi\n", 0.0, imag);
                printf("%.2lf%+.2lfi\n", 0.0, -imag);
            }
        }
        else{
   
            printf("%.2lf\n", -b * 1.0 / (2 * a));
        }
    }
    else{
   
        if (b != 0)
        {
   
            printf("%.2lf\n", -c * 1.0 / b);
        }
        else{
   
            if (0 == c)
                printf("Zero Equation\n");
            else
                printf("Not An Equation\n");
        }
    }
    return 0;
}

2-3:比较大小

要求:本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。

#include 
int main(void)
{
   
    int a, b, c;
    int temp;
    scanf("%d %d %d", &a, &b, &c);
    if (a > b){
   
        a = a;
    }
    else{
   
        temp = a;
        a = b;
        b = temp;
    }
    if (a > c){
   
        a = a;
    }
    else{
   
        temp = a;
        a = c;
        c = temp;
    }
    if (b > c){
   
        b = b;
    }
    else{
   
        temp = b;
        b = c;
        c = temp;
    }
    printf("%d->%d->%d", c, b, a);
    return 0;
}

2-4:输出三角形面积和周长

要求:本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√​s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。
输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:
如果输入的边能构成一个三角形,则在一行内,按照的格式输出,保留两位小数。
area = 面积; perimeter = 周长
否则,输出
These sides do not correspond to a valid triangle

#include 
#include 
int main(void)
{
   
    int a, b, c;
    double area, perimeter, s;

    scanf("%d %d %d", &a, &b, &c);
    if (a < b + c && b < a +

你可能感兴趣的:(c语言)