#JC1034. 指针
指针
一、单项选择题(每题2分,共20分)
1、C++中,取变量内存地址使用的运算符是?()。 {{ select(1) }}
*&->.
2、关于指针的描述正确的是?()。 {{ select(2) }}
- 指针用来存储普通的数值
- 指针专门用来存放内存地址
- int*类型指针可以存储double变量的地址
- 指针变量没有自己的内存地址
3、已有int a=20; int *p=&a;,下面说法正确的是?()。
{{ select(3) }}
p代表变量a里面的数据20*p代表变量a的地址*p等价于a,可以读写a的值p = 20;可以把a赋值为20
4、下面属于野指针危险操作的是?()。 {{ select(4) }}
int *p=NULL;int a; int *p=&a;int *p; *p=100;int a,*p=&a; int *q=p;
5、结构体指针访问结构体的成员,使用哪个运算符?()。 {{ select(5) }}
.&->*
6、普通值传递的函数,函数内部修改形参的值,主函数实参会如何?()。 {{ select(6) }}
- 同步被修改
- 不会发生任何改变
- 变成随机垃圾值
- 自动置0
7、函数想要修改main函数中原始变量的值,应该采用什么传参方式?()。 {{ select(7) }}
- 值传递
- 指针(地址)传递
- 直接传递变量名字符串
- 全局变量才可以,指针做不到
8、int a=8,b=5; int *x=&a,*y=&b; 如果函数内只执行 int *k; k=x; x=y; y=k;,主函数中a、b的值为?()。
{{ select(8) }}
- a=5,b=8
- a=8,b=5
- a=0,b=0
- 随机值
9、int a=12; int *p=&a; 执行*p = 30;之后,变量a的值是?()。
{{ select(9) }}
- 12
- 30
- &a
- 随机数
10、下面指针定义写法正确的是?()。 {{ select(10) }}
int *p1,p2;//p1、p2都是指针int *p=100;int a; int *p=&a;int *p; *p=NULL;
二、判断题(每题2分,共10分)
11、解引用运算符*p,代表访问指针p所指向地址存储的数据。()
{{ select(11) }}
- 正确
- 错误
12、空指针int *p=NULL;,可以直接执行*p = 10;进行赋值。()
{{ select(12) }}
- 正确
- 错误
13、指针之间可以互相赋值,让多个指针指向同一个变量。() {{ select(13) }}
- 正确
- 错误
14、结构体普通变量使用.访问成员;结构体指针使用->访问成员。()
{{ select(14) }}
- 正确
- 错误
15、函数传指针,如果仅仅交换函数内部指针变量本身的指向,不会改变主函数原始变量的值。() {{ select(15) }}
- 正确
- 错误