您现在的位置是: 首页 > 相关资讯 相关资讯

k3凭证下标越界

ysladmin 2024-07-31 人已围观

简介k3凭证下标越界       大家好,很高兴有机会和大家一起探讨k3凭证下标越界的问题。我将用专业的态度回答每个问题,同时分享一些具体案例和实践经验,希望这能对大家有所启发。1.急急急求2006年南海区青少年信息学奥林匹克竞赛初赛试题的答案2.急求答案

k3凭证下标越界

       大家好,很高兴有机会和大家一起探讨k3凭证下标越界的问题。我将用专业的态度回答每个问题,同时分享一些具体案例和实践经验,希望这能对大家有所启发。

1.急急急求2006年南海区青少年信息学奥林匹克竞赛初赛试题的答案

2.急求答案!!!!求高手帮忙做一下这套C语言的模拟题!!!!!!

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

k3凭证下标越界

急急急求2006年南海区青少年信息学奥林匹克竞赛初赛试题的答案

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

       ( 普及组 Pascal 语言 二小时完成 )

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

       一、 单项选择题 (共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.在编程时(使用任一种高级语言,不一定是Pascal),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上( )。

       A. 没有区别 B. 按行读的方式要高一些

       C. 按列读的方式要高一些 D. 取决于数组的存储方式。

       11.在Pascal语言中,表达式 (21 xor 2)的值是( )

       A. 441 B. 42 C.23 D.24

       12.在Pascal语言中,判断a不等于0且b不等于0的正确的条件表达式是( )

       A. not a=0 or not b=0 B. not((a=0)and(b=0))

       C. not(a=0 and b=0) D. (a<>0)and (b<>0)

       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=true,C=false,以下逻辑运算表达式值为真的有( )。

       A. (A∧B)∨(C∧D) B. ((A∨B∨D)∧C)

       C. A∧(B∨C∨D) D. (A∧B∧C)∨ D

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

       _________________________________________________。

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

       1. Program ex301;

       var

       u:array[0..3] of integer;

       i,a,b,x,y:integer;

       begin

       y:=10;

       for i:=0 to 3 do

       read(u[i]);

       a:=(u[0]+u[1]+u[2]+u[3]) div 7;

       b:=u[0] div ((u[1]-u[2]) div u[3]);

       x:=(u[0]+a+2)-u[(u[3]+3) mod 4];

       if (x>10) then

       y:=y+(b*100-u[3]) div (u[u[0] mod 3]*5)

       else

       y:=y+20+(b*100-u[3]) div (u[u[0] mod 3]*5);

       writeln (x,',',y);

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

       输入:9 3 9 4

       输出:_______________

       2.Program ex302;

       const

       m:array[0..4] of integer=(2,3,5,7,13);

       var

       i,j:integer;

       t: longint;

       begin

       for i:=0 to 4 do

       begin

       t:=1;

       for j:=1 to m[i]-1 do

       t:=t*2;

       t:=(t*2-1)*t;

       write (t,' ');

       end;

       writeln;

       end.

       输出:____________________

       3.Program ex303;

       Const

       NN=7;

       Type

       Arr1=array[0..30] of char;

       var

       s:arr1;

       k,p:integer;

       Function fun(s:arr1; a:char;n:integer):integer;

       var

       j:integer;

       begin

       j:=n;

       while (a<s[j])and(j>0) do dec(j);

       fun:=j;

       end;

       begin

       for k:=1 to NN do

       s[k]:=chr(ord('A')+2*k+1);

       k:=fun(s,'M',NN);

       writeln(k);

       end.

       输出:_____________

       4.program ex304;

       var

       x,x2:longint;

       procedure digit(n,m:longint);

       var n2:integer;

       begin

       if(m>0) then

       begin

       n2:=n mod 10;

       write(n2:2);

       if(m>1) then digit(n div 10,m div 10);

       n2:=n mod 10;

       write(n2:2);

       end;

       end;

       begin

       writeln('Input a number:');

       readln(x);

       x2:=1;

       while(x2<x) do x2:=x2*10;

       x2:=x2 div 10;

       digit(x,x2);

       writeln; 5

       end.

       输入:9734526

       输出:______________________________

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

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

       123 132 213 231 321

       312

       程序:

       Program ex401;

       Var

       i,n,k:integer;

       a:array[1..10] of integer;

       count:longint; {变量count记录不同排列的个数,这里用于控制换行}

       Procedure perm(k:integer);

       var j,p,t:integer;

       begin

       if ① then

       begin

       inc(count);

       for p:=1 to k do

       write(a[p]:1);

       write(' ');

       if ( ② ) then writeln;

       exit;

       end;

       for j:=k to n do

       begin

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

       ③ ;

       t:=a[k]; ④ ;

       end

       end;

       begin

       writeln('Entry n:');

       read(n);

       count:=0;

       for i:=1 to n do a[i]:=i;

       ⑤ ;

       end.

       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)6

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

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

       程序:

       program ex402;

       var

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

       begin

       while (true) do

       begin

       writeln ('Input p, the last digit is 1 or 3 or 7 or 9:');

       readln(p);

       if (p mod 2<>0)and(p mod 5<>0) then

       ⑥ ; {如果输入的数符合要求,结束循环 }

       end;

       a:=0; n:=0;

       while (a<p) do

       begin

       a:=a*10+1; inc(n);

       end;

       t:=0;

       repeat

       b:=a div p;

       write(b:1);

       inc(t);

       if ( ⑦ ) then writeln;

       c:= ⑧ ; a:= ⑨ inc(n);

       until c<=0;

       dec(n);

       writeln; writeln('n=', ⑩ );

       end.

       第十二届全国青少年信息学联赛(普及组)答案/noi/showNews.jsp?newsId=200190000064

       普及组(Pascal语言)参考答案与评分标准

       一、单项选择题:(每题1.5分)

       1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D

       11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B

       二、问题求解:(每题 5分)

       1. 4次 (1分),

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

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

       三、阅读程序写结果

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

       2. 6 28 496 8128 33550336

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

       3. 5

       4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣2分)

       四、完善程序(前4空(①--④),每空2.5分,后6空(⑤--⑩),每空3分)

       1.① k=n (或n=k)

       ② count mod 5=0

       ③ perm(k+1)

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

       ⑤ perm(1)

       2.⑥ break

       ⑦ t mod 50=0

       ⑧ a-p*b(或a-b*p)

       ⑨ c*10+1 (或10*c+1)

       ⑩ n

急求答案!!!!求高手帮忙做一下这套C语言的模拟题!!!!!!

       写个 C 控制台的,

       它能够完成 从任意个数中随机选择任意个组合,并且按一下键盘,

       将这个组合显示出来。

       为什么会这样,这和你的说法不一致,因为你说的部分内容不好界定,

       就是"我敲165下任意键,逐个显示。"这一句。

       可以修改这个程序的输出部分,达到你的需要。

       //加吧,getch,rand都在哪里呢?

       #include <conio.h>

       #include <stdio.h>

       #include <stdlib.h>

       //这两个宏,允许修改成任意个数,比如从12个数里选4个...

       //定义数11个

       #define MAX_DIGIT 11

       //定义选3个,要求 SEL_DIGIT < MAX_DIGIT

       #define SEL_DIGIT 3

       void your_programing()

       {

       //定义数组

       int digit[MAX_DIGIT];

       int select[SEL_DIGIT];

       int i,j;

       char key;

       bool flag;

        //向地球人打声招呼,一切就要开始了

        printf("\nhello,world\n");

       //初始化数组,或者按环境要求初始化

       //这里假定允许有重复数,无序

       //不想重复,就多一道处理

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

       {

        //用随机数初始化

        digit[i] = ((rand() << 16) | rand());

       }

       //弄个简单死循环,要求输入字符'q' 或 'Q'退出

       while (1)

       {

        printf("\nPlease press any key,if q or Q then quit.\n");

        key = getch();

        if (key == 'q' || key == 'Q')

        {

        //没办法,人家选择退出了,还不快退,要待何时?

        break;

        }

        //闲话休说,进入主题

        //要随机选3个数组合,就要将选中数存入select数组

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

        {

        //用随机数来做任意数量的选择,但要处理重复结果

        do

        {

        flag = false;

        //产生不越界的数组下标

        select[i] = rand() % MAX_DIGIT;

        //检查下标是否重复

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

        {

        if (select[i] == select[j])

        {

        //出现重复下标,赶紧重新选择

        flag = true;

        break;

        }

        }

        }while (flag);

        //非常愉快,找到了可用的下标

        }

        //非常愉快,获得了可心的随机数

        //打印出这个随机的组合

        printf("\nThe %d Selected is ",SEL_DIGIT);

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

        {

        //很有趣,因为我们利用了模算术做下标的特点

        //所以,这里只需访问数组下标即可,而且考虑了越界

        printf("%d",digit[select[i]]);

        //打印个分隔符吧,看着也舒服

        if (i != 0 && i != SEL_DIGIT - 1)

        {

        printf(",");

        }

        }

       }

        //程序要结束了,说点什么吧

        printf("\nThe End.\n");

       }

       ///小注:

       前文提到rand()的随机性问题,的确如此,它的白噪声一般应用尚可,

       看你的应用环境了,严格的可选择专业的白噪声发生器。

       //

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

       错

       错

       对

       错

       对

       对

       对

       对

       对

       对

       对

       对

       错

       错

       错

       对

       对

       对

       错

       错

       8 循环 是 x>=30 and x<=80 and c!=50

       24 .c 无限循环 3 5

       以下题目重复

       printf("\n");

       avg=(a[i]+avg)/n;

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

       j,i,i*j

       2.只有一堆时,无论有多少,先取者都可以一次性全部取走,所以必胜。

       (1,1)时,显然先取者必败。

       (1,2)时,先取者必胜,他可以在2那一堆中取1个,于是变成(1,1),但这成为上一种情况了,于是接下来取的人必败,亦即先取者必胜。

       (1,3)时,先取者必胜。他可以在3那一堆中取2个,于是变成(1,1)。

       (2,2)时,先取者必败。他在任何一堆中取1个,对方随即在另一堆中取1个,即变成(1,1);如果他取走一堆中的全部石子,对方即取走另一堆中的全部石子。

       (2,3)时,先取者必胜。他可以在3那一堆中取1个,于是变成(2,2)。

       (3,3)时,先取者必败。他取走任一堆中的1,2或3个,就变成了以上讨论过的情形。

       (1,1,1)时,先取者必胜。他取走任一堆,就变成了(1,1)。

       (1,1,2)时,先取者必胜。他取走2那一堆,就变成了(1,1)。

       (1,1,3)时,先取者必胜。他取走3那一堆,就变成了(1,1)。

       (1,2,2)时,先取者必胜。他取走1那一堆,就变成了(2,2)。

       (1,2,3)时,先取者必败。分析如下:

       他先取1那一堆,则变为(2,3),由上面的分析,对手必胜。

       他从2那一堆中取1个,就变成了(1,1,3),对手可以将3那一堆全部取走,变成了(1,1),于是必胜。

       他将2那一堆全部取走,就变成了(1,3),对手必胜。

       他从3那一堆中取1个,就变成了(1,2,2),对手必胜。

       他从3那一堆中取2个,就变成了(1,2,1),对手必胜。

       他将3那一堆全部取走,就变成了(1,2),对手必胜。

       这些胜负有什么规律呢?我们可以将每堆的数转换成二进制,然后看每一位上所有堆里的1的个数总和:

       必胜情况:(n) (1,2)(1,3)(2,3) (1,1,1)(1,1,2)(1,2,2)

       必败情况: (1,1)(2,2)(3,3) (1,2,3)

       化为二进制:

       必胜情况:

       (n)<只有1堆>:……(反正每位只要有1肯定只有1个)

       (1,2):1,10

       列成竖式:

       01

       10

       个位上只有1个1,“十位”(因为是二进制所以叫十位不妥,这里为了方便说明暂且使用,下同)上也只有1个1。

       (1,3):1,11

       列成竖式:

       01

       11

       个位上有2个1(1的1个,3的1个),十位上有1个1。

       (2,3):10,11

       个位上有1个1,十位上有2个1。

       (1,1,1):1,1,1

       个位上有3个1。

       (1,1,2):1,1,10

       个位上有2个1,十位上有1个1。

       (1,1,3):1,1,11

       个位上有3个1,十位上有1个1。

       (1,2,2):1,10,10

       个位上有1个1,十位上有2个1。

       必败情况:

       (1,1):1,1

       个位上有2个1。

       (2,2):10,10

       十位上有2个1。

       (3,3):11,11

       个位上有2个1,十位上也有2个1。

       (1,2,3):1,10,11

       个位上有2个1,十位上也有2个1。

       下面分析一下这些情况。

       先看必败情形。容易发现,所有的必败情形,都是所有的数位上都有偶数个1。

       下看必胜情形。我们发现,出现了两种情况:

       1.只有1位上有奇数个1,如(1,3)(2,3)(1,1,1)(1,1,2)(1,2,2)。而先取者取走该位上的1,所有的位上就都变成了偶数个1,而这时后取者变成了先取者。

       2.有若干位上都是奇数个1,如(n)(1,2)(1,1,3)。先取者取(不一定取走哪位)后,所有的位上也都变成了偶数个1。后取者变成了先取者。

       以上两种情况,都是将后取者逼至必败情况从而取胜。

       由以上分析我们可以得到结论:将所有的堆的石子数化为二进制后,如果所有数位上的1的个数都是偶数,那么先取者必败;如果有些位上的1的个数是奇数,先取者能够将所有数位上的1的个数都变为偶数的话,那么先取者必胜。

       好,下面来分析我们的题目。

       3,5,7,19,50化为二进制是:

       000011

       000101

       000111

       010011

       110010

       可见,只有最高位的1是奇数个,其他位上都是偶数个。

       所以只需要将最高位的1取走即可必胜。

       二进制的100000就是10进制的32,所以要将50个石子的那堆取32个,取掉就变成偶数个数目。于是先取者必胜。以后无论对方怎么取,始终保证每一位上的1的个数是偶数即可(一种简单的方法是,他在一堆中取几个,你在另一堆中也取几个就可以)。

       16. 5个数通过7次比较排序的方法如下。

       5个数之间的大小关系构成的一个树形图T。T中的一个结点代表一个数,而一条边代表它所

       关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在

       下

       面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的

       数,o表示下一次即将进行比较的两个数。

       第1步,先任取两个数比较,结果为:

       *

       |

       * o o *

       第2步,再取另外两个数比较,结果为:

       o o

       | |

       * * *

       第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:

       *

       / \

       o *

       |

       * o

       第4步,按照上图比较其中两个标记为o的数,比较结果有两种情况:

       o o *

       \ / \ / \

       * * * *

       | / \

       * o o

       第5步,按照上图比较其中两个标记为o的数,比较结果有两种情况:

       * *

       | / \

       * * o

       / \ |

       o o o

       | |

       * *

       第6步,按照上图比较其中两个标记为o的数,比较结果有三种情况:

       * * *

       | | / \

       * * o o

       | | \ /

       * * *

       | / \ |

       * o o *

       |

       *

       其中第一种情况已经排好序了

       第7步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:

       *

       |

       *

       |

       *

       |

       *

       |

       *

       所以只需要7步比较就可以把5个数排好序

       10.D

       另外,给你一份试卷及答案。

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

       ( 普及组 Pascal 语言 二小时完成 )

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

       一、 单项选择题 (共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.在编程时(使用任一种高级语言,不一定是Pascal),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上( )。

       A. 没有区别 B. 按行读的方式要高一些

       C. 按列读的方式要高一些 D. 取决于数组的存储方式。

       11.在Pascal语言中,表达式 (21 xor 2)的值是( )

       A. 441 B. 42 C.23 D.24

       12.在Pascal语言中,判断a不等于0且b不等于0的正确的条件表达式是( )

       A. not a=0 or not b=0 B. not((a=0)and(b=0))

       C. not(a=0 and b=0) D. (a<>0)and (b<>0)

       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=true,C=false,以下逻辑运算表达式值为真的有( )。

       A. (A∧B)∨(C∧D) B. ((A∨B∨D)∧C)

       C. A∧(B∨C∨D) D. (A∧B∧C)∨ D

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

       _________________________________________________。

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

       1. Program ex301;

       var

       u:array[0..3] of integer;

       i,a,b,x,y:integer;

       begin

       y:=10;

       for i:=0 to 3 do

       read(u[i]);

       a:=(u[0]+u[1]+u[2]+u[3]) div 7;

       b:=u[0] div ((u[1]-u[2]) div u[3]);

       x:=(u[0]+a+2)-u[(u[3]+3) mod 4];

       if (x>10) then

       y:=y+(b*100-u[3]) div (u[u[0] mod 3]*5)

       else

       y:=y+20+(b*100-u[3]) div (u[u[0] mod 3]*5);

       writeln (x,',',y);

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

       输入:9 3 9 4

       输出:_______________

       2.Program ex302;

       const

       m:array[0..4] of integer=(2,3,5,7,13);

       var

       i,j:integer;

       t: longint;

       begin

       for i:=0 to 4 do

       begin

       t:=1;

       for j:=1 to m[i]-1 do

       t:=t*2;

       t:=(t*2-1)*t;

       write (t,' ');

       end;

       writeln;

       end.

       输出:____________________

       3.Program ex303;

       Const

       NN=7;

       Type

       Arr1=array[0..30] of char;

       var

       s:arr1;

       k,p:integer;

       Function fun(s:arr1; a:char;n:integer):integer;

       var

       j:integer;

       begin

       j:=n;

       while (a<s[j])and(j>0) do dec(j);

       fun:=j;

       end;

       begin

       for k:=1 to NN do

       s[k]:=chr(ord('A')+2*k+1);

       k:=fun(s,'M',NN);

       writeln(k);

       end.

       输出:_____________

       4.program ex304;

       var

       x,x2:longint;

       procedure digit(n,m:longint);

       var n2:integer;

       begin

       if(m>0) then

       begin

       n2:=n mod 10;

       write(n2:2);

       if(m>1) then digit(n div 10,m div 10);

       n2:=n mod 10;

       write(n2:2);

       end;

       end;

       begin

       writeln('Input a number:');

       readln(x);

       x2:=1;

       while(x2<x) do x2:=x2*10;

       x2:=x2 div 10;

       digit(x,x2);

       writeln; 5

       end.

       输入:9734526

       输出:______________________________

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

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

       123 132 213 231 321

       312

       程序:

       Program ex401;

       Var

       i,n,k:integer;

       a:array[1..10] of integer;

       count:longint; {变量count记录不同排列的个数,这里用于控制换行}

       Procedure perm(k:integer);

       var j,p,t:integer;

       begin

       if ① then

       begin

       inc(count);

       for p:=1 to k do

       write(a[p]:1);

       write(' ');

       if ( ② ) then writeln;

       exit;

       end;

       for j:=k to n do

       begin

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

       ③ ;

       t:=a[k]; ④ ;

       end

       end;

       begin

       writeln('Entry n:');

       read(n);

       count:=0;

       for i:=1 to n do a[i]:=i;

       ⑤ ;

       end.

       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)6

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

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

       程序:

       program ex402;

       var

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

       begin

       while (true) do

       begin

       writeln ('Input p, the last digit is 1 or 3 or 7 or 9:');

       readln(p);

       if (p mod 2<>0)and(p mod 5<>0) then

       ⑥ ; {如果输入的数符合要求,结束循环 }

       end;

       a:=0; n:=0;

       while (a<p) do

       begin

       a:=a*10+1; inc(n);

       end;

       t:=0;

       repeat

       b:=a div p;

       write(b:1);

       inc(t);

       if ( ⑦ ) then writeln;

       c:= ⑧ ; a:= ⑨ inc(n);

       until c<=0;

       dec(n);

       writeln; writeln('n=', ⑩ );

       end.

       子集那个主要是自己划分,比较费时间,如果不会加我QQ21014873,我教你。

       好了,今天关于k3凭证下标越界就到这里了。希望大家对k3凭证下标越界有更深入的了解,同时也希望这个话题k3凭证下标越界的解答可以帮助到大家。