【c语言pat】

2023-11-01

1. 实验7-1-11 求整数序列中出现次数最多的数(15 分)

本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式: 输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式: 在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

输入样例: 10 3 2 -1 5 3 4 3 0 3 2

输出样例: 3 4

#include  <stdio.h>
#define N 1000
int main()
{
	int i, j, n;
	int a[N];  //用来保存输入数据
	int b[N] = { 0 };  //用来保存出现次数(类似哈希表)
	int max;
	int index = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	for (i = 0; i < n; i++)
	{
		b[a[i]]++;
	}
	max = b[0];
	for (i = 1; i <= n; i++)  //注意小于等于n
	{
		if (max < b[i])
		{
			max = b[i];
			index = i;
		}
	}
	printf("%d %d\n", index, max);
	return 0;
}

2. 实验7-3-3 统计大写辅音字母 (15 分)

英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。
输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式: 输出在一行中给出字符串中大写辅音字母的个数。
输入样例:HELLO World!
输出样例: 4

#include  <stdio.h>
int main()
{
	char str[81];
	char* p = str;
	int cnt = 0; 
	gets(str, 81);
	while (*p != '\0')
	{
		if (*p >= 'A' && *p <= 'Z')
		{
			if (*p != 'A' && *p != 'E' && *p != 'I' && *p != 'O' && *p != 'U')
				cnt++;
		}
		p++;
	}
	printf("%d", cnt);
}

3. 实验2-3-2 求N分之一序列前N项和 (15 分)

本题要求编写程序,计算序列 1 + 1/2 + 1/3 + … 的前N项之和。
输入格式: 输入在一行中给出一个正整数N。
输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:
6
输出样例:
sum = 2.450000

#include  <stdio.h>
int main()
{
	int n,i;
	scanf("%d", &n);
	double sum = 0;
	for (i = 1; i <= n; i++)
	{
		sum=sum+(1.00/i);
	}
	printf("sum = %.6f", sum);
}

4. 实验7-3-7 字符转换 (15 分)

本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。
输入格式:输入在一行中给出一个不超过80个字符且以回车结束的字符串。
输出格式: 在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例: free82jeep5
输出样例: 825

#include  <stdio.h>
int main()
{
	int i;
	char ch;
	char str[N];
	char* p = str;
	ch = getchar();
	for (i = 0; ch != '\n'; i++)
	{
		str[i] = ch;
		ch = getchar();
	}
	while (*p != '\n')
	{
		if (*p >= '0' && *p <= '9')
			printf("%c", *p);
		p++;
	}
}

6. 实验7-3-6 字符串转换成十进制整数 (15 分)

输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。
输入格式: 输入在一行中给出一个以#结束的非空字符串。
输出格式: 在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
±P-xf4±1!#
输出样例:
-3905

#include  <stdio.h>
#include <math.h>
#define N 1000
int num(char c)
{
	if (c == 'a' || c == 'A')
		return 10;
	if (c == 'b' || c == 'B')
		return 11;
	if (c == 'c' || c == 'C')
		return 12;
	if (c == 'd' || c == 'D')
		return 13;
	if (c == 'e' || c == 'E')
		return 14;
	if (c == 'f' || c == 'F')
		return 15;
}
int main()
{
	int i, j = 0, flag = 0, sum = 0, count = 0;
	char str1[N], str2[N];
	char* p = str1;
	gets_s(str1, N);
	while (*p != '#')
	{
		if (flag==0 && *p == '-')
			flag = 1;
		if ((*p >= '0' && *p <= '9') ||
			(*p >= 'A' && *p <= 'F') ||
			(*p >= 'a' && *p <= 'f'))
		{
			if(flag == 0)
				flag = 2;
			str2[j++] = *p;
		}
		p++;
	}
	for (i = j - 1; i >= 0; i--)
	{
		if (str2[i] >= '0' && str2[i] <= '9')
			sum += (str2[i] - '0')*pow(16, count);
		else
			sum += (num(str2[i]))*pow(16, count);
		count++;
	}
	if (flag == 1)
		printf("-%d", sum);
	else
		printf("%d", sum);
}

7. 实验7-3-5 输出大写英文字母 (15 分)

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式: 输入为一个以回车结束的字符串(少于80个字符)。
输出格式: 按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1: FONTNAME and FILENAME
输出样例1: FONTAMEIL
输入样例2: fontname and filrname
输出样例2: Not Found

#include  <stdio.h>
#define N 1000
int main()
{
	int i, len=0, flag = 0;
	char ch;
	char str[N];
	int alp[N] = { 0 };
	char* p = str;
	ch = getchar();
	for (i = 0; ch != '\n'; i++)
	{
		str[i] = ch;
		len++;
		ch = getchar();
	}
	for (i = 65; i <= 90; i++)
	{
		alp[i] = 1;
	}
	for(i=0;i<len;i++)
	{
		if ((*p >= 'A') && (*p <= 'Z'))
		{
			if (alp[*p] == 1)
			{
				printf("%c", *p);
				alp[*p] = 0;
				flag = 1;
			}
		}
		p++;
	}
	if (flag == 0)
		printf("Not Found");
}

8. 实验7-3-4 字符串替换 (15 分)

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: 原字母 对应字母 A Z
B Y
C X
D W
… …
X C
Y B
Z A
输入格式: 输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式: 输出在一行中给出替换完成后的字符串。
输入样例: Only the 11 CAPItaL LeTtERS are replaced.
输出样例: Lnly the 11XZKRtaO OeGtVIH are replaced.

#include  <stdio.h>
#define N 1000
int main()
{
	int i, j, len = 0;
	char ch;
	char str[N];
	char* p = str;
	int alp[N];
	ch = getchar();
	for (i = 0; ch != '\n'; i++)
	{
		str[i] = ch;
		len++;
		ch = getchar();
	}
	for (i = 65, j = 90; i <= 90; i++, j--)
	{
		alp[i] = j;
	}
	for (i = 0; i < len; i++)
	{
		if ((*p >= 'A') && (*p <= 'Z'))
		{
			printf("%c", alp[*p]);
		}
		else
			printf("%c", *p);
		p++;
	}
}

9. 实验7-3-2 查找指定字符 (15 分)

本题要求编写程序,从给定字符串中查找某指定的字符。
输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
输入样例1: m programming
输出样例1: index = 7
输入样例2: a 1234
输出样例2: Not Found

#include  <stdio.h>
#define N 1000
int main()
{
	int i, len = 0, max = -1, flag = 0;
	char ch, findx;
	char str[N];
	scanf("%c\n", &findx);  //注意添加\n,否则只读一个字符就结束了
	ch = getchar();
	for (i = 0; ch != '\n'; i++)
	{
		str[i] = ch;
		len++;
		ch = getchar();
	}
	for (i = 0; i < len; i++)
	{
		if (str[i] == findx && i > max)
		{
			max = i;
			flag = 1;
		}
	}
	if (flag == 1)
		printf("index = %d", max);
	else
		printf("Not Found");
}

10. 实验7-3-1 字符串逆序 (15 分)

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式: 在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH

#include  <stdio.h>
#define N 1000
int main()
{
	int i, len = 1;
	char ch;
	char str[N];
	ch = getchar();
	for (i = 0; ch != '\n'; i++)
	{
		str[i] = ch;
		len++;
		ch = getchar();
	}
	for (i = len - 1; i >= 0; i--)
	{
		printf("%c", str[i]);
	}
}

11. 实验7-1-10 交换最小值和最大值 (15 分)

本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式: 输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式: 在一行中顺序输出交换后的序列,每个整数后跟一个空格。 输入样例:
5
8 2 5 1 4
输出样例: 1 2 5 4 8

#include<stdio.h>
#define N 100
int main()
{
	int n, min, max, temp, i, index;
	int num[N];
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &num[i]);
	}
	min = num[0];
	for (i = 1; i < n; i++)
	{
		if (num[i] < min)
		{
			min = num[i];
			index = i;
		}		
	}
	temp = num[0];
	num[0] = min;
	num[index] = temp;
	max = num[1];
	for (i = 2; i < n; i++)
	{
		if (num[i] > max)
		{
			max = num[i];
			index = i;
		}
	}
	temp = num[n - 1];
	num[n - 1] = max;
	num[index] = temp;
	for (i = 0; i < n; i++)
	{
		printf("%d ", num[i]);
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【c语言pat】 的相关文章

  • 看完这篇 教你玩转渗透测试靶机vulnhub——DC8

    Vulnhub靶机DC8渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 暴力破解 提权 获取flag Vulnhub靶机渗透总结 Vulnhub靶机介绍 vulnh
  • keil仿真调试报错

    问题 程序能正常下载 但是keil仿真调试报错 进入仿真程序就在全速运行了 此时什么都干不了 查看command窗口日志信息会发现有报错 jlink error cpu is not halted 然后点击reset按钮会退出全速仿真 所有
  • 一个自己用的opencv历程

    include
  • 设两个栈(stack1,stack2)共享一个一维数组空间s[m],怎么最大限度地利用数组空间

    可以利用扩充栈操作 在传统的双端栈中 两个栈之间存在一种制约关系 两个栈中的元素总数最大可以达到M 如果一个栈中的元素较多 那么另一个栈中的元素就较少 两个栈中的元素总和超不过M 它主要利用了栈的 栈底位置不变 而栈顶位置动态变化 的特性
  • jquery 读取 解析 四级的xml文件 案例

    答案 jQuery 可以很容易地使用 AJAX 技术来解析 XML 文件 下面是一个案例 ajax type GET url yourXMLFile xml dataType xml success function xml xml fin
  • python day55

    今日内容 如何写一个测试脚本 创建一个test py文件 from django test import TestCase Create your tests here import os if name main os environ s
  • unity shader中的矩阵变换知识

    提要 在图形的计算中 比如旋转 缩放 平移 投影等操作 矩阵都扮演着极其重要的角色 它是操作图元的基本工具 虽然很多的图形API已经封装好了这些矩阵操作 但是理解这些矩阵操作的原理会非常非常有帮助 比如说我们可以通过一些矩阵的快捷计算来加速
  • Windows下切换进程用户名为当前用户名,而不是SYSTEM

    在windows操作系统中 某些情况下 我们需要将程序以管理员身份启动 通过任务管理器我们可以看到程序的持有者 如下图所示 使用SYSYTEM权限启动的程序 理论是不可以访问到当前用户下的部分目录 这个时候我们可以在必要时候切换成武到当前用
  • HTML+CSS项目案例

    文章目录 1 表格练习 2 文本样式练习 3 图片标签练习 4 盒子模型练习一 5 盒子模型练习二 6 盒子模型练习三 7 浮动练习 8 边框练习一 9 边框练习二 10 图文混排 11 列表练习 1 表格练习 案例演示 table tr
  • [数据库与软件工程]三、关系运算(并、交、笛卡尔积,自然连接等)

    目录 一 前言 二 简单的关系运算 并 交 差 并 Union 交 Intersection 差 三 复杂的关系运算 笛卡尔积 自然连接 一 笛卡尔积的数学定义 二 关系运算中的笛卡尔积 1 笛卡尔积是什么 2 如果两个关系有同名属性怎么计
  • 2023华为od机试统一考试B卷【增强字符串】

    前言 本题使用的Java语言 如果需要python语言 请参考以下链接 python版本题解 题目描述 请你实现一个增强版的strstr函数 他的功能是使用带有可选段的字符串进行模糊查询 与strstr函数相同 该函数在源字符串中查找第一次
  • 数组实现动态的原理

    重新申请一个二倍大小的数组 然后拷贝过去
  • “陷阱”病毒源代码大揭密

    7月初在我国出现了一种名叫 陷阱 Trap 的新型恶性病毒 并在7月5日全面爆发 目前国内已有不少的网站和用户遭受 陷阱 的袭击 造成网络系统瘫痪 文件丟失现象严重 该病毒是一种网络脚本语言病毒 并是同时使用了VBScript 和 Java
  • Android Q深色模式及源码解析,实战解析

    frameworks base libs hwui renderthread RenderProxy cpp void RenderProxy setForceDark bool enable mRenderThread queue pos
  • 实际用户ID,有效用户ID及设置用户ID

    实际用户ID 有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念 但一直没有好好去理清这几个概念 以致对这几个概念一直一知半解 今天好好区分了一下这几个概念并总结如下 说白了这几个UID引出都是为了系统的权限管理 下面分别
  • QT自定义QTableWidget

    目录 QT自定义QTableWidget 1 实现效果 2 具体实现 1 表格QTabelWidget 2 表头QHeaderView 3 插入数据 QT自定义QTableWidget 1 实现效果 2 具体实现 1 表格QTabelWid
  • 接口性能测试 —— Jmeter并发与持续性压测

    接口压测的方式 1 同时并发 设置线程组 执行时间 循环次数 这种方式可以控制接口请求的次数 2 持续压测 设置线程组 循环次数 勾选 永远 调度器 持续时间 这种方式可以控制压测周期时间 指定并发数 例1 设置线程数 10设置执行时间 0
  • WPF的MVVM框架Stylet开发文档 19. 杂项

    19 杂项 19 1标示值 文档地址 有时候你想要展示一个对象给用户 但是想要为它关联一个自定义的 字符串 标签 这个标签会在你的视图中显示 于是你创建了一个简单的类来包装你的对象 并附加这个标签 然后你会想要重写 ToString 以便你
  • 推荐系统指标——Hit Ratio(HR)

    我现在读过的文献里有两种定义 第一种 Deep Collaborative Filtering with Multi Aspect Information in Heterogeneous Networks 中提到的 原文中提到 where
  • 2023,你了解Kafka吗?深入详解

    消息队列的核心价值 解耦合 异步处理 例如电商平台 秒杀活动 一般流程会分为 1 风险控制 2 库存锁定 3 生成订单 4 短信通知 5 更新数据 通过消息系统将秒杀活动业务拆分开 将不急需处理的业务放在后面慢慢处理 流程改为 1 风险控制

随机推荐

  • IntelliJ IDEA在java开发工作中的使用总结(实用插件,快捷键,debug等)

    今天总结一下idea在工作中一些实用的小技巧 记得多少学多少 之后会继续更新补充 如果您有一些小技巧 插件 也欢迎在评论区中分享出来 1 插件篇 1 Alibaba java coding Guidelines 阿里代码规范 这个插件可以帮
  • MODBUS-RTU通讯协议简介

    MODBUS RTU通讯协议简介 什么是MODBUS MODBUS 是MODICON公司最先倡导的一种软的通讯规约 经过大多数公司 的实际应用 逐渐被认可 成为一种标准的通讯规约 只要按照这种规约进行 数据通讯或传输 不同的系统就可以通讯
  • plsql中函数调用java

    一 plsql中函数调用java 1 在plsql中先写一个函数 create or replace function test create id return number is language java name Generator
  • 机器学习之集成学习算法

    一 集成学习算法简介 1 1 什么是集成学习 集成学习通过建立几个模型来解决单一预测问题 它的工作原理是生成多个分类器 模型 各自独立地学习和作出预测 这些预测最后结合成组合预测 因此优于任何一个单分类的做出预测 1 2 复习 机器学习的两
  • JQUERY点击滚动到锚点

    document ready function a topLink click function html body animate scrollTop this attr href offset top px duration 500 e
  • jwt安全问题

    文章目录 jwt安全问题 jwt简介 jwt组成 header payload signature 潜在漏洞 空加密算法 web346 密钥爆破 web348 敏感信息泄露 web349 修改算法RS256为HS256 web350 jwt
  • Java String的split方法总结

    String的split 方法用于按传入的字符或字符串对String进行拆分 返回拆分之后的数组 1 一般用法 用一般的字符 例如 或 等符号做分隔符时 String address 上海 上海市 闵行区 吴中路 String splitA
  • 为分布式做准备吧——从Ajax到WebSocket

    文章目录 解决方案1 频繁轮询 解决方案2 长轮询 解决方案3 分块编码 解决方案4 Applet和Adobe Flash WebSocket 当需要前端频繁的请求后端数据的时候 比如说数据的实时显示 这种情况下产生问题的核心原因是 服务器
  • 前端性能测试工具Lighthouse

    在前端开发中 对于自己开发的app或者web page性能的好坏 一直是让前端开发很在意的话题 我们需要专业的网站测试工具 让我们知道自己的网页还有哪些需要更为优化的方面 现在推荐一款工具 Lighthouse 可以分析web应用程序和we
  • 三位数除以两位数竖式计算没有余数_四年级上册数学第六单元知识梳理,附一两位数除多位数计算...

    四年级上册第六单元知识梳理 复习 一位数除多位数 1 相同数位对齐 从最高位除起 除到哪一位就把商写在那一位的上面 如果被除数最高位比除数小就要看被除数的前两位 除到哪一位就把商写在那一位的上面 每次除得的余数必须比除数小 2 0除以任何不
  • OLED显示小数

    OLED显示小数并不是很难的 在通用的OLED库中是没有显示小数的 需要自己去写 写的方法大致是这样的 写出0到9的ACSLL值 只需要将小数点后面的位数 一位一位的写数字对应的ACSLL值即可 其中小数点 也是写同样对应的ACSLL值 只
  • 基于Matlab的拉普拉斯滤波图像增强

    基于Matlab的拉普拉斯滤波图像增强 图像增强是数字图像处理中一项非常重要的任务 旨在提高图像的观感或可用性 而拉普拉斯滤波是图像增强中的一种方法 通过对图像进行滤波以减少噪声和增加图像的对比度和清晰度 本文将介绍如何使用Matlab实现
  • 玩转Openwrt(一) — 刷入带ADSL驱动的全功能版本

    之前家里用的一直USR9108加上自己编译修改的内核及软件配合自己整的VIA小板子动物机 可是编译移植那真是叫一个痛苦 各种补丁各种依赖关系 实在头大 费时费力 而且还有那个悲催的USB1 1 那速度真叫认抓狂 我的移动硬盘插上基本就是个摆
  • 如何对jar包进行安全扫呢,用dependency-check工具吧

    工具下载地址 https github com jeremylong DependencyCheck 点击Releases 下载 https owasp org www project dependency check 点击Command
  • 【Ansible故障解决】使用Ansible连接被控端SSH拒绝解决办法

    Ansible故障解决 使用Ansible连接被控端SSH拒绝解决办法 一 Ansible连通性检查 二 手动SSH登录 三 检查被控端sshd conf 四 检查被控端ssh服务启用 五 检查相关文件目录权限 六 检查被控端公私钥是否正常
  • 用tensorflow实现简单的全连接层网络

    参考网上给的例程使用tensorflow实现了一个简单的全连接层网络的搭建 训练一个神经网络匹配二元函数 步骤主要如下 导入相应的包 定义添加层 准备训练数据 构建神经网络层 定义损失函数和训练优化使损失函数最小化 初始化变量 激活结构 迭
  • 2021-06-15

    安装SLAM中的一个小环节 我出现的错误 即安装Pangolin步骤 安装Pangolin 建议源码安装 安装依赖项 sudo apt get install libglew dev sudo apt get install libboos
  • 软件需求测试管理体系,软件测试管理系统的设计与实现

    毛知钢 王浩宇 刘鸿飞 摘要 为适应实验室管理的信息化需求 该文设计与实现了软件测试流程管控信息化平台 并给出了平台实际使用时的范例 结果表明 软件测试流程管控信息化平台很好地实现了软件测试工作流程化 规范化 精细化管理 为企业产品软件的高
  • 1. 嵌套路由

    当某个显示在
  • 【c语言pat】

    1 实验7 1 11 求整数序列中出现次数最多的数 15 分 本题要求统计一个整型序列中出现次数最多的整数及其出现次数 输入格式 输入在一行中给出序列中整数个数N 0