第六章 数组 C06-01
下面对数组定义正确的是:
int b[]int b[n],n=5int b[10/2]int b[4.8]
若有定义语句:int a[10];则下列对a中数组元素正确引用的是
a[10/2–5]a[10]a[4.5]a(1)
能对一维数组正确初始化的语句是:
int a[6]={6*1}int a[6]={1,,,3}int a[6]={}int a[6]=(0,0,0)
定义数组:int n=10; int a[n];则数组a有10个元素 对错
如果定义数组int b[6]={1,2,3,4};则b[6]为0 对错
如果想使一个数组中全部元素的值为1,可以写成 int a[10]={1*10} 对错
若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是: 12204080
若定义数组int a[10] ,其最后一个数组元素为a[10] 对错
如下定义一个数组:int a[30]; double i=20;则有数组元素a[i] 对错
有n(0<=n<=100)个整数要存储,可以这样定义数组吗? int n;
scanf(\int a[n];
for(i=0;i scanf(\ 对错 C06-02 int 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(\ return 0;} 58 564524 条件:i<7&&p[i]%2,说明i要小于7并且p[i]是要奇数是初i=0所以可看出,i=0,i=1时, 经过的while循环当i=2时,p[2]=14不是奇数,则结束循环而p[0]=11,p[1]=13则k=24 有定义语句“int a[5],i;\输入数组a的所有元素的语句应为: scanf(\for(i=0;i<5;i++)scanf(\for(i=0;i<5;i++)scanf(\ 下面程序中有错误的行是______。 1、 main( ) 2、 { 3、 int x[3]; 4、 int k; 5、 scanf(\6、 for (k=1; k<3; k++) 7、 x[0]=x[0]+x[k]; 8、 printf(\9、 } 3567 #include { int a[10]={11,2,3,24,25,16,7,18,23,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { if(a[i]%2==0) continue; s+=a[i]; k++; } if(k!=0) { ave=s/k; printf(\ }} k is:10,ave is :13.000000k is:5,ave is :13.000000 k is:5,ave is :14.000000k is:5,ave is :13.800000 void main() { int n[3],t,j,k; for(t=0;t<3;t++) n[t]=0; k=2; for(t=0;t C06-03 以下能正确定义二维数组的语句为: int a[][] int a[][4] int a[3][] int a[3][4] 若有数组定义语句“int a[4][5];”,则对a 中数组元素的正确引用是: a[4][1] a[2,1] a[4][5] a[4 –1][5–5] 以下能对二维数组a进行正确初始化的语句 为: int a[2][ ]={{1},{4,5}} int a[2][3]={1,2,3,4,5,6,7} int a[ ][ ]={1,2,3,4,5,6} int a[ ][3]={1,2,3,4,5} 设int a[][4]={1,2,3,4,5,6,7,8,9}; 则数组a的第一维的大小是: 2 3 4 无确定值 若二维数组y有m列,则在y[i][j]前的元素 个数为: j*m+i i*m+j i*m+j-1 i*m+j+1 若有数组定义语句:int a[4][5]; 其中第10个数组元素怎么表示? a[2][0] a[2][5] a[1][4] a[1][5] 定义一个二维数组并进行初始化:int a[2][3]={{1,2,3,4},{0,0}}; 对 错 如下两个定义一样: int a[2][3]={{1,2},{3,4,}};和 int a[2][3]={1,2,3,4}; 对 错 C06-04 int main(){ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf(\ return 0;} 11 19 13 20 有如下定义:float ff[5][6]; int i,j; 怎么输入整 个数组呢? for(i=0;i<5;i++) for(j=0;j<6;j++) scanf(\ scanf(\ for(i=0;i<5;i++) for(j=0;j<6;j++) scanf(\ for(i=1;i<=5;i++) for(j=1;j<=6;j++) scanf(\ void main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\3 4 1 9 int j; int x[3][3]={1,2,3,4,5,6,7,8,9}; for (j=0;j<3;j++) printf(\输出结果是: 1 5 9 1 4 7 3 5 7 3 6 9 产生并输出杨辉三角的前七行。 空格处应填(): 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 #include C06-05 下列对字符数组的初始化不正确的是: char s[5]=\ char s[5]={'a','b','c','d','e'}; char s[5]=\ char s[]=\ 有定义语句:int b; char c[10];,则正确的输入语句是: scanf(\ scanf(\ scanf(\ scanf(\ 设已定义char c[10]=\和int j,则下面的输出函数调用中错误的是: printf(\for(j=0;j<10;j++) printf(\ puts(c); for(j=0;j<10;j++) puts(c[j]); #include { char a[]=\ printf(\ %d\ return 0;} 执行后输出结果是: 7 7 8 8 8 10 10 10 若有以下定义语句: char s[10];s=\则运行结果是: 输出abcd 输出a 输出ab cd 编译不通过 用gets函数可以接收一个含有空格的字符串。 对 错 char c[]=\Good\是一个合法的为字符数组赋值的语句。 对 错