计算机考研自命题(2)

1、C语言-字符串交替拼接

1、用C编程,将两个字符串数组存储实现交替连接如aaa和bbb两个字符连接成ababab 如aaa和baba 两个字符,连接成 abaaaba

#include<stdio.h>/*
解题思路:将两个字符串交替拼接,定义三个数组,
str1[]存放第一个字符串 
str2[]存放第二个字符串 
str3[]存放拼接的字符串
然后交替放入str3中,首先str3数组下标偶数位先放入str1中的字符,奇数位放入str2中的字符,实现交替连接
然后看谁的字符串更短将更长的字符串全部放入str3中 
*/ 
int main() {char str1[10],str2[10],str3[20];int i=0,j=0,k=0;           		// i记录str1的下标,j记录str2的下标,k记录str3的下标printf("输入第一个字符串:");scanf("%s",str1);printf("输入第二个字符串:");scanf("%s",str2);while(1) {if(k%2 == 0) {   // 依次把str1和str2中 的元素加入str3中 str3[k++] = str1[i++];   } else {str3[k++] = str2[j++];}if(str1[i] == '\0' || str2[j] == '\0') {   // 字符串的长度不一样,看str1和str2谁先到达末尾 if(str1[i] == '\0' ) {			// str1已经全部放入str3中, while(str2[j] != '\0') {	// 则依次将str2中的元素依次加入str3中 str3[k++] = str2[j++];}break;						// 所有元素加入str3 退出大循环 } else {while(str1[i] != '\0') {    //  str2全部放入str3中,加str1中剩余元素依次放入str3 str3[k++] = str1[i++];}break;}}}puts(str3);			// 将str3中的字符串输出 return 0;
}

2、C语言–最大公约数和最小公倍数

2、求最大公约数和最小公倍数

// 方法1、递归方法
#include <stdio.h>/*
解题思路:
最大公约数指的是两个或多个整数共有约数中最大的一个
采用的是欧几里得算法,也叫辗转相除法:就是将 a,b两个数取余数假设 t = a%b,然后将较小的元素 b 对t再取余数,直到最后余数为0,则最后依次取余数的 b就是最大公约数最小公倍数:两个或多个数公有的倍数 ,设a,b两个数  则 LCM = (x*y)/Gcd(x,y)
*/// 最大公约数 递归:辗转相除法 
int Gcd(int a,int b){if(b>0){return Gcd(b,a%b);}else{return a;}
} // 最小公倍数
int Lcm(int x,int y){return (x*y)/Gcd(x,y);
} // 主函数
int main()
{int a,b;scanf("%d %d",&a,&b);printf("最大公约数为:%d\n",Gcd(a,b));printf("最小公倍数为:%d",Lcm(a,b)); return 0;
}

3、数据结构-线索二叉树

3、将10个数字进行排序,二叉树给前序和中序序列,要求画出二叉树并求 后续线索二叉树(给了10个字母)

4、数据结构-哈希表

4、Hash(哈希)排序,6个数,mod7线性排列,并求出比较次数

5、数据结构-快速排序

5、快速排序,写出每趟结果(给了10个具体的数)

/*
解题思路:递归思想
快速排序的思想是取第一个元素作为数轴元素,
然后将原来的序列分为两个部分,左边比枢轴元素小,右边比枢轴元素大,然后将左边的元素再进行快速排序
右边的元素也再进行快速排序,直到序列递增有序*/// 寻找指定位置 ,将枢轴元素分成两个部分
int partition(int A[],int low,int high) {int pivot = A[low];while(low<high) {while(low<high && A[high]>=pivot) {--high;}A[low] = A[high];while(low<high && A[high]<=pivot) {++low;}A[high] = A[low];}A[low] = pivot;return low;
}void QuickSort(int A[],int low,int high) {if(low<high) {int pivotpos = partition(A,low,high);QuickSort(A,low,pivotpos-1);QuickSort(A,pivotpos+1,high);}
}

6、数据结构-二叉树

6、设计算法求二叉树的双亲结点

# include<stdio.h>/*
解题思路: 采用递归思想 
跟据树的先序遍历进行改造,
先看根节点是否有左右子树,并且左右子树是否为x,如果是,则是双亲结点,如果不是
则寻找T的整个左子树和T的整个右子树 
*/// 二叉树定义 
typedef struct BiNode{ELemType data;struct BiNode *lchild,*rchild
}BiNode,*BiTree;// 找双亲结点
BiNode * Findparent(BiTree T,ElemType x){if(T->lchile !=NULL && T->lchild == x){ // 如果存在左子树并且左子树就是x 则T就是x 的双亲结点 return T;}if(T->rchile !=NULL && T->rchild == x){ // 如果存在右子树 且右子树就是x 则T就是x 的双亲结点return T;}* Findparent(T->lchild,x);  * Findparent(T->rchild,x);
} 

7、数据结构-删除重复结点

7、删除链表中重复的结点

/*
解题思路:设置三个指针,p,q = p->next, pre(q的前趋指针),
通过q指针遍历链表,如果和p相同则删除,如果不同,则p后移,q还是从头遍历
直到找出所有相同的结点并删除 
*/// 单链表结构定义
typedef struct LNode{ElemType data;struct LNode *next;
}LNode,*LinkList;/*无序链表*/
void delete_same(LinkList &L){LNode *p = L->next;LNode *q = p->next;LNode *pre = p;		// q的前趋结点for(p,p!=NULL,p = p->next){for(q,q!=NULL;q=q->next,pre = pre->next){LNode *s;   // 待删除结点if(p->data = q->data){s = q;pre->next = q->next;q = pre->next;free(s);} }} 
}// 如果是有序链表的话
/*
定义两个指针p,q。q指针永远指向p的下一个结点,然后遍历链表
*/
void delete_same(LinkList &L){LNode *p = L->next;LNode *q;while(p!=NULL){q = p->next;if(p->data == q->data){p->next = q->next;free(q);}else{p = p->next;}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础课6——计算机视觉

1.计算机视觉的概念与原理 1.1概念 计算机视觉&#xff08;CV&#xff09;是人工智能的一个重要发展领域&#xff0c;属于计算机科学的一个分支&#xff0c;它企图让计算机能像人类一样通过视觉来获取和理解信息。计算机视觉的应用非常广泛&#xff0c;包括但不限于图像识别、…

Python学习——Day10

一、sys模块 概述&#xff1a;Python 的 sys 模块提供访问解释器使用或维护的变量&#xff0c;和与解释器进行交互的函数。通俗来讲&#xff0c;sys 模块为程序与 Python 解释器的交互&#xff0c;提供了一系列的函数和变量&#xff0c;用于操控 Python 运行时的环境 sys.arg…

图像识别在自动驾驶汽车中的多传感器融合技术

摘要&#xff1a; 介绍文章的主要观点和发现。 引言&#xff1a; 自动驾驶汽车的兴起和重要性。多传感器融合技术在自动驾驶中的关键作用。 第一部分&#xff1a;图像识别技术 图像识别的基本原理。图像传感器和摄像头在自动驾驶中的应用。深度学习和卷积神经网络&#xff…

Typora的相关配置(Typora主题、字体、快捷键、习惯)

Typora的相关配置(Typora主题、字体、快捷键、习惯) 文章目录 Typora的相关配置(Typora主题、字体、快捷键、习惯)[toc]一、主题配置二、字体配置查看字体名称是否可以被识别&#xff1a;如果未能正确识别&#xff1a; 三、习惯配置四、快捷键配置更改提供的功能的快捷键&#…

常见的测试理论面试问题

1.请解释软件生存周期是什么&#xff1f; 软件生存周期是指从软件开发到维护的过程&#xff0c;包括可行性研究、需求分析、软件设计、编码、测试、发布和维护等活动。这个过程也被称为“生命周期模型”。 2.软件测试的目的是什么&#xff1f; 软件测试的目的是发现软件中的错…

前端react入门day01-了解react和JSX基础

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 React介绍 React是什么 React的优势 React的市场情况 开发环境搭建 使用create-react-app快速搭建…

python【多线程、单线程、异步编程】三个版本--在爬虫中的应用

并发编程在爬虫中的应用 之前的课程&#xff0c;我们已经为大家介绍了 Python 中的多线程、多进程和异步编程&#xff0c;通过这三种手段&#xff0c;我们可以实现并发或并行编程&#xff0c;这一方面可以加速代码的执行&#xff0c;另一方面也可以带来更好的用户体验。爬虫程…

概念解析 | 毫米波雷达与计算机视觉的融合

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:毫米波雷达与计算机视觉的融合。 毫米波雷达与计算机视觉的融合 Sensors | Free Full-Text | MmWave Radar and Vision Fusion for Object Detection in Autonomous Driving: A …

一维数组赋值给二维数组---单个循环赋值---memcpy赋值

一, 逐个点的赋值(单个循环) 一维数组又[56],是一个30个元素的数组,将他赋值给一个[56]五行六列的二维矩阵中,一位数组和二维矩阵的 坐标转换:[i/列数][i%列数] // 赋值给二维矩阵// i从0~一维数组个个数,仅一个循环for (int i 0; i < rows * cols; i){matrix[i / cols][i…

FFMPEG之example编译

FFMPEG源码下载:Download FFmpeg 编译需配置的库: sudo apt-get install yasm sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 编译流程: ./configure --disable-x86asm --prefix=路径 --enable-shared 按照提示添加 --dis…

FDWS9510L-F085车规级 PowerTrench系列 P沟道增强型MOS管

PowerTrench MOSFET 是优化的电源开关&#xff0c;可提高系统效率和功率密度。 它们组合了小栅极电荷 (Qg)、小反向恢复电荷 (Qrr) 和软性反向恢复主体二极管&#xff0c;有助于快速切换交流/直流电源中的同步整流。 采用屏蔽栅极结构&#xff0c;可提供电荷平衡。 利用这一先进…

RHCE8 资料整理(三)

RHCE8 资料整理 第三篇 网络相关配置第11章 网络配置11.1 网络基础知识11.2 查看网络信息11.3 图形化界面修改11.4 通过配置文件修改11.5 命令行管理11.6 主机名的设置 第12章 ssh12.1 ssh基本用法12.2 打开远程图形化界面12.3 ssh无密码登录12.4 ssh安全设置12.5 ssh限制用户1…

【2024秋招】2023-8-5-小红书-数据引擎团队后端开发提前批面经

1 面试官介绍 OLAP引擎&#xff0c;离线引擎&#xff0c;大数据分析中间件 2 自我介绍 缺点&#xff1a; &#xff08;1&#xff09;面试官让重点介绍自己最在行的项目&#xff0c;我真的在自我介绍上扯了一些别的东西… &#xff08;2&#xff09;在面试的时候因为想看简…

Webots将节点复制到不同工程中

我们要将A工程的节点复制到B工程中。 先将两个工程调成未开始仿真模式 将A中的节点复制 选中节点wall&#xff0c;右击选择Export然后保存为.wbo格式 打开B工程 点击新增&#xff0c;再点击Import&#xff0c;选择刚刚导出的文件 成功导入

k8s kubernetes 1.23.6 + flannel公网环境安装

准备环境&#xff0c;必须是同一个云服务厂商&#xff0c;如&#xff1a;华为&#xff0c;阿里、腾讯等&#xff0c;不要存在跨平台安装K8S&#xff0c;跨平台安装需要处理网络隧道才能实现所有节点在一个网络集群中&#xff0c;这里推荐使用同一家云服务厂商安装即可 这里使用…

计算属性和侦听属性以及方法有什么区别,本文以计算一个数组中所有偶数的和为例

计算属性(computed)是Vue中的一个特殊属性&#xff0c;它根据依赖的数据进行计算&#xff0c;并返回计算结果。计算属性的值会根据其相关依赖项的变化而自动更新&#xff0c;类似于一个响应式的缓存。计算属性可以用来处理一些复杂的逻辑计算&#xff0c;避免在模板中编写过多的…

计算机考研自命题(4)

1、C语言-通项求和 1、编写程序:求aaaaaaaaaaaaaaa…aaa的和&#xff0c;需要写一个函数fn(a,n)实现n个a的拼接&#xff0c;例如fn(3,2)返回的结果就是36。 # include<stdio.h>/* 解题思路&#xff1a;fun(a,n) a表示构成通项的数字 n表示有几个通项 先让一个 temp a,…

GitHub和Gitee的区别以及具体使用

文章目录 GitHub和GiteeGitHub和Gitee区别GitHub的使用Gitee的使用 GitHub和Gitee GitHub和Gitee区别 速度不同&#xff1a;GitHub位于美国&#xff0c;而Gitee位于中国。这意味着在中国使用Gitee可能会有更快的访问速度和更好的稳定性。如果我们希望体验Git飞一般的速度&…

Mysql如何确定执行计划是最优开销?Mysql优化器!

1. 什么是 MySQL 优化器&#xff1f; MySQL 优化器是 MySQL 中的一个核心组件。MySQL 优化器的主要职责在于确定查询的执行计划。在数据库中&#xff0c;同样的查询可以有多种不同的执行方式&#xff0c;如使用不同的索引&#xff0c;使用不同的连接顺序等。每种执行方式都有其…

抛硬币有连续x次正面的期望

首先来看期望的基本公式 其中x是抛x次&#xff0c;p是在抛第x次后出现连续正面的概率 先来看出现1次正面的期望 按照公式来算是 抛1次 1/2的概率 抛2次 1/4的概率 抛3次 1/8的概率... 我们可以写一个程序试一下 signed main() {ios_base::sync_with_stdio(0); cin.tie(0…