return (*s-*t) ; }
C)strcmp3(char *s,char *t) { for ( ; *t= =*s; )
{ if (!*t) return 0 ; t++ ; s++ ; }
return (*s-*t) ; }
D)strcmp4(char *s,char *t) { for ( ; *s==*t; s++, t++ ) if (!*s) return 0 ;
return (*t-*s) ; }
17.以下说明不正确的是 。
A)char a[10]=”china” ; B)char a[10],*p=a; p=”china”;
C)char *a; a=”china” ; D)char a[10],*p; p=a=”china”;
18.设有说明语句:char a[]=”It is mine”;char *p=”It is mine”;则以下不正确的叙述是 。 A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
19.若已定义char s[10];则在下面表达式中不表示s[1]的地址是 。
A)s+1 B)s++ C)&s[0]+1 D)&s[1]
20.若有定义:int a[5],*p=a;则对a数组元素的正确引用是 。
A)*&a[5] B)a+2 C)*(p+5) D)*(a+2)
21.若有定义:int a[5],*p=a;则对a数组元素地址的正确引用是 。
A)p+5 B)*a+1 C)&a+1 D)&a[0]
22.若有定义:int a[2][3];则对a数组的第i行第j列元素值的正确引用是 。
A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j
23.若有定义:int a[2][3];则对a数组的第i行第j列元素地址的正确引用是 。
A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j
24.若有程序段:int a[2][3],(*p)[3]; p=a;则对a数组元素地址的
正确引用是 。
A)*(p+2) B)p[2] C)p[1]+1 D)(p+1)+2
25.若有程序段:int a[2][3],(*p)[3]; p=a;则对a数组元素的正确引用是 。
A)(p+1)[0] B)*(*(p+2)+1) C)*(p[1]+1) D)p[1]+2
26.若有定义:int a[5];则a数组中首元素的地址可以表示为 。
A)&a B)a+1 C)a D)&a[1]
27.若有定义:int (*p)[4];则标识符p 。 A)是一个指向整型变量的指针 B)是一个指针数组名
C)是一个指针,它指向一个含有四个整型元素的一维数组 D)定义不合法
28.以下与int *q[5];等价的定义语句是 。
A)int q[5] B)int *q C)int *(q[5]) D)int (*q)[5]
29.以下正确的说明语句是 。 A)int *b[]={1,3,5,7,9} ;
B)int a[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};
C)int a[]={1,3,5,7,9}; int
*num[5]={a[0],a[1],a[2],a[3],a[4]}; D)int a[3][4],(*num)[4]; num[1]=&a[1][3];
30.若有定义:int b[4][6],*p,*q[4];且0≤i<4,则不正确的赋值语句是 。
A)q[i]=b[i]; B)p=b; C)p=b[i]; D)q[i]=&b[0][0]
32.若要对a进行自减运算,则a应有下面说明 。
A)int p[3]; B)int k; C)char *a[3] D)int b[10];
int *a=p; int *a=&k; int *a=b+1;
33.以下选项中,对指针变量p的正确操作是 。
A)int a[3], *p; B)int a[5], *p; C)int a[5]; D)int a[5]
p=&a; p=a; int *p=a=100; int *p1,*p2=a;
*p1=*p2;
34.若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是 。
A)x[3] B)p1=x+3,*p1++
相关推荐: