1
C
语言指针练习题及答案
一、选择?/p>
1.
变量的指针,其含义是指该变量?/p>
____.
a)
?/p>
b)
地址
c)
?/p>
d)
一个标?/p>
2
.若有语?/p>
int *point,a=4;
?/p>
point=&a;
下面均代表地址的一组选项?/p>
__ _.
a)a,point,*&a
b)&*a,&a,*point
c)*&point,*point,&a
d)
&a,&*point ,point
3
.若有说?/p>
;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.
以下程序中调?/p>
scanf
函数给变?/p>
a
输入数值的方法是错误的?/p>
其错误原因是
__ _____.
main()
{
int *p,*q,a,b;
p=&a;
printf(
?/p>
input a:
?/p>
);
scanf(
?/p>
%d
?/p>
,*p);
…?/p>
}
a)*p
表示的是指针变量
p
的地址
b)
*p
表示的是变量
a
的值,而不是变?/p>
a
的地址
c)*p
表示的是指针变量
p
的?/p>
d)*p
只能用来说明
p
是一个指针变?/p>
5.
已有变量定义和函数调用语句:
int
a=25;
print_value(&a);
下面函数的正确输
出结果是
______.
void print_value(int *x)
{
printf(
?/p>
%d\n
?/p>
,++*x);}
a)23
b)24
c
)25
d)
26
6.
若有说明?/p>
long *p,a;
则不能通过
scanf
语句正确给输入项读入数据的程序段?/p>
A)
*p=&a
?/p>
scanf("%ld"
?/p>
p)
?/p>
B) p=(long *)malloc(8)
?/p>
scanf("%ld"
?/p>
p)
?/p>
C) scanf("%ld"
?/p>
p=&a)
?/p>
D) scanf("%ld"
?/p>
&a)
?/p>
7.
有以下程?/p>
#include<stdio.h>
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果?/p>