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

C语言二级题解:查找字母以及其他字符个数、数字字符串转双精度值、二维数组上下三角区域数据对调

目录

一、程序填空题 --- 查找字母以及其他字符个数

题目

分析

二、程序修改 --- 数字字符串转双精度值

题目

分析

小数位字符串转数字

三、程序设计 --- 二维数组上下三角区域数据对调

题目

分析


前言

本文来讲解:
查找字母以及其他字符个数、数字字符串转双精度值、二维数组上下三角区域数据对调

C语言二级,最好是能弄懂每一道程序题,这样会对自己的编程能力有很大的提升
适用人群:

  1. 要参加C语言二级
  2. 中职学生
  3. 想提升C语言编程思维
  4. C语言爱好者

一、程序填空题 --- 查找字母以及其他字符个数

难度:⭐

题目

以下程序的功能是:
统计字符串 (长度不超过 1000 个字符) 中每个字母的个数(不区分大小写),若字符不是字母,则统一归为其他字符。

 

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

代码如下: 
在1️⃣2️⃣3️⃣处填空

#include<stdio.h>
#include<string.h>
void countstr(char *st,int cutor[]);
void main()
{char s[1000];
/**********************found***********************/int counters[27]= ___1️⃣___,i;printf("Input a string\n");gets(s);countstr(s,counters);
/**********************found***********************/for(i=0; i<=___2️⃣___;i++)printf("%c : %d\n",i+65,counters[i]);printf("others : %d\n",counters[i]);
}void countstr(char *st,int cutor[])
{int i,j;char t;i=strlen(st);for(j=0;j<i;j++){t=st[j];if(t>='a'&&t<='z')t=t-'a'+'A';if(t>='A'&&t<='Z')
/**********************found***********************/cutor[t- ___3️⃣___]++;elsecutor[26]++;}
}

分析

根据题意以及代码可知
利用27个元素的cutor数组存储26个元素以及1个其他符号
当遇到字母a或A(不区分大小写),则在0号元素位置加一
也就是:'A' - 'A'   ---->  '任意字母' - 'A' 就是对应的数组下标了

解答代码如下:

#include<stdio.h>
#include<string.h>
void countstr(char *st,int cutor[]);
void main()
{char s[1000];
/**********************found***********************///因为数组里存放的是26个字母以及其他字符的个数//所以要先初始化为 0int counters[27]= 1️⃣{0},i;printf("Input a string\n");gets(s);countstr(s,counters);
/**********************found***********************///因为由for循环下面的输出语句可以知道//最下面个的是输出其他字符//那么当前的这个循环就是输出字母//字母有26个,从0开始就是到25for(i=0; i<=2️⃣25;i++)printf("%c : %d\n",i+65,counters[i]);printf("others : %d\n",counters[i]);
}void countstr(char *st,int cutor[])
{int i,j;char t;i=strlen(st);for(j=0;j<i;j++){t=st[j];if(t>='a'&&t<='z')t=t-'a'+'A';if(t>='A'&&t<='Z')
/**********************found***********************///因为这里要保存某个字母的出现次数//所以就要将对应的字母转换为相应的元素//也就是字母 - 字符A就可以求得当前元素位置了cutor[t- 3️⃣'A']++;elsecutor[26]++;}
}

 

二、程序修改 --- 数字字符串转双精度值

难度:⭐⭐⭐

题目

函数 int strtoval (char pst [], double* p) 的功能是,将 pst 中带符号的数字字符串转换成双精度数值直到遇到非数字字符为止。函数返回值为 1 表示转换成功,为 0 表示转换失败,函数成功转换后的数值存储在指针 p 所指的存储单元中。
如:
+123.65a 转换数值后输出 + 123.650000,函数返回值为 1。
-32-3 转换数值后输出 - 32.000000,函数返回值为 1。
56.76a 转换数值后输出 + 56.760000,函数返回值为 1。
283.125 转换数值后输出 + 283.125000,函数返回值为 1。
对 + a8.6 转换失败,函数返回值为 0,输出出错信息。
请改正函数 fun 中指定部位的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。

代码如下:
在代码中找出3个错误并修改

#include<stdio.h>
int strtoval(char pst[],double* p)
{int sucs;int plus;int i=0;double frac=0.1;*p=0.0;while(pst[i]==' ') i++;
/**********************found***********************/if(pst[i]=='+'&& pst[i]>='0'&&pst[i]<='9'){plus=1;sucs=1;}else if(pst[i]=='-'){plus=0;sucs=1;}else {sucs=0;return sucs;}
/**********************found***********************/if(pst[i]=='+'&& pst[i]=='-')i++;if(pst[i]==' ')i++;if(!(pst[i]>='0'&&pst[i]<='9')){sucs=0;return sucs;}while(pst[i]!='\0'){if(pst[i]>='0'&&pst[i]<='9'){*p=*p*10+pst[i]-'0';i++;}else if(pst[i]== '.')break;else {if(plus==0)*p=-1.0**p;return sucs;}}
/**********************found***********************/if(pst[i]!= '.'){i++;while(pst[i]!='\0'){if(pst[i]>='0'&&pst[i]<='9'){*p=*p+(pst[i]-'0')*frac;frac/=10;i++;}else{if(plus==0)*p=-1.0**p;return sucs;}}return sucs;}return sucs;
}void main()
{char str[][100]={"    +123.65a","    -32-3","    56.76a","    + 283.125","    +a8.6"		};double a;int i;for(i=0;i<5;i++)if(strtoval(str[i],&a)==1)printf("vol=%f\n",a);else printf("error,the string is %s\n",str[i]);
}

分析

简要分析题意:
函数 strtoval 的功能是将字符串 pst 转换为双精度浮点数
并将结果存储在指针 p 所指向的内存中
函数返回一个整数,表示转换是否成功,1 表示成功,0 表示失败

根据题意可以知道(可以先分析变量的作用):
sucs 用于检测转换是否成功
plus 用于标记数值是正数还是负数
frac 用于处理小数部分,初始值为 0.1

解答代码如下:

#include<stdio.h>int strtoval(char pst[], double* p) {// sucs 用于记录转换是否成功,1 表示成功,0 表示失败int sucs;// plus 用于记录数值是正数还是负数,1 表示正数,0 表示负数int plus;// i 作为数组的索引,用于遍历字符串int i = 0;// frac 用于处理小数部分,初始值为 0.1,后续每处理一位小数就缩小 10 倍double frac = 0.1;// 将指针 p 所指向的内存初始化为 0.0,为后续存储转换后的双精度浮点数做准备*p = 0.0;// 跳过字符串开头的空格字符// 因为输入的字符串可能在数字或符号前有多个空格,所以使用循环跳过这些空格while (pst[i] == ' ') i++;/**********************found***********************/// 如果当前字符是 '+' 或者是数字字符// 这意味着字符串开头可能是正号或者直接是数字//所以要用逻辑或if (pst[i] == '+'|| (pst[i] >= '0' && pst[i] <= '9')) {// 记录为正数plus = 1;// 记录转换可能成功,因为当前字符符合预期,后续还需继续检查sucs = 1;} // 如果当前字符是 '-'// 表示字符串代表的是一个负数else if (pst[i] == '-') {// 记录为负数plus = 0;// 记录转换可能成功,后续同样要继续检查剩余字符sucs = 1;} // 若既不是 '+'、'-' 也不是数字字符// 说明字符串的起始部分不符合数字转换的要求else {// 记录转换失败sucs = 0;// 返回失败结果,终止函数执行return sucs;}/**********************found***********************/// 如果当前字符是 '+' 或者 '-'// 这是符号位,在后续处理数字时需要跳过if (pst[i] == '+' || pst[i] == '-')// 跳过符号字符i++;// 如果跳过符号后当前字符是空格// 同样需要跳过,保证后续处理的是有效的数字字符if (pst[i] == ' ')// 继续跳过空格i++;// 如果当前字符不是数字字符// 即跳过符号和可能的空格后,没有紧接着有效的数字,说明转换无法继续if (!(pst[i] >= '0' && pst[i] <= '9')) {// 记录转换失败sucs = 0;// 返回失败结果,终止函数执行return sucs;}// 以下开始处理整数部分,直到字符串结束while (pst[i] != '\0') {// 如果当前字符是数字字符if (pst[i] >= '0' && pst[i] <= '9') {// 将当前数字字符转换为数字并累加到 *p 中// 通过 pst[i] - '0' 把字符形式的数字转换为对应的数值,然后更新 *p*p = *p * 10 + (pst[i] - '0');// 移动到下一个字符,继续处理后续内容i++;} // 如果遇到小数点// 意味着整数部分处理结束,要开始处理小数部分else if (pst[i] == '.')// 跳出循环,开始处理小数部分break;// 如果遇到非数字和非小数点的字符// 说明字符串中出现了不符合数字格式的内容else {if (plus == 0)*p = -1.0 * *p;return sucs;}}
/**********************found***********************///如果是小数点的话,就进行小数位的运算if(pst[i]== '.'){i++;while(pst[i]!='\0'){if(pst[i]>='0'&&pst[i]<='9'){   //小数位的转换//先让小数位的数字乘frac(初始为0.1)//之后再将frac*10也就是小数的又后一位//就可以让其变成小数了*p=*p+(pst[i]-'0')*frac;frac/=10;i++;}else{if(plus==0)*p=-1.0**p;return sucs;}}return sucs;}return sucs;}void main() {char str[][100] = {"    +123.65a","    -32-3","    56.76a","    + 283.125","    +a8.6"};double a;int i;for (i = 0; i < 5; i++) {if (strtoval(str[i], &a) == 1)printf("vol=%f\n", a);elseprintf("error,the string is %s\n", str[i]);}
}

程序修改题里面,如果没有思路,可以根据运算符来猜测怎样修改
因为计算机二级考试会有
  /**********************found***********************/
这一行进行注释,那么这一行的下面一般就是程序错的位置了

小数位字符串转数字

这里提到了小数位数的字符串转小数,还是很实用的,这里再讨论一下这里

int frac = 0.1;
int i;
for(i = 0; pst[i] != '\0'; i++)
{//小数位的转换//先让小数位的数字乘frac(初始为0.1)//之后再将frac*10也就是小数的又后一位//就可以让其变成小数了*p=*p+(pst[i]-'0')*frac;frac/=10;i++;
}

三、程序设计 --- 二维数组上下三角区域数据对调

难度:⭐⭐⭐

题目

编写一个函数 void change(int p[][N], int n),其功能是将一个 int 型二维数组的上下三角区域的数据对调,数组大小限制在 100X100。

 

例如,N = 7 时,有二维数组:

int a[N][N] = {
{11,12,13,14,15,16,17},
{21,22,23,24,25,26,27},
{31,32,33,34,35,36,37},
{41,42,43,44,45,46,47},
{51,52,53,54,55,56,57},
{61,62,63,64,65,66,67},
{71,72,73,74,75,76,77} 
};

上下三角区域的数据对调后 a 数组内容为:

{11,21,31,41,51,61,71,
12,22,32,42,52,62,72,
13,23,33,43,53,63,73,
14,24,34,44,54,64,74,
15,25,35,45,55,65,75,
16,26,36,46,56,66,76,
17,27,37,47,57,67,77}

代码如下:
在change函数中编写 

#include<stdio.h>
#define N 7
void change(int p[][N],int n)
{}void main()
{  	int i,j;int a[N][N]={{11,12,13,14,15,16,17},{21,22,23,24,25,26,27},{31,32,33,34,35,36,37},{41,42,43,44,45,46,47},{51,52,53,54,55,56,57},{61,62,63,64,65,66,67},{71,72,73,74,75,76,77}};for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}change(a,N);    printf("对调后的二维数组:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}
}

分析

本题看似偏难,但是往正确的方向去想了,找到规律了,就容易了
上下三角区域:也就是右斜中心线不动,对应的行和列进行对调,如图

所以可以先定义i和j两个变量来充当二维数组的行和列
i为行下标,j为列下标
解答代码如下:

#include<stdio.h>
#define N 7
void change(int p[][N],int n)
{int i, j;//控制行for( i = 0; i < n; i++ )//控制列//i + 1是因为在i的左边是已经换好了的//那么i的右边则是没有交换过的//而与i相等没必要做交换所以j = i + 1;for( j = i+1; j < n; j++ ){   //行列行列进行交换int flag = p[i][j];p[i][j] = p[j][i];p[j][i] = flag;}
}void main()
{ 	int i,j;int a[N][N]={{11,12,13,14,15,16,17},{21,22,23,24,25,26,27},{31,32,33,34,35,36,37},{41,42,43,44,45,46,47},{51,52,53,54,55,56,57},{61,62,63,64,65,66,67},{71,72,73,74,75,76,77}};for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}change(a,N);    printf("对调后的二维数组:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}
}

这里就是要注意列j的变化

希望本文对您有所帮助(* ̄︶ ̄)
本文专栏:C语言二级
苟日新,又日新,日日新

相关文章:

C语言二级题解:查找字母以及其他字符个数、数字字符串转双精度值、二维数组上下三角区域数据对调

目录 一、程序填空题 --- 查找字母以及其他字符个数 题目 分析 二、程序修改 --- 数字字符串转双精度值 题目 分析 小数位字符串转数字 三、程序设计 --- 二维数组上下三角区域数据对调 题目 分析 前言 本文来讲解&#xff1a; 查找字母以及其他字符个数、数字字符串…...

Git进阶之旅:Git 配置信息 Config

Git 配置级别&#xff1a; 仓库级别&#xff1a;local [ 优先级最高 ]用户级别&#xff1a;global [ 优先级次之 ]系统级别&#xff1a;system [ 优先级最低 ] 配置文件位置&#xff1a; git 仓库级别对应的配置文件是当前仓库下的 .git/configgit 用户级别对应的配置文件时用…...

Qwen2-VL:在任何分辨率下增强视觉语言模型对世界的感知 (大型视觉模型 核心技术 分享)

摘要 我们推出了Qwen2-VL系列,这是对之前Qwen-VL模型的高级升级,重新定义了视觉处理中的常规预设分辨率方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态地将不同分辨率的图像转换为不同的视觉令牌数量。这种方法允许模型生成更高效和准确的视觉表示,紧密…...

【C语言】在Windows上为可执行文件.exe添加自定义图标

本文详细介绍了在 Windows 环境下,如何为使用 GCC 编译器编译的 C程序 添加自定义图标,从而生成带有图标的 .exe 可执行文件。通过本文的指导,读者可以了解到所需的条件以及具体的操作步骤,使生成的程序更具专业性和个性化。 目录 1. 准备条件2. 具体步骤步骤 1: 准备资源文…...

记录 | Docker的windows版安装

目录 前言一、1.1 打开“启用或关闭Windows功能”1.2 安装“WSL”方式1&#xff1a;命令行下载方式2&#xff1a;离线包下载 二、Docker Desktop更新时间 前言 参考文章&#xff1a;Windows Subsystem for Linux——解决WSL更新速度慢的方案 参考视频&#xff1a;一个视频解决D…...

FortiOS 存在身份验证绕过导致命令执行漏洞(CVE-2024-55591)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

系统思考—心智模式

“我们的大脑对连贯性的渴望远胜于对准确性的追求。”—诺贝尔经济学得主丹尼尔卡尼曼 在面对复杂的决策时&#xff0c;我们往往更倾向于寻找那些能够迅速串联起来的信息&#xff0c;而非深入挖掘每一个细节的真实性。这种倾向在日常生活中或许能帮助我们迅速作出决策&#xf…...

【信息系统项目管理师-选择真题】2008上半年综合知识答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7~8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16~20题】【第21题】【第22题】【第23题】【第24题】【第25题…...

深入理解三高架构:高可用性、高性能、高扩展性的最佳实践

引言 在现代互联网环境下&#xff0c;随着用户规模和业务需求的快速增长&#xff0c;系统架构的设计变得尤为重要。为了确保系统能够在高负载和复杂场景下稳定运行&#xff0c;"三高架构"&#xff08;高可用性、高性能、高扩展性&#xff09;成为技术架构设计中的核…...

从 SAP 功能顾问到解决方案架构师:破茧成蝶之路

目录 行业瞭望&#xff1a;架构师崭露头角 现状剖析&#xff1a;功能顾问的局限与机遇 能力跃迁&#xff1a;转型的核心要素 &#xff08;一&#xff09;专业深度的掘进 &#xff08;二&#xff09;集成能力的拓展 &#xff08;三&#xff09;知识广度的延伸 &#xff0…...

《从因果关系的角度学习失真不变表示以用于图像恢复》学习笔记

paper&#xff1a;2303.06859 GitHub&#xff1a;lixinustc/Causal-IR-DIL: Distortion invariant feature learning for image restoration from a causality perspective 2023 CVPR 目录 摘要 1、介绍 1.1 图像修复任务 1.2 失真不变表示学习 1.3 因果效应估计的挑战…...

STM32 PWM驱动直流电机

接线图&#xff1a; 代码配置&#xff1a; 根据驱动舵机的代码来写&#xff0c;与舵机不同的是&#xff0c;这次的引脚接到了PA2上&#xff0c;所以需要改一下引脚以及改为OC3通道。 另外还需在配置两个GPIO引脚&#xff0c;来控制电机的旋转方向&#xff0c;这里连接到了PA4与…...

【Hadoop】Hadoop 概述

Hadoop 概述 Hadoop 是什么Hadoop 发展历史Hadoop 三大发行版本Hadoop 优势&#xff08;4 高&#xff09;Hadoop 组成&#xff08;面试重点&#xff09;HDFS 架构概述YARN 架构概述MapReduce 架构概述HDFS、YARN、MapReduce 三者关系 大数据技术生态体系 Hadoop 是什么 Hadoop…...

【仪器分析】FACTs-幅度

** 当然&#xff0c;这回是一篇没有插图的文章&#xff0c;但是有足够多的描述可以用来想象。 我拿这个系列当作前传试试水 引言。正弦信号可能会发生怎样的变化&#xff1f; ** 近日学FACTs&#xff0c;险些成为传函丁真&#xff0c; 如果从仪器角度考察正弦信号的测量&…...

deepseek R1的确不错,特别是深度思考模式

deepseek R1的确不错&#xff0c;特别是深度思考模式&#xff0c;每次都能自我反省改进。比如我让 它写文案&#xff1a; 【赛博朋克版程序员新春密码——2025我们来破局】 亲爱的代码骑士们&#xff1a; 当CtrlS的肌肉记忆遇上抢票插件&#xff0c;当Spring Boot的…...

Unity敌人逻辑笔记

写ai逻辑基本上都需要状态机。因为懒得手搓状态机&#xff0c;所以选择直接用动画状态机当逻辑状态机用。 架构设计 因为敌人的根节点已经有一个animator控制动画&#xff0c;只能增加一个子节点AI&#xff0c;给它加一个animator指向逻辑“动画”状态机。还有一个脚本&#…...

C++,STL 简介:历史、组成、优势

文章目录 引言一、STL 的历史STL 的核心组成三、STL 的核心优势四、结语进一步学习资源&#xff1a; 引言 C 是一门强大且灵活的编程语言&#xff0c;但其真正的魅力之一在于其标准库——尤其是标准模板库&#xff08;Standard Template Library, STL&#xff09;。STL 提供了…...

【事务管理】

目录 一. 介绍与操作二. Spring事务管理三. 事务四大特性 \quad 一. 介绍与操作 \quad \quad 二. Spring事务管理 \quad 推荐加在经常进行增删改的方法上 \quad 三. 事务四大特性 \quad ctrlaltt...

ERP革新:打破数据壁垒,重塑市场竞争

标题&#xff1a;ERP革新&#xff1a;打破数据壁垒&#xff0c;重塑市场竞争 文章信息摘要&#xff1a; Operator和Computer Use等工具通过模拟用户交互和自动化数据提取&#xff0c;绕过了传统ERP系统的API限制&#xff0c;打破了其数据护城河。这种技术革新降低了企业切换软…...

小阿卡纳牌

小阿卡纳牌 风&#xff1a;热湿 火&#xff1a;热干 水&#xff1a;冷湿 土&#xff1a;冷干 火风&#xff1a;温度相同&#xff0c;但是湿度不同&#xff0c;二人可能会在短期内十分热情&#xff0c;但是等待热情消退之后&#xff0c;会趋于平淡。 湿度相同、温度不同&#x…...

android的gradle

资料&#xff1a; GitHub - ChenSWD/CopyGradleInAction: 备份《Gradle IN Action》书中的源码&#xff0c;添加了部分注释 //github上一个开源项目&#xff0c;外加pdf书 Gradle User Manual gradle官网 讲的挺好的博客 Gradle之重新认识Gradle(项目结构、命令行、tas…...

时间轮:XXL-JOB 高效、精准定时任务调度实现思路分析

大家好&#xff0c;我是此林。 定时任务是我们项目中经常会遇到的一个场景。那么如果让我们手动来实现一个定时任务框架&#xff0c;我们会怎么做呢&#xff1f; 1. 基础实现&#xff1a;简单的线程池时间轮询 最直接的方式是创建一个定时任务线程池&#xff0c;用户每提交一…...

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》029-组件的数据注入

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…...

「 机器人 」扑翼飞行器控制的当前挑战与后续潜在研究方向

前言 在扑翼飞行器设计与控制方面,虽然已经取得了显著的进步,但在飞行时间、环境适应性、能量利用效率及模型精度等方面依旧存在亟待解决的挑战。以下内容概括了这些挑战和可能的改进路径。 1. 当前挑战 1.1 飞行时间短 (1)主要原因 能源存储有限(电池容量小)、驱动系…...

ICSE‘25 LLM Assistance for Memory Safety

不知道从什么时候开始&#xff0c;各大技术社区&#xff0c;技术群聊流行着 “用Rust重写!” &#xff0c;放一张图(笑死… 这不, 随着大模型技术的流行&#xff0c;大家都在探索如何让大模型自动完成仓库级别(全程序)的代码重构&#xff0c;代码变换&#xff08;Refactor&…...

使用 Docker 运行 Oracle Database 23ai Free 容器镜像并配置密码与数据持久化

使用 Docker 运行 Oracle Database 23ai Free 容器镜像并配置密码与数据持久化 前言环境准备运行 Oracle Database 23ai Free 容器基本命令参数说明示例 注意事项高级配置参数说明 总结 前言 Oracle Database 23ai Free 是 Oracle 提供的免费版数据库&#xff0c;基于 Oracle …...

在Linux系统上安装.NET

测试系统&#xff1a;openKylin(开放麒麟) 1.确定系统和架构信息&#xff1a; 打开终端&#xff08;Ctrl Alt T&#xff09;&#xff0c;输入cat /etc/os-release查看系统版本相关信息。 输入uname -m查看系统架构。确保你的系统和架构符合.NET 的要求&#xff0c;如果架构…...

C++ unordered_map和unordered_set的使用,哈希表的实现

文章目录 unordered_map&#xff0c;unorder_set和map &#xff0c;set的差异哈希表的实现概念直接定址法哈希冲突哈希冲突举个例子 负载因子将关键字转为整数哈希函数除法散列法/除留余数法 哈希冲突的解决方法开放定址法线性探测二次探测 开放定址法代码实现 哈希表的代码 un…...

星火大模型接入及文本生成HTTP流式、非流式接口(JAVA)

文章目录 一、接入星火大模型二、基于JAVA实现HTTP非流式接口1.配置2.接口实现&#xff08;1&#xff09;分析接口请求&#xff08;2&#xff09;代码实现 3.功能测试&#xff08;1&#xff09;测试对话功能&#xff08;2&#xff09;测试记住上下文功能 三、基于JAVA实现HTTP流…...

数据结构——二叉树——堆(1)

今天&#xff0c;我们来写一篇关于数据结构的二叉树的知识。 在学习真正的二叉树之前&#xff0c;我们必不可少的先了解一下二叉树的相关概念。 一&#xff1a;树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层…...

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)

目录 1 -> HML语法 1.1 -> 页面结构 1.2 -> 数据绑定 1.3 -> 普通事件绑定 1.4 -> 冒泡事件绑定5 1.5 -> 捕获事件绑定5 1.6 -> 列表渲染 1.7 -> 条件渲染 1.8 -> 逻辑控制块 1.9 -> 模板引用 2 -> CSS语法 2.1 -> 尺寸单位 …...

SOME/IP--协议英文原文讲解4

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.1.3 End…...

【AI】【本地部署】OpenWebUI的升级并移植旧有用户信息

【背景】 OpenWebUI的版本升级频率很高&#xff0c;并会修改旧版本的Bug&#xff0c;不过对于已经在使用的系统&#xff0c;升级后现有用户信息都会丢失&#xff0c;于是研究如何在升级后将现有的用户信息移植到升级后版本。 【准备工作】 OpenWebUI的升级步骤在Docker中有现…...

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(五)

Understanding Diffusion Models: A Unified Perspective&#xff08;五&#xff09; 文章概括基于得分的生成模型&#xff08;Score-based Generative Models&#xff09; 文章概括 引用&#xff1a; article{luo2022understanding,title{Understanding diffusion models: A…...

Tableau:为数据科学专家量身定制

Tableau是一款功能强大且广泛应用的数据可视化和商业智能&#xff08;BI&#xff09;工具&#xff0c;由斯坦福大学的三位研究者于2003年创立。它旨在通过直观的界面和强大的功能&#xff0c;帮助用户轻松地探索、分析和呈现数据&#xff0c;从而做出更明智的决策。 核心功能与…...

CAG技术:提升LLM响应速度与质量

标题&#xff1a;CAG技术&#xff1a;提升LLM响应速度与质量 文章信息摘要&#xff1a; CAG&#xff08;Cache-Augmented Generation&#xff09;通过预加载相关知识到LLM的扩展上下文中&#xff0c;显著减少了检索延迟和错误&#xff0c;从而提升了响应速度和质量。与传统的R…...

飞桨PaddleNLP套件中使用DeepSeek r1大模型

安装飞桨PaddleNLP 首先安装最新的PaddleNLP3.0版本&#xff1a; pip install paddlenlp3.0.0b3 依赖库比较多&#xff0c;可能需要较长时间安装。 安装好后&#xff0c;看看版本&#xff1a; import paddlenlp paddlenlp.__version__ 输出&#xff1a; 3.0.0b3.post2025…...

单片机基础模块学习——NE555芯片

一、NE555电路图 NE555也称555定时器,本文主要利用NE555产生方波发生电路。整个电路相当于频率可调的方波发生器。 通过调整电位器的阻值,方波的频率也随之改变。 RB3在开发板的位置如下图 测量方波信号的引脚为SIGHAL,由上面的电路图可知,NE555已经构成完整的方波发生电…...

php:代码中怎么搭建一个类似linux系统的crontab服务

一、前言 最近使用自己搭建的php框架写一些东西&#xff0c;需要用到异步脚本任务的执行&#xff0c;但是是因为自己搭建的框架没有现成的机制&#xff0c;所以想自己搭建一个类似linux系统的crontab服务的功能。 因为如果直接使用linux crontab的服务配置起来很麻烦&#xff0…...

Versal - 基础3(AXI NoC 专题+仿真+QoS)

目录 1. 简介 2. 示例 2.1 示例说明 2.2 创建项目 2.2.1 平台信息 2.2.2 AXI NoC Automation 2.2.3 创建时钟和复位 2.3 配置 NoC 2.4 配置 AXI Traffic 2.5 配置 Memory Size 2.6 Validate BD 2.7 添加观察信号 2.8 运行仿真 2.9 查看结果 2.9.1 整体波形 2.9…...

Synology 群辉NAS安装(10)安装confluence

Synology 群辉NAS安装&#xff08;10&#xff09;安装confluence 写在前面本着一朝鲜吃遍天的原则&#xff0c;我又去了这个github的作者那里翻车的第一次尝试手工创建数据库制作一个新的docker-compose of confluence 不折腾但成功启动的版本 写在前面 在装完jira之后&#x…...

挂载mount

文章目录 1.挂载的概念(1)挂载命令&#xff1a;mount -t nfs(2)-t 选项&#xff1a;指定要挂载的文件系统类型(3)-o选项 2.挂载的目的和作用(1)跨操作系统访问&#xff1a;将Windows系统内容挂载到Linux系统下(2)访问外部存储设备(3)整合不同的存储设备 3.文件系统挂载要做的事…...

NLP深度学习 DAY4:Word2Vec详解:两种模式(CBOW与Skip-gram)

用稀疏向量表示文本&#xff0c;即所谓的词袋模型在 NLP 有着悠久的历史。正如上文中介绍的&#xff0c;早在 2001年就开始使用密集向量表示词或词嵌入。Mikolov等人在2013年提出的创新技术是通过去除隐藏层&#xff0c;逼近目标&#xff0c;进而使这些单词嵌入的训练更加高效。…...

SQL注入漏洞之基础数据类型注入 字符 数字 搜索 XX 以及靶场实例哟

目录 基础数据类型SQL注入 字符类型注入 单引号双引号解释 案例练习: 数字类型注入 案例 搜索性注入: 案例 XX性注入: 语句 案例 基础SQL注入类型分类 基础数据类型SQL注入 字符类型注入 xxx or 11 # select id,email from member where usernamexx or 11 # --…...

苹果AR眼镜:产品规划与战略路线深度解析

随着增强现实(AR)技术的不断发展,苹果公司正逐步推进其AR智能眼镜项目。尽管Vision Pro作为一款高端混合现实设备已经面世,但苹果真正的目标是开发出一款轻便、全天候佩戴且能够取代智能手机功能的AR眼镜。本文将梳理苹果在AR领域的探索历程,并分析其当前的产品状态及未来…...

HashMap讲解

在Java开发中&#xff0c;HashMap 是最常用的数据结构之一&#xff0c;它不仅提供了键值对的快速存储和检索功能&#xff0c;还具备较高的性能和较低的空间占用。但很多开发者对其底层原理并不清楚&#xff0c;今天我们将详细解析HashMap的内部结构&#xff0c;并用通俗的方式解…...

MySQL的复制

一、概述 1.复制解决的问题是让一台服务器的数据与其他服务器保持同步&#xff0c;即主库的数据可以同步到多台备库上&#xff0c;备库也可以配置成另外一台服务器的主库。这种操作一般不会增加主库的开销&#xff0c;主要是启用二进制日志带来的开销。 2.两种复制方式&#xf…...

Android View 的事件分发机制解析

前言&#xff1a;当一个事件发生时&#xff08;例如触摸屏幕&#xff09;&#xff0c;事件会从根View&#xff08;通常是Activity的布局中的最顶层View&#xff09;开始&#xff0c;通过一个特定的路径传递到具体的View&#xff0c;这个过程涉及到三个关键的阶段&#xff1a;事…...

240. 搜索二维矩阵||

参考题解&#xff1a;https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度&#xff0c;可以看作一个二叉搜索树。 假设以左下角元素为根结点&#xff0c; 当target比root大的时候&#xff…...

Linux C++

一、引言 冯诺依曼架构是现代计算机系统的基础&#xff0c;它的提出为计算机的发展奠定了理论基础。在学习 C 和 Linux 系统时&#xff0c;理解冯诺依曼架构有助于我们更好地理解程序是如何在计算机中运行的&#xff0c;包括程序的存储、执行和资源管理。这对于编写高效、可靠的…...