c语言数组习题集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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};

相关文档
最新文档