D.
)s数组长度和p所指向的字符串长度相等 D )*p与s[0]相等 2. 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是( ) A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 3. 下列程序执行后的输出结果是( ) void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf ("%d\n",b[0]); } A )6 B)7 C)8 D)9 4. 已定义以下函数 fun(char *p2, char *p1) { while ((*p2=*p1)!=’\0’) { p1++;p2++; } } 函数的功能是( ) A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有’\0’ 5. 有以下程序( ) void ss(char *s,char t) { while(*s) { if(*s= =t)*s=t-’a’+’A’; s++; } } main() { char str1[100]="abcddfefdbd",c=’d’; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是( ) A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 6. 下面说明不正确的是( ) 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" 7. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是( ) A)p=1; B)*q=2; C)q=p; D)*p=5; 8. 执行以下程序后,a,b的值分别为( ) main() { int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } A )-1,5 B)1,6 C)0,7 D)4,10 9. 以下程序有错,错误原因是( ) main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... } A )p和q的类型不一致,不能执行*p=*q;语句 B)*p中存放的是地址值,因此不能执行*p=40;语句 C)q没有指向具体的存储单元,所以*q没有实际意义 D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果 10. 下面程序段的运行结果是( ) char a[]="lanuage",*p; p=a; while(*p!=′u′){ printf("%c",*p-32);p++; } A )LANGUAG