信息学奥赛初赛天天练-63-NOIP2017普及组-基础题2-面向过程、面向对象编程、平年、闰年、闰年判定规则、树的边数
PDF文档公众号回复关键字:20240813
![](https://img2022.cnblogs.com/blog/404484/202211/404484-20221123185906168-1425738362.png)
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
作者:newcode 更多资源请关注纽扣编程微信公众号
从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习