第六章数组
单选题
在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型常量
B.整型常量或整型表达式
C.整型表达式
D.任何类型的表达式
在32位计算机系统中,一个int型变量占4个字节的存储单元,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数为( )。
A. 3
B. 6
C.12
D.40
以下对一维整型数组a的正确说明是( )。
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10 int a[SIZE];
下列定义数组正确的是( )。
A.int a[ ]={1,2,3,4,5};
B.int b[1]={2,5};
C.int a(10);
D.int 4e[4];
假设array是一个有10个元素的整型数组,则下列写法中正确的是( )。
A.array[0]=10
B.array=0
C.array[10]=0
D.array[-1]=0
若有以下定义:
int a[5]={ 5, 4, 3, 2, 1 } ;
char b= 'a', c, d, e;
则下面表达式中数值为2的是( )。
A.a[3]
B.a[d–b]
C.a[4]
D.a[c-b]
若有二维数组a[m][n],则数组中a[i][j]之前的元素个数为( )。
A.j*m+i
B.i*n+j
C.i*m+j+1
D.i*n+j+1
int a[3][3]={1,2,3,4,5,6,7,8,9},i;则下列语句的输出结果是( )。
for (i=0;i<=2;i++)
printf("%d ",a[i][2-i]);
A. 3 5 7
B. 3 6 9
C. 1 5 9
D. 1 4 7
以下能正确定义数组并正确赋初值的语句是( )。
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}};
C.int c[2][]= {{1,2},{3,4}};
D.int d[3][2]={{1,2},{3,4}};
以下不能对二维数组a进行正确初始化的语句是( )。
A.int a[2][3] = {0};
B.int a[ ][3]={{1,2},{0}};
C.int a[2][3]={{1,2},{3,4},{5,6}};
D.int a[ ][3]={1,2,3,4,5,6};
以下能对二维数组a进行正确说明和初始化的语句是( )。
A.int a( )(3)={ ( 1, 0, 1 ), ( 2, 4, 5 ) };
B.int a[2][ ]={ { 3, 2, 1 }, { 5, 6, 7 } };
C.int a[ ][3]={ { 3, 2, 1 }, { 5, 6, 7 } };
D.int a(2)( )={ ( 1, 0, 1 ), ( 2, 4, 5 ) };
int a[3][4] = {0};则下面叙述的正确是( )。
A.只有元素a[0][0]可以得到初值0
B.此说明语句不正确
C.数组a中每个元素均可得到初值0
D.数组a每个元素均可得到初值,但值不一定为0
设有char str[10],下列语句正确的是( )。
A.scanf("%s",&str);
B.printf("%c",str);
C.printf("%s",str[0]);
D.printf("%s",str);
下面程序的运行结果是( )。
char c[5]={'a','b','\0','c','\0'};
printf("%s",c);
A.a''b'
B.ab\0c\0
C.ab c
D.ab
若给出以下定义
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
则正确的叙述为( )。
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组y的长度大于数组x的长度
设已定义char s[]="\"Name\\Address\"\n";,则字符串s所占的字节数是( )。
A.19
B.18
C.15
D.16
判断字符串a和b是否相等,应当使用( )。
A.if (a= =b)
B.if (a=b)
C.if (strcpy(a,b))
D.if(strcmp(a,b))
有字符数组a[8]和b[10],则正确的输出语句是( )。
A.puts (a,b);
B.puts(a),puts(b);
C.putchar(a); putchar(b);
D.printf("%s,%s",a[8],b[10]);
以下不能正确把字符串program赋给数组的语句是( )。
A.char a[ ]={'p','r','o','g','r','a','m' ,'\0'};
B.char a[10]; strcpy(a, "program");
C.char a[10]; a="program";
D.char a[10]={ "program"};
设有两字符串"Beijing"、"China"分别存放在字符数组str1[10],str2[10]中,
下面语句中能把"China"连接到"Beijing"之后的为( )。
A.strcpy(str1,str2);
B.strcpy(str1,"China");
C.strcat(str1,"China");
D.strcat("Beijing",str2);
填空题
1.数组中的每一个元素具有相同的___。
2.数组名命名规则和变量名相同,遵循___命名规则。
3.定义一维数组的格式为"类型说明符数组名[常量表达式]",其中常量表达
式表示数组的长度,可以包括___和符号常量。
4.定义一维数组时,如果对数组元素全部赋初值,则数组的长度___。
5.给数组赋值的时候可以只给一部分元素赋值,其他元素的值为___。
6.引用数组全部元素可以通过___数组元素来实现。
7.C语言规定二维数组的元素是___存放。
8.定义二维数组时,如果同时对数组元素全部赋初值,则数组___长度可以省略。
9.对数组a[m][n]来说,使用数组的某个元素时,行下标最大值是___。
10.C语言中字符串输出函数是___。
判断题
1.数组中的每一个元素占有大小相同的内存空间,可以作为单个变量使用。
2.定义一维数组的格式为"类型说明符数组名[常量表达式]",其中常量表达
式表示数组的长度,可以包括整型常量和浮点型常量。
3.定义一维数组的格式为"类型说明符数组名[表达式]",其中表达式表示数
组的长度,可以是变量。
4.对全部数组元素赋初值时,可以不指定数组长度。
5.在C语言中不能整体引用数值数组。
6.定义二维数组时,如果同时对数组元素全部赋初值,则数组长度可以省略。
7.C语言中没有提供字符串变量,对字符串的处理常常采用字符数组实现。
8.对数组a[m][n]来说,使用数组的某个元素时,列下标最大值是n。
9.C语言规定二维数组的元素是按列存放。
10.定义并初始化一维数组时,必须写出数组的长度。
编程题
1.已知一个整形数组{3,7,8,9,10,4,5},求该数组中所有值为偶数的元素的
和。
2.已知一个整形数组{5,7,11,9,8,4,6},求该数组中所有值为奇数的元素的
和。
3.从键盘输入8个整数并保存到数组,输出8个整数中的最大值及其下标。
4.从键盘输入10个浮点数并保存到数组,输出10个浮点数中的最小值及其下
标。
5.编程从键盘输入一行字符串,统计其中英文字符、数字、空格和其他字符的
个数。
单选题
BDDAA
ABADC
CCDDC
CDBCC
填空题
11.数据类型
12.标识符
13.整型常量
14.省略
15.默认值
16.逐个引用
17.按行
18.第一维
19.m-1
20.puts()
判断题
11.正确
12.错误
13.错误
14.正确
15.正确
16.错误
17.正确
18.错误
19.错误
20.错误