当前位置: 首页 > 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; 隐式类…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...