当前位置:首页 >> 学科竞赛 >>

第二十三届全国青少年信息学奥林匹克C语言初赛试题


第二十三届 NOIP(C 语言)普及组初赛试题
竞赛时间: 2017 年 10 月 14 日 14:30~ 16:30 选手注意: 不得使用任何电子设备 (如计算器、 手机、 电子词典等 ) 或查阅任何书籍资料。
一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选项) 1.在 8 位二进制补码中,10101011 表示的数是十进制下的( ) A. 43 B. -85 C. -43 D。 -84 2.计算机存储数据的基本单位是( ) A. bit B. Byte C. GB D. KB 3.下列协议中与电子邮件无关的是( ) A. POP3 B. SMTP C WTO D IMAP

4.分辨率为 800*600、16 位色的位图,存储图像信息所需的空间为( ) A. 937.5KB B. 4218.75KB C. 4320KB D. 2880KB 5.计算机应用的最早领域是( ) A. 数值计算 B. 人工智能 C. 机器人 6.下列不属于面向对象程序设计语言的是( ) A. C B. C++ C. Java D. C# D. 过程控制

7. NOI 的中文意思是( ) A. 中国信息学联赛 B. 全国青少年信息学奥林匹克竞赛 C. 中国青少年信息学奥林匹克竞赛 D. 中国计算机学会 8. 2017 年 10 月 1 日是星期日,1999 年 10 月 1 日是( ) A. 星期三 B.星期日 C. 星期五 D.星期二 9.甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修 3 门,则 不同的选修方案共有( ) A. 36 B. 48 C. 96 D. 192 10.设 G 是有 n 个结点、m 条边(n≤m)的连接图,必须删去 G 的( )条边,才能使 得 G 变成一棵树。 A. m-n+1 B. m-n C. m+n+1 D. n-m+1 11.对于给定的序列{ak},我们把(i , j)称为逆序对当且仅当 i<j 且 ai > aj .那么序列 1, 7,2,3,5,4 的逆序对数为( )个 A. 4 B. 5 C. 6 D. 7 12.表达式 a*(b+c)*d 的后缀形式是( ) A. abcd*+* B. abc+*d* C. a*bc+*d D. b+c*a*d 13.向一个栈顶指针为 hs 的链式栈中插入一个指针 s 指向的结点时,应执行( ) A. hs->next =s ; B. s->next=hs; hs=s ; C. s->next=hs->next;hs->next=s; D. s->next=hs; hs=hs->next; 14.若串 S=“copyright” ,其子串的个数是( ) A. 72 B. 45 C. 46 D. 36 15.十进制小数 13.375 对应的二进制数是( ) A. 1101.011 B. 10111.011 C. 1101.101 D. 1010.01 16. 对于入栈顺序为 a,b,c,d,e,f,g 的序列,下列( )不可能是合法的出栈序列。 A. a,b,c,d,e,f,g B. a,d,c,b,e,g,f C. a,d,b,c,g,f,e D. g,f,e,d,c,b,a

17.设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的数组, 任何以元素比较作为基本运算的归并算法在最坏情况下至少要做( )次比较。 A. n2 B. n log n C. 2n D. 2n-1 18. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 19. 一家四口人,至少两个人生日属于同一月份的概率是( 于每个月份的概率相同且不同人之间相互独立) 。 A. 1/12 B. 1/144 C. 41/96 D. 3/4 20.以下和计算机领域密切相关的奖项是( ) A. 奥斯卡奖 B. 图灵奖 C. 诺贝尔奖 ) (假定每个人生日属

D. 普利策奖

二、问题求解(共 2 题,每题 5 分,共计 10 分) 1.一个人站在坐标(0,0)处,面朝 x 轴正方向。第一轮,他向前走 1 单位距离,然后 右转;第二轮,他向前走 2 单位距离,然后右转;第三轮,他向前走 3 单位 距离,然 后右转??他一直这么走下去。请问第 2017 轮后,他的坐标是: (___,____) 。 (请在 答题纸上用逗号隔开两空答案)

1 0 0 1 0 0 0 1 0 1 0 1 1

2.如右图所示,共有 13 个格子。对任何一个格子进行一次操作,会使得它自己以及与 它上下左右相邻的格子中的数字改变(由 1 变 0,或由 0 变 1) 。现在要使得所有的格 子中的数字都变为 0,至少需要_____次操作。

三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. #include <stdio.h> #include <string.h> int main( ) int t[256]; char s[10]; int I; scanf(“%s”, s); for ( i=0; i< 256; i++) t[i]=0; for ( i=0; i< strlen(s); i++) t[s[i]]++ ; for ( i=0 ; i< strlen (s) ; i++)

if (t[s[i]]==1 { printf(“ %c\n”,s[i] ; return 0 ; } Printf( “ no\n”); Return 0; } 输入: xyzxyw 输出:___________. 2. #include < stdio.h> int g( int m, int n, int x ) { int ans=0; int i; if ( n==1) return 1; for ( i=x ; i<=m/n; i++) ans += g( m-i , n-1, i ); return ans; } int main( ) { int t, m, n; scanf(“ %d%d”, &m,&n); printf(“ %d\n”,g( m , n, 0 )); return 0; } 输入: 7 3 输出:__________. 3. #include <stdio.h> #include <string.h> int main( ) { char ch[200]; int a[200]; int b[200]; int n, i , t, res ; scanf(“ %s”, ch ); n=strlen( ch ); 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; } printf( “%d\n”, res ); return 0; } 输入: 1001101011001101101011110001 输出:____________________________. 4. #include <stdio.h> int main( ) { int n, m; scanf( “ %d%d”, &n, &m) ; int x=1 ; int y=1 ; int dx=1 ; int dy=1; int cnt=0 ; while ( cnt !=2 ) { cnt =0 ; x=x + dx ; y=y + dy ; if ( x==1||x==n ) { ++cnt ; dx = - dx ; } if ( y==1||y==m ) { ++cnt ; dy = -dy ; } } printf( “%d %d\n” , x, y ); return 0 ; } 输入 1: 4 3 输出 2: _________________.(3 分) 输入 2: 2017 1014 输出 2: ________________ ( 5 分)。

四、完善程序 (共 2 题,每题 14 分,共计 28 分) 1. (快速幂)请完善下面的程序,该程序使用分治法求 xp mod m 的值。 (第一空 2 分,其余 3 分) 输入:三个不超过 10000 的正整数 x, p, m . 输出:xp mod m 的值。 提示:若 p 为偶数,xp=(x2)p/2 ; 若 p 为奇数,xp=x*(x2) ( p - 1)/2 . #include <stdio.h> int x, p, m, i , result ; int main( ) { scanf( “%d%d%d”, &x, &p, &m) ; result = __(1)_____; while ( __(2)______) { if ( p % 2 ==1 ) result = __(3)_______; p/=2 ; x = __(4)_______; } printf( “ %d\n”, __(5)_____) ; return 0 ; } 2. (切割绳子) 有 n 条绳子,每条绳子的长度已知且均为正整数。绳子可以以任意正整数长 度切割,但不可以连接。现在要从这些绳子中切割出 m 条长度相同的绳段,求绳段的最大 长度是多少。 (第一、二空 2.5 分,其余 3 分) 输入:第一行是一个不超过 100 的正整数 n,第二行是 n 个不超过 106 的正整数,表示每条 绳子的长度,第三行是一个不超过 108 的正整数 m。 输出 :绳段的最大长度,若无法切割,输出 Failed. #include <stdio.h> int n , m, i, lbound, ubound, mid, count ; int len[100]; //绳子长度 int main( ) { scanf( “ %d”, &n) ; count=0 ; for ( i=0; i <n ; i++ ) { scanf( “%d” , &len[i] ); ____(1)________. } scanf( “%d”, &m ); if ( ___(2)_____) { printf(“ Failed\n” ) ; return 0 ; } lbound =1 ;

ubound =1000000 ; while ( ____(3)______ ) { mid = ___(4)______; count =0 ; for ( i=0 ; i < n ; i++ ) ___(5)_____ ; if ( count < m) ubound = mid – 1 ; else lbound = mid ; } printf ( “%d\n”, lbound ); return 0 ; }


赞助商链接
相关文章:
第二十届全国青少年信息学奥林匹克竞赛初赛提高组C语言...
第二十届全国青少年信息学奥林匹克竞赛初赛提高组C语言试题(附答案)_学科竞赛_高中教育_教育专区。第二十届全国青少年信息学奥林匹克竞赛初赛 提高组 C 语言试题 ...
第二十届全国青少年信息学奥林匹克竞赛初赛提高组C语言...
第二十届全国青少年信息学奥林匹克竞赛初赛提高组C语言试题_学科竞赛_高中教育_教育专区。第二十届全国青少年信息学奥林匹克竞赛初赛 提高组 C 语言试题一、单项选择...
NOIP2014(第二十届)初赛普及组C语言试题及答案
NOIP2014(第二十届)初赛普及组C语言试题及答案_学科竞赛_初中教育_教育专区。NOIP2014初赛普及组C语言试题及答案; 第二十届全国青少年信息学奥林匹克联赛初赛普及组...
第十届全国青少年信息学奥林匹克联赛初赛试题及答案 c语言
第十届全国青少年信息学奥林匹克联赛初赛试题及答案 c语言_学科竞赛_初中教育_教育专区。第十届全国青少年信息学奥林匹克联赛初赛试题 ( 普及组 C 语言 二小时完成...
NOIP2015第二十一届全国青少年信息学奥林匹克联赛初赛...
NOIP2015第二十届全国青少年信息学奥林匹克联赛初赛提高组C语言试题_学科竞赛_高中教育_教育专区。NOIP2015第二十届全国青少年信息学奥林匹克联赛初赛提高组C语言...
第二十一届(2015)全国青少年信息学奥林匹克联赛初赛试...
第二十一届(2015)全国青少年信息学奥林匹克联赛初赛试题(含答案)_学科竞赛_高中教育_教育专区。第二十届全国青少年信息学奥林匹克联赛初赛 普及组 Pascal 语言...
...第二十届全国青少年信息学奥林匹克联赛初赛(普及组...
NOIP(2014)第二十届全国青少年信息学奥林匹克联赛初赛(普及组试题及答案)_学科...A. 汇编语言 B. C++ C. Fortran D. Basic 2、1TB 代表的字节数量是( )...
2008年第14届全国青少年信息学奥林匹克联赛普及组(C语...
第十四届全国青少年信息学奥林匹克联赛初赛试题 ( 普及组 C 语言 二小时完成 ) ●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●一、 单项选择...
2013第十九届全国青少年信息学奥林匹克联赛普及组初赛试题
2013 年第十九届全国青少年信息学奥林匹克联赛初赛普及组 Pascal 语言试题 一、...二进制数 11.01 在十进制下是( )。 A. 3.25 B. 4.125 C. 6.25 D....
...2010十六届全国青少年信息学奥赛普及组 c语言_图文
cf noip 2010十六届全国青少年信息学奥赛普及组 c语言_六年级英语_英语_小学...NOIP2009普及组初赛试题... 10页 免费 喜欢此文档的还喜欢 第十四届信息学奥赛...
更多相关标签: