B104

01-程序填空题 田少松, 软件154 313浏览

所属年份:2011.3;2011.9;

围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N-1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的个洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;……。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模拟一个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。若形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

#include   <stdio.h>
#define   N    100
void  fun( int *a , int  n )
{
    int  i, t;
    for( i=0; i<n; i++ )
        /**********found**********/
        a[i]=___1___;
    i=0;
    /**********found**********/
    ___2___=1;
    while( i<n )
    {
        a[i]= 1;
        t++;
        /**********found**********/
        i=___3___;
    }
}

main()
{
    int  a[N], i, n=30;
    fun( a, n);
    for(i=0; i<n; i++)
        if( a[i]==1 )  printf("不安全的洞号是 :   %d\n",i );
}

【参考答案】

(1)0    
(2)t      
(3)i+t

【解题思路】

首先为数组所有元素赋初值0,利用循环为符合条件的数组赋值为1,并计算下一个数据的下标。设置一个变量存放间隔数,每次循环间隔数加1。本次下标加间隔数加1为下一个下标。

填空1:利用循环为数组所有元素赋值为0。

填空2:变量t为间隔数,在循环过程中每次加1,设定初始值为1。

填空3:下一个数组下标为本次的下标加间隔数加1的值。