2一维数组(练习)-《C#程序设计基础》(河海大学出版社)同步精品课堂

| 7页
| 71人阅读
| 0人下载

学科网 zxxk.com学科网 zxxk.com

1. 如果有数组定义int[]a=new int[10],则该数组最后一个元素的下标为(  )。

A. 10    B. 11    C. 9                                            D. 不确定

1. C

【解析】题目考察的是数组下标的默认值,默认情况下第一个数组元素的下标为0,最后一个元素的下标为“元素个数-1”。题干中所定义的数组共有10个元素,所以最后一个元素的下标为9。

2. 下面程序的输出结果是(  );

int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7 };

int i;

for ( i = 0; i <= a.Length - 1; i++)

{

    a[i] = a[i] * a[i];

}

Console.WriteLine(a[i]);

  1. 36   B. 程序出错   C. 49    D. 不确定

2. B

【解析】循环结束后,i的值为7,超出了数组的上界,所以程序出错。

3. 已定义数组int[] m={0,1,2,3,4,5,6},下面哪个表达式的值与数组元素个数相等(  )

A. m.Length()  B. m.Length   C. m.Length-1  D. m.Length()-1

3. B

【解析】在C#中,数组有一个属性Length,它表示数组的长度,即数组中元素的个数。对于数组m,其长度可以直接通过m.Length来访问。

4. 下面程序完成的功能是:随机生成20个[10,30]之间任意的两位正整数,以每行5个数据输出原始数据,并输出数组中第二大的数。请将程序补充完整。

static void Main(string[] args)

{

    int[] arr = new int[20];

    int i, j, m, temp;

    Random random = new Random();

    Console.WriteLine("原始数据为:");

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

    {

        //生成10,30内的随机整数

        arr[i] = random.Next(10,30);

        Console.Write(arr[i] + " ");

        if(     (1)     )page number 0

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

        {

            Console.WriteLine();

        }

    }

    Console.Write("数组中第二大的数为:");

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

    {

        m = i;

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

        {

            if (     (2)     ) m = j;

        }

        if (m != i)

        {

            temp = arr[m];

            arr[m] = arr[i];

            arr[i] = temp;

        }

    }

    Console.WriteLine(arr[18]);

}

4. 本程序共有2空,答案如下:

(1)(i+1) % 5 == 0

(2)arr[m] > arr[j]

【解析】该程序共包含两部分内容,其一是生成随机数存入数组并输出,其二是对数组中各元素进行排序并输出第二大的数。

(1)题干中要求每行输出五个数据,因此每输出五个数据就应该使用Console.WriteLine();语句来进行换行,因此只需要判断i的值是否满足(i+1)%5=0即可。

(2)第二部分的功能是使用选择法对数组arr中各元素进行由小到大的排序。变量m用来存储每一轮排序过程中最小值的下标。循环变量i用来表示当前排序的轮数。每轮排序过程中,均需对当前仍处于无序状态的各元素遍历,以找到其中最小的元素所在位置,因此使用循环变量j来遍历这些元素。在遍历的过程中,当发现比假定的最小值arr[m]还要小的元素时,就用该元素的下标替换掉变量m中的值,在一轮排序完成后对调arr[i]和arr[m]的值。所以第2空为arr[m] > arr[j]。

5. 下面程序完成的功能是:随机生成10个不重复的任意两位正整数,用二分查page number 1

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

找法查找10个数的平均值n出现的位置,若未出现,则输出-1。(提示:为了确保平均值和随机生成的某个数据可能相等,采用平均值取整后的结果进行查找)请将下面的程序补充完整。

static void Main(string[] args)

{

    int[] arr = new int[10];

    int rnd, i, j, m, temp;

    int sum, avg, left, right, mid;

    sum = 0;

    mid = -1;

    Random random = new Random();

    Console.WriteLine("原始数据为:");

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

    {

        //生成10,30内的随机整数

        rnd = random.Next(10,99);

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

        {

            if (arr[j] == rnd) break;

        }

        if(j == i)

        {

            arr[i] = rnd;

            sum = sum + arr[i];

            Console.Write(arr[i] + " ");

        }

        else

        {

                 (1)    

        }

    }

    Console.WriteLine();

    Console.WriteLine("排序数组为:");

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

    {

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

        {

            if (     (2)     )

            {

                temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }page number 2

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。