C语言练习记录(蓝桥杯练习)(小蓝数点)
目录
小蓝数点
第一题程序的输出结果是?:
第二题下面代码的执行结果是什么?:
第三题下面代码的执行结果是什么?:
第四题关于关系操作符说法错误的是?:
第五题对于下面代码段,y的值为?
第六题sum = 21
第七题设字符型变量x的值是064,表达式“~ x ^ x << 2 & x”的值是()编辑
第八题变量void (*s[5])(int)表示意思为
小蓝数点
蓝桥用户登录

此题要用到两个数学公式
1、三点间面积公式:s = |(x2 - x1) × (y3 - y2) - (y2 - y1) × (x3 - x2)| / 2
代码实现 :
s = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2);
if (s < 0)
{
s = -s;
}
s = s / 2;2、皮克定理:是一个计算点阵中顶点在格点上的多边形面积公式,具体为S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形落在格点边界上的点数,S表示多边形的面积。
代码实现:
n = s + 1 - count / 2;
接下来是解题思路:
-
变量声明:
-
x1, y1, x2, y2, x3, y3:这些变量用于存储三条线段的端点坐标。 s:存储三条线段的交点数量。 k1, k2, k3:存储线段的斜率。 count:存储三条线段之间交点的数量。(count = -6,而后每个点计算两次,故后面计算不用-1) t:用于计算交点坐标的临时变量。 n:最后输出结果。
-
求面积
-
对三个坐标进行排序,使得x1 <= x2 <= x3。这一步是为了简化后续的计算过程。
-
计算斜率k1、把x1和x2之间的整数点一一带入点斜式计算,判断y是否为整数,若为整数,则count++,注意斜率不存在的情况,此时直接计算两点间有几个点是整数点。
-
对于k2、k3重复上述操作。
-
最后,计算输出结果n = s - count / 2,并输出(此处不需要减一,因为减一的情况已经考虑过了)。
个人认为此方法的缺陷:代码中存在一些冗余,可能需要进行调整和优化以适应特定的需求,此算法也并非最优解,只是我个人能想出来的解。
int main(int argc, char* argv[])
{double x1 = 0, y1 = 0;double x2 = 0, y2 = 0;double x3 = 0, y3 = 0;double s = 0, k1 = 0, k2 = 0, k3 = 0;double count = 0, t = 0;/*double a = 0, b = 0, c = 0;*/long long int n = 0;scanf("%lf%lf", &x1, &y1);scanf("%lf%lf", &x2, &y2);scanf("%lf%lf", &x3, &y3);s = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2);if (s < 0){s = -s;}s = s / 2;if (x1 > x2){x1 = x1 + x2;x2 = x1 - x2;x1 = x1 - x2;y1 = y1 + y2;y2 = y1 - y2;y1 = y1 - y2;}if (x2 > x3){x3 = x3 + x2;x2 = x3 - x2;x3 = x3 - x2;y3 = y3 + y2;y2 = y3 - y2;y3 = y3 - y2;}if (x1 > x3){x3 = x3 + x1;x1 = x3 - x1;x3 = x3 - x1;y3 = y3 + y1;y1 = y3 - y1;y3 = y3 - y1;}if (x1 != x2){k1 = (y1 - y2) / (x1 - x2);for (int i = x1 + 1; i < x2; i++){t = y1 + k1 * (i - x1);if (t - ceil(t) == 0){count++;}t = 0;}}else {int m = y2 - y1;if (m < 0){m = -m;}count += m - 2;}if (x2 != x3){k2 = (y2 - y3) / (x2 - x3);for (int i = x2 + 1; i < x3; i++){t = y2 + k2 * (i - x2);if (t - ceil(t) == 0){count++;}t = 0;}}else {int m = y3 - y2;if (m < 0){m = -m;}count += m - 2;}if (x1 != x3){k3 = (y1 - y3) / (x1 - x3);for (int i = x3; i > x1; i--){t = y3 + k3 * (i - x3);if (t - ceil(t) == 0){count++;}t = 0;}}else {int m = y3 - y1;if (m < 0){m = -m;}count += m - 2;}n = s - count / 2;printf("%lld", n);return 0;
}

第一题程序的输出结果是?:

第一次循环:a = 1,b=1--->b小于20,if不成立,b=b+3, 此时b的值为4,
以此类推:
第八次循环:a = 8,b=1+3*7--->b大于20,if成立,循环break终止
最后打印a:8
第二题下面代码的执行结果是什么?:

switch的每个case之后如果没有加break语句,当前case执行结束后,会继续执行紧跟case中的语句。故最终执行default之后的语句
第三题下面代码的执行结果是什么?:

#include <stdio.h>int main() {int x = 3;int y = 3;switch (x % 2) { // x%2的结果为1,因此执行case1case 1:switch (y) // y是3,因此会执行case3,而case3不存在,那只能执行default{case 0:printf("first");case 1:printf("second");break;default: printf("hello"); // 打印hello,打印完之后,内部switch结束,此时外部case1结束} // 因为外部case1之后没有添加break语句,所以继续执行case2case 2: // 打印thirdprintf("third"); // 外部switch结束}return 0;}
同上,如果没有break,case语句会从上往下一直执行
第四题关于关系操作符说法错误的是?:

两个字符串是否相等不能使用==,应该使用strcmp函数
第五题对于下面代码段,y的值为?

此处有两个坑,
1、求的是y的值,而不是t
2、若||左边为真则不计算右边的代码
第六题sum = 21

-
a[3][3]={{3,5},{8,9},{12,35}};
-
二维数组没有初始化的值默认初始化为0,
-
即:a[3][3]={{3,5,0},{8,9,0},{12,35,0}};
-
sum = a[0][2]+a[1][1]+a[2][0] = 0+9+12 = 21。
第七题设字符型变量x的值是064,表达式“~ x ^ x << 2 & x”的值是()
-
x << 2: 这将x的二进制表示左移2位。由于x是字符型变量,其值为064(八进制),这在十进制中是52,二进制中是00110100。左移2位后,它变为11010000。
-
~x: 这是对x的按位取反。对于x = 00110100,取反后得到11001011。
-
~x ^ x: 这是上面得到的两个结果的异或操作。即11001011 XOR 00110100 = 11111111。
-
(~x ^ x) & x << 2: 这是上面得到的11111111与x << 2的结果(即11010000)的按位与操作。结果为11010000,即八进制的333。
-
最后八进制前置加上0,0333,选A
第八题变量void (*s[5])(int)表示意思为

-
先看主体:s[5] 这表示s是一个大小为5的数组。
-
*s:在数组前加上*表示数组的每个元素都是一个指针。
-
void (*)(int):这是一个函数指针的类型,它指向一个接受一个int参数并返回void的函数。
-
总结:该类题需先看主体是数组,函数,还是指针
今天就先到这了!!!

看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信!!!
关注必回!!!
相关文章:
C语言练习记录(蓝桥杯练习)(小蓝数点)
目录 小蓝数点 第一题程序的输出结果是?: 第二题下面代码的执行结果是什么?: 第三题下面代码的执行结果是什么?: 第四题关于关系操作符说法错误的是?: 第五题对于下面代码段,y的值为? 第六题sum 21 …...
RPG项目01_层级设置
基于“RPG项目01_UI面板Game”, 找到狼人 添加组件,让狼人一定区域自动跟随主角进行攻击 解释:【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态,则不为蓝色 烘培&…...
相关基础知识
本文引注: https://zhuanlan.zhihu.com/p/447221519 1.方差 2.自协方差矩阵 3.自相关矩阵 4.互协方差矩阵 5.互相关矩阵 6.相关系数 7.自相关函数、自协方差函数与功率谱密度 8.互相关函数、互协方差函数与互功率谱密度...
基于单片机的智能健康监测手环的设计
目 录 1 绪论... 2 1.1 引言... 2 1.2 智能手环的国内外研究现状... 2 1.3 课题的研究意义... 3 1.4 本文的研究内容和章节安排... 4 2 智能手环系统设计方案... 5 2.1 系统总体设计方案... 5 2.2 主芯片选择... 5 2.3 显示方案的选择... 6 2.4 倾角传感器的选择... 6 2.5 心率…...
boost-字符串处理-判断-查找-裁剪-删除-替换-分割-合并
文章目录 1.判断1.1.equals1.2.all1.3.starts_with1.4.ends_with1.5.contains 2.大小写转换3.字符串删除4.字符串替换5.字符串查找6.字符串修剪7.字符串分割8.字符串合并9.总结 1.判断 判别式函数和分类函数大多数都是以is_开头,这些函数如下: 判别式函…...
Django 开发 web 后端,好用过 SpringBoot ?
基础语法 Django(Python):以简洁和直观著称。它允许更快的开发速度,特别适合快速迭代的项目。例如,一个简单的视图函数: from django.http import HttpResponsedef hello_world(request):return HttpRespon…...
【矩阵】54.螺旋矩阵(顺时针打印矩形元素)
题目 class Solution {public List<Integer> spiralOrder(int[][] matrix) {int m matrix.length, n matrix[0].length;int leftUpM 0, leftUpN 0, rightDownM m - 1, rightDownN n - 1;List<Integer> res new ArrayList<>();while (leftUpM < ri…...
【数据中台】开源项目(5)-Amoro
介绍 Amoro is a Lakehouse management system built on open data lake formats. Working with compute engines including Flink, Spark, and Trino, Amoro brings pluggable and self-managed features for Lakehouse to provide out-of-the-box data warehouse experience,…...
_WorldSpaceLightPos0的含义 UNITY SHADER
_WorldSpaceLightPos0 为当前平行光的方向,方向是从光源到照射的方向。 因此,如果要算法线和平行光之间的夹角, 则需要首先将归一化的_WorldSpaceLightPos0去负数。这样才能继续去计算。 也就是: fixed3 reflectdirnormalize…...
iOS不越狱自动挂机
自动挂机在电脑上或者安卓手机上都相对容易,而在不越狱的iOS设备上还是有点难度的。 此方法不是我原创,详情见: 【苹果党福音,ios也能用的挂机脚本】 https://www.bilibili.com/video/BV1sv4y1P7TL/?share_sourcecopy_web&v…...
智能优化算法应用:基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于鼠群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鼠群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...
FL Studio中如何录音的技巧,让你的声音更加出众哦!
Hey小伙伴们!今天我要和大家分享一下在FL Studio中如何录音的技巧,让你的声音更加出众哦! 编曲软件FL Studio 即“Fruity Loops Studio ”,也就是众所熟知的水果软件, 全能音乐制作环境或数字音频工作站࿰…...
前端React基础面试题
1,说说react里面bind函数与箭头函数 bind 由于在类中,采用的是严格模式,所以事件回调的时候会丢失this指向,指向的undefined,需要使用bind来给函数绑定上当前实例的this指向。 箭头函数的this指向上下文,所以永久能拿到当前组件实例的。this指向我们可以完美的使用箭头…...
【1day】致远A6系统任意文件下载漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
朝花夕拾华山平台流水账
2022年8月25日,我加入了诚迈科技(南京),加入了华山平台。 跟我一起入职平台的还有三个小伙伴:小帅、小阳、小甘。 小帅能力很强,前后端都会,入职各种考试工具人。 小阳毕业没多久,一…...
云原生周刊:K8s 的 YAML 技巧 | 2023.12.4
开源项目推荐 Helmfile Helmfile 是用于部署 Helm Chart 的声明性规范。其功能有: 保留图表值文件的目录并维护版本控制中的更改。将 CI/CD 应用于配置更改。定期同步以避免环境偏差。 Docketeer 一款 Docker 和 Kubernetes 开发人员工具,用于管理容…...
Leetcode.2477 到达首都的最少油耗
题目链接 Leetcode.2477 到达首都的最少油耗 rating : 2012 题目描述 给你一棵 n n n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 0 0 到 n − 1 n - 1 n−1 ,且恰好有 n − 1 n - 1 n−…...
sizeof()、strlen()、length()、size()的区别(笔记)
上面的笔记有点简陋,可以看一下下面这个博主的: c/c中sizeof()、strlen()、length()、size()详解和区别_csize,sizeof,length_xuechanba的博客-CSDN博客...
Redis击穿(热点key失效)
Redis击穿是指在高并发情况下,一个键在缓存中过期失效时,同时有大量请求访问该键,导致所有请求都落到数据库上,对数据库造成压力。这种情况下,数据库可能无法及时处理这些请求,导致性能下降甚至崩溃。 为了…...
分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测
分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测࿰…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
