Noip2010提高组初赛试题及答案(C语言)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第十六届全国青少年信息学奥林匹克联赛初赛试题(提高组C语言二小时完成)一.单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确选项。)1.与16进制数A1.2等值的10进制数是()A.101.2B.111.4C.161.125D.177.252.一个字节(byte)由()个二进制位组成。A.8B.16C.32D.以上都有可能3.一下逻辑表达式的值恒为真的是()A.P∨(┐P∧Q)∨(┐P∧┐Q)B.Q∨(┐P∧Q)∨(P∨┐Q)C.P∨Q∨(P∧┐Q)∨(┐P∧Q)D.P∨┐Q∨(P∧┐Q)∨(┐P∧┐Q)4.Linux下可执行文件的默认扩展名为()A.exeB.comC.dllD.都不是5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=()也成立。A.100B.144C.164D.1966.提出“存储程序”的计算机工作原理的是()。A.克劳德·香农B.戈登·摩尔C.查尔斯·巴比奇D.冯·诺依曼7.前缀表达式“+3*2+512”的值是()A.23B.25C.37D.658.主存储器的存取速度比中央处理器(CPU)的工作速度慢很多,从而使得后者的效率受到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于聚集在一个较小的连续区域中。于是,为了提高系统整体的执行效率,在CPU中引入了()A.寄存器B.高速缓存C.闪存D.外存9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右一次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第K号结点的父结点如果存在的话,应当存放在数组的()号位置。A.2kB.2k+1C.k/2下取整D.(k+1)/2下取整10.一下竞赛活动中历史最悠久的是()A.全国青少年信息学奥林匹克联赛(NOIP)B.全国青少年信息学奥林匹克竞赛(NOI)C.国际信息学奥林匹克竞赛(IOI)D.亚太地区信息学奥林匹克竞赛(APIO)二.不定项选择题(共10题,每题1.5分,共计15分。每题有一个或多个正确选项。多选或少选均不得分。)1.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第一个出栈的是R3,那么第五个出栈的可能是()。A.R1B.R2C.R4D.R52.Pascal语言、C语言、和C++语言都属于()A.高级语言B.自然语言C.解释型语言D.编译性语言3.原地排序是指在排序过程中(除了存储待排序元素以外的)付诸空间的大小与数据规模无关的排序算法。一下属于原地排序的有()A.冒泡排序B.插入排序C.基数排序D.选择排序4.在整数的补码表示法中,以下说法正确的是()A.只有负整数的编码最高为1B.在编码的位数确定后,所能表示的最小整数和最大整数的绝对值相同C.整数0只有唯一的一个编码D.两个用补码表示的数相加时,如果在最高位产生进位,则表示运算溢出5.一颗二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是()A.0B.2C.4D.66.在下列HTML语句中,可以正确产生一个指向NOI官方网站的超链接的是()A.aurl=网站/aB.aherf=网站/aC.a=网站/a7.关于拓扑排序,下面说法正确的是()A.所有连通的有向图都可以实现拓扑排序B.对同一个图而言,拓扑排序的结果是唯一的C.拓扑排序中入度为0的结点总会排在入度大于0的结点的前面D.拓扑排序结果序列中的第一个结点一定是入度为0的结点8.一个平面的法线是指与该平面垂直的直线。过点(1,1,1)、(0,3,0)、(2,0,0)的平面的法线是()A.过点(1,1,1)、(2,3,3)的直线B.过点(1,1,1)、(3,2,1)的直线C.过点(0,3,0)、(-3,1,1)的直线D.过点(2,0,0)、(5,2,1)的直线9.双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链表中的一个结点,它的左右结点均非空。现要求删除结点P,则下面语句序列中正确的是()A.p-rlink-llink=p-rlink;p-llink-rlink=p-llink;free(p);B.P-llink-rlink=p-rlink;p-rlink-llnik=p-llink;free(p);C.p-rlink-llink=p-llink;p-rlink-llink-rlink=p-rlink;free(p);D.p-llink-rlink=p-rlink;p-llink-rlink-llink=p-llink;free(p);10.今年(2010)发生的事件有()A.惠普实验室研究员VinayDeolalikar自称证明了P≠NPB.英特尔公司收购计算机安全软件公司迈克菲(McAfee)C.苹果公司发布iPhone4手机D.微软公司发布Windows7操作系统四.阅读程序写结果(共4题,每题7分,共计28分)1.#includestdio.h#defineSIZE10intmain(){intdata[SIZE],i,j,cnt,n,m;scanf(%d%d\n,&n,&m);for(i=1;i=n;i++)scanf(%d,&data[i]);for(i=1;i=n;i++){cnt=0;for(j=1;j=n;j++)if((data[i]data[j])||(data[j]==data[i]&&ji))cnt++;if(cnt==m)printf(%d\n,data[i]);}getch();(此语句在windows2000以上系统用winTC编译C时需要加入,用以暂停查看屏幕)return0;}输入:5296-801687输出:2.#includestdio.h#defineSIZE100intmain(){intna,nb,a[SIZE],b[SIZE],i,j,k;scanf(%d\n,&na);for(i=1;i=na;i++)scanf(%d,&a[i]);scanf(%d\n,&nb);for(i=1;i=nb;i++)scanf(%d,&b[i]);i=1;j=1;while((i=na)&&(j=nb)){if(a[i]=b[j]){printf(%d,a[i]);i++;}else{printf(%d,b[j]);j++;}}if(i=na)for(k=i;k=na;k++)printf(%d,a[k]);if(j=nb)for(k=j;k=nb;k++)printf(%d,b[k]);getch();return0;}输入:5135794261014输出:3.#includestdio.h#defineNUM5intr(intn){inti;if(n=NUM)returnn;for(i=1;i=NUM;i++)if(r(n-i)0)returni;return-1;}intmain(){intn;scanf(%d,&n);printf(%d\n,r(n));return0;}输入:16输出:__________________________________4.#includestdio.h#includestring.h#defineSIZE100intn,m,map[SIZE][SIZE],r[SIZE],find;intsuccessful(){inti;for(i=1;i=n;i++)if(map[r[i]][r[i%n+1]]==0)return0;return1;}voidswap(int*a,int*b){intt;t=*a;*a=*b;*b=t;}voidperm(intleft,intright){inti;if(find==1)return;if(leftright){if(successful()==1){for(i=1;i=n;i++)printf(%d,r[i]);find=1;}return;}for(i=left;i=right;i++){swap(r+left,r+i);perm(left+1,right);swap(r+left,r+i);}}intmain(){intx,y,i;scanf(%d%d,&n,&m);memset(map,0,sizeof(map));for(i=1;i=m;i++){scanf(%d%d,&x,&y);map[x][y]=1;map[y][x]=1;}for(i=1;i=n;i++)r[i]=i;find=0;perm(1,n);if(find==0)printf(Nosolution!\n);return0;}输入:912122334455661172738485969输出:________________________________________________五、完善程序((((第1111空2222分,其余10101010空,每空2.52.52.52.5分,共计27272727分))))1.(过河问题)在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同.两个人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2=N1000)和这N个人单独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸.例如,有3个人甲乙丙,他们单独过桥的时间分别为124,则总共最少需要的时间为7.具体方法是:甲乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲,丙在一起过桥到河的左岸,总时间为2+1+4=7.#includestdio.h#includestdlib.h#defineSIZE100#defineINFINITY10000#defineLEFT1#defineRIGHT0#defineLEFT_TO_RIGHT1#defineRIGHT_TO_LEFT0intn,time[SIZE],pos[SIZE];intmax(inta,intb){if(ab)returna;elsereturnb;}intgo(intstage){inti,j,num,tmp,ans;if(stage==RIGHT_TO_LEFT){num=0;ans=0;for(i=1;i=n;i++)if(pos[i]==RIGHT){num++;if(time[i]ans)ans=time[i];}if(①__________________)returnans;ans=INFINITY;for(i=1;i=n-1;i++)if(pos[i]==RIGHT)for(j=i+1;j=n;j++)if(pos[j]==RIGHT){pos[i]=LEFT;pos[j]=LEFT;tmp=max(time[i],time[j])+②___________________________;if(tmpans)ans=tmp;pos[i]=RIGHT;pos[j]=RIGHT;}Returnans;}if(stage==LEFT_TO_RIGHT){ans=INFINITY;for(i=1;i=n;i++)if(③__________________){pos[i]=RIGHT;tmp=time[i]+④_______________________;if(tmpans)ans=tmp;⑤_

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功