c语言中指针问题详解,C语言指针练习+问题详解+讲解.doc

实用标准文案

精彩文档

第七章 指针

7.1 选择题

1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。

A. p=q; B. *p=*q; C. a=*q; D. q=a;

a是整型数,

int *p,*q定义了指针,

p,q是指向整型的指针。

p取得a的地址,而q取得p的地址

p,q是指针(也就是一个地址),而*p和*q是这个指针指向的整型数值(存放在这个地址的值)。

把q的地址赋给p,则p和q完全一样了,都指向一个数2

把q中数据个p

把q中数据给a

a中数据是2,不能够给一个地址。除非*q=a

2. 若定义:int a=511, *b=&a;,则printf("%d\n", *b);的输出结果为:D

A. 无确定值 B. a的地址 C. 512 D. 511

int a=511,*b=&a;

a 是整形变量

b 是整形指针变量,指向 a

printf("%d\n",*b);就是输出指针变量 b,

所指变量的值输出结果511

3. 已有定义 int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。

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

47、已知在程序中定义了如下的语句:int *P1,*P2;int k;p1=&k;p2=&k;则下列语句中不能正确执行是( B )A、k=*P1+*P2; B、p2=k; C、P1=P2; D、K=*P1 * (*P2);

P1 P2是指针,K是整型变量,变量怎么可以赋值给指针呢?A其实是执行了K=K+K(P1和P2都指向K,所以*P1 *P2其实都是指K)C是赋值语句D其实执行了K=K*K

4. 变量的指针,其含义是指该变量的(B)。

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

5. 若有说明语句:int a, b, c, *d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。

A. scanf("%d%d%d", &a, &b, d);

B. scanf("%d%d%d", a, b, d);

C. scanf("%d%d%d", &a, &b, &d);

D. scanf("%d%d%d", a, b,*d);

对于int c,*d=&c;,c是一整型数据,d是一指针,它指向变量c(即d=&c,*是指针类型的说明符),所以,输入c的值可以用scanf("%d",&c); 也可以用scanf("%d",d);

6. 若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是(D)。

(1) int *p=&a; (2) *p=a;

A. 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。

B. (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。

C. (1)在对p进行说明的同时进行初始化,使p指向a;

(2)变量a的值赋给指针变量p。

D. (1)在对p进行说明的同时进行初始化,使p指向a;

(2)将变量a的值赋予*p。

A:(1):*p,定义p为int类型指针(2):*p,表示p所指向的变量

B(1)把变量a的地址赋给指针变量p(2)把变量a的值,赋值给P所指向的变量

C前半句正确,后半句错误,(2)是把变量a的值赋值给P所指的变量。

7. 若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是(D)。

A. a, p, *&a B. &*a, &a, *p

C. *&p, *p, &a D. &a, &*p, p

int *p 是定义一个指针,p=&a ,p指向a的地址,*p=a, *指针名 是指取该指针所指地址中的内容,&a 为a的地址,&*p=&a,p中放的为a 的地址

0.2345p

0.2345

p

x

B

A. p=x; B. p=&x;

C. *p=x; D. *p=&x;

9. 若有说明:int *p, a=1, b; 以下正确的程序段是(B)。

A. p=&b;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值