变量的指针是指该变量的什么?

如题所述

1) 变量的指针,其含义是指该变量的 B 。
A. 值 B. 地址 C. 名 D. 一个标志
2) 若需要建立如图所示的存储结构,且已有声明float *p, m=3.14;则正确的赋值语句是 B 。

A. p=m; B. p=&m; C. *p=m; D. *p=&m;
3) 有如下语句int a=10, b=20, *p1, *p2;p1= &a; p2=&b; 如图1所示;若要实现图2所示的存储结构,可选用的赋值语句是 B 。

A. *p1=*p2 B. p1=p2; C. p1=*p2; D. *p1=p2;
4) 若有语句int *point, a=4; 和point=&a; 下面均代表地址的一组选项是 D 。
A. a, point, *&a B. &*a, &a, *point
C. *&point, *point, &a D. &a, &*point, point

5) 若有以下声明和语句,则能表示a数组元素地址的表达式是 D 。
double a[5], *p1;
p1=a;
A. a+0 B. p1+5 C. *p1 D. &a[5]
6) 若有以下声明int a[5], *p=a; 且0<=i<5, 则对a数组元素的非法引用是 D 。
A. a[i] B. *(a+i) C. *(p+i) D. *(&a+i)
7) 若有以下定义,则数值不为3的表达式是 C 。
int x[10]={0,1,2,3,4,5,6,7,8,9}, *p1;
A. x[3] B. p1=x+3, *p1++;
C. p1=x+2, *(p1++); D. p1= x+2, *++p1;
8) 若有声明:int * p, m=5, n; 以下正确的程序段是 D 。
A. p=&n; scanf(“%d”, &p);
B. p=&n; scanf(“%d”, *p);
C. scanf(“%d”, &n); *p=n;
D. p=&n; *p=m;
9) 若有声明:int * p1, *p2, m=5, n;以下均是正确赋值语句的选项是 B 。
A. p1=&m; p2=&p1;
B. p1=&m; p2=&n; *p1=*p2;
C. p1=&m; p2=p1;
D. p1=&m; *p2=*p1;
10) 有四对对指针变量进行操作的语句,以下判断正确的选项是 D 。
(1)int *p, *q; q=p;
int a, *p, *q; p=q=&a;
(2)int a, *p,*q; q=&a; p=*q;
int a=20, *p; *p=a;
(3)int a=0,b=0, *p; p=&a; b=*p;
int a=20,*p,*q=&a; *p=*q;
(4)int a=20, *p, *q=&a; a=q;
int p, *q; q=&p;
A. 正确:(1); 不正确:(2)(3)(4)。
B. 正确:(1)(4); 不正确:(2)(3)。
C. 正确:(3); 不正确:(1)(2)(4)。
D. 以上结论都不正确。
11) 如下代码调用scanf语句有错,其错误原因是 B 。
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是一个指针变量。
12) 以下选项中,对指针变量p的正确操作是 B 。
A. int a[5], *p; p=&a;
B. int a[5], *p; p=a;
C. int a[5]; int *p=a=1000;
D. int a[5]; int *p1, *p2=a; *p1=*p2;
温馨提示:答案为网友推荐,仅供参考
相似回答