您现在的位置:学赛首页 > 计算机等级考试 > 复习资料 > 正文
二级C++重点难点分析:数组、指针与引用[3]
http://www.educity.cn 作者:希赛IT教育研发中心 来源:希赛网 2007年7月11日 发表评论 进入社区
    二维数组类型说明的一般形式如下:

    <类型说明符> <数组名>[常量表达式1][常量表达式2];

    其中“常量表达式1”表示第一维下标的长度,“常量表达式2”表示第二维下标的长度。例如,“int a[3][4];”说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
    a[0][0]、a[0][1]、a[0][2]、a[0][3]
    a[1][0]、a[1][1]、a[1][2]、a[1][3]
    a[2][0]、a[2][1]、a[2][2]、a[2][3]

    二维数组初始化也是在类型说明时给各下标变量赋以初值,可按行分段赋值,也可按行连续赋值。例如一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。
    课程         Math English C++
    No.1      80  75   99
    No.2      61  65   72
    No.3      59  63   71
    No.4      85  87   91
    No.5      76  77   86
    可设一个二维数组a[5][3]存放五个人三门课的成绩。

    ① 按行分段赋值可写为:
    int a[5][3]={ {80,75,99},{61,65,72},{59,63,71},{85,87,91}, {76,77, 86}};

    ②  按行连续赋值可写为:
    int a[5][3]={ 80,75,99,61,65,72,59,63,71,85,87,91,76,77,86 }; 
    二维数组的元素也称为双下标变量,其表示的形式为:
    数组名[下标][下标] 其中下标应为整型常量或整型表达式。
    例如:如果第三个学生的数学成绩变成了100分,可以按如下赋值:a[2][0] = 100;
    最后还可由初始化数据来确定数组最高维,如
    int matrix[ ][4]={1,3,5,7,2,4,6,8,3,5,7,11};
    结果定义的matrix是三行四列的数组,只能最高维省略。

       例9.1.4  针对数组定义“int data[10];”,下列表述中错误的是(   )。[2005年4月 选择第18题]
    A.用*data可访问到数组的首元素     B.用data[9]可访问到数组的末元素
    C.用data[10]访问数组元素会超出数组边界   D.data共有10个元素,其首元素是data[1]
    答案:D

       例9.1.5  以下程序的输出结果是(   )。
    main()
    {
        int i, a[10];
        for(i=9;i>=0;i--) a[i]=10-i;
        printf("%d%d%d",a[2],a[5],a[8]);
    }
    A.258      B.741      C.852     D.369
    答案:C

       例9.1.6  以下数组定义中不正确的是(   )。
    A.int a[2][3];         B.int b[][3]={0,1,2,3};
    C.int c[100][100]={0};        D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
    答案:D
    

[1]  [2]  [3]