2022/2/4——浙大版《C语言程序设计(第3版)》题目集PAT错题记录(做了14道题)

2022/2/4 错题如下:

练习2-3 输出倒三角图案 (5 分)

本题要求编写程序,输出指定的由“*”组成的倒三角图案。

输入格式:

本题目没有输入。

输出格式:

按照下列格式输出由“*”组成的倒三角图案。

* * * *
 * * *
  * *
   *

//本题无法使用for循环,会显示超时

#include <stdio.h>
int main()
{
    printf("* * * *\n");
    printf(" * * *\n");
    printf("  * *\n");
    printf("   *");

    return 0;
}

练习2-8 计算摄氏温度 (10 分)

给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。

输入格式:

输入在一行中给出一个华氏温度。

输出格式:

在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。

输入样例:

150

输出样例:

Celsius = 65

//F的赋值要放在C的公式之前

代码如下:

#include <stdio.h>
int main()
{
    int F, C;
    scanf("%d", &F);
    C = 5 * (F - 32) / 9;
    printf("Celsius = %d", C);
    return 0;
}

练习2-9 整数四则运算 (10 分)

本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

输入格式:

输入在一行中给出2个正整数A和B。

输出格式:

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

输入样例:

3 2

输出样例:

3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1

//大家一定要细心,printf里面要和输出样例完全一样,我的printf里面多了一个空格,坑死我了,   差点把我整崩溃了  找了半天才找到,呜呜。

printf(" %d / %d = %d\n", A, B, A / B);%前面多了一个空格


代码如下:

#include <stdio.h>
int main()
{
    int A, 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\n", A, B, A / B);
}

练习2-11 计算分段函数[2] (10 分)

本题目要求计算下列分段函数f(x)的值:

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

输入格式:

输入在一行中给出实数x。

输出格式:

在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。

输入样例1:

10

输出样例1:

f(10.00) = 3.16

输入样例2:

-0.5

输出样例2:

f(-0.50) = -2.75

//忘记了要加<math.h>,有>=运算符,sqrt()、pow()的参数与返回值类型均为double型

#include <stdio.h>
#include <math.h>
int main()
{
    double x, result;
    scanf("%lf", &x);
    if(x >= 0)
        result = sqrt(x);
    else
        result = pow(x + 1, 2) + 2 * x + 1 / x;
    printf("f(%.2f) = %.2f", x, result);
    return 0;
}

练习2-12 输出华氏-摄氏温度转换表 (15 分)

输入2个正整数lowerupperlowerupper≤100),请输出一张取值范围为[lowerupper]、且每次增加2华氏度的华氏-摄氏温度转换表。

温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。

输入格式:

在一行中输入2个整数,分别表示lowerupper的值,中间用空格分开。

输出格式:

第一行输出:"fahr celsius"

接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。

若输入的范围不合法,则输出"Invalid."。

输入样例1:

32 35

输出样例1:

fahr celsius
32   0.0
34   1.1

输入样例2:

40 30

输出样例2:

Invalid.

//1. 华氏温度与摄氏温度的转换公式左右两边的类型不一样,左边是浮点型右边是整形,要进行强 //制转换2.占据6个字符宽度,靠右对齐,保留1位小数:这个宽度6用%6f才能表示6位,        //%6.1f这个6表示小数点以及其前后共计6位,即这个浮点数一共占了6个宽度

#include <stdio.h>
int main()
{
    int fahr, lower, upper;
    float celsius;
    scanf("%d %d", &lower, &upper);
    if(lower > 100 || upper > 100 || lower > upper)
        printf("Invalid.");
    else
    {
        printf("fahr celsius\n");
        for(fahr = lower; fahr <= upper; fahr += 2)
        {
            celsius = (float)5 * (fahr - 32) / 9;//强制转换
            printf("%d%6.1f\n", fahr, celsius);//宽度为6
        }
    }
    return 0;
}

练习2-17 生成3的乘方表 (15 分)

输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。

输入格式:

输入在一行中给出一个非负整数n。

输出格式:

按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

3

输出样例:

pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27

//pow()函数的返回值以及参数都是double型的,输出时用%lf,根据输出样例可知没有小数部分所以 //最终为%.0lf

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i;
    scanf("%d", &n);
    for(i = 0; i <= n; i++)
    {
        printf("pow(3,%d) = %.0lf\n", i, pow(3, i));//pow()返回值为%lf且无小数部分
    }
    return 0;
}

2022/2/4总结:

要与样例保持完全一致,不能有丝毫差别,否则就会错误。

今天只刷了习题2-x共14道简单题,这14道题很简单,可以说是有手就行,所以今天效率不高。今天最大的收获就是要细心。明天继续努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值