C语言指针习题 附答案.pdf
C语言指针习题附答案
c语言指针习题--附答案
一、选择题
1.变量的指针,其含义就是指本变量的_________.a)值b)地址c)名d)一个标志
2.若有语句int*point,a=4;和point=a;下面均代表地址的一组选项是_____.
a)a,point,*ab)*a,a,*pointc)*point,*point,ad)a,*point,point
3.若有说明;int*p,m=5,n;以下正确的程序段的是________.a)p=n;b)p=n;
4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是
________.main(){
int*p,*q,a,b;p=a;
printf(“inputa:”);scanf(“%d”,*p);……}
a)*p则表示的就是指针变量p的地址
b)*p表示的是变量a的值,而不是变量a的地址c)*p表示的是指针变量p的值d)*p
只能用来说明p是一个指针变量
5.尚无变量定义和函数调用语句:inta=25;print_value(a);下面函数的恰当输入结
果就是________.
voidprint_value(int*x){printf(“%d\n”,++*x);}
a)23b)24c)25d)26
6.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
a)*p=a;;,p);
b)p=(long*)malloc(8);;,p);;,p=a);;,a);
7.有以下程序
#includemain()
{intm=1,n=2,*p=m,*q=n,*r;r=p;p=q;q=r;
程序运行后的输出结果是a)1,2,1,2c)2,1,2,1
8.存有以下程序
main()
{inta=1,b=3,c=5;
继续执行后的输入结果就是a)1
9.有以下程序
main()
{inta,k=4,m=4,*p1=k,*p2=m;
程序运行后的输出结果是()a)4
10.在16十一位编译系统上,若存有定义inta[]={10,20,30},*p=a;,当继续执行
p++;后,以下观点错误的就是()a)p向低地址安远了一个字节c)p向低地址安远了两
个字节
b)p向高地址移了一个存储单元d)p与a+1等价
b)1
c)0d)运行时出错,无定值
b)2
c)3
d)4
b)1,2,2,1d)2,1,1,2
11.存有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a[3],b;b=p[5];b中的值是()
a)5b)6c)8d)9
12.若有以下定义,则对a数组元素的正确引用是_________.inta[5],*p=a;
a)*a[5]b)a+2c)*(p+5)d)*(a+2)
13.若有以下定义,则p+5表示_______.
inta[10],*p=a;
a)元素a[5]的地址b)元素a[5]的值c)元素a[6]的地址d)元素a[6]的值
14.设尚无定义:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;以下语句中恰当的
就是()
a)for(p=a;ad)for(p=a;a
15.存有以下程序段#includeintmain()
{intx[]={10,20,30};int*px=x;
程序运行后的输入结果就是()a)11,11,11,12,12,20,20,20
b)20,10,11,10,11,10,11,10
c)11,11,11,12,12,13,20,20d)2