niusouti.com
更多“有红、黄、蓝、自珠子各l0粒,装在一只袋子里,为了保证摸出的珠子有两粒颜色相同,应至少摸 ”相关问题
  • 第1题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    [说明]

    设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。

    本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。

    [C函数]

    int count(char*s,int start,int end)

    {inti,c=0,color=s[start],step=(start>end)?-1:1;

    for(i=start;s[i]==color;i+=step){

    if(step>0 && i>end || (1) ) break;

    (2) ;

    }

    return c;

    }

    void main()

    { char t,s[120];

    int i,j,C,len,maxc,cut=0;

    printf("请输入环上代表不同颜色珠子字符串:");

    scanf("%s",s );

    len=strlen(s);

    for(i=maxc=0;i<len;i++){ /*尝试不同的剪开方式*/

    c=count(s,0,len-1);

    if(c<len) C+=count( (3));

    if(c>maxc){cut=i;maxc=c; )

    /*数组s的元素循环向左移动一个位置*/

    t=s[0];

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

    (5);

    }

    printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);

    }


    正确答案:(1) step0&&iend (2) ++c (3) slen-1c (4) s[j-1]=s[j] (5) s[len-1]=t
    (1) step0&&iend (2) ++c (3) s,len-1,c (4) s[j-1]=s[j] (5) s[len-1]=t 解析:依据取珠子个数最多的规则,count函数每次从左或从右取出相同颜色的珠子,因此从右到左的条件为step0&&iend,即(1)应填“step0&&iend”。当是同色珠子时,计数值加1,所以(2)填“++c”。从右到左计算时,函数count调用的实参次序为s,len-1,C。即(3)应填“s,len-1,c”。在尝试不同的剪开方式时,数组s的元素要循环向左移动一个位置,则(4)填“s[j-1]=s[j]”,(5)填“s[len-1]=t”。

  • 第2题:

    有红、黄、绿三种颜色的手套各6双,装在一个黑色布袋里,从袋子里任意取出手套来,为确保至少有2双手套不同颜色,则至少要取出的手套只数是( )

    A.15只 B.13只 C.12只 D.10只


    正确答案:A

    运气最坏的结果是取出的12只手套同色,则最少再取3只手套,才再凑成另一付颜色一致的手套,故应选A。

  • 第3题:

    一只布袋中装有大小相同但颜色不同的手套,颜色有黑、红、蓝、黄四种。至少要摸出几只手套才能确保有3副手套的颜色相同?( )

    A.6
    B.9
    C.10
    D.12

    答案:B
    解析:
    本题属于最不利构造。
    要保证有3副同色的,先考虑保证有1副颜色相同就要摸出5只手套。这时从这五只中拿出1副同色的,还剩下3只手套。根据抽屉原理,此时再摸出2只手套,又能保证有1副是同色的。以此类推,要保证有3副同色的,共需要摸出的手套有:5+2+2=9(只)。

  • 第4题:

    :现有红、黄、蓝三种颜色的珠子各若干颗,分给某班的52个学生,每个学生可以取1至3颗珠子,一种颜色的珠子最多只能取1颗。那么,这班学生中至少有()人取的珠子完全相同。

    A.5 B.8 C.13 D.17


    正确答案:B

    取珠子的种类有如下7种:①红;②黄;③蓝;④红与黄;⑤红与蓝;⑥黄与蓝;⑦红、黄、蓝。从最不巧的情况想。每七个学生取的珠子的种类各不相同,因为52÷7(3),所以,至少有7+1(8)个人取的珠子完全相同。故本题正确答案为B

  • 第5题:

    有红、黄、绿三种颜色的手套各6双,装在一个黑色的布袋里。从袋子里任意取出手套来。为确保至少有2双手套不同颜色,则至少要取出的手套只数是()。
    A.15只
    B.13只
    C.12只
    D.10只


    答案:A
    解析:
    考虑最坏的情况,若已经取出了一种颜色的全部6双手套和其他两种颜色的手套各一只,再取出一只时,即得到2双不同颜色的手套。至少要取出12+2+1=15只。