指针习题及答案一.选择题1.变量的指针,其含义是指该变量的 B 。A)值 B)地址 C)名 D)一个标志2.已有定义 int k=2;int *ptr1,*ptr2;且 ptr1 和 ptr2 均已指向变量 k,下面不能正确执行的赋值语句是 B 。A)k=*ptr1+*ptr2 B)ptr2=k C)ptr1=ptr2 D)k=*ptr1*(*ptr2)3.若有说明:int *p,m=5,n;以下程序段正确的是 D 。A)p=&n ; B)p = &n ; scanf(“%d”,&p); scanf(“%d”,*p);C)scanf(“%d”,&n); D)p = &n ; *p=n ; *p = m ;4.已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是 D 。void print_value(int *x){ printf(“%d\n”,++*x); }A)23 B)24 C)25 D)265.若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是 C 。A)p1=&m; p2=&p1 ; B)p1=&m; p2=&n; *p1=*p2 ;C)p1=&m; p2=p1 ; D)p1=&m; *p1=*p2 ;6.若有语句:int *p,a=4;和 p=&a;下面均代表地址的一组选项是 D 。A)a,p,*&a B)&*a,&a,*p C)*&p,*p,&a D)&a,&*p,p7.下面推断正确的是 C 。A)char *a=”china”; 等价于 char *a; *a=”china” ;B)char str[10]={“china”}; 等价于 char str[10]; str[ ]={“china”;}C)char *s=”china”; 等价于 char *s; s=”china” ;D)char c[4]=”abc”,d[4]=”abc”; 等价于 char c[4]=d[4]=”abc” ;8.下面程序段中,for 循环的执行次数是 C 。char *s=”\ta\018bc” ;for ( ; *s!=’\0’ ; s++) printf(“*”) ;A)9 B)7 C)6 D)59.下面能正确进行字符串赋值操作的是 C 。A)char s[5]={“ABCDE”}; B)char s[5]={‘A’,’B’,’C’,’D’,’E’};C)char *s ; s=”ABCDE” ; D)char *s; scanf(“%s”,s) ;10.下面程序段的运行结果是 C 。char *s=”abcde” ;s+=2 ; printf(“%d”,s);A)cde B)字符’c’ C)字符’c’的地址 D)不确定11.设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是 B 。A)c=*p1+*p2 B)p2=c C)p1=p2 D)c=*p1*(*p2)12.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是 D 。A)s 和 p 完全相同B)数组 s 中的内容和指针变量 p 中的内容相等C)s 数组长度和 p 所指向的字符串长度相等D)*p 与 s[0]相等13.以下与库函数 str...