计算机考研自命题(5)

news2024/12/23 12:31:49

1、C语言–求和

1、展开式求和。输入一个实数x,计算并输出下式的和,直到最后一项的绝对值小于0.00001.计算结果保留2位小数,试编程。

S = x + x²/2!+ x³/3!+ …

/*
算法思想:定义一个求阶乘的函数fact(),
头文件调用math.h函数库:pow()函数求次幂,fabs()函数取绝对值
直到最后一项的绝对值小于0.00001,则输出求和结果,结果保留两位小数
*/
#include<stdio.h>
#include<math.h>


// 求阶乘 
int fact(int n){
    int i,sum=1;
    for(i=1;i<=n;i++){
        sum=sum*i;
    }
    return sum;
}

int main(){
    int a,n,i;
    double x,result,s=0;
    scanf("%lf",&x);
    for(i=1;(pow(fabs(x),i)/fact(i))>=0.00001;i++){
        result=pow(x,i)/fact(i);
        s+=result;
    }
    printf("s=%.2lf",s);
    return 0;
}

2、C语言–元素移动

2、有n个整数,使前面各数顺序向后移动m个位置,移出的数再从头移入,编得一个函数实现以上功能,在主函数中输入n个整数

并输出调整后的n个数。

# include<stdio.h>

/*
解题思路:
定义一个数组t存放传入的数组A,然后跟据移动的情况从t中取出元素从新放回A中
remove(*A,5,3)假设有5个元素,向后移动3位
A={1,2,3,4,5}  ==>  A={3,4,5,1,2}
首先就是将t中下标为 5-3 = 2 的元素一次存放到A中,
然后将剩余的元素放入A中 
*/

// 元素移动的方法
void remove(int *A,int n,int m) { // n表示元素个数,m表示移动几位
	int t[100];   // 用于存储A[]中的元素 
	int i;
	for(i=0; i<n; i++) { // 将A中的元素全部存储到t中 
		t[i] = A[i];
	}
	for(i = 0 ; i<m; i++) { // 将t 中 下标>=n-m的元素存放到A中 
		A[i] = t[n-m+i];
	}
	for(i = m; i<n; i++) { // 将剩余的元素存放到A中 
		A[i] = t[i-m];
	}
	for(i = 0; i<n; i++) { // 遍历 
		printf("%d ",A[i]);
	}
}

int main() {
	int i,x,num;
	scanf("%d",&num);
	int A[num];
	for(i = 0; i<num; i++) {
		printf("请输入第%d个元素",i+1);
		scanf("%d",&x);
		A[i] = x;
	}
	printf("移动后的元素序列");
	remove(A,num,3);
	return 0;
}

3、C语言-文件操作

3、将C盘根目录下文件from.txt的内容复制到to.txt文件中,to.txt与from.txt在同一目录。

/*
解题思路:首先以只读的方式打开文件from.txt,然后以写的方式打开文件to.txt,
使用fgetc()函数将文件from.txt里面的字符一个一个读取出来,然后用fputc()函数将读取出的文件写入to.txt中
*/


# include <stdio.h>
int main()
{
	// 文件复制
	FILE *fp1,*fp2;
	char ch;
	// 打开文件 
	fp1 = fopen("from.txt","r");
	if(fp1 == NULL){
		printf("文件打开失败!\n"); 
	} 
	fp2 = fopen("to.txt","w");
	if(fp2 == NULL){
		printf("文件打开失败:\n"); 
	}
	// 将读取出来的文件写入 to.txt 中 
	while((ch = fgetc(fp1)) != EOF){
		fputc(ch,fp2);
	}
	// 文件关闭 
	fclose(fp1);
	fclose(fp2); 
	return 0; 
 } 

4、C语言–复数计算

4、要求设计函数完成两个复数相乘的算法。在主函数中输入两个复数,计算后输出乘积结果

/*
解题思路:
复数的运算   i*i = -1
(a+bi)* (c+di) = a*c + a*di- b*d +b*ci
*/
//复数的结构体定义如下:
struct Complex{
	float real;
	float imag;
}Complex;
//要求设计函数完成两个复数相乘的算法。在主函数中输入两个复数,计算后输出乘积结果。

Complex Mul(Complex c1,Complex c2){
    Complex product;
    product.real = c1.real*c2.real - c1.imag*c2.imag;  // 乘积以后的虚部   i*i = -1
    product.imag = c1.imag*c2.real + c1.real*c2.iamg;  // 虚部
    return product;
}

5、数据结构

5、下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。

typedef struct node{
int data;
struct node *lchild;
____struct node *rchild____;
}bitree; 
void createbitree(bitree *&bt) {
scanf(%c”,&ch); 
if(ch=='#')
____bt->data = ch_______;
else { 
bt=(bitree*)malloc(sizeof(bitree)); 
bt->data=ch; 
___createbitree(bt->lchild)_____;
createbitree(bt->rchild);
}
}

6、数据结构

6、建立链表

typedef struct node {
int data; 
struct node *next;
} lklist; 
void lklistcreate(_____lklist___ *&head ) { 
for (i=1;i<=n;i++) { 
p=(lklist *)malloc(sizeof(lklist));
scanf(%d”,&(p ->data));
p->next=0;
 	if(i==1)
head=q=p;
else {
q->next=p;
______q = p______;
} 
}
}

7、数据结构–链表合并

7、实现链式结构上合并排序的算法

# include<stdio.h>

//单链表的定义
typedef struct LNode {
	ELemType data;
	LNode *next;
} LNode,*LinkList;

/*
将两个递增有序的链表A,B合并成一个递增有序的链表C

解题思路:假设A,B带有头指针,定义pa,pb指针分别指向A,B的下一个结点,
运用尾插法,先将A,B中较小的元素插入C中,实现整体按元素值递增有序;
因为A,B链表中的结点个数不一样,
所以当A中的结点数更少时 ,将B中的元素依次加入C中
反之,则将A中的元素依次加入C中 
*/
void Merge(LNode A,LNode B,LNode &C) {
	LNode *pa = A->next;
	LNode *pb = B->next;  
	LNode *pc = C;

	while(pa&&pb) {  
		if(pa->data <= pb->data) { // 运用尾插法将小的元素率先加入C链表中
			pc->next = pa;
            pc = pa;
            pa = pa->next;

		} else {
			pc->next = pb;
            pc = pb;
            pb = pb->next;
		}
	}

	while(pa) {
		pc->next = pa;
        pc = pa;
        pa = pa->next;
	}
	while(pb) {
		pc->next = pb;
        pc = pb;
        pb = pb->next;
	}
}

8、数据结构–二叉树查找

8、实现在二叉树中查找结点x的算法

# include<stdio.h>

/*
解题思路:跟据二叉树的先序遍历进行改造,传入该二叉树和要查找的值
先比较根节点是不是寻找的目标结点,如果是就返回结点,不是就寻找递归寻找左子树和右子树
直到二叉树全部查找完 
*/

// 二叉树的结构定义
typedef struct BiNode{
	ELemType data;
	struct BiNode *lchild;
	struct BiNode *rchild;
}BiNode,*BiTree; 

BiNode *find_x(BiTree Bt,ELemType x){
	while(Bt){
		if(Bt->data == x){
			return Bt;
		}
		*find_x(Bt->lchild,x);
		*find_x(Bt->lchild,x);
	}
}

9、数据结构–堆排序

9、关键字序列(k1,k2,k3,…,kn-1)是堆,写出将(k1,k2,k3,…,kn-1,x)调整为堆的算法

# include<stdio.h>
/*
解题思路:堆排序的思路
以大根堆为例:把关键字看成一颗完全二叉树,根节点(堆顶元素)就是整个序列的最大值,输出堆顶元素
堆结构被破坏,然后进行调整,将最大的元素交换到堆顶
从n/2开始依次交换 
*/ 
void adjustHeap(ELemType A[],int len,int k) {
	int i;
	A[0] = A[k];// A[0] 暂存子树的根节点
	for(i = 2*k; i<=len; i*=2) { // 沿K较大的子结点向下筛选
		if(i<len && A[i]<A[i+1]){
			i++;       			// 取K较大的子节点下标 
		}
		if(A[0]>=A[i]){			// 筛选结束 
			break;
		}
		else{
			A[k] = A[i];		// 将A[i] 调整到双亲结点上 
			k = i;				// 修改 k 值,以便继续向下筛选 
		} 
	}
	A[k] = A[0];				// 筛选结点放入最终位置 
}

10、数据结构–最小生成树

10、给一组数,画邻接矩阵和邻接表,写出prim和克鲁斯卡尔的最小生成树
请添加图片描述

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

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

相关文章

未能为 SSL/TLS 安全通道建立信任关系

在 Windows早期版本&#xff08;Windows server 2008&#xff09;上运行web请求相关代码&#xff0c;提示错误&#xff1a;未能为 SSL/TLS 安全通道建立信任关系。 打开IE直接访问相关网址&#xff0c;按照提示信任网站&#xff0c;安装证书&#xff1a; 选择&#xff1a;将所有…

【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ IO流 Java IO1. 认识IO2. FileOutputStream(写…

基于springboot+vue网吧管理系统52

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

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…

全志R128将LVGL运行在SPI TFT GUI上

LVGL 与 SPI TFT GUI 本次使用的是 Dshan_Display Module&#xff0c;如下图&#xff1a; 引脚配置如下&#xff1a; R128 DevkitTFT 模块PA12CSPA13SCKPA18MOSIPA9PWMPA20RESETPA19RS3V33.3VGNDGND 载入方案 我们使用的开发板是 R128-Devkit&#xff0c;需要开发 C906 核心…

【网络安全 --- xss-labs靶场通关(11-20关)】详细的xss-labs靶场通关思路及技巧讲解,让你对xss漏洞的理解更深刻

如果需要安装各种系统&#xff0c;虚拟机&#xff0c;工具等等关注我&#xff0c;已经在出系统的课程了 一&#xff0c;靶场安装 超详细的靶场安装教程如下&#xff0c;提供工具&#xff0c;靶场&#xff0c;镜像等 【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程&…

uniapp canvas 无法获取 webgl context 的问题解决

uniapp canvas 无法获取 webgl context 的问题解决 一、问题描述 在 uniapp 中做一个查看监控视频的页面&#xff0c;用到的是 JSMpeg 这个库&#xff0c;原理就是前后台通过 websocket 不断推送新画面内容到前端&#xff0c;前端通过这个 JSMpeg 渲染到前端页面中指定的 can…

selenium4 元素定位

selenium4 9种元素定位 ID driver.find_element(By.ID,"kw")NAME driver.find_element(By.NAME,"tj_settingicon")CLASS_NAME driver.find_element(By.CLASS_NAME,"ipt_rec")TAG_NAME driver.find_element(By.TAG_NAME,"area")LINK_T…

10.22A*算法,华容道,状态压缩

A* P1379华容道 问题是要从初始布局用最少的步骤到目标布局&#xff0c;每次只能动0周围的格子&#xff0c;就是华容道&#xff1b; 怎么用算法的思路解决&#xff1f; 状态压缩思路 每个数字就代表当前的状态&#xff0c;队列和map函数都记录的是当前的状态数&#xff0c;…

众和策略:跨界收购算力公司 高新发展斩获3连板

高新展开23日开盘再度一字涨停&#xff0c;截至发稿&#xff0c;该股报21.74元&#xff0c;涨停板上封单超200万手。至此&#xff0c;该股已连续3个生意日涨停。 公司18日晚间宣布生意预案&#xff0c;拟通过发行股份及支付现金的方式购买高投电子集团持有的华鲲振宇30%股权、…

P1451 求细胞数量 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示思路及部分实现完整代码 题目描述 一矩形阵列由数字 0 0 0 到 9 9 9 组成&#xff0c;数字 1 1 1 到 9 9 9 代表细胞&#xff0c;细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞&#x…

10.23归并排序

课上 归并排序 最大时&#xff0c;就是两个都是完全倒序&#xff0c;但注意一定有一个序列先用完&#xff0c;此时剩一个序列只有一个元素&#xff0c;不用比较&#xff0c;直接加入&#xff0c;所以就是nn-1, 最小时&#xff0c;是都是完全有序&#xff0c;且一个序列中的元…

ZYNQ移植ARM CMSIS_DSP库

移植方法 Vitis中新建一个Application Project&#xff0c;选择HelloWord模板。按下面步骤移植CMSIS_DSP&#xff1a; 下载CMSIS_DSP&#xff0c;拷贝如下文件夹到Vitis工程&#xff1a; SourceIncludePrivateIncludeComputeLibrary (only if you target Neon) 对Source路径下…

古铜色的P1.2直径1.2米无边圆形(饼)创意LED显示屏绽放上海苏河湾万象天地展厅

我们公司的圆形LED显示屏是专门根据业主的独特需求开模定制的。为了满足各种不同的规格和要求&#xff0c;我们已经成功地对多个点间距与直径进行了精密的开模设计&#xff0c;且工艺技术成熟稳定&#xff0c;能够保证快速的交期。 这种圆形LED显示屏是通过独特的开模定制方式…

基础课6——计算机视觉

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

HIMA F3236 F7553 面向制造业的可视化人工智能

HIMA F3236 F7553 面向制造业的可视化人工智能 近年来&#xff0c;出现了一种分析高触摸制造的新解决方案:基于图像传感器数据的人工智能驱动分析。与时间和运动研究或Gemba Walks不同&#xff0c;分析从不停止&#xff0c;系统更不容易出现人为错误和偏差。 直到最近&#…

Vue3获取proxy对象的值而不是引用的方式

情景 vue3中定义一个响应式对象&#xff1a; let obj1 reactive({userName:"tom", age:5, hobby:{a:"av",b:"bv"}}); 打印obj1&#xff0c;结果为proxy对象 定义第二个响应式对象&#xff1a; let obj2 reactive({userName:"",ag…

2023年中国二手车交易行业发展历程及趋势分析:整体规模仍保持稳定增长[图]

二手车交易主要内容包括&#xff1a;二手车评估前期工作、技术状况鉴定、寄卖、置换业务、价格评估、交易实务。主要手续包括车务手续、车辆保养维修手续、税费手续。 二手车交易行业分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 未来&#xff0c;二…

PySide6/PyQt6宝典:新手问题一网打尽!

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 常用cmd命令📝 如何使用ui文件📝 主窗口如何调用其它窗口📝 后台执行任务(防止界面卡死)📝 信号与槽📝 如何停止循环任务📝 未完...⚓️ 相关链接 ⚓️💋💋💋💋💋💋📖 介绍 📖 本文

typeerror: Cannot read properties of null (reading ‘emitsOptions‘)报错原因及解决方法

可能导致的原因以及解决方法&#xff1a; 在父组件中子组件名称没有正确引入&#xff1a;检查组件名称和子组件是否正确定义props以及emit的使用在一个空值上去访问属性&#xff1a;可以使用可选链操作符&#xff08;&#xff1f;&#xff09;去检查对象是否为空v-if指令的判断…