同步训练6-1答案
一、单项选择题
1.已定义:float a[5];则数组a可引用的元素有( D )。
    A.a[1]~a[5]    B.a[0]~a[5]    C.a[1]~a[4]    D.a[0]~a[4]
2.已定义:int a[15];则数组a占用的内存单元数是( C )。
    A.15    B.30    C.60    D.120
3.若有以下定义:double w[10];则数组w 的元素下标范围是( B )。
    A.[0,10]    B.[0,9]    C.[1,10]    D.[1,9]
4.设有程序,则在程序中的两个括号中应填入( C )。
#include<stdio.h>
int main()
{   
int i,a[5]; printf{"Please input number:\n"};
for (i=0;i<=4;i++) scanf("%d",());
… …
printf("输出数组:\n");
for (i=0;i<4;i++) printf("%d",());
return 0;
}
    A.a[i]和&a[i]    B.&a[i]和&a[i]
    C.&a[i]和a[i]    D.a[i]和a[i]
5.阅读程序,以下程序的输出结果是( D )。
f(int b[],int n)
{
int i,r=1;
    for (i=0;i<=n;i++) rr*b[i];
    return r;   
}
int main()
{   
int x,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
return 0;
}
    A.720    B.6    C.24    D.120
6.已知int类型变量在内存中占用4个字节,定义数组int b[8]={2,3,4};则数组b在内存中所占字节数为( D )。
    A.5    B.12    C.16    D.32
7.以下程序段给数组所有元素输入数据,应在圆括号中填入的是( D )。
#include<stdio.h>
int main()
{
int a[10],i=0;
while (i<10)
scanf("%d",(  ));
}
    A.&a[++i]    B.&a[i+1]    C.&a[i]    D.&a[i++]
8.若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10};char c='a';则数值为4的表达式是( D )。
    A.a['f'-c]    B.a[4]    C.a['d'-'c']    D.a['d'-c]
9.以下定义语句中,错误的是( B )。
    A.int a[]={6,7,8};    B.int n=5,a[n];
C.char a[]="string";                    D.char a[5]={ '0','1' ,'2' ,'3' ,'4'};
10.以下描述中正确的是( D )。
    A.数组名后面的常量表达式用一对圆括弧括起来
    B.数组下标从1开始
    C.数组下标的数据类型可以是整型或实型
    D.数组名的规定与变量名相同
11.用数组名作为函数调用时的实参,实际上传送给形参的是( A )。
    A.数组首地址        B.数组的第一个元素值
    C.数组中全部元素的值    D.数组元素的个数
12.若定义数组并初始化char a[10]= { '0','1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8','9'};
以下正确语句是( C )。
    A.scanf("%c",a[0]);    B.scanf("%s",&a);
    C.printf("%c",a[3]);    D.printf("%s",a);
13.若定义数组int a[10],其数组元素的下标下限为( B )。
    A.1    B.0    C.9    D.10
14.若定义数组int a[10],其最后一个数组元素为( C )。
    A.a[0]    B.a[1]    C.a[9]    D.a[10]
15.若定义数组并初始化int a[10]={1,2,3,4},以下语句不成立的是( B )。
    A.a[8]的值为0    B.a[1]的值为1    C.a[3]的值为4    D.a[9]的值为0
16.若定义数组并初始化int a[10]={1,2,3,4},以下叙述成立的是( A )。
    A.若引用a[10],编译时警告    B.若引用a[10],连接时报错
    C.若引用a[10],运行时出错    D.若引用a[10],系统报错
17.指出以下错误语句( A )。
    A.int n=10,a[n];        B.int n,a[10];
    C.int a[10]={1,2,3};    D.int a[10]={1,2,3,4,5,6,7,8,9,10};
18.若定义数组并初始化int a [10]={1,2,3,4},以下叙述不成立的是( A )。
    A.a[10]是a数组的最后一个元素的引用
    B.a数组中有10个元素
    C.a数组中每个元素都为整数
    D.a数组是整型数组
19.执行下面的程序段后,变量k中的值为( A )。
int k=3,s[2];s[0]=k;k=s[1]*10;
    A.不定值    B.33    C.30    D.10
20.若有以下的定义和语句:int str[12]= {1,2,3,4,5,6,7,8,9,10,11,12}; char c= 'e',则数值为2的表达式是数组全部赋值为1( C )。
    A.str[ 'g'-c]    B.str[2]    C.str[ 'd'-'c']    D.str['d'-c]
21.设已定义:int x[2][4]={1,2,3,4,5,6,7,8};则元素x[1][1]的正确初值是( A )。
    A.6    B.5    C.7    D.1
22.设有int x[2][4]={1,2,3,4,5,6,7,8}; printf("%d",x[2][4]);则输出结果是( C )。
    A.8    B.1    C.随机数    D.语法检查出错
23.设有: int a[4][5]; 则数组a占用的内存字节数是( D )。
    A.9    B.20    C.40    D.80
24.以下程序的输出结果是( C )。
#include<stdio.h>
int main()
{
int i,a[3][3]={1,2,3,4,5,6,7,8,9};
        for (i=0;i<3;i++)
printf("%d,",a[i][2-i]);