指针测试题.

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复习题

一、选择题

1.变量的指针,其含义是指该变量的().

A)值B)地址C)名D)一个标志

2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_____.

A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point ,point 3.若有说明;int *p,m=5,n;以下正确的程序段的是().

A)p=&n; B)p=&n;

scanf("%d",&p); scanf("%d",*p);

C)scanf("%d",&n); D)p=&n;

*p=n; *p=m;

4.下面程序段的运行结果是().

char *s="abcde";

s+=2;printf("%d",s);

A)cde B)字符’c’C)字符’c’的地址D)无确定的输出结果

5.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是________.

A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);

6.以下正确的程序段是().

A)char str[20]; B)char *p;

scanf("%s",&str); scanf("%s",p);

C)char str[20]; D)char str[20],*p=str;

scanf("%s",&str[2]); scanf("%s",p[2]);

7.若有说明语句

char a[]="It is mine";

char *p="It is mine";

则以下不正确的叙述是()

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

8.下面程序的运行结果是()

#include

#include

main()

{

char *s1="AbDeG";

char *s2="AbdEg";

s1+=2;s2+=2;

printf("%d\n",strcmp(s1,s2));

}

A)正数B)负数C)零D)不确定的值

9.下面程序的运行结果是()

#include

#include

fun(char *w,int n)

{char t,*s1,*s2;

s1=w;s2=w+n-1;

while(s1

}

main()

{char *p;

p="1234567";

fun(p,strlen(p));

puts(p);

}

A)7654321 B)1714171 C)1711717 D)7177171

10.若有以下定义,则对a数组元素的正确引用是()int a[5],*p=a;

A)*&a[5] B)a+2 C)*(p+5) D)*(a+2)

11.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为()

A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j

12.若有以下定义,则p+5表示().

int a[10],*p=a;

A)元素a[5]的地址B)元素a[5]的值

C)元素a[6]的地址D)元素a[6]的值

13.设int *p ,i ;以下正确合理的语句是()。

A .*p=10 ;B. i=p ;C. i=*p ;D. i=2*p+1 ;

14.设char s[10] ;int I ;以下引用数组s 中元素正确的表达式是()。

A .s(i+2) ;B. *(s+i) C. *(&s+i) D. *((s++)+i)

*15. 若有定义和语句

int **pp ,*p ,a=10 ,b=20 ;

pp=&p ;p=&a ;p=&b ;

printf(“%d ,%d\n” ,*p ,**pp) ;

则输出结果是()。

A .A=10 ,20 B. 10 ,10 C . 20 ,10 D. 20 ,20

16 .若定义char s[20]= “ programming ”,*ps=s ;则不能代表字符‘o’的表达式是()。

A .ps+2 B. s[2] C. ps[2] D. ps+=2 ,*ps

16 .若有定义和语句

char *s1=” 12345” ,*s2=” 1234” ;

printf(“%d\n” ,strlen(strcpy(s1 ,s2))) ;

则输出结果是()。

A .4

B .5

C . 9 D. 10

17. 若定义int a[ ] ={1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10} ,*p=a ;则值为3 的表达式是()

A. p+=2 ,*(p++)

B. p+=2 ,*++p

C.p+=3 ,* p++

D. p+=2 ,++*p

*18. 若有以下定义和语句

相关文档
最新文档