PTA选择判断——2019_4Pointer

1-1 可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。

1-2 int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。

int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针,
int (*p)[4]; //定义一个数组指针,该指针指向含4个int型元素的一维数组,

区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。
int *p[n]; 中,运算符[ ]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组。
int (*p)[n]; 中( )优先级高,首先说明p是一个指针,指向一个整型的一维数组。

1-3 函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。

1-4 指向结构体变量的指针可以作函数参数,实现传址调用。

1-5 字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。

2-1关于new运算符的下列描述中,()是错误的。4

  1. 它可以用来动态创建对象和对象数组;
  2. 使用它创建的对象或对象数组可以使用运算符delete删除;
  3. 使用它创建对象时要调用构造函数;
  4. 使用它创建对象数组时必须指定初始值;

2-2const int *p说明不能修改()。2

  1. p指针;
  2. p指针指向的变量;
  3. p指针指向的数据类型;
  4. 上述A、B、C三者;

const int  *p;//指向个整数常量的指针变量

常量指针(Constant Pointers)

int * const p//先看const再看* ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。

指向常量的指针(Pointers to Constants)

const int *p//先看*再看const,定义一个指针指向一个常量,不能通过指针来修改这个指针指向的值。

2-3变量的指针,其含义是指该变量的( )2

  1. 地址
  2. 一个标志

2-4根据声明int (*p)[10], p是一个( )。2

  1. 数组
  2. 指针
  3. 函数
  4. 数组的元素

2-5(2018final)以下函数返回指针 a 所指数组中最小值所在的下标值:

fun(int *a, int n)

{ int i, j=0, p;

p=j;

for(i=j; i<n; i++)

if(a[i]<a[p]) ——————;

return(p); }

在下划线处应填入的是( )。4

  1. i=p
  2. a[p]=a[i]
  3. p=j
  4. p=i

2-6以下程序的输出结果是( )。2

main( )

{ char a[10]={'1', '2', '3', '4', '5', '6', '7', '8', '9', '\0'}, *p;

int i;

i=8;

p=a+i;

cout<<p-3; }

  1. 6
  2. 6789
  3. ' 6'
  4. 789

2-7若已定义: int a[9], *p=a;并在以后的语句中未改变 p 的值,不能表示 a[1] 地址的 表达式是( )。3

  1. p+1
  2. a+1
  3. a++
  4. ++p

2-8已知int a,*pa=&a,输出指针pa 十进制的地址值的方法是( )。4

  1. cout<<pa;
  2. cout<<&pa;
  3. cout<<*pa;
  4. cout<<long(&pa);

2-9下列程序执行后的输出结果是( )。3

main( )

{ char a[10]={9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, *p=a+5;

cout<<*--p; }

  1. 非法
  2. a[4]的地址
  3. 5
  4. 3

2-10若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。2

  1. p++
  2. x++
  3. *(p++)
  4. &x++

2-11若有定义: int (*p)[4]; 则标识符p____。3

  1. 是一个指向整型变量的指针
  2. 是一个指针数组名
  3. 是一个指针,它指向一个含有四个整型元素的一维数组
  4. 定义不合法

2-12下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。2

  1. int a, *x = a;
  2. int a, *x = &a;
  3. int *x = &a, a;
  4. int a, x = a;

2-13根据声明int a[10], *p=a; ,下列表达式错误的是( )。3

  1. a[9]
  2. p[5]
  3. a++
  4. *p++

2-14若p1p2都是整型指针,p1已经指向变量x,要使p2也指向x, ( )是正确的。1

  1. p2 = p1;
  2. p2 = **p1;
  3. p2 = &p1;
  4. p2 = *p1;

2-15以下哪个定义中的p不是指针,请选择恰当的选项:3

  1. char **p;
  2. char (*p)[10];
  3. char *p[6];
  4. 给出的三项中,p都是指针

2-16以下说法正确的是()。3

  1. 在静态成员函数中可以调用同类的其他任何成员函数
  2. const成员函数不能作用于非const对象
  3. 在静态成员函数中不能使用this指针
  4. 静态成员变量每个对象有各自的一份

2-17下列程序的输出是()。4

#include<stdio.h>
int main(void)
{   
      int a[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *p[4], i;

      for (i = 0; i < 4; i++)
           p[i] = &a[i*3];
      printf("%d\n", p[3][2]);

      return 0;
}
  1. 上述程序有错误
  2. 6
  3. 8
  4. 12

2-18存在定义int a[10], x, *pa; , 若pa=&a[0], 下列的哪个选项和其他3个选项不是等价的?1

  1. x=*pa;
  2. x=*(a+1);
  3. x=*(pa+1);
  4. x=a[1];

2-19int *p 的含义是2

  1. p是一个指针, 用来存放一个整型数
  2. p是一个指针, 用来存放一个整型数据在内存中的地址
  3. p是一个整型变量
  4. 以上都不对

2-20以下哪个选项中的p不是指针:3

  1. int **p;
  2. int (*p)[5];
  3. int *p[6];
  4. struct Stu{
     char name[20];
     int age;
    }*p, q;
    

2-21设有下面的程序段:char s[]="china";char *p=s;则下列叙述正确的是____。1

  1. 数组s中的内容和指针变量p中的内容相等
  2. s和p完全相同
  3. s数组长度和p所指向的字符串长度相等
  4. *p与s[0]相等

2-22在基类型相同的两个指针变量之间,不能进行的运算是( )。3

  1. <
  2. =
  3. +

2-23在说明语句“ int *f( );”中,标识符 f 代表是( )。4

  1. 一个用于指向整型数据的指针变量
  2. 一个用于指向一维数组的行指针
  3. 一个用于指向函数的指针变量
  4. 一个返回值为指针型的函数名
  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值