信息学奥赛初赛天天练-63-NOIP2017普及组-基础题2-面向过程、面向对象编程、平年、闰年、闰年判定规则、树的边数

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

NOIP 2017 普及组 基础题2

1 下列不属于面向对象程序设计语言的是( )
A C
B C++
C Java
D C#

2 NOI 的中文意思是( )
A 中国信息学联赛
B 全国青少年信息学奥林匹克竞赛
C 中国青少年信息学奥林匹克竞赛
D 中国计算机协会

3 2017 年 10 月 1 日是星期日,1999 年 10 月 1 日是( )
A 星期三
B 星期日
C 星期五
D 星期二

4 甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修3门,则不同的选修方案共有( )种
A 36
B 48
C 96
D 192

5 设 G 是有 n 个结点、m 条边(n≤m) 的连通图,必须删去G 的( )条边,才能使得 G 变成一棵树
A m−n+1
B m−n
C m+n+1
D n−m+1

2 相关知识点

1) 面向过程编程

面向过程编程是一种以程序执行过程为核心的编程范式。在这种范式中,程序被组织成一系列的过程(函数),每个过程负责完成特定的任务。面向过程编程强调的是算法和逻辑,而不是数据和数据结构。

主要特点

以函数为中心,关注程序的执行过程

数据和操作数据的函数是分开的

程序的可重用性和模块化程度较低

C语言是典型的面向过程编程语言

2) 面向对象编程

面向对象编程是一种以数据和操作数据的方法为核心的编程范式。在这种范式中,程序被组织成一系列的对象,每个对象都有自己的属性(数据)和方法(操作数据的函数)。面向对象编程强调的是数据和数据结构,以及数据和操作数据的统一

主要特点

以对象为中心,关注数据和操作数据的方法

数据和操作数据的方法被封装在一起,形成类

支持继承、封装和多态等特性,提高了程序的可重用性和模块化程度

Java、C++和C#等都是典型的面向对象编程语言

3) 平年、闰年

平年和闰年是公历(格里高利历)中的两种年份类型,它们的主要区别在于一年中的天数

平年

平年是指公历中没有闰日的年份,平年一年有365天,2月份只有28天

闰年

闰年有366天,比平年多一天,闰年的2月份有29天

闰年判定规则

如果年份能被4整除但不能被100整除,则为闰年

如果年份能被400整除,也为闰年

例如

2004年为闰年,能被4整除,不能被100整除

2000年为闰年,能被4整除,且能被100整除,需要判断能被400整除,且能被400整除

1900年是平年,能被4整除,且能被100整除,需要判断能被400整除,不能被400整除,所以为平年

4) 树的边数

树的边数是指树中所有边的数量。在非空树中,边的数量等于结点数量减1

3 思路分析

1 下列不属于面向对象程序设计语言的是( A )
A C
B C++
C Java
D C#

分析

C语言是一种过程式编程语言,它主要关注程序的执行过程,而不是将数据和操作数据的方法封装在一起

2 NOI 的中文意思是( B )
A 中国信息学联赛
B 全国青少年信息学奥林匹克竞赛
C 中国青少年信息学奥林匹克竞赛
D 中国计算机协会

分析

全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics,简称NOI)

3 2017 年 10 月 1 日是星期日,1999 年 10 月 1 日是( C )
A 星期三
B 星期日
C 星期五
D 星期二

分析

关键在于计算1999年10月1日到2017年10月1日之间的天数,然后根据星期的周期性确定1999年10月1日是星期几
1999~2007中有2007-1999=18年,其中2000,2004,2008,2012,2016这5年为闰年,其余为平年,平年一年365天,闰年比平年多1天,为366天
所以1999年10月1日~2017年10月1日共
18*365+5=6575天
由于每周是以7天一个周期
6575/7=939...2
所以从1999年10月1日到2017年10月1日,需要经过939周再加2天
因此1999年10月1日是礼拜五,经过939周变为2017年的礼拜五,再加2天为礼拜天

4 甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修3门,则不同的选修方案共有( C )种
A 36
B 48
C 96
D 192

分析

甲乙丙3个同学选课,可以分别让甲、乙、丙同学选课,分步进行,使用乘法原理
甲从4门课中选2门,C(4,2)=4*3/(2*1)=6
乙从4门课中选3门,C(4,3)=C(4,1)=4
丙从4门课中选3门,C(4,3)=C(4,1)=4
根据乘法原理 6 * 4 * 4 =96

5 设 G 是有 n 个结点、m 条边(n≤m) 的连通图,必须删去G 的( A )条边,才能使得 G 变成一棵树
A m−n+1
B m−n
C m+n+1
D n−m+1

分析

树的边的数量等于结点数量减1,所以G变成一棵树后边数为n-1
G未变成一棵树前,边数为m
变树前到变树后,经过了删去了一些边,假设删去了x条边
m-x=n-1  -> x=m-(n-1) -> x=m-n+1
posted @ 2024-08-13 18:02  new-code  阅读(3)  评论(0编辑  收藏  举报