C语言数组练习
一填空题
1.构成数组的各个元素必须具有相同的______。
2.C语言数组的下标总是从     开始,不可以为负数。
3.字符串是以          为结束标志的一维字符数组。
4.有定义:char a[]=””;则a数组的长度是       
5.若有以下定义:int a[10];,则数组a元素下标的上限为______,下限为______.
6.在C语言中,数组int a[5];的首地址是       
7.数组名定名规则和变量名相同,遵循              定名规则。
8.对于一维数组的定义“类型说明符 数组名[常量表达式]”,其中常量表达式可以包括                     ,不能包含          
9.在C语言中,引用数组只能通过                  来实现,而不能通过整体引用          来实现。如引用数组int a[5];第四个元素为         
10、char str1[15]=“zhongguo”,数组str1所占的内存空间为          个字节。
11.构成数组的各个元素必须具有相同的             
12、有数组的定义int str[ ]={0,1,2,3,4};该数组长度为______________。
13.有数组定义float kk[5];则将第一个元素赋值为5.0的语句为____________;将第二个元素值为12.3的语句为______________,将一、二两个元素的和赋给最后一个元素的语句为_________________________________
14.一维数组元素的下标最小值从_______________开始,定义一个数组为int x[8];的数组长度为________________.引用最后一个元素的为_____________________。
15、在数组中int score[10]={1、2、3、4、5}中,元素个数有______________个,其中score[8]的值为______________。
二选择题
1.对两个数组a和b进行如下初始化
    char a[]="ABCDEF";
    char b[]={'A','B','C','D','E','F'};
    则以下叙述正确的是________。
A、a与b数组完全相同        B、a与b长度相同
C.a比b数组长度多1          D. 两个数组左后一个元素相同
2、有下面的程序段
    char a[3],b[]="China";
    a=b;
    printf("%s",a);
    则________。
    A、运行后将输出China    B、运行后将输出Ch
    C、运行后将输出Chi      D、编译时出错
3、对以下说明语句 正确的理解是( 
char  a[] hello”;
A 5个初值依次赋值给a[0]a[4]
B 6个初值依次赋值给a[0]a[5]
C 5个初值依次赋值给a[5]a[10]
D因数组长度和初值的个数不同,所以此语句不正确
4.设有char str[10],下列语句正确的是        。
  A) scanf("%s",&str);            B) printf("%c",str);
  C) printf("%s",str[0]);              D) printf("%s",str);
5.下列说法正确的是        。
  A) 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
  B) 在C语言中,数组元素的个数可以不确定,允许随机变动
  C) 在C语言中,数组元素的数据类型可以不一致
  D)定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数
6.假设array是一个有10个元素的整型数组,则下列写法中正确的是        。
  A) array[0]=10                    B) array=0
  C) array[10]=0                    D) array[-1]=0
7. 若有以下定义:
  int  a[4]={ 5, 4, 3, 2 } ;
则下面表达式中数值为2的是       
  A)a [2]      B)a [8-4]    C)a [7-5]  D)a [3]
8.下列数组的定义中,会产生错误的是
    A)int a[10]={'0','1','2','3','4','5','6','7','8','9'};
    B)int a[10]={0,1,2,3,4,5,6,7,8,9};
    C)char a[5]="Hello";
    D)char a[5]={'H','e','l','l','o'};
9.下列对字符串的说法中,错误的是
    A)字符串就是一个字符数组
    B)字符串可以整体输入输出
    C)字符串可以比较大小
    D)存储字符串所需的内存空间等于字符串的长度
10.有以下程序片段,请问执行后的输出结果是
    char a[6]={'a','b','c','\0','d','e'};
    printf("%s",a);
A)abc    B)abcde    C)abcde    D)出错,无输出结果
11.以下关于数组的描述正确的是(  )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素。
B. 数组的大小是可变的,但所有数组元素的类型必须相同。
C. 数组的大小是固定的,但所有数组元素的类型必须相同。
D. 数组的大小是可变的,但可以有不同的类型的数组元素。
12.在定义int a[10];之后,对a的引用正确的是(  )。
A. a[10]          B. a[6.3]        C. a(6)        D. a[10-10]
13.以下不能正确赋值的是 (    ) 。
A. char s1[10];s1="test";    B. char s2[]={t,e,s,t}
C. char s3[20]= "test";      D. char s4[4]={t,e,s,t}
14、下面数组的定义正确的是(  )
A  int cn(50)  B int cn[50]  C int cn[49.9]  D int cn[ ]
15、下面数组初始化不正确的是( 
a int tip[ ]={1,2,3,4,5,};    b int tip[20]={0};
c int tip[5]=1,2,3,4,5;      d int name[ ]=”horn”
16、对以下说明语句 正确的理解是( 
char  a[] hello”;
A 5个初值依次赋值给a[0]a[4]
B 6个初值依次赋值给a[0]c语言字符串转换数组a[5]
C 5个初值依次赋值给a[5]a[10]
17. 若有以下定义:
  int  a[4]={ 5, 4, 3, 2 } ;
则下面表达式中数值为2的是       
  A)a [2]      B)a [8-4]    C)a [7-5]  D)a [3]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。