第9章:一维数组
- 格式:ppt
- 大小:1.76 MB
- 文档页数:36


c语言一维数组自定义方式
C语言中,一维数组可以通过以下三种方式自定义:
1.直接指定数组长度
●int arr[5];//定义一个长度为5的整型数组
2.通过初始化列表指定数组元素
●int arr[]={1,2,3,4,5};//定义一个长度为5的整型数组,并初始化元素值为1、2、
3、4、5
3.通过指针方式指定数组长度
●int*arr=malloc(sizeof(int)*5);//分配一个长度为5的整型数组空间
直接指定数组长度
这种方式是最简单的,只需要在数组名称后面指定数组的长度即可。
需要注意的是,数组的长度必须是常量表达式,不能是变量或函数调用结果。
通过初始化列表指定数组元素
这种方式可以同时指定数组的长度和数组元素的值。
初始化列表中的元素必须与数组元素类型一致。
通过指针方式指定数组长度
这种方式需要使用malloc()函数来分配数组空间。
malloc()函数会返回一个指向数组首元素的指针。
需要注意的是,需要使用free()函数来释放数组空间。
第九章数组和指针1、有以下程序main(){ int a[]={2,4,6,8,10}, y=0, x, *p;p=&a[1];for(x= 1; x< 3; x++) y += p[x];printf("%d\n",y);}程序运行后的输出结果是A)10 B)11 C)14 D)152、有以下程序void sum(int a[]){ a[0] = a[-1]+a[1]; }main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n", a[2]);}程序运行后的输出结果是A)6 B)7 C)5 D)83、有以下程序main(){int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++< 7) if(p[i]%2) j+=p[i];printf("%d\n",j);}程序运行后的输出结果是A)42 B)45 C)56 D)604、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是A)for(i=0;i<6;i++) printf("%2d",*(p++));B)for(i=0;i<6;i++) printf("%2d",*(p+i));C)for(i=0;i<6;i++) printf("%2d",*p++);D)for(i=0;i<6;i++) printf("%2d",(*p)++);5、有以下程序#include < stdio.h >main(){ int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);printf("%d %d\n",*p,*q); }程序运行后的输出结果是A)运行后报错 B)6 6 C)6 11 D)5 106、有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5 B)6 C)8 D)97、已有定义:int i,a[10],*p;则合法的赋值语句是A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2;8、以下能正确定义一维数组的选项是A)int num []; B)#define N 100int num [N];C)int num[0..100]; D)int N=100;int num[N];9、有以下程序main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0;while(i< 7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}执行后输出结果是A)58 B)56 C)45 D)2410、有以下程序main(){ int x[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}执行后输出结果是A)随机值 B)0 C)5 D)611、若有定义:int aa[8];。