C语言蓝桥杯刷题:明码

news2024/12/29 10:44:36

题目链接
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

汉字的字形存在于字库中,即便在今天,16*16 点阵的字库也仍然使用广泛。

16*16 点阵的字库把每个汉字看成是 16×16 个像素信息。并把这些信息记录在字节中。

一个字节可以存储 8 位信息,用 32 个字节就可以存一个汉字的字形了。 把每个字节转为 2 进制表示,1 表示墨迹,0 表示底色。每行 2 个字节,一共 16 行,布局是:
在这里插入图片描述
这段信息是(一共 10 个汉字):

4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0
16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16
4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0
0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4
4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64
16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128
0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0
2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0
1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0
0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0

题目解析:
本题是一道综合性极强的题目,
第一点,你需要读懂题意:大致意思就是 10个汉字,每个汉字32个字节表示,也就是每行32个字节存储一个汉字。但是你打印的时候需要是每行2字节,打印16行构成一个汉字。

第二点,你需要知道十进制数怎么转换成补码,对于正数:原反补相同,所以我们可以直接用原码。而对于负数,我们是有规定取其原码的补码。
负数补码求法:
法1:先得到负数绝对值二进制,除第一位不变,其他位按位取反,再+1
法2:最后一位向前,直到遇见第一个1,这个1之前的数取反
我这里用的法2

剩下的就是代码实现:我的代码都进行了详细注释,相信你一定可以学会!
题解:

//明码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int brr[8];
void func(int x)//将十进制x转换成2进制
{
	//正数就取其原码,如果是负数的话就取其原码的补码
	int i = 0;
	int j = 0;
	int tmp = abs(x);//abs()为绝对值函数
	while (tmp != 0)
	{
		brr[i] = tmp % 2;
		tmp /= 2;
		i++;
	}
	for (i;i < 8;i++)//防止之前有数据残留,本次没有覆盖到全部
	{//举个例子:上一个传过来的数为32,那么它的brr为0000 0100
	//如果本次传过来的数为-1,那么我们经过abs,也就是获得了1补码0000 0001
	//放到brr里,只会覆盖第一位,也就是把brr从0000 0100变成了1000 0100
    //但这1000 0100显然不是1的补码,后面的0100就是32带来的数据残留,我们必须要清除掉
		brr[i] = 0;
	}
	

	//负数补码求法:
	//法1:先得到负数绝对值二进制,除第一位不变,其他位按位取反,再+1
	//法2:最后一位向前,直到遇见第一个1,这个1之前的数取反
	//我这里用的法2
	if (x < 0)
	{
		for (i = 0;i < 8;i++)
		{
			if (brr[i] == 1 && i < 7)//因为我们上面往brr里面放是反方向放的,也就是brr第一位其实是二进制数最后一位
			{
				for (j = i + 1;j <= 7;j++)
				{
					//取反
					if (brr[j] == 0)
					{
						brr[j] = 1;
					}
					else
					{
						brr[j] = 0;
					}
				}
				break;
			}
		}
	}
	if (x == 0)
	{
		for (i = 0;i < 8;i++)
		{
			brr[i] = 0;
		}
	}
}

int main(int argc, char *argv[])
{
	int i = 0;
	int j = 0;
	int k = 0;
	int arr[10][32];//10个汉字,每个汉字32个字节表示,也就是每行32个字节存储一个汉字
	
	//读取数据
	for (i = 0;i < 10;i++)//10个汉字
	{
		for (j = 0;j < 32;j++)//每个汉字32个字节表示
		{
			scanf("%d", &arr[i][j]);
			func(arr[i][j]);
			for (k = 7;k >= 0;k--)
			{
				if (brr[k] == 1)
				{
					printf("%d", brr[k]);
				}
				else
				{
					printf(" ");//这里也可以把空格改成0,我这里是为了方便看
				}
			}
			if (j % 2 == 1)//每行打印2字节
			{
				printf("\n");
			}
		}
	}


	return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后它题目是要一个结果,我们直接打印9^9即可,也就是387420489
注:因为pow函数有坑,建议还是自己写个代码算一下

#include<stdio.h>
int main()
{
	int a = 1;
	int b = 9;
	for (int i = 1;i <= 9;i++)
	{
		a *= b;
	}
	printf("%d", a);
	return 0;
}

在这里插入图片描述

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

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

相关文章

电子书销售是一种可以躺赚的商业模式么?

文章目录前言电子书销售市场规模到底有多大&#xff1f;电子书产业链电子书阅读平台电子书销售平台国外国内其它销售模式探讨创建电子书创建电子书的工具电子书下载好去处相关法规前言 不知何时&#xff0c;有了网赚一词&#xff0c;例如去各大平台撸羊毛薅羊毛&#xff0c;利…

Vector - VT System - 继电器板卡_VT2820

这块板卡应该是我个人最喜欢的板卡了&#xff0c;虽然说有很多的模拟板卡、数字板卡等仿真板卡&#xff0c;但是在实际的应用中&#xff0c;我们仿真还是很难做到绝对的信号一致&#xff0c;但是如果有实际的硬件&#xff0c;通过继电器板卡就很好的模拟实际车上的场景&#xf…

定时器(Timer)

一、定时器是什么&#xff1f; 定时器类似于我们生活中的闹钟&#xff0c;可以设定一个时间来提醒我们。 而定时器是指定一个时间去执行一个任务&#xff0c;让程序去代替人工准时操作。 标准库中的定时器: Timer 方法作用void schedule(TimerTask task, long delay)指定dela…

JS数组对象——中文按照首字母排序(分组)sort()、localeCompare()

JS数组对象——中文按照首字母排序&#xff08;sort 、localeCompare&#xff09;往期同类文章场景复现根据中文首字母排序1、首字母基础排序2、排序并且分组往期同类文章 文章内容文章链接JS数组对象——根据日期进行排序&#xff0c;按照时间进行升序或降序排序https://blog…

PLC算法系列之数字低通滤波器(离散化方法:双线性变换)

低通滤波器在信号处理专栏有后向欧拉法的详细介绍和源代码,请查看相应的文章,链接如下: PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点 优点:采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波…

windows下安装不同版本Python教程

前言 博主也是很长一段时间没有更新文章了吧&#xff0c;因为最近都在忙着升级我的API管理系统&#xff0c;还有准备会考&#xff0c;时隔大概一个月&#xff0c;我带来了本次文章&#xff0c;如何在windows系统下安装多个版本Python&#xff0c;且各版本Python有不同的全局命…

认真学习MySQL中的那些日志文件-二进制日志(binlog)

binlog即binary log&#xff0c;二进制日志文件&#xff0c;也叫作变更日志&#xff08;update log&#xff09;。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句&#xff0c;但是不包含没有修改任何数据的语句&#xff08;如数据查询语句select、show等&#xff09;…

Allegro174版本新功能介绍之关闭拷贝铜皮带网络属性功能

Allegro174版本新功能介绍之关闭拷贝铜皮带网络属性功能 Allegro在172以及以下的版本的时候,拷贝铜皮的时候会自动带上被铜皮的网络属性,在升级到了174版本的时候,是可以随时关闭和打开这个功能的,如下图 除了铜皮,过孔也是可以关闭和打开这个功能的,具体操作如下 选择Se…

NOTE:2022年11月27日以后精密星历采用长命名

IGS切换到新的参考框架—IGS20&#xff0c;以作为其产品的基础。IGS20 与 2022 年 4 月发布的 ITRF2020 密切相关。最新的卫星和地面天线校准 igs20.atx 也将同时生效&#xff0c;与 IGS20 一起使用。IGS 打算从 GPS 第 2238 周&#xff08;2022 年 11 月 27 日&#xff09;的产…

一篇分析Linux虚拟化KVM-Qemu分析之timer虚拟化

说明&#xff1a; KVM版本&#xff1a;5.9.1QEMU版本&#xff1a;5.0.0工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 先从操作系统的角度来看一下timer的作用吧&#xff1a; 通过timer的中断&#xff0c;OS实现的功能包括但不局限于上图&#xff1a; 定时…

RootPort的completion timeout为什么不能防止MCE

PCIe split transaction协议在解释completion timeout机制前&#xff0c;我们首先说一下PCIe split transaction协议是什么&#xff0c;以及为什么PCIe要选择split transaction&#xff1f;Split transaction协议是从PCI-X总线的引入的一个重要特性&#xff0c;该传输协议替代了…

微服务 分布式配置中心Apollo详解

微服务 分布式配置中心Apollo详解1. 配置中心概述1.1 配置中心简介1.2 配置中心特点1.3 配置中心对比2. Apollo概述2.1 Apollo简介2.2 Apollo特点3. Apollo设计实现3.1 基础模型3.2 架构设计3.3 Why Eureka3.4 模块说明4. Apollo安装部署4.1 部署说明4.2 环境准备3.3 下载安装包…

JavaScript奇技淫巧:隐形字符

JavaScript奇技淫巧&#xff1a;隐形字符 本文&#xff0c;分享一种奇特的JS编程技巧&#xff0c;功能是&#xff1a;可以使字符串“隐形”、不可见&#xff01; 效果展示 如下图所示&#xff0c;一个字符串经物别的操作之后&#xff0c;其长度有621字节&#xff0c;但内容却…

[ 数据结构 ] 查找算法--------递归实现

0 前言 查找算法有4种: 线性查找 二分查找/折半查找 插值查找 斐波那契查找 1 线性查找 思路:线性遍历数组元素,与目标值比较,相同则返回下标 /**** param arr 给定数组* param value 目标元素值* return 返回目标元素的下标,没找到返回-1*/public static int search(…

ora-39083/01917报错

报错信息&#xff1a; Import: Release 11.2.0.4.0 - Production on Wed Dec 7 17:59:59 2022 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production …

1、Javaweb_HTMLtable布局

web概念概述 * JavaWeb&#xff1a; * 使用Java语言开发基于互联网的项目 * 软件架构&#xff1a; 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端程序&#xff0c;在远程有一个服务器端程序 * 如&#xff1a;QQ&#xff0c;迅雷.…

Linux环境下安装 java / javac

目录 1、检查虚拟机或者服务器的位数 2、下载 jdk 3、解压jdk 4、添加全局环境变量 1、检查虚拟机或者服务器的位数 安装 java / javac 其实就是下载合适版本的 jdk&#xff0c;我们需要先确认虚拟机或者服务器的主机信息&#xff0c;来下载合适版本的 jdk。 输入 uname …

maven环境变量配置(超详细!)

下载地址&#xff1a; 官网地址 建议不要下载在C盘&#xff01;&#xff01; 配置过程 1.解压下载好的压缩包 2.此电脑–右键–属性–高级系统设置–环境变量 3.新建一个系统变量&#xff08;点击系统变量的新建&#xff09; 变量名&#xff1a;MAVEN_HOME 变量值&#x…

Python深度学习基础(八)——线性回归

线性回归引言损失函数解析解公式代码实例梯度下降理论随机梯度下降的手动实现代码torch中的随机梯度下降引言 我们生活中可能会遇到形如 yw1x1w2x2w3x3byw_1x_1w_2x_2w_3x_3byw1​x1​w2​x2​w3​x3​b 的问题&#xff0c;其中有y为输出&#xff0c;x为输入&#xff0c;w为权…

Java设计模式中工厂模式是啥?静态工厂、简单工厂与抽象工厂,工厂方法模式又是啥,怎么用,

继续整理记录这段时间来的收获&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 4.3 工厂模式 4.3.1 背景 若创建对象时直接new对象&#xff0c;则会使对象耦合严重&#xff0c;更换对象则很复杂 4.3.2 简单工厂 4.3.3 特点 不是一种设计模…