1、Noip初赛提高组C试题和答案解析Noip2014初赛提高组试题及答案(完整版)提高组C语言试题、单项选择题(每题1.5分,共22.5分)。1.以下哪个是面向对象的高级语言 ().A.汇编语言 B. C+ C. FORTRAN D. Basic2.1TB代表的字节数量是().A. 2 的10次方 B. 2 的20次方 C. 2 的30次方 D. 2 的40次方3.二进制数 00100100 和 00010101 的和是().A.00101000 B. 001010100 C. 01000101 D. 001110014.TCP协议属于哪一层协议().A.应用层 B. 传输层 C.网络层 D.
2、数据链路层5.下列几个32位IP地址中,书写错误的是().A. 162.105.128.27 B. 192.168.0.1 C. 256.256.129.1 D. 10.0.0.16.在无向图中,所有定点的度数之和是边数的 ()倍.A. 0.5 B. 1 C. 2 D. 47.对长度位n的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的 平均检索长度为().A. n/2 B. (n+1)/2 C. (n -1)/2 D. n/48.编译器的主要功能是().A.B.C.将一种高级语言翻译成另一种高级语言 将源程序翻译成指令将低级语言翻译成高级语言将源程序重新组合D.9.二进制数1
3、11.101所对应的十进制数是().A. 5.625 B. 5.5 C. 6.12510.若有变量 int x+a%3*(i nt)(x+y)%2/4A. 2.500000 B. 2.750000D. 7.62511.有以下结构体说明和变量定义, 结点。struct node n exta, float x, y, 且 的值大约是().C. 3.500000 D. 0.000000 如图所示,指针y,data next data nexta=7, x=2.5, y=4.7, 则表达式p、q、r分别指向一个链表中的三个续dataint data;struct node *n ext; *p,*q
4、,*r;以下程序段中错误的是现要将q和r所指结点的先后位置交换, 同时要保持链表的连续,().A.q-n ext = r-n ext; p- n ext = r; r-n ext = q;B.p-n ext = r; q-n ext = r-n ext; r-next = q;C.q-next = r-n ext; r-n ext = q; p-n ext = r;D.r-next = q; q_next = r-n ext; p_n ext = r;12.同时查找2n个数中的最大值和最小值,最少比较次数为 ().A. 3(n-2)/2 B. 4n-2 C. 3n-2 D. 2n-213.设G
5、是有6个结点的完全图,要得到一颗生成树,需要从 G中删去()条边.A. 6 B. 9 C. 10 D. 1514.以下时间复杂度不是 0(n2)的排序方法是().A.插入排序 B.归并排序 C.冒泡排序 D.选择排序15.以下程序实现了找第二小元素的算法。输入时 n个不等的数构成的数组 S,输出S中第二小的数SecondMin。在最坏的情况下,该算法需要做 ()次比较。if (S1 S2) FirstMin = S1;Seco ndMin = S2; else FirstMin = S2;Seco ndMin = S1;for (i = 3; i =n; i+)if (S1 Seco ndMi
6、 n)if (S1 FirstMi n)Seco ndMin = FirstMi n;FirstMin = S1; else Seco ndMin = S1;A. 2n B. n-1 C. 2n-3 D. 2n-2二、不定项选择题(每题1.5分,共7.5分)。1.若逻辑变量A、C为真,B、D为假,以下逻辑运算表达式真的有 ().A. (B V CV D) V DA A B. (- A A B) V C) A BC. (A A B) V (C A DV -A) D. A A (D V -C) A B2.下列()软件属于操作系统软件。A.Microsoft WordB.Win dows XPC.A
7、n droidD.Mac OS XE.Oracle3. 在NOI比赛中,对于程序设计题,选手提交的答案不得包含下列哪些内容 ().A.试图访问网络B.打开或创建题目规定的输入 /输出文件之外的其他文件C.运行其他程序D.改变文件系统的访问权限E.读写文件系统的管理信息4.以下哪些结构可以用来存储图 ().A.邻接矩阵 B. 栈 C. 邻接表 D. 二叉树5.下列各无符号十进制整数中,能用八位二进制表示的数有 ().A. 296 B. 133 C. 256 D. 199、问题求解1.有数字1,124,8,8 所组成的不同的四位数的个数是 2.A到E的最短距离是 如图所示,图中每条边上的数字表示该
8、边的长度,则从四、阅读程序写结果(共4题,每题8分,共32 分)1.#in elude int mai n() int a,b,l,tot,c1,c2;scanf( “ d%d , &a, &d);tot = 0;for (i=a; i=b; i+)c仁 i/10;c2=i%10;if (c1+c2)%3 =0)tot+;Printf( “ %dn,tot);Retur n 0;输入:7 31输出: 2.#i nclude Int fun (i nt n, int minNum, int maxNum) int tot, i;if (n=0)retue n 1;tot=0;for(i=minN
9、um; i=maxNum; i+)tot+=fu n(n-1, i=1, maxNum);return tot;int mia n()int n, m;Scanf( “ d%” , &n,&m);printf( “ dn , fum(m,1,n);return 0;输入:6 3输出: 3.#i nclude #in clude const int SIZE=100; const int LENGTH=25;的字典序小于b 和b 一样的字典序大于b/ strcmp(a,b) 0:aint mai n()char dictSIZELENGTH+1; in t ran kSIZE;int in dS
10、IZE;int i,j,n,tmp;scanf( “ %d,&n);for (i=1;i=n ;i+)rank i=iin di=i;scanf( “ %s , dicti);for(i=1;i n ;i+)for(j=1;j0) tmp=i ndj;in dj=i ndj+1;in dj+1=tmp;for(i=1;i=n ;i+)ran ki ndi=i;for(i=1:i=n ;i+)ptintf(%d ” ,ranki);printf( “ n ”);return 0;输入:7aaaababbbaaaaaacccaa输出: 4.#ni clude const int SIZE=100;
11、int aliveSIZE;int n;int n ext(i nt num)donu m+;if(numn)num=1;while (alive num=0);return num;int mai n()int m,i,j, num;seanf( “ d%d,&n,&m);for(i=1;i=n ;i+)alivei=1;num=1;for(i=1;i=n ;j+) for(j+1;j=m;j+)num=n ext (nu m);printf( “ %d ,num);alive num=0;if(i n)num=n ext (nu m);prin tf(n);return 0;输入:11 3
12、输出: 五、完善程序1.(双栈模拟数组) 只使用两个栈结构 staek1和staek2,模拟对数组的随机读取。作为栈结构,staek1和staek2只能访问栈顶(最后一个有效元素) 。栈顶指针top1和top2均指向栈顶元素的下一个位置。输入第一行包含的两个整数,分别是数组长度 n和访问次数m,中间用单个空格隔开。第二行包含n个整数,一次歌出数组各项(数组下标从 0到a-1 )。第三行包含 m个整数,需要访问的数组下标。对于每次访问,输出对应的数组元素。#i nclude consr int SIZE=100;int stack1SIZE,stack2SIZE;int top1,top2;in
13、t n,m,i,j;void clearStack()int I;for(i=top1;iSIZE;i+)stacki=0;for(i=top2;iSIZE;i+)stacki=0;int mai n()scanf(%d,%d ”,&n,&m);for(i=0i n; i+)scanf( “ %d,&stack1i);top1= ( 1) ;top2= ( 2) ;for(j=0jm;j+)scanf( “ %d ,&i);while(itop1-1)top2-; ;top1+;clearstack();printf( “ dn” ,stack1 (5); return 0;2.(最大矩阵和)
14、给出M行N列的整数矩阵,就最大的子矩阵和(子矩阵不能为空) 。输入第一行包含两个整数 M和N,即矩阵的行数和列数。之后 M行,每行N个整数,描述整个矩阵。程序最终输出最大的子矩阵和。 (第一空2分,其余3分,共14分)#i nclude const int SIZE=100;int matrixSIZE+1SIZE+1;int rowsumSIZE+1SIZE+1; rowsumij 记录第 i 行前 j 个数的和int m,n ,i,j,first,last,area,a ns;int mai n()scanf( “ %d %d ,&m,&n);for(i=1;i=m;i+)for(j=1;
15、j=n ;j+)scanf( “ %d ,&matrixij);an s=matrix (1) ; for(i=1;i=m;i+) ;for(i=1;i=m;i+)for(j=1;j=n ;j+)rowsumij= (3) ; for(first=1;first=n ;first+)for(last=first;last=n ;last+)(4) ; for(i=1;ia ns)an s=area;if(area0)area=0;printf( “ dn”,ans);return 0;Noip2014初赛提高组C语言试题参考答案单项选择题(共15题,每题1.5分,共计22.5分)1234567
16、8BDDBCCBB9101112131415DADCCBC不定项选择题(共5题,每题1.5分,共计7.5分;每题有一个或多个正确选项,没有部分分)12345ABBCDABCDEACBD三、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)1. 102 2. 15 四、 阅读程序写结果(共4题,每题8分,共计32分)1. 8 2. 20 3._ 2 5 6 3 4 7 1 4. _ 3 6 9 1 5 10 4 11 8 2 7 _五、 完善程序(共计28分)1. (1) n ( 2.5 分)(2) 0 (2.5 分)(3) stack2top2=stack1top1 (3分)(4) stack1top1=stack2top2 (3分)(5) top1-1 (3分)2.(1) 11 (2 分)(2) rowsumi0=0 (3分)(3) rowsumij-1 + matrixij (3分)(4) area=0 (3分)(5) rowsumilast-rowsumifirst-1 (3分)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1