习题六
一.选择题
1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 。
A)整型常量 B)整型表达式
C)整常量或整表达式 C)任何类型的表达式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];
3.若有定义:int a[10],则对数组a元素的正确引用是 。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下能对一维数组a进行正确初始化的语句是 。
A)int a[10]={0,0,0,0,0}; B)int a[10]={} ;
C)int a[ ] = {0} ; D)int a[10]={10*1} ; 5.若有定义:int a[3][4],则对数组a元素的正确引用是 。A)a[2][] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组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.以下不能对二维数组a进行正确初始化的语句是 。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} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是 。A)只有元素a[0][0]可得到初值0
B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是 。A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)因为二维数组a中初值个数除以第二维大小的值的商为1,故数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值010.若二维数组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+111.若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是 。A)2 B)3 C)4 D)无确定值12.以下不正确的定义语句是 。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’} ;13.下面程序段的输出结果是 。int k,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 714.下面是对s的初始化,其中不正确的是 。A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’};
C)char s[5]=””; D)char s[5]=”abcde”;15.下面程序段的输出结果是 。char c[5]={‘a’,’b’,’\0’,’c’,’\0’}
printf(“%s”,c);
A)’a’’b’ B)ab C)ab c D)abc17.有两个字符数组a,b,则以下正确的输入语句是 。A)gets(a,b); B)scanf(“%s%s”,a,b);
C)scanf(“%s%s”,&a,&b); D)gets(“a”),gets(“b”);18.下面程序段的输出结果是 。char a[7]=”abcdef”;
char b[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A) B)\0 C)e D)f19.下面程序段的输出结果是 。char c[ ]=”\t\v\\\0will\n”;
printf(“%d”,strlen(c));
A)14 B)3 C)9 D)620.判断字符串a和b是否相等,应当使用 。A)if (a= =b) B)if (a=b)
C)if (strcpy(a,b)) D) if (strcm