高级语言讲义2023软专(仅高级语言部分)

1.辗转相除求最大公约数过程如下:

U/V...余r_{0}

V/r_{0}...余r_{1}

r_{n-1}/r_{n}...余r_{n+1}

r_{n+1}为0时,r_{n}即为U、V最大公约数,编写函数int g< d(intU,intV)求最大公约数。

#include <stdio.h>

int gcd(int a,int b) {
	if(b==0)
		return a;
	else
		return gcd(b,a%b);
}

int gcd2(int a,int b) {
	int temp;
	if(a<b) {
		temp=a;
		a=b;
		b=temp;
	}
	while(b!=0) {
		temp=a%b;
		a=b;
		b=temp;
	}
	return a;
}

2.已知合法十六进制非负整数是从0.或ox开始,由数字0~9,小写字母a~f, 大写字母A~F构成的连续字符串,从键盘输入以'@'结束的任意长度字符串(可能含空格,制表,回车换行等字符),编写程序统计其中出现的合法十六进制非负整数的个数,找出其中最大的并输出。例如如下输入字符串中有5个16进制整数为: 0x564, 0x4879,0x00798, 0xfff12121 和0xabc12121,其中最大为oxffff12121

0x564   0x4897 erty 0x00798

0xffff12121 + + %0xabc12121 @

注:输入字符串长度不限,其中出现的所有合法十六进制数都在int范围,不考虑类型溢出问题。

#include <stdio.h>

int strlen(char *str) {
	int i=0;
	while(str[i]!='\0')
		i++;
	return i;
}

void strcpy(char *str1,char *str2) {
	int i=0;
	while(str1[i]!='\0') {
		str2[i]=str1[i];
		i++;
	}
	str2[i]-'\0';
}

int strcmp(char *str1,char *str2) {
	int l1=strlen(str1);
	int l2=strlen(str2);
	if(l1>l2)
		return 1;
	else if(l2>l1)
		return -1;
	int i=0;
	while(str1[i]!='\0') {
		if(str1[i]>str2[i])
			return 1;
		else if(str1[i]<str2[i])
			return -1;
		else
			i++;
	}
	if(str1[i]=='\0'&&str2[i]=='\0')
		return 0;
}

int islegal(char ch) {
	if(ch>='a'&&ch<='z')
		return 1;
	else if(ch>='0'&&ch<='9')
		return 1;
	return 0;
}

int main() {
	char str[100],temp[100],maxnum[100];
	scanf("%s",str);
	int len=0,num=0,i=0;
	while(str[i]!='\0')
		if(str[i]=='0'&&(str[i+1]=='x'||str[i+1]=='X')) {
			temp[0]=str[i];
			temp[1]=str[i+1];
			i+=2;
			len=2;
			while(islegal(str[i])) {
				temp[len++]=str[i];
				i++;
			}
			temp[len]='\0';
			num++;
			if(strcmp(temp,maxnum)==1)
				strcpy(temp,maxnum);
			temp[0]='\0';
		} else
			i++;
	printf("%d %s",num,maxnum);
}

3. (3x+5y)的n次幂的二项式展开有项,按照x的指数升序排列,编写递归函数,返回该展开式的第k(0<=k<=n)项的系数,递归函数声明参考形式为int find (int n, int k).

#include <stdio.h>

int find(int n,int k) {
	if(n=k&&k==0)
		return 1;
	if(n==k)
		return 3*find(n-1,k-1);
	if(k==0)
		return 5*find(n-1,k);
	return 3*find(n-1,k-1)+5*find(n-1,k);
}

4.假设会员卡信息包含昵称和手机号,全部使用字符串储存,其中手机号是会员唯一标识。现有两个单项链表存储会员卡(其上信息完全不同),已按手机号递增排序,请自定义链表结点类型,并编写函数,通过改变链表中各结点连续关系 将两个单向链表合并成一个递增链表)排序后得新的表头作为函数返回值。

#include <stdio.h>
#include <stdlib.h>

typedef struct node {
	char name[20];
	char num[20];
	struct node *next;
} node;

int strcmp(char *str1,char *str2) {
	int i=0;
	while(str1[i]!='\0'&&str2[i]!='\0') {
		if(str1[i]>str2[i])
			return 1;
		else if(str1[i]>str2[i])
			return -1;
		else
			i++;
	}
	if(str1[i]=='\0'&&str2[i]=='\0')
		return 0;
	else if(str1[i]=='\0')
		return -1;
	else
		return 1;
}

struct node *merge(struct node *head1,struct node *head2) {
	struct node *head=(struct node *)malloc(sizeof(struct node));
	struct node *p=head1,*q=head2,*rear=head;
	while(p!=NULL&&q!=NULL) {
		if(strcmp(p->num,q->num)) {
			rear->next=p;
			rear=p;
			p=p->next;
		} else {
			rear->next=q;
			rear=q;
			q=q->next;
		}
	}
	if(p==NULL)
		rear->next=q;
	else
		rear->next=q;
	return head->next;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python推导式

python推导式是一种简洁且强大的内建语法结构&#xff0c;它允许我们以一种极其紧凑和易于理解的方式创建新的列表、字典、集合或生成器对象&#xff0c;能够更高效地操作和转换数据结构。 列表推导式基本语法如下图&#xff1a; 其他推导式的语法也基本相似&#xff0c;看着有…

最迟但到的 Star History 2023 年度开源精选!

千呼万唤始出来&#xff0c;Star History 2023 年终开源精选来啦&#xff01;&#x1f389; AI 是 2023 开源领域里最主要的关键词&#xff0c;但其实过去一年还是有很多其他值得关注的项目和发展趋势的&#xff01;Star History 小编总结了几个类别并精选了类别中最亮眼的项目…

ElasticSearchLinux安装和springboot整合的记录和遇到的问题

前面整合遇到的一些问题有的记录在下面了&#xff0c;有的当时忘了记录下来&#xff0c;希望下面的能帮到你们 1&#xff1a;Linux安装ES 下载安装&#xff1a; 参考文章&#xff1a;连接1 连接2 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch…

校园小情书微信小程序源码 | 社区小程序前后端开源 | 校园表白墙交友小程序

项目描述&#xff1a; 校园小情书微信小程序源码 | 社区小程序前后端开源 | 校园表白墙交友小程序 功能介绍&#xff1a; 表白墙 卖舍友 步数旅行 步数排行榜 情侣脸 漫画脸 个人主页 私信 站内消息 今日话题 评论点赞收藏 服务器环境要求&#xff1a;PHP7.0 MySQL5.7 效果…

【三十】springboot项目上高并发解决示例

互相交流入口地址 整体目录&#xff1a; 【一】springboot整合swagger 【二】springboot整合自定义swagger 【三】springboot整合token 【四】springboot整合mybatis-plus 【五】springboot整合mybatis-plus 【六】springboot整合redis 【七】springboot整合AOP实现日志操作 【…

c++ primer plus 笔记 第十六章 string类和标准模板库

string类 string自动调整大小的功能&#xff1a; string字符串是怎么占用内存空间的&#xff1f; 前景&#xff1a; 如果只给string字符串分配string字符串大小的空间&#xff0c;当一个string字符串附加到另一个string字符串上&#xff0c;这个string字符串是以占用…

并发容器介绍(二)

并发容器介绍&#xff08;二&#xff09; 文章目录 并发容器介绍&#xff08;二&#xff09;BlockingQueueBlockingQueue 简介ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue ConcurrentSkipListMap 文章来自Java Guide 用于学习如有侵权&#xff0c;立即删除 Bl…

大模型字典中加入特殊字符

大模型字典中加入特殊字符 在微调大模型的时候会遇到添加特殊字符&#xff0c;例如在微调多轮的数据的时候需要加入人和机器等特殊标识字符&#xff0c;如用这个特殊字符表示人&#xff0c;用这个特殊字符表示机器&#xff0c;从而实现了人机对话。一般在大模型中base字典中不…

二次供水无人值守解决方案

二次供水无人值守解决方案 二次供水系统存在一定的管理难题和技术瓶颈&#xff0c;如设备老化、维护不及时导致的水质安全隐患&#xff0c;以及如何实现高效运行和智能化管理等问题。在一些地区&#xff0c;特别是老旧小区或农村地区&#xff0c;二次供水设施建设和改造滞后&a…

【go语言开发】redis简单使用

本文主要介绍redis安装和使用。首先安装redis依赖库&#xff0c;这里是v8版本&#xff1b;然后连接redis&#xff0c;完成基本配置&#xff1b;最后测试封装的工具类 文章目录 安装redis依赖库连接redis和配置工具类封装代码测试 欢迎大家访问个人博客网址&#xff1a;https://…

初学Vue——Vue路由

0 什么是Vue路由 类似于Html中的超链接(<a>)一样&#xff0c;可以跳转页面的一种方式。 前端路由&#xff1a;URL中hash(#号之后的内容)与组件之间的对应关系&#xff0c;如下图&#xff1a; 当我们点击左侧导航栏时&#xff0c;浏览器的地址栏会发生变化&#xff0c;路…

hutool,真香!

大家好&#xff0c;我是苏三&#xff0c;又跟大家见面了。 前言 今天给大家介绍一个能够帮助大家提升开发效率的开源工具包&#xff1a;hutool。 Hutool是一个小而全的Java工具类库&#xff0c;通过静态方法封装&#xff0c;降低相关API的学习成本&#xff0c;提高工作效率&…

IOT的发展历程及其优势——青创智通

工业互联网-物联网-设备改造-IOT-青创智通 ​随着科技的不断发展&#xff0c;物联网&#xff08;IoT&#xff09;已经逐渐成为了我们生活中不可或缺的一部分。IoT是指通过互联网将各种物理设备连接起来&#xff0c;实现设备之间的数据交换和智能化控制。IoT的发展不仅改变了我们…

四管齐下 共建发展 | 七巧低代码助力零售行业打造一体化协同解决方案

行业背景 随着互联网和移动技术的普及&#xff0c;零售行业的销售渠道日趋多元化和融合化&#xff0c;传统线下渠道和新兴线上渠道相互竞争和协作&#xff0c;形成了新零售和全渠道的格局。快消品新零售模式下&#xff0c;企业需要通过数字化和智能化的手段&#xff0c;实现对…

Flask python 开发篇:项目布局

一、背景简介 Flask应用程序可以像单个文件一样简单。就像上一篇简单实现一个接口一样&#xff0c;所有的东西都在一个python文件内&#xff1b; 然而&#xff0c;当项目越来越大的时候&#xff0c;把所有代码放在单个文件中就有点不堪重负了。 Python 项目使用 包 来管理代码…

携手亚信安慧AntDB,在数智化浪潮中乘风破浪

随着大数据时代的到来&#xff0c;对数据库的需求愈发强烈。在这一背景下&#xff0c;国产数据库逐渐崭露头角&#xff0c;亚信安慧AntDB作为重要的代表产品之一正积极参与到激烈的市场竞争中。亚信安慧AntDB不仅追求技术的革新和突破&#xff0c;同时也致力于满足用户日益增长…

【Python】conda 命令报错解决:Example: conda --no-plugins install <package>

目录 报错效果&#xff1a;解决方法总结 欢迎关注 『Python』 系列&#xff0c;持续更新中 欢迎关注 『Python』 系列&#xff0c;持续更新中 报错效果&#xff1a; An unexpected error has occurred. Conda has prepared the above report. If you suspect this error is bei…

OD_2024_C卷_200分_9、园区参观路径【JAVA】【动态规划】

package odjava;import java.util.Scanner;public class 九_园区参观路径 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 长 -> 行数int m sc.nextInt(); // 宽 -> 列数int[][] matrix new int[n][m]; // 地图…

HAproxy反向代理与负载均衡

目录 一、HAproxy介绍 1. 概述 2. 关于4/7层负载均衡 2.1 无负载均衡 2.1.1 图示 2.1.2 说明 2.2 四层负载均衡 2.2.1 图示 2.2.2 说明 2.3 七层负载 2.3.1 图示 2.3.2 说明 3. 特性 4. HAProxy负载均衡常见策略 5. 处理模式 二、HAproxy安装 1. yum安装 2. 第…

算法---双指针练习-7(三数之和)

三数之和 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;三数之和 2. 讲解算法原理 首先对输入的数组进行排序&#xff0c;以便后续使用双指针法。初始化一个空的二维向量 ret&#xff0c;用于存储结果。使用一个循环遍历数组中的每个元素&#xff…
最新文章