青少年编程知识记录 codecoming

2020年CSP-J 初赛题目及答案解析

扫码关注下面微信公共号,发送“CSPJ2020”获取文章答案查看详细解题过程:题目及答案下载链接(PDF):https://box356.lanzoub.com/iUllf27ae9gj2020年普及组一、单项选择题1.在内存储器中每个存储单元都被赋予一个唯一的序号,称为(   )。A.地址        B.序号        C.下标
作者:亿万年的星光 分类:初赛 浏览:

2019年CSP-J 初赛题目及答案解析

扫码关注下面微信公共号,发送“CSPJ2019”获取文章答案查看详细解题过程:原版初赛题目下载链接:CSP-J相关资料 - 青少年编程知识记录 (codecoming.com)答案:解析:2019年普及组一、单项选择题1.中国的国家顶级域名是(  )A..cn        B..ch        C..chn   
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十五)----链表

4.1 基本概念(1)用来存储数据变量叫做数据域。(2)用来存“直接后继(前趋)元素的地址”的指针叫做指针域。(3)数据域和指针域构成的元素叫做结点。(4)”->” 箭头运算是结构体指针访问其指向的成员变量的操作符.4.2单链表(1)单链表的定义:1.  struct Node {2.   int data;3.   Node * next;4.  };5.  Node * p;(2)单链表的查找//(按序号查找)在单链
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十四)----指针

3.1 定义

指针就是地址。

指针变量定义形式:  类型说明符  *变量名     例如:int  *a;

含义:定义了一个int *类型变量,名称为a。(只能存储int *类型)

注意:int *类型和int 类型不一样。



3.2 指针的赋值

实际操作中,&”符号表示“取地址符”。(区别与&&和按位与&,使用场景不同)。比如下面的代码:

1.  #include<iostream>

2.  #include<cstdio>

3.  using namespace std;

4.  int main() {

5.   int a=3;

6.   int *p=NULL;

7.   p=&a;

8.   cout<<"a的值"<<a<<endl;  //3

9.   cout<<"p的值"<<p<<endl;  //0x22fe34

10.  cout<<"*p的值"<<*p<<endl; //3

11.  return 0;

12. }

其中,第7行的“&”表示取变量a的地址,赋值给p变量,而p是指针类型,可以保存地址。

scanf读取数据的时候,也会写作scanf(“%d”,&a); 这里面的&”也是取地址符号。

10行的结果是3,也就是a的值,这里可以这样理解:因为pint *类型,*p等价于*(int *),这里可以“负负得正”的思想来记录结果,也就是指向了int *这个指针所指向的变量。

3.3 指针与数组

  指向数组的指针变量称为数组指针变量。数组是内存上一块连续的空间。数组名就是这块连续空间的首地址。

1.  #include<iostream>

2.  #include<cstdio>

3.  using namespace std;

4.  int main() {

5.   int a[10];

6.   for(int i=0; i<5; i++) {

7.    scanf("%d",a+i); 

8.   }

9.   for(int i=0; i<5; i++) {

10.   printf("%d ", *(a+i)); 

11.  }

12.  return 0;

13. }



作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十三)----树和二叉树(下)

一、表达式的求法考试中有经常出现类似于“中缀表达式转后缀”,“前缀表达式转后缀”等。如果能画出唯一的二叉树那么便根据二叉树的结构之间求解即可,有些情况很难直接画出二叉树。还有通过加括号的方式进行求解,还有利用栈的方法求表达式。(1) 【中缀转后缀:利用栈】规则:①从左往右遇到操作数直接输出 ②遇到操作符,放入栈中③遇到左括号,入栈      ④遇到右括号,出栈(直到遇到左括号,左括号只弹出不输出) ⑤遇到其
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十三)----树和二叉树(上)

树是一种非线性结构,栈和队列都是线性结构(线性一般是指每一个元素都通常只有一个前驱和一个后继)一、树的定义一棵树是由n(n>0)个元素组成的有限集合,其中:(1)每个元素称为结点(node)(2)有一个特定的结点,称为根结点或树根(root)(3)除根结点外,其余结点能分成m(m>=0)个互不相交的有限集合T0,T1,T2…… Tm-1。其中的每个子集又都是一棵树,这些集合称为这颗树的子树。三、树的基本概念(1)树都是递归定义的。(2)一棵树中至少有1个结点。这个结点就是根结点。(3
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十二)----栈和队列

一、栈栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进行的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。堆和取都在顶部进行。底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入操作一般称为PUSH。删除一般称为POP。栈也称先进后出表或后进先出表。例如:1.假如有以下数据依次进栈,1, 6, 8,9 。那么出栈顺序是 9,8 ,6 ,12.假如有以下数据 进栈顺序是 1 ,6 ,8 , 9 。那么可能的出栈顺序有?这个只告
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十一)----逻辑运算

一、介绍逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。二、计算机编程中的逻辑运算1.运算优先级表编辑优先级运算符说明结合性1::范围解析自左向右2++ --后缀自增/后缀自减()括号[ ]数组下标.成员对象->指针3++ --前缀自增/前缀自减自右向左+ -加 减! ~逻辑非 / 按位取反type强制类型转换*取指针&取地址sizeof()某
作者:亿万年的星光 分类:初赛 浏览:

信息学奥赛知识点(十)----计算机安全知识

计算机安全是中最重要的是存储数据安全,其面临的主要威胁包括:计算机病毒、非法访问、计算机电磁辐射、硬件损坏等。计算机病毒是附在计算机软件中的隐蔽的小程序,它和计算机其他程序一样,但会破坏正常的程序和数据文件。恶性病毒可使整个计算机软件系统崩溃,数据全毁。要防止病毒侵袭主要是加强管理,不访问不安全的数据,使用杀毒软件并及时升级更新。由于计算机硬件本身就是向空间辐射的强大的脉冲源,和一个小电台差不多,频率在十几千周到上百兆,盗窃者可以接收计算机辐射出来的电磁波,进行复原,获取计算机中数据。为此,计算
作者:亿万年的星光 分类:初赛 浏览: