工作总结
职业工作总结 半年工作总结 年终工作总结 学校工作总结 公司工作总结 销售工作总结 医院工作总结 社区工作总结 个人工作总结 安全生产工作总结 工作总结范文 工作总结报告
优秀作文
英文作文 满分作文 小学作文 初中作文 高中作文 300字作文 400字作文 500字作文 600字作文 800字作文 读后感 观后感 日记 书信
合同协议
服务合同 IT行业合同 医疗医药合同 涉外合同 教育合同 婚姻家庭合同 银行信托合同 担保合同 买卖合同 借款合同 租赁合同 承揽合同 运输合同 经营合同 劳动合同 委托合同 房地产商投资合同 招标合同 赠与合同 合同样本 技术合同 保险合同 用工合同 合作协议 租房合同 购销合同 装修合同 销售合同 购房合同 采购合同 供货合同 劳务合同 承包合同 聘用合同 转让合同 代理合同 广告合同 加工合同 集体合同 加盟合同 合同书 知识产权合同 商标专利合同 建筑工程合同 施工合同 其它合同 证券合同
求职文档
个人简历 述职报告 实习报告 辞职报告 工作计划 入职转正 简历模板
党团工作
行政公文范文 机关行政公文 党团工作计划 入团申请书 入党申请书 入党思想汇报 转正申请书 自我鉴定 心得体会
毕业论文
经济论文 管理论文 文学论文 艺术论文 哲学论文 历史论文 法律论文 理工论文 计算机论文 医学论文 教育论文 其他论文
实用范文
演讲稿 礼仪范文 致辞 闭幕词 祝福短信 开幕词 祝酒词 婚礼大全 赠言大全 日常祝福语 问候语 生日祝福 结婚祝福语 其它礼仪 检讨书 心得体会 策划书 主持词 邀请函 口号 诗句大全 成语故事 名人名言 笑话 谚语 其它范文 精品范文 教学资源 企业文化 应用文书 自查报告 整改措施
范文大全
一号文库 二号文库 三号文库 四号文库 五号文库 六号文库 七号文库 八号文库 九号文库 十号文库
文库大全
首页 > 范文大全 > 一号文库

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

最新文章

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

一、单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确答案)

1.在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是()。

A.沃尔夫奖    B.诺贝尔奖    C.菲尔兹奖    D.图灵奖

2.在下面各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境是()。

A.gcc/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.(2024)16+(32)8的结果是()。

A.(8234)10    B.(202B)16    C.(20056)8    D.(100000000110)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

6(数字为结点的编号,以下同),后根遍历是3

1,则该二叉树的可能的中根遍历是()。

A.3

5    B.3

6    C.2

6    D.2

二、问题求解(共2题,每题5分,共计10分)

1.(寻找假币)现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以找出假币?你还要指出第1次的称重方法。请写出你的结果:________________________________________________________________。

2.(取石子游戏)现有5堆石子,石子数依次为3,5,7,19,50,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取),取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论乙怎样取,甲只要不失误,都能获胜)?如果有,甲第一步应该在哪一堆里取多少?请写出你的结果:____________________________________________________________________。

三、阅读程序写结果(共4题,每题8分,共计32分)

1.#include

int

main()

{

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;

}

/*注:本例中,给定的输入数据可以避免分母为0或下标越界。*/

输入:9  3  9  4

输出:________________

2.#include

main()

{

int

i,j,m[]={2,3,5,7,13};

long

t;

for(i=0;i<=4;i++)

{

t=1;

for(j=1;j

t*=2;

printf(“%ld  “,(t*2-1)*t);

}

printf(“\n“);

}

输出:________________

3.#include

“stdio.h“

#define

N

int

fun(char

s[],char

a,int

n)

{

int

j;

j=n;

while(a

&&

j>0)

j--;

return

j;

}

int

main()

{

char

s[N+1];

int

k,p;

for(k=1;k<=N;k++)

s[k]='A'+2*k+1;

printf(“%d\n“,fun(s,'M',N));

}

输出:________________

4.#include

void

digit(long

n,long

m)

{

if(m>0)

printf(“%2ld“,n%10);

if(m>1)

digit(n/10,m/10);

printf(“%2ld“,n%10);

}

main()

{

long

x,x2;

printf(“Input

a

number:\n“);

scanf(“%ld“,&x);

x2=1;

while(x2

x2*=10;

x2/=10;

digit(x,x2);

printf(“\n“);

}

输入:9734526

输出:________________

四、完善程序(前4空,每空2.5分,后6空,每空3分,共28分)

1.(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)。例如,输入3,则应该输出(每行输出5个排列):

123  132  213  231  321

312

程序:

#include

int

n,a[10];/*a[1],a[2],…,a[n]构成n个数的一个排列*/

long

count=0;/*变量count记录不同排列的个数,这里用于控制换行*/

void

perm(int

k)

{

int

j,p,t;

if(______①______)

{

count++;

for(p=1;p<=n;p++)

printf(“%1d“,a[p]);/*

“%1d“ 中是数字1,不是字母l

*/

printf(“

“);

if(______②______)

printf(“\n“);

return;

}

for(j=k;j<=n;j++)

{

t=a[k];

a[k]=a[j];a[j]=t;

______③______;

t=a[k];

______④______;

}

}

main()

{

int

i;

printf(“Entry

n:\n“);

scanf(“%d“,&n);

for(i=1;i<=n;i++)

a[i]=i;

______⑤______;

}

2.由键盘输入一个奇数P(P<100,000,000),其个位数字不是5,求一个整数S,使P×S=1111...1(在给定的条件下,解s必存在)。要求在屏幕上依次输出以下结果:

(1)

S的全部数字。除最后一行外,每行输出50位数字。(2)乘积的数字位数。

例1:输入P=13,由于13*8547=111111,则应输出(1)

8547,(2)

例2:输入P=147,则输出结果应为(1)

7558578987******613(2)

42,即等式的右端有42个1。

程序:

#include

main()

{

long

p,a,b,c,t,n;

int

bl;

while(1)

{

printf(“输入p,最后一位为1或3或7或9:\n“);

scanf(“%ld“,&p);

if((p%2!=0)&&(p%5!=0))/* 如果输入的数符合要求,结束循环 */

______⑥______;

}

a=0;

n=0;

while(a

{

a=a*10+1;

n++;/* 变量a存放部分右端项,n为右端项的位数 */

}

t=0;

do

{

b=a/p;

printf(“%1ld“,b);

t++;

if(______⑦______)

printf(“\n“);

c=______⑧______;a=______⑨______;n++;

}while(c>0);

printf(“\nn=%ld\n“,______⑩______);

}

一、选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,多选无分, 共30 分)

题号

选择

D

B

B

C

B

B

C

A

D

D

题号

选择

C

D

C

B

C

B

B

A

C

B

二、问题求解(共2题,每题5分,共计10分)

1.4次(1分)第一步:分成3组:27,27,26,将前2组放到天平上(4分)。

2.有获胜策略(1分)第1次在第5堆中取32颗石子(4分)。

三、阅读程序写结果(共4题,每题8分,共计32分)

1.10,10(对1个数给4分,无逗号扣1分)

2.6  28  496  8128  33550336

(前2个对1个数给1分,后3个对1个数给2分)

3.5

4.6

6(数字之间无空格扣2分)

四、完善程序(前4空,每空2.5分,后6空,每空3分,共28分)

1.① k==n  ② count%5==0  ③ perm(k+1)④ a[k]=a[j];

a[j]=t  ⑤ perm(1)

2.⑥ break    ⑦ t%50==0    ⑧ a-p*b    ⑨ c*10+1    ⑩ n-1

本类热门