c语言数组习题集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章数组习题
A卷1. 单项选择题
(1) int a[4]={5,3,8,9};其中a[3]的值为(D )。
D A. 5 B. 3 C. 8 D. 9
(2) 以下4 个字符串函数中,( A)所在的头文件与其他3 个不同。
A. gets
B. strcpy
C. strlen
D. strcmp
(3) 以下4 个数组定义中,( D)是错误的。
A. int a[7];
B. #define N 5 long b[N];
C. char c[5];
D. int n,d[n];
(4) 对字符数组进行初始化,(B )形式是错误。
A. char c1[ ]={'1', '2', '3'};
B. char c2[ ]=123;
C. char c3[ ]={ '1', '2', '3', '\0'};
D. char c4[ ]="123";
(5) 在数组中,数组名表示(A )。
A. 数组第1 个元素的首地址
B.数组第2 个元素的首地址
C. 数组所有元素的首地址
D.数组最后1 个元素的首地址
(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是(B )
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 的表达式是(D )。
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)。
A. 6
B. 7
C. 11
D. 12
(9) 设有定义:char s[12] = "string";
则printf("%d\n ", sizeof(s)); 的输出是( B)。
A. 6
B. 7
C. 11
D. 12
(10) 合法的数组定义是( A)。
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) 合法的数组定义是(D )。
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) 下列定义的字符数组中,输出printf("%s\n", str[2]) ;的输出是(C )。
static str[3][20] ={ "basic", "foxpro", "windows"};
A. basic
B. foxpro
C. windows
D. 输出语句出错
(14) 下列各语句定义了数组,其中哪一个是不正确的( C)。
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的数组元素是(B )。
A. a[3][2]
B. a[2][1]
C. a[1][2]
D. a[2][3]
(16) 下面的程序中哪一行有错误(A )。
#include main()
{ float array[5]={0.0}; //第A行
int i; for(i=0;i<5;i++) scanf("%f",&array[i]);
for(i=1;i<5;i++) array[0]=array[0]+array[i];//第B行
printf("%f\n",array[0]); //第C行}
A. 第A行
B. 第B行
C. 第C行
D. 没有
(17) 下面哪一项是不正确的字符串赋值或赋初值的方式(A )。
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) 若有以下说明和语句,则输出结果是哪一项(D )。
(strlen(s)为求字符串s的长度的函数)
char s[12]="a book!"; printf("%d",strlen(s));
A. 12
B. 8
C. 7
D. 11
(19) 若有以下说明和语句,则输出结果是(C )。
(strlen(s)为求字符串s的长度的函数)
char sp[]="\t\v\\\0will\n"; printf("%d",strlen(sp));
A. 14
B. 3
C. 9
D. 字符串中有非法字符
(20) 若有以下说明和语句,则输出结果是( C)。
char str[]="\"c:\\abc.dat\""; printf("%s",str);
A. 字符串中有非法字符
B. \"c:\\abc.dat\"
C. "c:\abc.dat"
D. "c:\\abc.dat"
2. 填空题
(1) C 语言中,数组的各元素必须具有相同的(类型名),元素的下标下限为(0),下标必须是正整数、0、或者(变量)。但在程序执行过程中,不检查元素下标是否()。
(2) C 语言中,数组在内存中占一片()的存储区,由()代表它的首地址。数组名是一个()常量,不能对它进行赋值运算。
(3) 执行static int b[5], a[ ][3] ={1,2,3,4,5,6};