第七章数组 7.1选择题 【题7.1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题7.2】以下对一维整型数组a的正确说明是 A) int a(10) B) int n=10, a[nI c) int n: D) #define SIzE 10 scanf(“%d”,&n); int a[size] int a[nl 【题7.3】若有说明:inta[10];则对a数组元素的正确引用是 A)a[10]B)a[3.5]C)a(5)D)a[10-10 【题7.4】在C语言中,一维数组的定义方式为:类型说明符数组名 A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式]D)[整型常量 【题7.5】以下能对一维数组a进行正确初始化的语句是 A)inta[10]=(0,0,0,0,0) B)inta[10]={} C)int a[=[OF D)inta[10]={10*1}; 【题7.6】以下对二维数组a的正确说明是 A) int a[3l0 B) float a (3, 4) C) double a[1][4] D)float a (3)(4) 【题7.7】若有说明:inta[3][4];则对a数组元素的正确引用是 A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1) 【题7.8】若有说明:inta[3][4];则对a数组元素的非法引用是 A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4] 【题7.9】以下能对二维数组a进行正确初始化的语句是 A)inta[2][]={{1,0,1},{5,2,3} B)inta[][3]={1,2,3},{4,5,6} C)inta[2][4]={{1,2,3},{4,5},{6}} D)inta[][3]={{1,0,1},},{1,1} 【题7.10】以下不能对二维数组a进行正确初始化的语句是
第七章 数组 7.1 选择题 【题 7.1】在 C 语言中,引用数组元素时,其数组下标的数据类型允许是 。 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 【题 7.2】以下对一维整型数组 a 的正确说明是 。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题 7.3】若有说明:int a[10];则对 a 数组元素的正确引用是 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题 7.4】在 C 语言中,一维数组的定义方式为:类型说明符 数组名 ; A)[常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[整型常量] 【题 7.5】以下能对一维数组 a 进行正确初始化的语句是 。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 【题 7.6】以下对二维数组 a 的正确说明是 。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题 7.7】若有说明:int a[3][4];则对 a 数组元素的正确引用是 。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题 7.8】若有说明:int a[3][4];则对 a 数组元素的非法引用是 。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题 7.9】以下能对二维数组 a 进行正确初始化的语句是 。 A) int a[2][]={{1,0,1},{5,2,3}}; B) int a[][3]={{1,2,3},{4,5,6}}; C) int a[2][4]={{1,2,3},{4,5},{6}}; D) int a[][3]={{1,0,1},{},{1,1}}; 【题 7.10】以下不能对二维数组 a 进行正确初始化的语句是
A)inta[2][3]={0)}; B)inta[][3]={{1,2},{0} C)inta[2][3]={1,2},{3,4},{5,6}} D)inta[][3]={1,2,3,4,5,6}; 【题7.11】若有说明:inta[3][4]={0};则下面正确的叙述是 A)只有元素a[O][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 【题7.12】若有说明:inta[[4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行 数为1 D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 【题7.13】若有说明:inta[3][4];则数组a中各元素 A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0 C)不能得到确定的初值 D)可在程序的编译或运行阶段得到初值0 【题7.14】以下各组选项中,均能正确定义二维实型数组a的选项是 A) float a[3][4] B)float a(3, 4) float a[[4] float a[3][4] float a[3][]={{},0}} float a[][]={0};{0} C)float a[3][4] ))float a[3][4] static float a[[4]=[[01, (0J) float a[3]0 auto float a[[4]=[01, 101, 101); float a[[4] 【题7.15】下面程序 (每行程序前面的数字表示行号) 3 float a[3]={3*0}; 4 5for(i=0;i<3;i++) scanf(“%d”,&a[i]) 6for(i=1;i<3;i++)a[0]=a[0]+a[i] 7 printf(“%dn”,a[0]) A)第3行有错误 B)第7行有错误 C)第5行有错误 D)没有错误 【题7.16】下面程序 (每行程序前面的数字表示行号)
A) int a[2][3]={0}; B) int a[][3]={{1,2},{0}}; C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[][3]={1,2,3,4,5,6}; 【题 7.11】若有说明:int a[3][4]={0};则下面正确的叙述是 。 A) 只有元素 a[0][0]可得到初值 0 B) 此说明语句不正确 C) 数组 a 中各元素都可得到初值,但其值不一定为 0 D) 数组 a 中每个元素均可得到初值 0 【题 7.12】若有说明:int a[][4]={0,0};则下面不正确的叙述是 。 A) 数组 a 的每个元素都可得到初值 0 B) 二维数组 a 的第一维大小为 1 C) 因为二维数组 a 中第二维大小的值除以初值个数的商为 1,故数组 a 的行 数为 1 D) 只有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得不到初值 0 【题 7.13】若有说明:int a[3][4];则数组 a 中各元素 。 A) 可在程序的运行阶段得到初值 0 B) 可在程序的编译阶段得到初值 0 C) 不能得到确定的初值 D) 可在程序的编译或运行阶段得到初值 0 【题 7.14】以下各组选项中,均能正确定义二维实型数组 a 的选项是 。 A)float a[3][4]; B)float a(3,4); float a[][4]; float a[3][4]; float a[3][]={{1},{0}}; float a[][]={{0};{0}}; C)float a[3][4]; D)float a[3][4]; static float a[][4]={{0},{0}}; float a[3][]; auto float a[][4]={{0},{0},{0}}; float a[][4]; 【题 7.15】下面程序 (每行程序前面的数字表示行号)。 1 main() 2 { 3 float a[3]={3*0}; 4 int i; 5 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(“%d\n”,a[0]); 8 } A)第 3 行有错误 B)第 7 行有错误 C)第 5 行有错误 D)没有错误 【题 7.16】下面程序 (每行程序前面的数字表示行号)
1 maino float a[10]={0.0} int 1 5for(i=0;i<3;i++) scanf(“%d”,&a[i]) 6for(i=1;i<10;i++)a[0]=a[0]+a[i 7 printf(“%f\n”,a[0]) 8} A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误 【题7.17】下面程序中有错误的行是 (每行程序前面的数字表示行号) 1 maino float a[3]=[1] int 1 6for(i=1;i<3;i++)a[0]=a[0]+a[i] 7 printf(“a[0]=%d\n”,a[0]) 8} B)6 D) 【题7.18】下面程序 (每行程序前面的数字表示行号) 2 3 float a[3]=(01 4 5for(i=0;i<3;i++) scanf(“%d”,&a[i]) 6for(i=1;i<4;i++)a[0]=a[0]+a[i] 7 printf(“%d\n”,a[0]) A)没有错误 B)第3行有错误 C)第5行有错误 D)第6行有错误 【题7.19】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 (假设a[0][0]位于数组的第一个位置上。) A)i=m+j B)j*+i C)i*m+j-1 D)i**m+j+ 【题7.20】对以下说明语句的正确理解是 nta[10]={6,7,8,9,10}; A)将5个初值依次赋给a[]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10] D)因为数组长度与初值的个数不相同,所以此语句不正确
1 main() 2 { 3 float a[10]={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(“%f\n”,a[0]); 8 } A)没有错误 B)第 3 行有错误 C)第 5 行有错误 D)第 7 行有错误 【题 7.17】下面程序中有错误的行是 (每行程序前面的数字表示行号)。 1 main() 2 { 3 float a[3]={1}; 4 int i; 5 scanf(“%d”,&a); 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(“a[0]=%d\n”,a[0]); 8 } A)3 B)6 C)7 D)5 【题 7.18】下面程序 (每行程序前面的数字表示行号)。 1 main() 2 { 3 float a[3]={0}; 4 int i; 5 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for(i=1;i<4;i++) a[0]=a[0]+a[i]; 7 printf(“%d\n”,a[0]); 8 } A)没有错误 B)第 3 行有错误 C)第 5 行有错误 D)第 6 行有错误 【题 7.19】若二维数组 a 有 m 列,则计算任一元素 a[i][j]在数组中位置的公式为 。 (假设 a[0][0]位于数组的第一个位置上。) A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1 【题 7.20】对以下说明语句的正确理解是 。 int a[10]={6,7,8,9,10}; A) 将 5 个初值依次赋给 a[1]至 a[5] B) 将 5 个初值依次赋给 a[0]至 a[4] C) 将 5 个初值依次赋给 a[6]至 a[10] D) 因为数组长度与初值的个数不相同,所以此语句不正确
【题7.21】以下不正确的定义语句是 A) double x[5]={2.0,4.0,6.0,8.0,10.0} B)inty[5]={0,1,3,5,7,9 C) char cl[]={‘1’,‘2’,‘3 D) char c2[]={‘\x10’,‘xa’,“\x8'}; 【题7.22】若有说明:inta][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 A)2 B)3 C)4 D)无确定值 【题7.23】若二维数组a有m列,则在a[i][j前的元素个数为 A)j *mti B) i*m+j C)i*m+j-1 D)im+j+1 【题7.24】定义如下变量和数组: inta[3][3]={1,2,3,4,5,6,7,8,9} 则下面语句的输出结果是 for(k=0;k<3;k++) printf(“%d”,a[k][2-k]); A)357B)369C)159D)147 【题7.25】若有以下程序段 nta[]={4,0,2,3,1};i,j,t for(i=1;i<5;i+) while(j>=0&&t>a[j]) a[+1]=a[j];j--;} 则该程序段的功能是 A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序) C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序) 【题7.26】以下正确的定义语句是 A)inta[1][4]={1,2,3,4,5} B) float x[3]0]={{},{2},{3}}; C) long b[2][3]={{1},{1,2},{1,2,3}; D)double y[[3]=01 【题7.27】下面程序的运行结果是
【题 7.21】以下不正确的定义语句是 。 A) double x[5]={2.0,4.0,6.0,8.0,10.0}; B) int y[5]={0,1,3,5,7,9}; C) char c1[]={‘1’,‘2’,‘3’,‘4’,‘5’}; D) char c2[]={‘\x10’,‘\xa’,‘\x8’}; 【题 7.22】若有说明:int a[][3]={1,2,3,4,5,6,7};则 a 数组第一维的大小是 。 A)2 B)3 C)4 D)无确定值 【题 7.23】若二维数组 a 有 m 列,则在 a[i][j]前的元素个数为 。 A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 【题 7.24】定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 。 for(k=0;k<3;k++) printf(“%d”,a[k][2-k]); A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 【题 7.25】若有以下程序段: … … int a[]={4,0,2,3,1}; i,j,t; for(i=1;i<5;i++) { t=a[i]; j=i-1; while(j>=0&&t>a[j]) { a[j+1]=a[j]; j--; } a[j+1]=t; } … … 则该程序段的功能是 。 A) 对数组 a 进行插入排序(升序) B) 对数组 a 进行插入排序(降序) C) 对数组 a 进行选择排序(升序) D) 对数组 a 进行选择排序(降序) 【题 7.26】以下正确的定义语句是 。 A) int a[1][4]={1,2,3,4,5}; B) float x[3][]={{1},{2},{3}}; C) long b[2][3]={{1},{1,2},{1,2,3}}; D) double y[][3]={0}; 【题 7.27】下面程序的运行结果是
for(i=1;i<6;i++) for(j=1;j<6;j+) a[i][j]=(i/j)*(j/i) for(i=1;i<6;i++) for(j=1;j<6;j++) printf(“%2d”,a[i][j) printf(“n”) A)11111B)00001C)10000D)10001 11111 00010 01000 01010 11111 00100 00100 00100 11111 01000 00010 01010 11111 10000 00001 10001 【题7.28】下面程序的运行结果是 ino int a[6] for(i=1;i<6;i++ [i]=9*(i-2+4*(i>3)%5 A)-40404 )-40403 C)-40443 D)-40440 【题7.29】下面是对s的初始化,其中不正确的是 A) char s[5]={“abc” B) char s[5]={‘a’,“b’,‘c’} C) char s[5]=“” D) char s[5]=“ abcdef”; 【题7.30】下面程序段的运行结果是 har c[5]=t printf(“%s”,c) b’B)abC)abc 【题7.31】对两个数组a和b进行如下初始化 char a[]=“ ABCDEF” char b[]={‘A’,‘B’,“C’,“D’,‘E
main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf(“%2d”,a[i][j]); printf(“\n”); } } A)1 1 1 1 1 B)0 0 0 0 1 C)1 0 0 0 0 D)1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 【题 7.28】下面程序的运行结果是 。 main() { int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf(“%2d”,a[i]); } } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 【题 7.29】下面是对 s 的初始化,其中不正确的是 。 A)char s[5]={“abc”}; B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”; D)char s[5]=“abcdef”; 【题 7.30】下面程序段的运行结果是 。 char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s”,c); A)‘a’‘b’ B)ab C)ab c 【题 7.31】对两个数组 a 和 b 进行如下初始化 char a[]=“ABCDEF”; char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};