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

习题9-1 时间换算 (15 分)

本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。

输入格式:

输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。

输出格式:

输出在一行中给出hh:mm:ss格式的结果时间。

样例:">样例:">输入样例:

11:59:40
30

输出样例:

12:00:10

//%02d是关键

#include <stdio.h>
int main()
{
    int hh, mm, ss, s;
    scanf("%d:%d:%d", &hh, &mm, &ss);
    scanf("%d", &s);
    ss = ss + s;
    if(ss >= 60)
    {
        ss -= 60;
        mm += 1;
        if(mm >= 60)
        {
            mm = 0;
            if(hh == 23)
            hh = 0;
            else
                hh++;
            
        }
    }
    
    printf("%02d:%02d:%02d", hh, mm, ss);
    return 0;
}

习题9-3 平面向量加法 (15 分)

本题要求编写程序,计算两个二维平面向量的和向量。

输入格式:

输入在一行中按照“x1​ y1​ x2​ y2​”的格式给出两个二维平面向量v1​=(x1​,y1​)和v2​=(x2​,y2​)的分量。

输出格式:

在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。

输入样例:

3.5 -2.7 -13.9 8.7

输出样例:

(-10.4, 6.0)

//1.要用double型  2. %.1f    0.05 - > 0.1     0.049 -> 0.0

#include <stdio.h>
int main()
{
    double x1, y1, x2, y2, x3, y3;
    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    x3 = x1 + x2;
    y3 = y1 + y2;
    if(x3 > -0.05 && x3 < 0)
        x3 = 0;
    if(y3 > -0.05 && y3 < 0)
        y3 = 0;
    printf("(%.1lf, %.1lf)", x3, y3);
    return 0;
}

习题9-4 查找书籍 (20 分)

给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。

输入格式:

输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。

输出格式:

在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。

输入样例:

3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0

输出样例:

25.00, Programming in Delphi
18.50, Programming in VB

//1.结构体的定义以及price需要定义为double型(float不行吗?) 2. gets()、getchar()的使用 3.字符数组长度为31,留一个给'\0'

#include <stdio.h>
typedef struct 
{
    char book[31];
    double price;
}message;
int main()
{
    int n, i, c, min, max;
    scanf("%d", &n);
    getchar();
    message shu[n];
    for(i = 0; i < n; i++)
    {
        
        gets(shu[i].book);
        scanf("%lf", &shu[i].price);
        getchar();
    }
    min = 0;
    max = 0;

    for(i = 1; i < n; i++)
    {
        if(shu[i].price < shu[min].price)
            min = i;
        if(shu[i].price > shu[max].price)
            max = i;
    }
    printf("%.2lf, %s\n%.2lf, %s", shu[max].price, shu[max].book, shu[min].price, shu[min].book);
    return 0;
}

习题10-4 递归求简单交错幂级数的部分和 (15 分)

本题要求实现一个函数,计算下列简单交错幂级数的部分和:

f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn

函数接口定义:

double fn( double x, int n );

其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。

裁判测试程序样例:

#include <stdio.h>

double fn( double x, int n );

int main()
{
    double x;
    int n;
    
    scanf("%lf %d", &x, &n);
    printf("%.2f\n", fn(x,n));
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

0.5 12

输出样例:

0.33

//我没想出来,看了别人的,写的很简单。f(n) = g(f(n - 1)), return的结果是的关系式g(f(n - 1))

double fn( double x, int n )
{
    if(n == 1)
        return x;
    else
        return x + (-x) * fn(x, n - 1);
}

习题10-7 十进制转换二进制 (15 分)

本题要求实现一个函数,将正整数n转换为二进制后输出。

函数接口定义:

void dectobin( int n );

函数dectobin应在一行中打印出二进制的n。建议用递归实现。

裁判测试程序样例:

#include <stdio.h>

void dectobin( int n );

int main()
{
    int n;
    
    scanf("%d", &n);
    dectobin(n);
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

1010

//没想出来递归的方法

void dectobin( int n )
{
    int a;
    if(n == 0)
        printf("0");
    else if(n == 1)
        printf("1");
    else
    {
        dectobin(n / 2);
        a = n % 2;
        printf("%d", a);
        
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 浙大C语言程序设计实验与习题指导(第3)》题目是一本针对C语言学习者的实验与习题指导书籍。该书包含了大量的实验和习题,涵盖了C语言的基础知识和应用技巧。通过完成这些实验和习题,读者可以逐步掌握C语言的编程思想和技能,提高自己的编程水平。该书内容丰富、难度适中,适合初学者和进阶者使用。 ### 回答2: 浙大C语言程序设计实验与习题指导(第3)》题目是一本较为优秀的学习C语言编程的书籍,其编写目的主要是为了帮助学习者在掌握C语言编程语言的基础知识之后,通过各种习题的练习和实验的操作,更好地学习和掌握C语言编程的能力,从而提高自己的编程水平。 本书分为两部分,第一部分是实验指导,旨在通过实际操作来帮助学习者更好地理解和掌握C语言编程的基础知识,其中包括C语言程序设计实验C语言程序设计应用实验C语言程序设计综合应用实验三个部分,每个实验都有配套的实验指导和实验报告模板,学生可以根据实验指导完成实验,通过实验来检验自己对C语言编程的理解和掌握程度。 第二部分是习题指导,主要是通过各种习题来达到帮助学习者进一步巩固和提高C语言编程能力的目的。习题指导包括基础知识习题、程序设计习题和综合应用习题三个部分,对于每个习题都有详细的讲解和参考答案,学生可以通过做习题来检验并提高自己的C语言编程能力。 总体来说,浙大C语言程序设计实验与习题指导(第3)》题目是一本非常优秀的教材,通过实验和习题的形式来帮助学习者更好地掌握C语言编程的基础知识和编程技能,对于提升学生C语言编程能力和实际应用能力有非常积极的作用。同时,本书编写非常系统、内容丰富、语言简明易懂,对于初学者和进阶者都有着很好的指导和帮助作用。虽然有英文的书籍,但此书的中文也是一本学习C语言编程非常好的教材,值得推荐。 ### 回答3: 《C语言程序设计实验与习题指导(第3)》是浙江大学计算机科学与技术学院编写的一本C语言教材,也是浙江大学计算机学院C语言课程的教材之一。本书主要分为两部分,第一部分是实验指导,第二部分是习题。在实验指导部分,本书从C语言的基础语法入手,通过不断地练习和实践,让读者逐步掌握C语言的编程技巧和方法。在习题中,本书涵盖了各个难度层次的练习题,从基本的语法练习到复杂的算法实现、图形绘制等练习都有。本书的练习题设计严密,题目设计科学合理,不仅可以让读者巩固和提高C语言编程能力,还能引导读者思考解决实际问题的程序设计方法。 《C语言程序设计实验与习题指导(第3)》的实验指导部分共有12个实验,每个实验包含实验目的、实验原理、实验步骤和实验报告等内容。在实验步骤中,每步都有详细的操作指导和说明,能够帮助读者轻松地进行实验。在实验报告中,本书也给出了详细的要求和格式说明,让读者写出规范、清晰的实验报告。 本书的习题部分分为基础篇、提高篇和应用篇三个部分,每个部分都有若干章节,涵盖了C语言的各个方面。每个章节都有若干个练习题目,其中不乏难度适中、有一定难度的习题。本书的习题循序渐进,能够帮助读者逐步提高C语言编程水平。 总之,《C语言程序设计实验与习题指导(第3)》不仅是一本优秀的C语言教材,更是一本优秀的C语言练习题。无论是C语言初学者还是有一定编程基础的读者,都可以从中获得巨大的收获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值