一、选择题 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 . 以下程序中调用scanf 函数给变量a 输入数值的方法是错误的,其错误原因是________. main() { int *p,*q,a,b; p=&a; printf(“input a:”); scanf(“%d”,*p); …… } a)*p 表示的是指针变量p 的地址 b)*p 表示的是变量a 的值,而不是变量a 的地址 c)*p 表示的是指针变量p 的值 d)*p 只能用来说明p 是一个指针变量 5 . 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是________. void print_value(int *x) { printf(“%d\n”,++*x);} a)23 b)24 c)25 d)26 6 .若有说明:long *p,a;则不能通过 scanf 语句正确给输入项读入数据的程序段是 A) *p=&a; scanf("%ld",p); B) p=(long *)malloc(8); scanf("%ld",p); C) scanf("%ld",p=&a); D) scanf("%ld",&a); 7 .有以下程序 #include 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); } 程序运行后的输出结果是 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2 8 . 有以下程序 main() { int a=1, b=3, c=5; int *p1=&a, *p2=&b, *p=&c; *p =*p1*(*p2); printf("%d\n",c); } 执行后的输出结果是 A)1 B)2 C)3 D)4 9 . 有以下程序 main() { int a,k=4,m=4,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a); } 程序运行后的输出结果是() A)4 B)1 C)0 D)运行时出错,无定值 1 0 . 在16 位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是() A)p 向高地址移了一个字节 B)p 向高地址移了一个存储单元 C)p 向高地址移了两个字节 D)p 与 a+1 等价 1 1 .有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b 中的值是() A)5 B)6 C)8 D)9 1 2 .若有以下定义,则对...