当前位置: 首页 > news >正文

浙江大学PTA程序设计C语言基础编程练习题1-5

在这里插入图片描述
🌏个人博客主页:意疏-CSDN博客
在这里插入图片描述

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~

阅读指南:

  • 开篇说明
    • 题目一、厘米换算英寸
    • 题目二、然后是几点
    • 题目三、 逆序的三位数
    • 题目四、BCD解密
    • 题目五、表格输出


开篇说明

本文我们来写一下浙江大学PTA平台经典代码

题目一、厘米换算英寸

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米数是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。
英寸的值应该小于12.

输入样例:

170

输出样例

5 6

我们首先来看思路:

  1. 要定义三个整型变量 foot,inch和meter。
    其中foot、inch用于存储转换后的英尺和英寸值,meter可以用来存储用户输入的米数。
  2. 其次我们还要读入一个整数 来存储到整型变量meter中。
  3. 然后我们将米数转换为英尺。因为1英尺等于30.448厘米,所以将米数除30.48即可得到英尺数。
  4. 最后我们还要计算剩余的英寸数,首先计算剩余的米数(meter - 30.48 * foot),然后再将其转换为英寸(剩余米数除30.48乘12)
  • 这是示例代码:
#include <stdio.h>
int main()
{int foot,inch;int meter;*scanf("%d",&meter);foot = meter/30.48;inch = (meter-30.48*foot)/30.48*12;printf("%d %d\n",foot,inch);return 0;
}

这是最终结果
在这里插入图片描述

题目二、然后是几点

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例

1310

我们首先来看思路:

  1. 输入解析:读取四位时间(如1120)和分钟数(如110)
  2. 时间拆分:1120 → 11小时20分
  3. 转分钟数:11×60+20=680分钟
  4. 时间计算:680+110=790分钟
  5. 转回时分:790→13小时10分(790÷60=13,790%60=10)
  6. 处理负数:若分钟为负,小时借1(如-30→小时-1,分钟+60)
  7. 输出格式:小时直接输出,分钟补零(如13:10→1310,5:05→505)
  • 这是示例代码:
#include <stdio.h>
int main()
{int foot,inch;int meter;*scanf("%d",&meter);foot = meter/30.48;inch = (meter-30.48*foot)/30.48*12;printf("%d %d\n",foot,inch);return 0;
}

这是最终结果
在这里插入图片描述

题目三、 逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123

输出样例

321
我们首先来看思路:

  1. 输入解析:读取一个三位正整数(如123)
  2. 数字分解
    • 百位 = 原数 ÷ 100(123 → 1)
    • 十位 = (原数 ÷ 10) % 10(123 → 2)
    • 个位 = 原数 % 10(123 → 3)
  3. 反转重组
    • 反转数 = 个位×100 + 十位×10 + 百位(3×100+2×10+1=321)
  4. 输出结果
    • 直接输出反转后的整数(自动忽略前导零,如700反转后为7而非007)

这是最终结果

#include <stdio.h>
int main() {int num;scanf("%d", &num);// 分解三位数的各位数字int hundreds = num / 100;      // 百位int tens = (num / 10) % 10;    // 十位int ones = num % 10;           // 个位int reversed = ones * 100 + tens * 10 + hundreds;printf("%d\n", reversed);return 0;
}    
  • 这是最终结果:
    在这里插入图片描述

题目四、BCD解密

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!
现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:

18

输出样例

12
我们首先来看思路:

  1. 输入处理:读取一个十进制整数 c。
    进制转换:
    计算 c 除以 16 的商(a = c / 16),得到十六进制的高位数字。
    计算 c 除以 16 的余数(b = c % 16),得到十六进制的低位数字。
  2. 结果重组:将高位和低位数字组合为一个两位十进制数(answer = a * 10 + b)。
  3. 输出结果:直接打印组合后的结果。
    这是最终结果
#include <stdio.h>
int main(){int a,b,c,answer;scanf("%d",&c);a = c / 16;b = c % 16;answer = a * 10 + b;printf("%d",answer);
return 0;   
}
  • 这是最终结果:
    在这里插入图片描述

题目五、表格输出

本题要求编写程序,按照规定格式输出表格。

输入格式:

本题目没有输入。

输出格式:

ProvinceArea(km²)Pop.(10K)
Anhui139600.006461.00
Beijing16410.541180.70
Chongqing82400.003144.23
Shanghai6340.501360.26
Zhejiang101800.004894.00
我们首先来看思路:
  1. 直接输出:将表格内容作为字符串常量直接嵌入到printf函数中。
  2. 格式控制:通过手动添加换行符\n和空格来控制表格的行和列对齐。
  3. 原封不动:完全保留原始表格的格式,包括分隔线、列标题和数据行。
    这是示例代码
#include <stdio.h>
int main (){printf ("------------------------------------\nProvince      Area(km2)   Pop.(10K)\n------------------------------------\nAnhui         139600.00   6461.00\nBeijing        16410.54   1180.70\nChongqing      82400.00   3144.23\nShanghai        6340.50   1360.26\nZhejiang      101800.00   4894.00\n------------------------------------\n");return 0;
}
  • 这是最终结果:
    在这里插入图片描述
    在这里插入图片描述

意气风发,漫卷疏狂
学习是成长的阶梯,每一次的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中
如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!

愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
logo 我是意疏 下次见!

http://www.xdnf.cn/news/1166851.html

相关文章:

  • 【论文阅读 | TIV 2024 | CDC-YOLOFusion:利用跨尺度动态卷积融合实现可见光-红外目标检测】
  • 边缘计算网关赋能智慧农业:物联网边缘计算的创新应用与实践
  • 【每日算法】专题九_链表
  • python-FTP爆破脚本(phpstudy)-一点bug记录
  • C++性能优化擂台技术文章大纲
  • Unity笔记——事件中心
  • Web3介绍(Web 3.0)(一种基于区块链技术的去中心化互联网范式,旨在通过技术手段实现用户对数据的自主权、隐私保护和价值共享)
  • 算法第26天|贪心算法:用最少数量的箭引爆气球、无重叠区间、划分字母区间
  • solidity从入门到精通 第二章:Solidity初相见
  • AI 音频产品开发模板及流程(二)
  • 数据结构 堆(2)---堆的实现
  • Markdown 转 PDF API 数据接口
  • Android ViewModel 深度解析:原理、使用与最佳实践
  • Redis——Redis进阶命令集详解(下)
  • Docker Compose UI远程访问教程:结合贝锐花生壳实现内网穿透
  • Qt中QObject类的核心作用与使用
  • C++函数 vs Go函数
  • Qt基本控件使用:按钮、标签、文本框等
  • 【打怪升级 - 01】保姆级机器视觉入门指南:硬件选型 + CUDA/cuDNN/Miniconda/PyTorch 安装全流程(附版本匹配秘籍)
  • Kotlin多线程调试
  • freertos关键函数理解 uxListRemove
  • 拼多多视觉算法面试30问全景精解
  • 【AI时代速通QT】第五节:Qt Creator如何引入第三方库,以OpenCV为例
  • 《汇编语言:基于X86处理器》第9章 字符串和数组(2)
  • 库制作与原理
  • Vue 3 面试题全套题库
  • Elasticsearch安装指南
  • 【集群】MySQL的主从复制了解吗?会有延迟吗,原因是什么?
  • AngularJS 动画
  • RabbitMQ--批量处理