岗位职责 实施方案 自查报告 整改措施 先进事迹材料 应急预案 工作计划 调研报告 调查报告 工作汇报 其他范文
首页 > 其他范文 > 其他范文

Noip2014初赛提高组C试题及答案(完整版)

作者:臣磊如时间:2020-12-10 下载本文

Noip2014初赛提高组试题及答案(完整版)

提高组C语言试题 一、单项选择题(每题1.5分,共22.5分)。

1.以下哪个是面向对象的高级语言().A.汇编语言 B.C++ C.FORTRAN D.Basic 2.1TB代表的字节数量是().A.2的10次方 B.2的20次方 C.2的30次方 D.2的40次方 3.二进制数00100100和00010101的和是().A.00101000 B.001010100 C.01000101 D.00111001 4.TCP协议属于哪一层协议().A.应用层 B.传输层 C.网络层 D.数据链路层 5.下列几个32位IP地址中,书写错误的是().A.162.105.128.27 B.192.168.0.1 C.256.256.129.1 D.10.0.0.1 6.在无向图中,所有定点的度数之和是边数的()倍.A.0.5 B.1 C.2 D.4 7.对长度位n的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的平均检索长度为().A.n/2 B.(n+1)/2 C.(n-1)/2 D.n/4 8.编译器的主要功能是().A.将一种高级语言翻译成另一种高级语言 B.将源程序翻译成指令 C.将低级语言翻译成高级语言 D.将源程序重新组合 9.二进制数111.101所对应的十进制数是().A.5.625 B.5.5 C.6.125 D.7.625 10.若有变量 int a, float x, y, 且 a=7, x=2.5, y=4.7, 则表达式 x+a%3*(int)(x+y)%2/4的值大约是().A.2.500000 B.2.750000 C.3.500000 D.0.000000 11.有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个续结点。

struct node { data next data next data next int data;struct node *next;↑ p ↑ q ↑ r } *p,*q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下程序段中错误的是().A.q->next = r->next;p-> next = r;r->next = q;B.p->next = r;q->next = r->next;r->next = q;C.q->next = r->next;r->next = q;p->next = r;D.r->next = q;q->next = r->next;p->next = r;12.同时查找2n 个数中的最大值和最小值,最少比较次数为().A.3(n-2)/2 B.4n-2 C.3n-2 D.2n-2 13.设G是有6个结点的完全图,要得到一颗生成树,需要从G中删去()条边.A.6 B.9 C.10 D.15 14.以下时间复杂度不是O(n2)的排序方法是().A.插入排序 B.归并排序 C.冒泡排序 D.选择排序 15.以下程序实现了找第二小元素的算法。输入时n个不等的数构成的数组S,输出S中第二小的数SecondMin。在最坏的情况下,该算法需要做()次比较。

if(S[1] < S[2]){ FirstMin = S[1];SecondMin = S[2];} else { FirstMin = S[2];SecondMin = S[1];} for(i = 3;i <=n;i++)if(S[1] < SecondMin)if(S[1] < FirstMin){ SecondMin = FirstMin;FirstMin = S[1];} else { SecondMin = S[1];} A.2n B.n-1 C.2n-3 D.2n-2 二、不定项选择题(每题1.5分,共7.5分)。

1.若逻辑变量A、C为真,B、D为假,以下逻辑运算表达式真的有().A.(B∨C∨D)∨D∧A B.((-A∧B)∨C)∧B C.(A∧B)∨(C∧D∨-A)D.A∧(D∨-C)∧B 2.下列()软件属于操作系统软件。

A.Microsoft Word B.Windows XP C.Android D.Mac OS X E.Oracle 3.在NOI比赛中,对于程序设计题,选手提交的答案不得包含下列哪些内容().A.试图访问网络 B.打开或创建题目规定的输入/输出文件之外的其他文件 C.运行其他程序 D.改变文件系统的访问权限 E.读写文件系统的管理信息 4.以下哪些结构可以用来存储图().A.邻接矩阵 B.栈 C.邻接表 D.二叉树 5.下列各无符号十进制整数中,能用八位二进制表示的数有().A.296 B.133 C.256 D.199 三、问题求解。

1.有数字1,1,2,4,8,8所组成的不同的四位数的个数是_____.2.如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是_____.四、阅读程序写结果(共4题,每题8分,共32分)。

1.#include int main(){ int a,b,I,tot,c1,c2;scanf(“%d%d”, &a, &d);tot = 0;for(i=a;i<=b;i++){ c1=i/10;c2=i%10;if((c1+c2)%3 ==0)tot++;} Printf(“%d\n“,tot);Return 0;} 输入:7 31 输出:_________ 2.#include Int fun(int n, int minNum, int maxNum){ int tot, i;if(n==0)retuen 1;tot=0;for(i=minNum;i<=maxNum;i++)tot+=fun(n-1, i=1, maxNum);return tot;} int mian(){int n, m;Scanf(“%d%d”, &n,&m);printf(“%d\n”, fum(m,1,n));return 0;} 输入:

6 3 输出:________ 3.#include #include const int SIZE=100;const int LENGTH=25;// strcmp(a,b)<0:a的字典序小于b // strcmp(a,b)=1:a和b一样 // strcmp(a,b)>0:a的字典序大于b int main()char dict[SIZE][LENGTH+1];int rank[SIZE];int ind[SIZE];int i,j,n,tmp;scanf(“%d”,&n);for(i=1;i<=n;i++){rank [i]=i ind[i]=i;scanf(“%s”, dict[i]);} for(i=1;i0){tmp=ind[j];ind[j]=ind[j+1];ind[j+1]=tmp;} for(i=1;i<=n;i++)rank[ind[i]]=i;for(i=1:i<=n;i++)ptintf(%d”,rank[i]);printf(“\n”);return 0;} 输入:

7 aaa aba bbb aaa aaa ccc aa 输出:______ 4.#niclude const int SIZE=100;int alive[SIZE];int n;int next(int num){do{ num++;if(num>n)num=1;}while(alive[num]==0);return num;} int main(){int m,i,j,num;scanf(“%d%d”,&n,&m);for(i=1;i<=n;i++)alive[i]=1;num=1;for(i=1;i<=n;j++){ for(j+1;j<=m;j++)num=next(num);printf(“%d”,num);alive[num]=0;if(i

11 3 输出:_________ 五、完善程序 1.(双栈模拟数组)只使用两个栈结构stack1和stack2,模拟对数组的随机读取。作为栈结构,stack1和stack2只能访问栈顶(最后一个有效元素)。栈顶指针top1和top2均指向栈顶元素的下一个位置。

输入第一行包含的两个整数,分别是数组长度n和访问次数m,中间用单个空格隔开。

第二行包含n个整数,一次歌出数组各项(数组下标从0到a-1)。第三行包含m个整数,需要访问的数组下标。对于每次访问,输出对应的数组元素。

#include consr int SIZE=100;int stack1[SIZE],stack2[SIZE];int top1,top2;int n,m,i,j;void clearStack(){int I;for(i=top1;itop1-1){ top2--;(4);top1++;} clearstack();printf(“%d\n”,stack1[(5)]);} return 0;} 2.(最大矩阵和)给出M行N列的整数矩阵,就最大的子矩阵和(子矩阵不能为空)。

输入第一行包含两个整数M和N,即矩阵的行数和列数。之后M行,每行N个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(第一空2分,其余3分,共14分)

#include const int SIZE=100;int matrix[SIZE+1][SIZE+1];int rowsum[SIZE+1][SIZE+1];//rowsum[i][j]记录第i行前j个数的和 int m,n,i,j,first,last,area,ans;int main(){ scanf(“%d %d”,&m,&n);for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf(“%d”,&matrix[i][j]);ans=matrix(1);for(i=1;i<=m;i++)(2);for(i=1;i<=m;i++)for(j=1;j<=n;j++)rowsum[i][j]=(3);for(first=1;first<=n;first++)for(last=first;last<=n;last++){(4);for(i=1;i<=m;i++){ area+=(5);if(area>ans)ans=area;if(area<0)area=0;} } printf(“%d\n”,ans);return 0;} Noip2014初赛提高组C语言试题参考答案 一、单项选择题(共15题,每题1.5分,共计22.5分)

1 2 3 4 5 6 7 8 B D D B C C B B 9 10 11 12 13 14 15 D A D C C B C 二、不定项选择题(共5题,每题1.5分,共计7.5分;

每题有一个或多个正确选项,没有部分分)

1 2 3 4 5 AB BCD ABCDE AC BD 三、问题求解(共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)_______________ stack2[top2]=stack1[top1] ____________(3分)

(4)______________ stack1[top1]=stack2[top2] _____________(3分)

(5)________________________ top1-1 ______________________(3分)

2.(1)________________________ [1][1] ______________________(2分)

(2)_____________________rowsum[i][0]=0___________________(3分)

(3)_____________ rowsum[i][j-1] + matrix[i][j] __________(3分)

(4)_________________________area=0 _______________________(3分)

(5)___________ rowsum[i][last]-rowsum[i][first-1] ________(3分)

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

NOIP2014(第二十届)初赛普及组C语言试题及答案

NOIP2016提高组C++初赛试题

第十二届全国青少年信息学奥林匹克联赛初赛试题及答案普及组、C语言

NOIP2011-17届NOIP(C语言)普及组初赛试题

《NOIP2011-17届NOIP(C语言)普及组初赛试题.docx》
NOIP2011-17届NOIP(C语言)普及组初赛试题
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
相关文章
猜你喜欢