NOIP2018普及组参考答案

合集下载

2018NOIP普及组初赛试题答案解析

2018NOIP普及组初赛试题答案解析

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018年10月13日14:30~16:30选手注意:●试题纸共有7页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B.键盘C.鼠标D.打印机解析:这是一道送分题,会就会,不会就不会。

所以选D。

2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)2解析:这题考核的是进制转换。

(269)16=2*16^2+6*16^1+9*16^0=617,(1151)8=1*8^3+1* 8^2+5*8^1+1*8^0=617,而(1001101011)2=619。

所以选D。

3.1MB等于()。

A.1000字节B.1024字节C.1000X1000字节D.1024X1024字节1KB=1024B1MB=1024KB解析:这题考核的是字节之间的转换。

1MB=1024KB=1024*1024B。

所以选D。

4.广域网的英文缩写是()。

NB.WANC.MAND.LNA解析:这题是送命题,,会就会,不会就不会。

WAN全称为Wide Area Network。

所以选B。

5.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A.1983B.1984C.1985D.1986解析:这题是送命题,会就会,不会就不会。

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

NOI是国内包括港澳在内的省级代表队最高水平的大赛,自1984年至今,在国内包括香港、澳门组织竞赛活动。

所以选B。

6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81个字符是字母()。

学科竞赛-2018第24届全国青少年信息学奥林匹克联赛初赛+答案

学科竞赛-2018第24届全国青少年信息学奥林匹克联赛初赛+答案

2018第24届全国青少年信息学奥林匹克联赛初赛+答案第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:1、试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:( )A.扫描仪B.键盘C.鼠标D.打印机2. 下列四个不同进制的数中,与其它三项数值上不相等的是( )。

A. (269)16 (注解:2 * 16^2 + 6 * 16^1 + 9 * 16 ^0 = 617)C. (1151)8 (注解:1 * 8^3 + 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 617)D. (1001101011)23. 1MB等于( )。

A. 1000 字节B. 1024 字节C. 1000 X 1000字节D. 1024 X 1024字节4. 广域网的英文缩写是( )。

A. LANB. WAN (Wide Area Network)C. MAND.LNA5. 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。

A. 1983B. 1984C. 19856. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、......,屏幕上输出的第81 个字符是字母( )。

A. AB. SC. DD. a7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k个子结点的树,共有( )个结点。

A. (k h+1-1)/(k-1)B. k h-1C. k hD. (k h-1) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是( )。

NOIP2018第二十四届全国青少年信息学奥林区克联赛初赛普及组试题及参考答案(手打版)

NOIP2018第二十四届全国青少年信息学奥林区克联赛初赛普及组试题及参考答案(手打版)

NOIP2018第二十四届全国青少年信息学奥林区克联赛初赛普及组试题及参考答案(手打版)第二十四届全国青少年信息学奥林区克联赛初赛普及组一、单项选择题1、以下哪一种设备属于输出设备:()A 扫描仪B 键盘C 鼠标D 打印机2、下列四个不同进制的数中,与其他三项数值上不相等的是()A (269)_{16}(269)16B (617)_{10}(617)10C (1151)_{8}(1151)8D (1001101011)_{2}(1001101011)23、11MB等于()A 10001000字节B 10241024字节C 1000*10001000∗1000字节D 1024*10241024∗1024字节4、广域网的英文缩写是()A LANB WANC MAND LNA5、中国计算机协会于()年创办全国青少年计算机程序设计竞赛。

A 1983B 1984C 1985D 19866、如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……、屏幕上输出的第81个字母是字母()。

A. AB. SC.DD.a7、根节点深度为0,一棵深度为h的满K叉树,即除最后一层无任何子节点外,每一层上所有节点都有k个子节点的树,共有()个节点。

A (k^{h+1}-1)/(k-1)(k h+1−1)/(k−1)B k^{h-1}k h−1C k^h k hD (k^{h-1})/(k-1)(k h−1)/(k−1)8、以下排序算法中,不需要进行关键字比较操作的算法是()。

A 基数排序B 冒泡排序C 堆排序D 直接插入排序9、给定一个含N个不相同数字的数组,在最坏情况下,找出期中最大或最小的树,至少需要N-1此操作。

则最坏情况下,在该数组中同时找最大与最小的数至少需要()次操作。

NOIP2018普及组初赛题详细解析

NOIP2018普及组初赛题详细解析

NOIP2018初赛普及组C++题目+解析二十四届全国青少年信息学奥林匹克联赛初赛——普及组一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机答案:D解析:扫描仪是输出设备显而易见2. 下列四个不同进制的数中,与其它三项数值上不相等的是()。

A. (269)16B. (617)10C. (1151)8D. (1001101011)2答案: D解析:都转成二进制,然后前3个都是1001101001,跟D不同3. 1MB 等于()。

A. 1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节答案:D解析:1 M B = 1024 K B = 1024 ∗ 1024 B1MB=1024KB=1024*1024B1MB=1024KB=1024∗1024B4. 广域网的英文缩写是()。

A. LANB. WANC. MAND. LNA答案:B A是局域网C是城域网5. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A. 1983B. 1984C. 1985D. 1986答案:B6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母()。

A. AB. SC. DD. a答案:A解析:取模7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1) / (k - 1)答案:A解析:1)假设h=2,k=2,画出完美二叉树,共7个节点。

学科竞赛-2018NOIP普及组初赛试题_1

学科竞赛-2018NOIP普及组初赛试题_1

2018NOIP普及组初赛试题第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1、以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机2、下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23、1MB 等于()。

A.1000 字节B.B. 1024 字节C.1000 X 1000 字节D.D. 1024 X 1024 字节4、广域网的英文缩写是()。

A. LANB. WANC. MAND. LNA5、中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A. 1983C. 1985D. 19866、如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母A. AB. SC. DD. a7、根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8、以下排序算法中,不需要进行关键字比较操作的算法是()。

A. 基数排序B. 冒泡排序C. 堆排序D. 直接插入排序9、给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

noip2018普及组初赛试题c++

noip2018普及组初赛试题c++
________(去了/没去)(1 分),周末________(下雨/ 没下雨)(2 分)。
2. 从 1 到 2018 这 2018 个数中,共有__________个包含数字 8 的数。包含数字 8 的数是
指有某一位是“8”的数, 例如“2018”与“188”。
A.
三 、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)
A. 基数排序
B. 冒泡排序
C. 堆排序
D. 直接插入排序
给定一个含 N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至
少需要 N - 1 次比较操作。则最坏情况下,在该数组中同时找最大与最小的数至少需
要( )次比较操作。(⌈ ⌉表示向上取整,⌊ ⌋表示向下取整)
A. ⌈3N / 2⌉ - 2
{
ret++;
___________;
}
return ret;
}
则空格内要填入的语句是( )。
A. x >>= 1
B. x &= x - 1
C. x |= x >> 1
D. x <<= 1
15. 下图中所使用的数据结构是(
)。
B
弹出 B 压 A
入 C
A
C
A
压入 A
压入 B
A
哈希表 B. 栈 C. 队列
1. #include <cstdio>
char
st[100];
int
main()
{
scanf("%s", st);
for
(int i = 0; st[i]; ++i)

『NOIP2018普及组题解』

『NOIP2018普及组题解』

『NOIP2018普及组题解』<更新提⽰><第⼀次更新><正⽂>标题统计题⽬描述凯凯刚写了⼀篇美妙的作⽂,请问这篇作⽂的标题中有多少个字符?注意:标题中可能包含⼤、⼩写英⽂字母、数字字符、空格和换⾏符。

统计标题字符数时,空格和换⾏符不计算在内。

输⼊格式输⼊⽂件只有⼀⾏,⼀个字符串 s。

输出格式输出⽂件只有⼀⾏,包含⼀个整数,即作⽂标题的字符数(不含空格和换⾏符)。

样例数据input1234output13input2Ca 45output24样例说明样例 1 :标题中共有 3 个字符,这 3 个字符都是数字字符。

样例 2 :标题中共有 5 个字符,包括 1 个⼤写英⽂字母, 1 个⼩写英⽂字母和 2 个数字字符,还有 1 个空格。

由于空格不计⼊结果中,故标题的有效字符数为 4 个。

数据规模与约定规定∣s∣表⽰字符串 s 的长度(即字符串中的字符和空格数)。

对于 %40 的数据,1 ≤ |s| ≤ 5,保证输⼊为数字字符及⾏末换⾏符。

对于 %80 的数据,1 ≤ |s| ≤ 5,输⼊只可能包含⼤、⼩写英⽂字母、数字字符及⾏末换⾏符。

对于 %100 的数据,1 ≤ |s| ≤ 5,输⼊可能包含⼤、⼩写英⽂字母、数字字符、空格和⾏末换⾏符。

时间限制:1s空间限制:256MB解析T1和往年⼀样,还是签到题。

不过这⼀次好像更注重考察语⾔了,不少不熟悉语⾔的⼩伙伴可能就没有分了啦。

⼤概是考察如何处理输⼊吧,会⽤getline()的基本都⽤了getline()了吧,当然,不会⽤的还有其他的办法,主要是while(cin>>str)和scanf()读到换⾏符为⽌。

这样的话,只要暴⼒统计⼀下就可以了啦。

Code:#include<bits/stdc++.h>using namespace std;string s;int ans=0;int main(void){freopen("title.in","r",stdin);freopen("title.out","w",stdout);getline(cin,s);for(int i=0;i<s.size();i++){if(s[i]!=' ')ans++;}printf("%d\n",ans);return 0;}#include<bits/stdc++.h>using namespace std;char s;int ans=0;int main(){freopen("title.in","r",stdin);freopen("title.out","w",stdout);while (cin>>s){if(s>='0'&&s<='9'||s>='a'&&s<='z'||s>='A'&&s<='Z')ans++;}cout<<ans<<endl;return 0;}龙虎⽃题⽬描述轩轩和凯凯正在玩⼀款叫《龙虎⽃》的游戏,游戏的棋盘是⼀条线段,线段上有 n个兵营(⾃左⾄右编号 1 ∼n),相邻编号的兵营之间相隔1 厘⽶,即棋盘为长度为 n-1 厘⽶的线段。

NOIP2018普及组复赛题解

NOIP2018普及组复赛题解

NOIP2018普及组复赛题解本次也是天天快乐编程集训队2021CSP&NOIP赛前训练-赛前适应赛的题⽬,OI赛制有步骤分,请⼤家放⼼书写代码。

2018年⼀等奖浙江分数线为230分,⼆等奖分数线为100分,三等奖分数线为80分。

当年附中情况,zxy是163分对应luogu题⽬,、、、,可以到luogu上查看更多题解。

字符串需要读取⼀⾏,即gets或者getline。

判断数字和字母⼤⼩写就是满分了第⼀题⽐较送分,⼀般情况下第⼀题最简单,是签到题。

但是如果第⼀题⽐较难,应该先做后⾯的,⽐赛时间有限。

正式⽐赛需要注意这个题⽬概况,这个题需要我们在相应的⽂件夹内将⽂件名命名为title.cpp,并在代码中添加上⽂件读写。

#include<bits/stdc++.h>using namespace std;int main(){freopen("title.in","r",stdin);freopen("title.out","w",stdout);//你的代码return 0;}枚举、预处理枚举,p1位置加s1个⼯兵,然后依次枚举把s2个⼯兵放在所有的兵营⾥,每次算⼀遍双⽅势⼒之差,取最⼩就可以了直接枚举,可以得到80分#include <bits/stdc++.h>using namespace std;int n,m, p1, s1, s2;int a[1000005];//计算双⽅势⼒之差int cal(int x){//sum1计算左边,sum2计算右边int sum1 = 0, sum2 = 0;//先假设位置x加上s2个⼯兵a[x] += s2;for (int i = 1; i <= n; i++){//m号兵营跳过if (i == m)continue;//分左右else if (i < m)sum1 += (m - i) * a[i];elsesum2 += (i - m) * a[i];}//再减去s2个,因为是假设加上了s2个⼯兵a[x] -= s2;if (sum1 >= sum2)return sum1 - sum2;return sum2 - sum1;}int main(){scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &a[i]);scanf("%d%d%d%d", &m, &p1, &s1, &s2);//加上s1个⼯兵a[p1] += s1;int min = 1e9,ans;//枚举编号ifor (int i = 1; i <= n; i++){//算⼀下势⼒之差int tmp = cal(i);//⼩的话要更新if (min > tmp){min = tmp;ans = i;}}printf("%d", ans);return 0;}之前的代码是超时的,因为做法是O(n^2 )的,但是后20%数据是10^5 ,写起来要难写些。

NOIP2018第二十四届普及组初赛题目C++和答案

NOIP2018第二十四届普及组初赛题目C++和答案

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:●试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题 2 分,共计30 分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B. 键盘C. 鼠标D. 打印机2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23.1MB 等于()。

A.1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节4.广域网的英文缩写是()。

NB.WANC.MAND.LNA5.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A.1983B.1984C.1985D.19866.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母()。

A. AB. SC. DD. a7.根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8.以下排序算法中,不需要进行关键字比较操作的算法是()。

A.基数排序B.冒泡排序C.堆排序D.直接插入排序9.给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

noip普及模拟卷2018(重传)

noip普及模拟卷2018(重传)

18noip普及模拟卷(重传)原创率高一:单项选择1.5%*20=30%1.(11100011)2+(9A)16=()10A:351 B:379 C:380 D:381 2.堆排序根据的数据结构为:A:队列B:二叉树C:有向图D:堆栈3.以下文字体现了--算法:计算:214解:原式=(27)2=((23)2*2)2=(((2)2*2)2*2)2=16384A:二分B:递推C:广搜D:递推4.以下语句为定义头文件的是:A:#include<bits/stdc++.h>B:#define fin cinC:using namespace std;D:int a[100],i;5.计算!((0)&&((1%3)||(1*2*3*4*5*6*7*8*9*0))||(3))=A:0 B:1C:2 D:-16.计算机的第三代为:A:大规模集成电路B:晶体管C:电子管D:集成电路7.以下程序段出现编译错误,请指出编译错误的行:int i,j=0;……Acin>>j;……Bfor (i=1;i<=sqrt(j);i++)……Ccout<<i<<‘’;……D8.4EB=A:1024KB B:1024*4MB C:4*10242TB D:4*10003GB9.对于一个空栈,所有入栈操作均以字母表顺序进行。

操作为:进进出进出出进进进进出。

试问下一个出栈字母为:A:D B:F C:H D:If noip系列比赛有三个数值:初赛成绩,复赛成绩和总分。

将初赛、复赛成绩转化为总分时有一个比例,这个比例是:A:1:1 B:0:1 C:3:7 D:4:611.计算机应用的最早领域是()A. 数值计算B. 人工智能C. 机器人D. 过程控制12.表达式a*(b+c)*d的后缀形式是()A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a*d13.冒泡排序的最坏时间复杂度为:A:O(nlogn) B:O(n) C:O(n2) D:O(logn)14.若串S=“copyright”,其子串的个数是()A. 72B. 45C. 46D. 3615.换行符的ASCII码为:A:1 B:9 C:10 D:3216.c++中等效于repeat……until ……的是:A:for(i=1;i<=……;i++)B:switch ( ) {case ^ :……;……}C:while (……)……D:do{…………} while ……17.以下语言面向过程的是:A:pascal B:汇编语言C:机器语言D:c++18.以下定义文件正确的是:A:freopen(”1.in”,’r’,cstin);B:freopen(’1.in’,’r’,stdin);C:freopen(“1.in”,”r”,cstin);D:freopen(“1.in”,”r”,stdin);19.以下语句不能计算a+b的是:A:c=a+b B:c+=a+b;C:for (i=1;i<a+b;i++)c++;D:if (a>b)c=a+b;else c=b+a;20.以下c++版本不支持万能头文件的是:A:Dev c++5.6.1 B:dev c++ 5.9.2 C:dev c++ 6.1.0 D:dev c++ 4.9.9.2 二:问题求解5%*2=10%1.0,1,1,2,3,5,8所属的数列的第18项与第19项之和为----------41812.等差数列10 13 16 19 22 25 28 ……310之和为16160三:读程序写结果8%*4=32%1.#include<bits/stdc++.h>using namespace std;int main(){int a=1,b=2;int c=a*b;int d=a*c+b*b;a=a+d+c*2;b=a*(a+b);double e;e=(double)b+2;if (b%3==0)printf("%0.2f",e); else cout<<a;}输出112.#include<bits/stdc++.h> using namespace std; int a,i,n1,n2,n3,x;int zs(int x){for (i=2;i<=sqrt(x);i++) if (x%i==0) return 1; return 0;}int main(){cin>>a;for (n1=2;n1<=a-4;n1++)for (n2=2;n2<=a-4;n2++){n3=a-n1-n2;if (zs(n1)+zs(n2)+zs(n3)!=0)continue;cout<<n1<<' '<<n2<<' '<<n3;return 0;}}输入2009 输出3 3 20033.#include<iostream>#include<cstdio>#include<string>#include<cctype>using namespace std;long long num,a[1001],p,m,n,len,i,ans[2001];string s;int main(){cin>>n>>s>>m;len=s.length();for (i=1; i<=len; i++)if (isalpha(s[i-1])) a[i]=s[i-1]-55;else if (isdigit(s[i-1])) a[i]=s[i-1]-48; for (i=len,p=1; i>=1; i--,p*=n)num+=a[i]*p;for (len=1;num>0;num/=m,len++) ans[len]=num%m;for (i=len-1;i>=1;i--)if (ans[i]>=10) printf("%c",ans[i]+55); else printf("%c",ans[i]+48);return 0;}输入:16FF2输出111111114. #include<iostream>using namespacestd;int main() {string ch;int a[200];int b[200];int n, i, t, res;cin >> ch;n = ch.length();for (i = 0; i < 200; i++)b[i] = 0;for (i = 1; i <= n; i++) {a[i] = ch[i - 1] - '0';b[i] = b[i - 1] + a[i];}res = b[n];t = 0;for (i = n; i > 0; i--) {if (a[i] == 0)t++;if (b[i - 1] + t < res)res = b[i - 1] + t;}cout << res << endl;return 0;}输入 1001101011001101101011110001 输出11四:完善程序共28%1.圆周率我们知道,当下较为认可的圆周率π计算公式为π/4=1-1/3+1/5-1/7+1/9-……现根据此公式编辑c++程序,要求计算的圆周率准确度随输入n增加而增大。

noip普和模拟卷2018年(重传)

noip普和模拟卷2018年(重传)

18noip普及模拟卷(重传)原创率高一:单项选择1.5%*20=30%1.(11100011)2+(9A)16=()10A:351 B:379 C:380 D:381 2.堆排序根据的数据结构为:A:队列B:二叉树 C:有向图 D:堆栈3.以下文字体现了--算法:计算:214解:原式=(27)2=((23)2*2)2=(((2)2*2)2*2)2=16384A:二分 B:递推 C:广搜 D:递推4.以下语句为定义头文件的是:A:#include<bits/stdc++.h>B:#define fin cinC:using namespace std;D:int a[100],i;5.计算!((0)&&((1%3)||(1*2*3*4*5*6*7*8*9*0))||(3))= A:0 B:1 C:2 D:-16.计算机的第三代为:A:大规模集成电路 B:晶体管 C:电子管 D:集成电路7.以下程序段出现编译错误,请指出编译错误的行:int i,j=0;……Acin>>j;……Bfor (i=1;i<=sqrt(j);i++)……Ccout<<i<<‘’;……D8.4EB=A:1024KB B:1024*4MB C:4*10242TB D:4*10003GB9.对于一个空栈,所有入栈操作均以字母表顺序进行。

操作为:进进出进出出进进进进出。

试问下一个出栈字母为:A:D B:F C:H D:I f noip系列比赛有三个数值:初赛成绩,复赛成绩和总分。

将初赛、复赛成绩转化为总分时有一个比例,这个比例是:A:1:1 B:0:1 C:3:7 D:4:611.计算机应用的最早领域是()A. 数值计算B. 人工智能C. 机器人D. 过程控制12.表达式a*(b+c)*d的后缀形式是()A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a* d13. 冒泡排序的最坏时间复杂度为:A:O(nlogn) B:O(n) C:O(n2) D:O(logn)14.若串S=“copyright”,其子串的个数是()A. 72B. 45C. 46D. 3615.换行符的ASCII码为:A:1 B:9 C:10 D:3216.c++中等效于repeat……until ……的是:A:for(i=1;i<=……;i++) B:switch ( ) {case ^ :……;……} C:while (……)……D:do{…………} while ……17.以下语言面向过程的是:A:pascal B:汇编语言 C:机器语言 D:c++ 18.以下定义文件正确的是:A:freopen(”1.in”,’r’,cstin);B:freopen(’1.in’,’r’,stdin);C:freopen(“1.in”,”r”,cstin);D:freopen(“1.in”,”r”,stdin);19.以下语句不能计算a+b的是:A:c=a+b B:c+=a+b;C:for (i=1;i<a+b;i++)c++;D:if(a>b)c=a+b;else c=b+a;20.以下c++版本不支持万能头文件的是:A:Dev c++5.6.1 B:dev c++ 5.9.2 C:dev c++ 6.1.0 D:dev c++ 4.9.9.2二:问题求解 5%*2=10%1.0,1,1,2,3,5,8所属的数列的第18项与第19项之和为----------41812.等差数列10 13 16 19 22 25 28 ……310之和为16160 三:读程序写结果 8%*4=32%1.#include<bits/stdc++.h>using namespace std;int main(){int a=1,b=2;int c=a*b;int d=a*c+b*b;a=a+d+c*2;b=a*(a+b);double e;e=(double)b+2;if (b%3==0)printf("%0.2f",e);else cout<<a;}输出112.#include<bits/stdc++.h>using namespace std;int a,i,n1,n2,n3,x;int zs(int x){for (i=2;i<=sqrt(x);i++)if (x%i==0) return 1;return 0;}int main(){cin>>a;for (n1=2;n1<=a-4;n1++)for (n2=2;n2<=a-4;n2++){n3=a-n1-n2;if (zs(n1)+zs(n2)+zs(n3)!=0) continue;cout<<n1<<' '<<n2<<' '<<n3; return 0;}}输入2009 输出3 3 20033.#include<iostream>#include<cstdio>#include<string>#include<cctype>using namespace std;long long num,a[1001],p,m,n,len,i,ans[2001]; string s;int main(){cin>>n>>s>>m;len=s.length();for (i=1; i<=len; i++)if (isalpha(s[i-1])) a[i]=s[i-1]-55;else if (isdigit(s[i-1])) a[i]=s[i-1]-48; for (i=len,p=1; i>=1; i--,p*=n)num+=a[i]*p;for (len=1;num>0;num/=m,len++)ans[len]=num%m;for (i=len-1;i>=1;i--)if (ans[i]>=10) printf("%c",ans[i]+55);else printf("%c",ans[i]+48);return 0;}输入:16FF2输出111111114. #include<iostream> using namespacestd;int main() {string ch;int a[200];int b[200];int n, i, t, res;cin >> ch;n = ch.length();for (i = 0; i < 200; i++) b[i] = 0;for (i = 1; i <= n; i++) { a[i] = ch[i - 1] - '0';b[i] = b[i - 1] + a[i];}res = b[n];t = 0;for (i = n; i > 0; i--) {if (a[i] == 0)t++;if (b[i - 1] + t < res)res = b[i - 1] + t;}cout << res << endl;return 0;}输入 1001101011001101101011110001输出11四:完善程序共28%1.圆周率我们知道,当下较为认可的圆周率π计算公式为π/4=1-1/3+1/5-1/7+1/9-……现根据此公式编辑c++程序,要求计算的圆周率准确度随输入n 增加而增大。

2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案

2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案

6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、
字母键 S、字母键 D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、
A、S、D、F、„„,屏幕上输出的第 81 个字符是字母( )。
A. A
B. S
C. D
D. a
CCF NOIP2018 初赛普及组 C++语言试题 第4页 共7页
4. #include <cstdio> int n, d[100]; bool v[100]; int main() {
scanf("%d", &n); for (int i = 0; i < n; ++i) {
scanf("%d", d + i); v[i] = false; } int cnt = 0; for (int i = 0; i < n; ++i) { if (!v[i]) {
10. 下面的故事与( )算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙, 庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚 讲故事„„’” A. 枚举 B. 递归 C. 贪心 D. 分治
11. 由四个没有区别的点构成的简单无向连通图的个数是( )。 A. 6 B. 7 C. 8 D. 9
a[++len] = i;
<= n; ++i)
CCF NOIP2018 初赛普及组 C++语言试题 第5页 共7页

NOIP2018 初赛普及组C++试题及答案

NOIP2018 初赛普及组C++试题及答案

CCF NOIP2018 初赛普及组 C++语言试题 第 5 页,共 7 页
四、完善程序(共 2 题,每题 14 分,共计 28 分) 1. (最大公约数之和)下列程序想要求解整数������的所有约数两两之间最大公约 数的和对10007求余后的值,试补全程序。(第一空 2 分,其余 3 分) 举例来说,4的所有约数是1,2,4。1和2的最大公约数为1;2和4的最大公约 数为2;1和4的最大公约数为1。于是答案为1 + 2 + 1 = 4。 要求 getDivisor 函数的复杂度为������(√������), gcd 函数的复杂度为������(log max(������, ������))。 #include <iostream> using namespace std; const int N = 110000, P = 10007; int n; int a[N], len; int ans; void getDivisor() { len = 0; for (int i = 1; (1) <= n; ++i) if (n % i == 0) { a[++len] = i; if ( (2) != i) a[++len] = n / i; } } int gcd(int a, int b) { if (b == 0) { (3) ; } return gcd(b, (4) ); } int main() { cin >> n; getDivisor(); ans = 0; for (int i = 1; i <= len; ++i) { for (int j = i + 1; j <= len; ++j) { ans = ( (5) ) % P; } } cout << ans << endl; return 0; }

NOIP2018普及组初赛试题c++(2)

NOIP2018普及组初赛试题c++(2)

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:●试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题 2 分,共计30 分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B. 键盘C. 鼠标D. 打印机2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23.1MB 等于()。

A.1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节4.广域网的英文缩写是()。

NB.WANC.MAN5.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A.1983B.1984C.1985D.19866.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键 F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母()。

A. AB. SC. DD. a7.根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8.以下排序算法中,不需要进行关键字比较操作的算法是()。

A.基数排序B.冒泡排序C.堆排序D.直接插入排序9.给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档