#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) }}

  • 正确
  • 错误