第十二届全国青少年信息学奥林匹克联赛初赛试题

 

 

普及  C     二小时完

OIFans.cn整理收集

 

 

  部试答案均要求写在答卷纸上,写在试卷纸上一律无      ●●

 

 

 

 

单项选择 20 题,每 1.5 分,共 30 分。每题有且仅有一个正确答.OIFans.cn收集

 

 

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. 缓存

 

 

4Linux (     )

 

A. 绘图软       B. 程序设计语言  C. 操作系           D. 网络浏览器

 

 

5. CPU (   )的简称。

 

A.            B. 中央处理       C. 高级程序语言   D. 核心寄存器

 

 

6在计算机中,防火的作用是      

 

A. 防止火               B.防止网络攻击OIFans.cn收集

 

C. 防止计机死             D. 防止使用者删除数据

 

 

7. 在下列于计算机语的说法中,正确的是       )。

 

A. PascalC都是编执行的高级

 

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         OIFans.cn收集

 

 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某个车呈狭长形度只能容下台车并且有一个出入已知某时该车站状态这一时刻开始的出入记录为“进,出进,进,进出,出,进进,进,出,。假设辆入站的 顺序 123,……则车辆出站顺序为

 

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=trueC=false,以逻辑运算表式值为真的          )。


 

A. (¬ AB)(CD)            B.¬ ((ABD)C)

C.   ¬ A(BCD)            D. (ABC)¬ D

 

 

18.  (2010)16 + (32)8的结果是        OIFans.cn收集

 

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 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 堆石子,数依次 3571950,甲乙两轮流从任一中任取

(每次只能自一堆,不不取, 取最后一颗石子一方获胜。先取,问甲没有获胜策(即无论 乙怎样取,只要不失误都能获胜)如果有,甲一步应该在一堆里取多?请写出你结果:OIFans.cn收集

 

_________________________________________________

 

 

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

 

 

 

1. #include <stdio.h>

 

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 <stdio.h>

 

main()

 

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

 

long t;

 

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

 

  {t=1;

 

   for(j=1;j<m[i];j++)   t*=2;

 

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

 

  }

 

printf("\n");

 

}

 

输出:____________________

 

 

3#include "stdio.h"

 

#define N    7OIFans.cn收集

 

int fun(char s[],char a,int n)

 

 {int j;

 

  j=n;

 

while(a<s[j] && 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 <stdio.h>

 

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<x)  x2*=10;

 

   x2/=10;

 

   digit(x,x2);

 

   printf("\n");OIFans.cn收集

 

  }

 

输入:9734526

 

输出:______________________________

 

 

四.完善程序 ( 4 空,每 2.5 分, 6 空,每 3 分, 28 )

 

 

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

 

123 132 213     231 321

 

312

 

程序:

 

#include<stdio.h>

 

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++)OIFans.cn收集

 

   {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 必存在)求在屏幕上次输出以下:

1S 部数字。除后一行外,行输 50 位数字 2 乘积的字位数。 1:输 p=13,由 13*8547=111111,则应输出(1854726 2:输 p=147,则出结果应为1755857898715041572184429327286470143613

 

242等式的右 42 1

 

 

程序:

 

#include <stdio.h>

 

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))  /*如果输入数符合要求结束循 */OIFans.cn收集

 

   ;

 

 }

 

  a=0; n=0;

 

  while (a<p)

 

  {a=a*10+1; n++; /* a 存放部分右端项n 为右端项位数 */

 

   }

 

  t=0;

 

  do

{b=a/p;

 

 printf("%1ld",b);

 

 t++;

 

 if (      )

 

 printf("\n");OIFans.cn收集

 

 c=      ;  a=       ; n++;

 

 } while (c>0);

 

  printf("\nn=%ld\n",            );

 

}