第十二届全国青少年信息学奥林匹克联赛初赛试题及答案c语言如何去学
普及组、C语言
第十二届全国青少年信息学奥林匹克联赛初赛试题及答案(普及组、C语言)普及组 C语言二小时完成) 一、单项选择题(共20题,每题1.5分,共计30分。每题有且仅有一个正确答案) 1.在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是( )。
A.沃尔夫奖 B.诺贝尔奖 C.菲尔兹奖 D.图灵奖 2.在下面各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境是( )。
A.g/g++ B.Turbo Pascal C.RHIDE D.free pascal 3.以下断电之后仍能保存数据的有( )。
A.寄存器 B.ROM C.RAM D.高速缓存 4.Linux是一种( )。
A.绘图软件 B.程序设计语言 C.操作系统 D.网络浏览器5.CPU是( )的简称。
A.硬盘 B. ___处理器 C.高级程序语言 D.核心寄存器 6.在计算机中,防火墙的作用是( )。
A.防止火灾蔓延 B.防止网络攻击 C.防止计算机死机 D.防止使用者误删除数据 7.在下列关于计算机语言的说法中,不正确的是( )。
A.Pascal和C都是编译执行的高级语言 B.高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上 C.C++是历史上的第一个支持面向对象的计算机语言 D.与汇编语言相比,高级语言程序更容易阅读 8.在下列关于计算机算法的说法中,不正确的是( )。
A.一个正确的算法至少要有一个输入 B.算法的改进,在很大程度上推进了计算机科学与技术的进步 C.判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性 D.目前仍然存在许多涉及到国计民生的重大课题,还没有到能够在计算机上实施的有效算法 9.在下列各种排序算法中,不是以“比较”作为主要操作的算法是( )。
A.选择排序 B.冒泡排序 C.插入排序 D.基数排序 10.在编程时(使用任一种高级语言,不一定是C),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上( )。
A.没有区别 B.按行读的方式要高一些 C.按列读的方式要高一些D.取决于数组的存储方式 11.在C语言中,表达式21^2的值是( )。
A.441 B.42 C.23 D.24 12.在C语言中,判断a不等于0且b 不等于0的正确的条件表达式是( )。
A.!a==0 || !b==0 B.!(a==0)&&(b==0) C.!(a==0&&b==0) D.a&&b 13.某个车站呈狭长形,宽
度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,进,出,出,进,进,进,出,出”。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( )。
A.1,2,3,4,5 B.1,2,4,5,7 C.1,4,3,7,6 D.1,4,3,7,2 14.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为( )。
A.10 B.11 C.12 D.13 15.与十进制数1770对应的八进制数是( )。
A.3350 B.3351 C.3352 D.3540 16.将5个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较。完成从小到大的排序。
A.6 B.7 C.8 D.9 17.设A=B=D=ture,C=false,以下逻辑运算表达式值为真的有( )。
A.(﹁A∧B)∨(C∧D) B.﹁((A∨B∨D)∧C) C.﹁A∧(B∨C∨D) D.(A∧B∧C)∨﹁D 18.(xx)16+(32)8的结果是( )。
A.(8234)10 B.(202B)16 C.(xx6)8 D.( ___0000110)2 19.设栈S的初始状态为空,元素a,b,c,d,e依次入栈,以下出栈序列不可能出现的有( )。
A.a,b,c,e,d B.b,c,a,e,d C.a,e,c,b,d D.d,c,e,b,a 20.已知6个结点的二叉树的先根+遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是3 2 5 6 4 1,则该二叉树的可能的中根遍历是( )。
A.3 2 1 4 6 5 B.3 2 1 5 4 6 C.2 1 3 5 4 6 D.2 3 1 4 6 5 二、问题求解(共2题,每题5分,共计10分) 1.(寻)现有80枚硬币,其中有一枚是,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以出?你还要指出第1次的称重方法。请写出你的结果:
___________________________________________________________ _____。
2.(取石子游戏)现有5堆石子,石子数依次为3,5,7,19,50,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取),取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论乙怎样取,甲只要不失误,都能获胜)?如果有,甲第一步应该在哪一堆里取多少?请写出你的结果:
___________________________________________________________ _________。
三、阅读程序写结果(共4题,每题8分,共计32分) 1. #include int ___in() { int i,u[4],a,b,x,y=10; for(i=0;i<=3;i++) scanf(“%d“,&u[i]); a=(u[0]+u[1]+u[2]+u[3])/7;
b=u[0]/((u[1]-u[2])/u[3]); x=(u[0]+a+2)-u[(u[3]+3)%4];
if(x>10) y+=(b*100-u[3])/(u[u[0]%3]*5); else y+=20+(b*100-u[3])/(u[u[0]%3]*5); printf(“%d,%d\n“,x,y); return 0; }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。