第6章 数组习题

*
您的姓名:
1. 单项选择题
*
1.
int a[4]={5,3,8,9};其中 a[3]的值为()
A. 5
B. 3
C. 8
D. 9
*
2.
以下 4 个字符串函数中, ( )所在的头文件与其他 3 个不同。()
A. gets
B. strcpy
C. strlen
D. strcmp
*
3.
以下 4 个数组定义中, ( )是错误的。 ()
A. int a[7];
B. #define N 5 long b[N];
C. char c[5];
D. int n,d[n];
*
4.
对字符数组进行初始化, ( )形式是错误。()
A. char c1[ ]={'1', '2', '3'};
B. char c2[ ]=123;
C. char c3[ ]={ '1', '2', '3', '\0'};
D. char c4[ ]="123";
*
5.
在数组中,数组名表示()
A. 数组第 1 个元素的首地址
B.数组第 2 个元素的首地址
C. 数组所有元素的首地址
D.数组最后 1 个元素的首地址
*
6.
若有以下数组说明,则数值最小的和最大的元素下标分别是()

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};
A. 1,12
B. 0,11
C. 1,11
D. 0,12
*
7.
 若有以下说明,则数值为 4 的表达式是()

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
A. a[g-c]
B. a[4]
C. a['d'-'c']
D. a['d'-c]
*
8.
 设有定义: char s[12] = "string" ; 则 printf( "%d\n",strlen(s)); 的输出是()
A. 6
B. 7
C. 11
D. 12
*
9.
设有定义: char s[12] = "string"; 则 printf("%d\n ", sizeof(s)); 的输出是( )。
A. 6
B. 7
C. 11
D. 12
*
10.
合法的数组定义是()
A. char a[ ]= "string " ;
B. int a[5] ={0,1,2,3,4,5};
C. char a= "string " ;
D.char a[ ]={0,1,2,3,4,5}
*
11.
合法的数组定义是()
A. int a[3][ ]={0,1,2,3,4,5};
B. int a[ ][3] ={0,1,2,3,4};
C. int a[2][3]={0,1,2,3,4,5,6};
D. int a[2][3]={0,1,2,3,4,5,};
*
12.
下列语句中,正确的是 ()
A. char a[3][ ]={'abc', '1'};
B. char a[ ][3] ={'abc', '1'};
C. char a[3][ ]={'a', "1"};
D. char a[ ][3] ={ "a", "1"};
*
13.
下列定义的字符数组中,输出 printf("%s\n", str[2]) ;的输出是()

static str[3][20] ={ "basic", "foxpro", "windows"};
A. basic
B. foxpro
C. windows
D. 输出语句出错
*
14.
 下列各语句定义了数组,其中哪一个是不正确的()。
A. char a[3][10]={"China","American","Asia"};
B. int x[2][2]={1,2,3,4};
C. float x[2][ ]={1,2,4,6,8,10};
D. int m[][3]={1,2,3,4,5,6};
*
15.
 数组定义为 int a[3][2]={1,2,3,4,5,6},值为 6 的数组元素是()。
A. a[3][2]
B. a[2][1]
C. a[1][2]
D. a[2][3]
*
16.
下面的程序中哪一行有错误()。
A. 第 A 行
B. 第 B 行
C. 第 C 行
D. 没有
*
17.
下面哪一项是不正确的字符串赋值或赋初值的方式( )。 C
A. char *str; str="string";
B. char str[7]={'s','t','r','i','n','g'};
C. char str1[10];str1="string";
D. char str1[]="string",str2[]="12345678";
*
18.
若有以下说明和语句,则输出结果是哪一项()。

(strlen(s)为求字符串 s 的长度的函数)
char s[12]="a book!";
printf("%d",strlen(s));
A. 12
B. 8
C. 7
D. 11
*
19.
 若有以下说明和语句,则输出结果是()。

(strlen(s)为求字符串 s 的长度的函数)
char sp[]="\t\v\\\0will\n";
printf("%d",strlen(sp));
A. 14
B. 3
C. 9
D. 字符串中有非法字符
*
20.
 若有以下说明和语句,则输出结果是()。

char str[]="\"c:\\abc.dat\"";
printf("%s",str);
A. 字符串中有非法字符
B. \"c:\\abc.dat\"
C. "c:\abc.dat"
D. "c:\\abc.dat"
3. 判断题
*
21.
C 允许对数组的大小作动态定义,即可用变量定义数组的大小。
*
22.
字符数组不要求它的最后一个字符为‘\0’,甚至可以不包含‘\0’。
*
23.
数组定义 int a[10]; 也可以写成 int a(10); 。
*
24.
在对全部数组元素赋初值时,可以不指定数组长度。
*
25.
定义 s 为 5×6(5 行 6 列)的数组可写成 float a[5,6];
*
26.
数组定义 int a[10]; 表示数组名为 a,此数组有 10 个元素。
*
27.
数组定义 int a[10]; 表示数组名为 a,此数组有 10 个元素,第 10 个元素为 a[10]。
*
28.
static char c[]={“a book”}; 与 static char c[]=“a book”; 等价。
*
29.
static char c[]={'a' ,' ','b','o','o','k','\0'};
与 static char c[]={'a' ,' ','b','o','o','k'}; 等价。
*
30.
设已有说明: static char c1[10],c2[10]; 下面程序片段是合法的。
c1={“book”}; c2=c1;
问卷星提供技术支持
举报