指针习题及答案 一.选择题 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)26 5.若有说明: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,p 7.下面判断正确的是 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)5 9.下面能正确进行字符串赋值操作的是 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)数...