信息学奥赛初赛天天练-42-CSP-J2020基础题-变量地址、编译器、逻辑运算、逻辑与运算、逻辑或运算、冒泡排序、递归应用

news2024/7/7 17:30:01

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

在这里插入图片描述

2020 CSP-J 选择题

单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

1.在内存储器中每个存储单元都被赋予一个唯一的序号,称为( )

A.地址

B.序号

C.下标

D.编号

2.编译器的主要功能是( )

A.将源程序翻译成机器指令代码

B.将源程序重新组合

C.将低级语言翻译成高级语言

D.将一种高级语言翻译成另一种高级语言

3.设 x=true, y=true, z=false,以下逻辑运算表达式值为真的是( )

A.(y∨z)∧x∧z

B. x∧(z∨y) ∧z

C. (x∧y) ∧z

D.(x∧y)∨(z∨x)

4.现有一张分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这张图像,需要多大的存储空间?( )

A.16MB

B.4MB

C.8MB

D.2MB

5.冒泡排序算法的伪代码如下:

对 n 个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )

A.n^2

B.n-2

C.n-1

D.n

6.设A是介个实数的数组,考虑下面的递归算法:

请问算法XYZ的输出是什么?( )

A.A数组的平均

B.A数组的最小值

C.A数组的中值

D.A数组的最大值

2 相关知识点

1) 内存地址

变量

变量代表内存中具有特定属性的一个存储单元。它是一个地址和一个值的统称

内存地址

C语言地址,是指内存地址的概念。计算机内存中的各个存储单元都是有序的,按字节编码

每个字节有一个唯一的编码

变量地址

获取变量地址,使用&

示例

#include <iostream>
using namespace std;
int main(){
	int a=5;
	cout<<&a<<endl;
	float b=4.15;
	cout<<&b;		
}
/*
输出结果 
0x70fe1c
0x70fe18
*/

2) 编译器

编译器(Compiler)是一种计算机程序,其主要功能是将高级程序语言(如C、C++、Java等)编写的源代码转换为底层可执行的机器代码

3) 逻辑运算

逻辑与运算规则

进行逻辑与运算的两位都是逻辑1,则结果是1;否则,结果是0。

0 与 0 = 0
0 与 1 = 0
1 与 0 = 0
1 与 1 = 1

符号

and

示例

逻辑或运算规则
进行逻辑或运算的两位都是逻辑0,则结果是0;否则,结果是1。

0 或 0 = 0
0 或 1 = 1
1 或 0 = 1
1 或 1 = 1

符号

or

示例

4) 图像存储

分辨率

分辨率是衡量显示系统对细节的分辨能力的指标,它决定了图像的清晰度和质量。分辨率越高,图像中的细节越丰富,存储的像素越多,但同时文件大小也会增加

每个像素需要一点存储空间,一般可以使用8位,16位,32位二进制表示

存储空间=像素个数*位数,单位为bit

计算机存储大多是Byte

1Byte=8bit

5) 递归

递归是一种解决问题的方法,它通过将问题分解为更小的子问题来解决。

一个递归函数会在其定义中直接或间接地调用自身

递归通常包括两个部分:基本情况(Base case)和递归步骤(Recursive step)。

基本情况是指当问题规模变得足够小时,可以直接得到解决方案的情况。

6) 冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端

n个元素的冒泡排序,需要n趟完成,

每趟进行逐一两两比较,进行n-1次比较,把最大(最小)元素比较出来,交换到最后

3 思路分析

1.在内存储器中每个存储单元都被赋予一个唯一的序号,称为( A )

A.地址

B.序号

C.下标

D.编号

分析

C语言地址,是指内存地址的概念。计算机内存中的各个存储单元都是有序的,按字节编码

每个字节有一个唯一的编码,对应一个内存地址

2.编译器的主要功能是( A )

A.将源程序翻译成机器指令代码

B.将源程序重新组合

C.将低级语言翻译成高级语言

D.将一种高级语言翻译成另一种高级语言

分析

编译器(Compiler)是一种计算机程序,其主要功能是将高级程序语言(如C、C++、Java等)编写的源代码转换为底层可执行的机器代码

3.设 x=true, y=true, z=false,以下逻辑运算表达式值为真的是( D )

A.(y∨z)∧x∧z

B. x∧(z∨y) ∧z

C. (x∧y) ∧z

D.(x∧y)∨(z∨x)

分析

//∨按位或 ,∧按位与
x=true,y=true,z=false
A:
(y∨z)=(true∨false)=true
(y∨z)∧x=true∧true=true
(y∨z)∧x∧z=true∧false=false
B:
(z∨y) =false∨true=true
x∧(z∨y)=true∧true=true
x∧(z∨y)∧z=true∧false=false
C:
(x∧y)=(true∧true)=true
(x∧y) ∧z = true∧false=false
D:
(x∧y)=(true∧true)=true
(z∨x)=(false∨true)=true
(x∧y)∨(z∨x)=true∨true = true
所以选D

4.现有一张分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这张图像,需要多大的存储空间?( )

A.16MB

B.4MB

C.8MB

D.2MB

分析

分辨率2048*1024像素,每个像素32位,总共需要
2048*1024*32位存储,由于需要单位为字节,因此把位转换为字节
2048*1024*32/8
=2048*1024*4
=1024*1024*4*2
=8MB

5.冒泡排序算法的伪代码如下:

对 n 个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )

A.n^2

B.n-2

C.n-1

D.n

分析

伪代码,一般需要看结构,看主要部分
有代码可以看出,冒泡排序的基本思路,进行n趟排序,每趟两两比较,找出最大的
在一趟中循环为1~k,每次循环通过FLAG-1对k进行赋值,然后FLAG赋值为1,如果前面一轮FLAG值不变则后面一轮循环从1~1不进行循环
考虑一种情况,如果顺序本身就是从小到大排好序的
第1轮排序为1~n-1次,顺序不需要交换,FLAG为1不被改变,则后续while FLAG > 1不满足,退出循环
所以只进行了n-1次循环,所以选C

6.设A是介个实数的数组,考虑下面的递归算法:

请问算法XYZ的输出是什么?( B )

A.A数组的平均

B.A数组的最小值

C.A数组的中值

D.A数组的最大值

分析

递归
取A[n]和A[1]...A[n-1]中最小的,其实从大看这个问题不容易看出
从小范围往大范围看
XYZ(A[1,2]) 比较A[2]和A[1]大小,并返回最小的
XYZ(A[1..3]) 比较A[3]和A[1,2]最小temp,并返回A[3]和temp最小的
XYZ(A[1..4]) 比较A[4]和A[1..3]最小temp,并返回A[4]和temp最小的
XYZ(A[1..n]) 比较A[n]和A[1..n-1]最小temp,并返回A[n]和temp最小的
可以看出返回的是A数组中最小的那个数
所以选B

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

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

相关文章

JavaScript中的Array(数组)对象

目录 一、Array数组对象 1、介绍 2、创建数组对象并赋值 3、访问数组元素 二、Array对象属性 1、constructor属性 2、length属性 3、prototype属性 三、Array对象的常用方法 1、isArray() 2、concat() 3、pop() 4、shift() 5、push() 6、unshift() 7、reverse(…

VQA视觉问答系统

这是一个典型的多模态问题,融合了CV与NLP的技术,计算机需要同时学会理解图像和文字。 Joint embedding 首先,图像和问题分别由CNN和RNN进行第一次编码得到各自的特征,随后共同输入到另一个编码器中得到joint embedding,最后通过解码器输出答案。 值得注意的是,有的工作…

我与C++的爱恋:list的使用

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 一、list介绍 1.list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代 2.list的底层是双向链表结构&#xff0c;双向链表中…

python: create Envircomnet in Visual Studio Code 创建虚拟机

先配置python开发环境 1.在搜索栏输入“>" 或是用快捷组合键ctrlshiftP键 就会显示”>",再输入"python:" 选择已经安装好的python的版本,选定至当前项目中&#xff0c;都是按回车 就可以看到创建了一个虚拟机的默认的文件夹名".venv" 2 te…

KUKA仿真教学8:设备保养屏蔽

目录 一、屏蔽步骤 一、屏蔽步骤

ghost恢复?电脑文件恢复如何操作?电脑数据恢复工具!5款!

在数字化时代&#xff0c;电脑数据的价值日益凸显。然而&#xff0c;数据丢失、误删、系统崩溃等问题时有发生&#xff0c;给个人和企业带来巨大损失。本文将为您详细介绍Ghost恢复方法&#xff0c;同时推荐五款高效的电脑数据恢复工具&#xff0c;助您轻松应对数据丢失的困扰。…

Node.js学习(一)

Node.js安装与入门案例&#xff1a; 需求&#xff1a;点击按钮&#xff0c;请求本地目录指定文件的内容&#xff0c;并显示在页面上 刚入门肯定想着直接写相对路径请求指定路径数据就行了&#xff0c;可是会发现不行。 网页运行在浏览器端&#xff0c;通常后续要发布&#xf…

全面了解机器学习

目录 一、基本认识 1. 介绍 2. 机器学习位置 二、机器学习的类型 1. 监督学习 2. 无监督学习 3. 强化学习 三、机器学习术语 1. 训练样本 2. 训练 3. 特征 4. 目标 5. 损失函数 四、机器学习流程 五、机器学习算法 1. 分类算法 2. 聚类算法 3. 关联分析 4. …

高通骁龙(Qualcomm Snapdragon)CDSP HVX HTP 芯片简介与开发入门

1. Hexagon DSP/HVX/HTP 硬件演进 说到高通骁龙芯片大家应该不会陌生&#xff0c;其作为最为广泛的移动处理器之一&#xff0c;几乎每一个品牌的智能手机都会使用高通骁龙的处理器。 高通提供了一系列骁龙芯片解决方案。根据性能强弱分为了5个产品系列&#xff1a;从最高端的…

verilog实现PID控制

1 原理讲解 距离上一次说PID算法的事情过去蛮久了&#xff0c;今天又重新看了看PID的代码&#xff0c;其实还是存在一些不合理的地方。 整理归纳了一下原理&#xff0c;位置式和增量式的变化。 2 工程实现 timescale 1ns / 1psmodule pid_controller(input clk,input r…

MySQL——事务ACID原则、脏读、不可重复读、幻读

什么是事务 要么都成功&#xff0c;要么都失败 一一一一一一一 1. SQL执行&#xff1a;A给B转账 A 1000 ---->200 B 200 2. SQL执行&#xff1a;B收到A的钱 A 800 B 400 一一一一一一一 将一组SQL放在一个批次中去执行~ 事务原则&#xff1a;ACI…

从零搭建Prometheus到Grafana告警推送

目录 一、Prometheus源码安装和动态更新配置 二、Prometheus操作面板和常见配置 三、Prometheus常用监控组件exporter配置 3.1 exporter是什么 3.2 有哪些exporter 3.3 exporter怎么用 3.4 实战 node_exporter ​3.5 其它exporter都怎么用 四、Promethus整合新版Sprin…

线程状态转换总结

1. NEW -> RUNNABLE 创建线程后是 NEW 状态&#xff08;只是 Java 层面新建的&#xff0c;还没有关联到操作系统实际的线程上&#xff09;&#xff0c;调用线程的 start() 方法会将 Java 线程和操作系统的线程关联起来&#xff0c;进入 RUNNABLE 状态 2. RUNNABLE <->…

入门PHP就来我这(纯干货)05

~~~~ 有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 ~~~~ 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 1 数组及创建 数组&#xff0c;顾名思义&#xff0c;本质上就是一系列数据的组合…

【Linux进程通信】使用匿名管道制作一个简单的进程池

进程池是什么呢&#xff1f;我们可以类比内存池的概念来理解进程池。 内存池 内存池是在真正使用内存之前&#xff0c;先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时&#xff0c;就从内存池中分出一部分内存块&#xff0c;若内存块不够再继…

docker-compose搭建prometheus、grafana

一、安装prometheus 1、安装 version: 3.1services:prometheus:image: prom/prometheus:v2.48.0container_name: prometheushostname: prometheusrestart: alwaysvolumes:- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus/:/etc/prometheus/port…

淘宝扭蛋机小程序开发,新玩法、新收益体验!

近几年&#xff0c;随着娱乐消费的火爆&#xff0c;潮玩市场得到了快速发展&#xff0c;从而带动了扭蛋机市场的发展&#xff0c;扭蛋机也逐渐风靡在消费市场中。对于年轻人消费者来说&#xff0c;愿意为扭蛋机的热门IP商品而买单。目前&#xff0c;价格低、颜值高、种类多样的…

大科技公司大量裁员背后的真相

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

试用笔记之-汇通计算机等级考试软件一级Windows

首先下载汇通计算机等级考试软件一级Windows http://www.htsoft.com.cn/download/htwork.rar

JavaMySQL 学习(基础)

目录 Java CMD Java发展 计算机存储规则 Java学习 switch新用法&#xff08;可以当做if来使用&#xff09; 数组定义 随机数 Java内存分配 MySQL MySQL概述 启动和停止 客户端连接 数据模型 关系型数据库 SQL SQL通用语法 SQL分类 DDL--数据定义语言 数据库…