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

PTA平台-2023年软件设计综合实践_5(指针及引用)

第一题

6-1 调和平均 - C/C++ 指针及引用

函数hmean()用于计算整数x和y的调和平均数,结果应保存在指针r所指向的浮点数对象中。当x+y等于0时,函数返回0表示无法计算,否则返回1。数学上,两个数x和y的调和平均数 z = 2xy/(x+y) 。

直接上答案:

int hmean(const int x, const int y, float* r){if(x+y==0)return 0;else{*r=2.0*x*y/(x+y);return 1;}
}

第二关6-2 调和平均-引用 - C/C++ 指针及引用

函数hmean()用于计算整数x和y的调和平均数,结果应保存在参数r所引用的浮点数对象中。当x+y等于0时,函数返回0表示无法计算,否则返回1。数学上,两个数x和y的调和平均数 z = 2xy/(x+y) 。

直接上答案:

int hmean(const int x, const int y, float& r){if(x+y==0) return 0;else{r=2.0*x*y/(x+y); return 1;}
}

第三关地球时间 - C/C++ 指针及引用

(地球时间)以第3章微实践-地球时间的代码为基础,实现下述getTime()函数,将当前小时、分钟和秒数写入指针h、m和s指向的整数对象

直接上答案:

void getTime(int* h, int* m, int* s) {time_t timer;struct tm* tblock;timer = time(NULL);tblock = localtime(&timer);*h = tblock->tm_hour;*m = tblock->tm_min;*s = tblock->tm_sec;
}

 第四关6-4 字符串长度 - C/C++ 指针及引用

strLength()函数用于统计指针s所指向的以0结尾的字符串的长度(字符个数),请实现该函数,使得下述程序可以正确运行。注意不能使用原生的strlen()函数。

直接上答案:

unsigned int strLength(const char* s){unsigned int len = 0;while (*s != '\0') {len++;s++;}return len;
}

第五关6-5 字符串拼接 - C/C++ 指针及引用

函数strAppend(d,s)将以0结尾的字符串s附加到以0结尾的字符串d之后。请实现该函数,使得后续程序可以正确运行。注意不能使用原生的strcat()函数。

示例:指针d所指向的字符串"hello"在附加字符串"world"后变为"helloworld"。

直接上答案:

void strAppend(char *d, char *s) {// 找到字符串d的末尾while (*d != '\0') {d++;}// 将字符串s复制到字符串d的末尾while (*s != '\0') {*d = *s;d++;s++;}// 在字符串d的末尾添加'\0'*d = '\0';
}

 

第六关6-6 IPv4地址 - C/C++ 指针及引用

一个IPv4地址可用一个4字节的无符号整数来表示。下述setByte(ip,idx,v)函数负责将指针ip所指向的IP地址的第idx个字节修改为v,其中,idx取值0到3。请实现该函数,使得下述程序可以正常运行。
该程序通过4次调用该函数将一个ip地址设置为192.168.0.1,然后将整个ip地址按通常格式输出。

直接上答案:

void setByte(unsigned char *ip, int idx, unsigned char v) {ip[idx] = v;
}

第七关6-7 地球时间-引用 - C/C++ 指针及引用

(地球时间)以第3章微实践-地球时间的代码为基础,实现下述getTime()函数,将当前小时、分钟和秒数写入参数h、m和s所引用的整数对象。

直接上答案:

void getTime(int& h, int& m, int& s) {time_t now = time(0);tm* currentTime = localtime(&now);h = currentTime->tm_hour;m = currentTime->tm_min;s = currentTime->tm_sec;
}

第八关6-8 拆分实数的整数与小数部分

本题要求实现一个拆分实数的整数与小数部分的简单函数。

直接上答案:

void splitfloat( float x, int *intpart, float *fracpart )
{*intpart = (int)x;*fracpart = x - *intpart;
}

第九关6-9 有序表的增删改查操作

首先输入一个正整数N(1≤N≤1000)和一个无重复元素的、从小到大排列的、N个元素的有序表,然后在屏幕上显示以下菜单(编号和选项)。

直接上答案

 
int insert(int a[ ], int value) {int i = 0;for (i = 0; i < Count; i++)if (a[i] == value)return -1;i = 0;while (i < Count ) {if (a[i] > value)break;i++;}if (i == Count)a[i] = value;else {int tmp1 = a[i], tmp2;a[i] = value;while (i < Count) {i++;tmp2 = a[i];a[i] = tmp1;tmp1 = tmp2;}}Count++;return 1;
}int del(int a[ ], int value) {int i = 0, j = 0, flag = 1;for (i = 0; i < Count; i++) {if (a[i] == value) {for (j = i; a[j] != '\0'; j++)a[j] = a[j + 1];flag = 0;}}if (flag)return -1;Count--;return 1;
}int modify(int a[ ], int value1, int value2) {int i, flag = 1;for (i = 0; i < Count; i++) {if (a[i] == value2)return -1;if (a[i] == value1)flag = 0;}if (flag)return -1;for (i = 0; i < Count; i++)if (a[i] == value1) {a[i] = value2;break;}for (i = 0; i < Count; i++)for (int j = i + 1; j < Count; j++)if (a[j] < a[i]) {int tmp = a[j];a[j] = a[i];a[i] = tmp;}return 1;
}int query(int a[ ], int value) {int before = 0, after = Count - 1;while (before <= after) {int mid = (before + after) / 2;if (a[mid] > value)after = mid - 1;else if (a[mid] < value)before = mid + 1;elsereturn mid;}return -1;
}

第十关6-10 链表拼接

本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下:

直接上答案

struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2){struct ListNode  *list=(struct ListNode *)malloc(sizeof(struct ListNode ));struct ListNode  *l=list;while(list1!=NULL&&list2!=NULL){if(list1->data<list2->data){list->next=list1;list1=list1->next;list=list->next;}else{list->next=list2;list2=list2->next;list=list->next;}}while(list1!=NULL){list->next=list1;list1=list1->next;list=list->next;}while(list2!=NULL){list->next=list2;list2=list2->next;list=list->next;}return l->next;
}

第十一关7-1 无符号整数的内部结构 - C/C++ 指针及引用

无符号整数v由4个字节构成。请编程完成下述任务:

  1. 从键盘读取一个整数,存入unsinged int v;
  2. 以16进制格式打印v的值;
  3. 取v的地址,并强制类型转换成unsigned char*,然后通过这个地址/指针依次打印构成v的第0,第1,第2,第3个字节的16进制值。

直接上答案

#include<iostream>
using namespace std;
int main()
{unsigned int v;cin >> v;cout << hex;cout << v << endl;unsigned char* p = (unsigned char*)&v;for (int i = 0; i < 4; i++){cout << int(p[i]);if (i != 3){cout << " ";}}return 0;
}

相关文章:

PTA平台-2023年软件设计综合实践_5(指针及引用)

第一题 6-1 调和平均 - C/C 指针及引用 函数hmean()用于计算整数x和y的调和平均数&#xff0c;结果应保存在指针r所指向的浮点数对象中。当xy等于0时&#xff0c;函数返回0表示无法计算&#xff0c;否则返回1。数学上&#xff0c;两个数x和y的调和平均数 z 2xy/(xy) 。 直接…...

智慧卫生间

智慧卫生间 获取ApiKey/SecretKey获取Access_token获取卫生间实时数据返回说明 获取ApiKey/SecretKey ApiKey/SecretKey采用 线下获取的方式&#xff0c;手动分配。 获取Access_token 向授权服务地址http://xxxxxx:12345/token(示意)发送post请求&#xff0c;并在data中带上…...

Cadence virtuoso drc lvs pex 无法输入

问题描述&#xff1a;在PEX中的PEX options中 Ground node name 无法输入内容。 在save runset的时候也出现无法输入名称的情况 解决办法&#xff1a; copy一个.bashrc文件到自己的工作目录下 打开.bashrc文件 在.bashrc中加一行代码&#xff1a;unset XMODIFIERS 在终端sour…...

反序列化漏洞(2), 分析调用链, 编写POC

反序列化漏洞(2), 反序列化调用链分析 一, 编写php漏洞脚本 http://192.168.112.200/security/unserial/ustest.php <?php class Tiger{public $string;protected $var;public function __toString(){return $this->string;}public function boss($value){eval($valu…...

Pytorch reshape用法

这里-1是指未设定行数&#xff0c;程序自动计算&#xff0c;所以这里-1表示任一正整数 example reshape(-1, 1) 表示&#xff08;任意行&#xff0c;1列&#xff09;&#xff0c;4行4列变为16行1列reshape(1, -1) 表示&#xff08;1行&#xff0c;任意列&#xff09;&#xf…...

Latex 辅助写作工具

语法修改 https://app.grammarly.com/润色 文心一言、ChatGPTlatex 编辑公式 https://www.latexlive.comlatex 编辑表格 https://www.tablesgenerator.comlatex 图片转公式 https://www.tablesgenerator.com...

frp新版本frp_0.52.3设置

服务端 frps.toml cp /root/frp/frpc /usr/bin #bindPort 7000 bindPort 7000# 如果指定了“oidc”&#xff0c;将使用 OIDC 设置颁发 OIDC&#xff08;开放 ID 连接&#xff09;令牌。默认情况下&#xff0c;此值为“令牌”。auth.method “token” auth.method "…...

100G.的DDoS高防够用吗?

很多人以为100G的DDoS防御已经足够了&#xff0c;但殊不知DDoS攻击大小也是需要分行业类型的&#xff0c;比如游戏、金融、影视、电商甚至ZF或者行业龙头等等行业类型&#xff0c;都是大型DDoS攻击的重灾区&#xff0c;别说100G防御&#xff0c;就算300G防御服务器也不一定够用…...

【django+vue】项目搭建、解决跨域访问

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【djangovue】项目搭建、解决跨域访问 djangovue介绍vue环境准备vue框架搭建1.创建vue项目2.配置vue项目3.进入项目目录4.运行项目5.项目文件讲解6.vue的扩展库或者插件 django环境准备django框架搭建1.使用conda…...

【数据库】数据库连接池导致系统吞吐量上不去-复盘

在实际的开发中&#xff0c;我们会使用数据库连接池&#xff0c;但是如果不能很好的理解其中的含义&#xff0c;那么就可以出现生产事故。 HikariPool-1 - Connection is not available, request timed out after 30001ms.当系统的调用量上去&#xff0c;就出现大量这样的连接…...

华纳云:租用的服务器连接超时怎么办?

服务器连接超时可能由多种原因引起&#xff0c;解决问题的方法取决于具体的情况。以下是一些常见的原因和相应的解决方法&#xff1a; 网络问题&#xff1a; 检查本地网络&#xff1a; 确保本地网络连接正常&#xff0c;尝试访问其他网站或服务&#xff0c;检查是否存在网络问题…...

基于MS16F3211芯片的触摸控制灯的状态变化和亮度控制(11.17,PWM)

紧接上文&#xff0c;基本的控制逻辑并不难写&#xff0c;难的是是、如何输出自己想要频率的PWM波在对应的端口 阅读文档定时器与PWM相关的寄存器&#xff0c;因为之前玩的STM32&#xff0c;所以看起来还是有点困难&#xff0c;准备边看边记录。 如果想要实现在长按时改变PWM…...

编译buildroot出错,这个怎么解决呢,感谢

编译buildroot出错,这个怎么解决呢,感谢 发表于 2019-5-22 20:24:25 浏览:8025 | 回复:5 打印 只看该作者 [复制链接]楼主 g++: internal compiler error: 已杀死 (program cc1plus) Please submit a full bug report, with preprocessed source if appro…...

【0基础学Java第十课】-- 认识String类

10. 认识String类 10.1 String类的重要性10.2 常用方法10.2.1 字符串构造10.2.2 String对象的比较10.2.3 字符串查找10.2.4 转化10.2.5 字符串替换10.2.6 字符串拆分10.2.7 字符串截取10.2.8 字符串的不可变性10.2.9 字符串修改 10.3 StringBuilder和StringBuffer10.3.1 String…...

lxml基本使用

lxml是python的一个解析库&#xff0c;支持HTML和XML的解析&#xff0c;支持XPath解析方式&#xff0c;而且解析效率非常高 XPath&#xff0c;全称XML Path Language&#xff0c;即XML路径语言&#xff0c;它是一门在XML文档中查找信息的语言&#xff0c;它最初是用来搜寻XML文…...

【数据结构初阶】链表OJ

链表OJ 题目一&#xff1a;移除链表元素题目二&#xff1a;反转链表题目三&#xff1a;链表的中间节点题目四&#xff1a;链表中倒数第k个结点题目五&#xff1a;合并两个有序链表题目六&#xff1a;链表分割题目七&#xff1a;链表的回文结构题目八&#xff1a;相交链表题目九…...

【Vue渲染】 条件渲染 | v-if | v-show | 列表渲染 | v-for

目录 前言 v-if和v-show的区别和联系 v-show和v-if如何选择 条件渲染|v-if|v-show v-if v-if v-else v-if v-else-if v-else template v-show 列表渲染|v-for v-for 前言 本文介绍Vue渲染&#xff0c;包含条件渲染v-if和v-show的区别和联系以及列表渲染v-for v-if和…...

开源网安解决方案荣获四川数实融合创新实践优秀案例

​11月16日&#xff0c;2023天府数字经济峰会在成都圆满举行。本次峰会由四川省发展和改革委员会、中共四川省委网络安全和信息化委员会办公室、四川省经济和信息化厅等部门联合指导&#xff0c;聚焦数字经济与实体经济深度融合、数字赋能经济社会转型发展等话题展开交流研讨。…...

debian/ubuntu/linux如何快速安装vscode

前言 这里写一篇简短的文字用来记录如何在Linux发行版上快速安装VScode&#xff0c;主要使用的一个软件snap&#xff0c;做一个简单介绍&#xff1a; Snap Store 是 Ubuntu、Debian、Fedora 和其他几个 Linux 发行版中的一个应用商店&#xff0c;提供了数千个应用程序和工具的…...

Python3语法总结-数据转换②

Python3语法总结-数据转换② Python3语法总结二.Python数据类型转换隐式类型转换显示类型转换 Python3语法总结 二.Python数据类型转换 有时候我们&#xff0c;需要对数据内置的类型进行转换&#xff0c;数据类型的转换。 Python 数据类型转换可以分为两种&#xff1a; 隐式类…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...