信息学奥赛初赛天天练-36-CSP-J2021阅读程序-ASCII、运算符优先级、二进制补码存储、模拟算法应用

PDF文档公众号回复关键字:20240626

在这里插入图片描述

2021 CSP-J 阅读程序2

1 阅读程序(判断题1.5分 选择题3分 共计40分 )

#include<stdio.h>
#include<string.h>char base[64];
char table[256];
char str[256];
char ans[256];void init()
{for(int i=0;i<26;i++) base[i]='A'+i;for(int i=0;i<26;i++) base[26+i]='a'+i;for(int i=0;i<10;i++) base[52+i]='0'+i;base[62]='+',base[63]='/';for(int i=0;i<256;i++) table[i]=0xff;for(int i=0;i<64;i++) table[base[i]]=i;table['=']=0;
}void decode(char *str)
{char *ret = ans;int i,len = strlen(str);for(i=0;i<len;i+=4){(*ret++) =table[str[i]]<<2|table[str[i+1]]>>4;if(str[i+2]!='=')(*ret++)=(table[str[i+1]]&0x0f)<<4|table[str[i+2]]>>2;if(str[i+3]!='=')(*ret++)=table[str[i+2]]<<6|table[str[i+3]];}
}int main()
{init();printf("%d\n",(int)table[0]);scanf("%s",str);decode(str);printf("%s\n",ans);return 0;	
}

判断题

22.输出的第二行一定是由小写字母、大写字母、数字和"+“、”/“、”="构成的字符串( )

23.可能存在输入不同,但输出的第二行相同的情形( )

24.输出的第一行为"-1" ( )

单选题

25.设输入字符串长度为n,decode函数的时间复杂度为( )

A. O(sqrt(n))

B. O(n)

C. O(n log n)

D. O(n^2)

26.当输入为"Y3Nx"时,输出的第二行为( )

A. “csp”

B. “csq”

C. “CSP”

D. “Csp”

27.(3.5分)当输入为"Y2NmIDIwMjE"时,输出的第二行为( )

A. “ccf2021”

B. “ccf2022”

C. “ccf 2021”

D. “ccf 2022”

2 相关知识点

1) ASCII码

字符是一种图形符号,不同国家不同地区都有自己特殊的字符,于是就衍生了“字符集合”这个名词。其中ASCII (American Standard Code for Information Interchange: 美国信息交换标准代码)是国际通用的标准字符集

例如

char a='0';
char b='P';
char c='@';
char c='65';//ascii 码 对应大写字母A

ASCII码表

2) 运算符优先级

本题涉及到的位运算的优先级如下

位移 > 按位与  > 按位或<<  >    &    >   |

3) 0xff

计算机存储使用二进制补码存储

0xff对应二进制补码(如果存储在1个字节中,二进制第1位为符号位,1开头为负数)

11111111

反码为:

11111110

原码为

10000001

对应十进制-1

3 思路分析

本程序主要使用模拟算法,计算量巨大,根据程序逻辑先初始化如下表格

本程序初始化base数组如下

table数组如下

常用ASCII

输入字符串后,把字符串每4个一组进行处理,分别进行如下3段程序处理

1
(*ret++) =table[str[i]]<<2|table[str[i+1]]>>4;
2
if(str[i+2]!='=')(*ret++)=(table[str[i+1]]&0x0f)<<4|table[str[i+2]]>>2;
3
if(str[i+3]!='=')(*ret++)=table[str[i+2]]<<6|table[str[i+3]];
上面3句程序,没句最多输出一个字符,存放到数字ans中
最后输出数组ans

22.输出的第二行一定是由小写字母、大写字母、数字和"+“、”/“、”="构成的字符串( F )

分析

计算过程使用小写字母、大写字母、数字作为table的下标,值为0~63,但0 ~ 63 经过decode解码后不一定是这些字符,例如有空格的输出

23.可能存在输入不同,但输出的第二行相同的情形( T )

分析

只有输入小写字母、大写字母、数字时,table下标的内容才会找到对应字符进行转换,如果不是这些table的值默认为0xff,转换后输出相同

24.输出的第一行为"-1" ( T )

分析

table[0]没有被赋值,默认赋值为0xff

0xff对应二进制补码(如果存储在1个字节中,二进制第1位为符号位,1开头为负数)

11111111

反码为:

11111110

原码为

10000001

对应十进制-1

单选题

25.设输入字符串长度为n,decode函数的时间复杂度为( B )

A. O(sqrt(n))

B. O(n)

C. O(n log n)

D. O(n^2)

分析

程序主语一个for循环,长度为n

虽然有i+=4的跳步,达不到sqrt和log

26.当输入为"Y3Nx"时,输出的第二行为( B )

A. “csp”

B. “csq”

C. “CSP”

D. “Csp”

分析

根据列出的表格和输入,对3行代码逐行输出

Y3Nx时,第1行代码,输出c

Y3Nx时,第2行代码,输出s

Y3Nx时,第3行代码,输出q

所以输出csq

27.(3.5分)当输入为"Y2NmIDIwMjE="时,输出的第二行为( C )

A. “ccf2021”

B. “ccf2022”

C. “ccf 2021”

D. “ccf 2022”

分析

根据列出的表格和输入,对3行代码逐行输出

第1个4个字符 Y2Nm

Y2Nm时,第1行代码,输出c

Y2Nm时,第2行代码,输出c

Y2Nm时,第3行代码,输出f

第2个4个字符 IDIw

IDIw时,第1行代码,输出 空格

IDIw时,第2行代码,输出 2

IDIw时,第3行代码,输出 0

第3个4个字符 MjE=

MjE=时,第1行代码,输出 2

MjE=时,第2行代码,输出 1

MjE=时,第3行代码,不满足if判断条件,不输出

所以输出为ccf 2021

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

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

相关文章

MySQL之可扩展性(四)

可扩展性 向外扩展 分片?还是不分片&#xff1f; 这是一个问题&#xff0c;对吧&#xff1f;答案很简单:如非必要&#xff0c;尽量不分片。首先看是否能通过性能调优或者更好的应用或数据库设计来推迟分片。如果能足够长时间地推迟分片&#xff0c;也许可以直接购买更大地服…

黑马程序员——Spring框架——day09——linux初级

目录&#xff1a; 前言 什么是Linux&#xff1f;为什么要学Linux 企业用人要求个人发展需要学完Linux能干什么 1).环境搭建2).常用命令3).安装软件4).项目部署小结2.Linux简介 主流操作系统Linux发展历史Linux系统版本Linux安装 安装方式介绍安装VMware安装Linux网卡设置安装S…

flink 处理函数和流转换

目录 处理函数分类 概览介绍 KeydProcessFunction和ProcessFunction 定时器TimeService 窗口处理函数 多流转换 分流-侧输出流 合流 联合&#xff08;Uniion&#xff09; 连接&#xff08;connect&#xff09; 广播连接流&#xff08;BroadcatConnectedStream&#xf…

数据结构——

1. 什么是并查集&#xff1f; 在计算机科学中&#xff0c;并查集&#xff08;英文&#xff1a;Disjoint-set data structure&#xff0c;直译为不数据结构交集&#xff09;是一种数据结构&#xff0c;用于处理一些不交集&#xff08;Disjoint sets&#xff0c;一系列没有重复元…

6毛钱SOT-23封装28V、400mA 开关升压转换器,LCD偏置电源和白光LED应用芯片TPS61040

SOT-23-5 封装 TPS61040 丝印PHOI 1 特性 • 1.8V 至 6V 输入电压范围 • 可调节输出电压范围高达 28V • 400mA (TPS61040) 和 250mA (TPS61041) 内部开关电流 • 高达 1MHz 的开关频率 • 28μA 典型空载静态电流 • 1A 典型关断电流 • 内部软启动 • 采用 SOT23-5、TSOT23…

input()函数——输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 input()函数可以提示并接收用户的输入&#xff0c;将所有的输入按照字符串进行处理&#xff0c;并返回一个字符串&#xff0c;input()函数的…

操作符详解(上) (C语言)

操作符详解&#xff08;上&#xff09; 一. 进制转换1. 二进制2. 二进制的转换 二. 原码 补码 反码三. 操作符的分类四. 结构成员访问操作符1. 结构体的声明2. 结构体成员访问操作符 一. 进制转换 1. 二进制 在学习操作符之前&#xff0c;我们先了解一些2进制、8进制、10进制…

modelsim做后仿真的一点思路

这是以TD_5.6.3_Release_88061生成的网表文件&#xff08;其他工具生成的网表文件类似&#xff09;&#xff0c;与modelsim联合进行门级仿真的样例&#xff0c;时序仿真与门级仿真的方法类似&#xff0c;只是增加了标准延时文件。 1、建立门级仿真工程 将门级网表和testbench添…

vivado SLR

描述 超级逻辑区&#xff08;SLR&#xff09;是包含在堆叠硅中的单个FPGA芯片 互连&#xff08;SSI&#xff09;设备。堆叠式硅互连&#xff08;SSI&#xff09;技术使用无源硅 具有微凸块和硅通孔&#xff08;TSV&#xff09;的内插器&#xff0c;用于组合多个FPGA管芯 切片&a…

【ARM Trace32(劳特巴赫) 使用介绍 2.7 -- bat 脚本传参数给 trace32 cmm 脚本】

请阅读【Trace32 ARM 专栏导读】 文章目录 bat 脚本传参数给 trace32脚本可变参数传入CMM 脚本接收参数运行BAT脚本bat 脚本传参数给 trace32脚本 在使用 Trace32 的过程中,如果每次都是通过GUI 界面来操作,是习惯使用命令行工作的人所不能忍受的!!!,那么能不同通过脚本…

如何下载植物大战僵尸杂交版,最全攻略来了

《植物大战僵尸杂交版》由热爱原版游戏的B站UP主“潜艇伟伟迷”独立开发&#xff0c;带来了创新的游戏体验。如果你是策略游戏的爱好者&#xff0c;下面这份全面的下载和游玩攻略将是你的理想选择。 游戏亮点&#xff1a; 杂交植物系统&#xff1a;结合不同植物特性&#xff0c…

CMakeList.txt 与makefile文件介绍

在C 项目中&#xff0c; 我们经常可以看到CMakeList.txt 文件和makefile文件&#xff0c; 那么它们分别有什么用呢&#xff1f; 下面的图示很好地解释了它们的作用以及两者之间的关系。

021.合并两个有序链表,递归和遍历

题意 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 难度 简单 标签 链表、排序 示例 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]…

七天速通javaSE:第四天 递归算法

文章目录 前言一、递归的介绍二、递归模型&#xff08;n!&#xff09;1 阶乘的定义&#xff1a;2. 阶乘的递归代码实现3. 递推与回归的内部逻辑三、练习 前言 本文将学习递归算法。在计算机科学中&#xff0c;递归算法是一种将问题不断分解 为同一类子问题来解决问题的方法。递…

vue3项目登录成功后根据角色菜单来跳转指定页面(无首页)

前言&#xff1a;需求不想要首页&#xff0c;登录什么角色跳转到这个角色经常使用的页面。&#xff08;例如&#xff1a;审核者角色的人输入用户名密码成功后就自动跳转到待审核的页面&#xff0c;仓库管理员登录成功则自动跳转到仓库列表&#xff09; 需要解决的点和想法&…

对抗生成网络GANP52-

1.对抗生成网络的重点&#xff1a;有原始的输入&#xff0c;按照需求&#xff0c;生成新的数据。 eg1:超分辨率重构(首先先告诉神经网络什么是低分辨率&#xff0c;什么是高分辨率&#xff0c;让计算机学习两者的联系。 eg2:警察抓小偷的时候&#xff0c;由于录像太过模糊&…

202485读书笔记|《我还有一片风景要完成》——溪水急着要流向海洋 浪潮却渴望重回土地 弱水长流,我只能尽一瓢饮,世界大千,我只能作一瞬观

202485读书笔记|《我还有一片风景要完成》——溪水急着要流向海洋 浪潮却渴望重回土地 弱水长流&#xff0c;我只能尽一瓢饮&#xff0c;世界大千&#xff0c;我只能作一瞬观 《华语散文温柔的一支笔&#xff1a;张晓风作品集&#xff08;共5册&#xff09;》张晓风&#xff0c…

【计算机网络篇】数据链路层(13)共享式以太网与交换式以太网的对比

文章目录 &#x1f354;共享式以太网与交换式以太网的对比&#x1f50e;主机发送单播帧的情况&#x1f50e;主机发送广播帧的情况&#x1f50e;多对主机同时通信 &#x1f6f8;使用集线器和交换机扩展共享式以太网的区别 &#x1f354;共享式以太网与交换式以太网的对比 下图是…

AtCoder Beginner Contest 359(ABCDEFG题)视频讲解

A - Count Takahashi Problem Statement You are given N N N strings. The i i i-th string S i S_i Si​ ( 1 ≤ i ≤ N ) (1 \leq i \leq N) (1≤i≤N) is either Takahashi or Aoki. How many i i i are there such that S i S_i Si​ is equal to Takahashi? C…

CMN-700(1)CMN-700概述

本章介绍CMN-700&#xff0c;这是用于AMBA5 CHI互连&#xff0c;且可根据需要定制的网格拓扑结构。 1. 关于CMN‐700 CMN‐700是一种可配置扩展的一致性互连网络&#xff0c;旨在满足高端网络和企业计算应用中使用的一致性网络系统的功率、性能和面积(PPA)要求。支持1-256个处…