指针练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编程题

1用指向数组的指针变量输出数组的全部元素

2 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出

练习题:

一判断题

1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。

2.指针的类型是它所指向的变量或对象的类型。

3.定义指针时不可以赋初值。

4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。

5.指针可以加上或减去一个int型数,也可以加上一个指针。

6.两个指针在任何情况下相减都是有意义的。

7.数组元素可以用下标表示,也可以用指针表示。

8.指向数组元素的指针只可指向数组的首元素。

9.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。

10.引用是一种变量,它也有值和地址值。

11.引用是某个变量的别名,引用是被绑定在被引用的变量上。

12.创建引用时要用一个同类型的变量进行初始化。

13.指针是变量,它可以有引用,而引用不能有引用。

二单选题

1.下列关于定义一个指向double型变量的指针,正确的是()。

A.int a(5);double *pd=a;B.double d(2.5),*pd=&d;C.double d(2.5),*pd=d;D.double a(2.5),pd=d;

2.下列关于创建一个int型变量的引用,正确的是()。

A.int a(3),&ra=a;B.int a(3),&ra=&a;

C.double d(3.1);int &rd=d;D.int a(3),ra=a;

3.下列关于指针概念的描述中,错误的是()。

A.指针中存放的是某变量或对象的地址值

B.指针的类型是它所存放的数值的类型

C.指针是变量,它也具有一个内存地址值

D.指针的值是可以改变的

4.下列关于引用概念的描述中,错误的是()。

A.引用是变量,它具有值和地址值

B.引用不可以作数组元素

C.引用是变量的别名

D.创建引用时必须进行初始化

5.已知:int a[5],*p=a;则与++*p相同的是()。

A.*++p B.a[0]

C.*p++ D.++a[0]

6.已知:int a[ ]={1,2,3,4,5},*p=a ;在下列数组元素地址的表示中,正确的是()。

A .&(a+1)

B .&(p+1)

C .&p[2]

D .*p++

7.已知:int a(5),&ra=a ;下列描述中,错误的是( )。

A .ra 是变量a 的引用,即为变量的别名

B .ra 的值为5

C .ra 的地址值为&a

D .改变ra 的值为10,变量a 值仍为5 8若有以下定义,则说法错误的是( )。

int a=100,*p=&a ;

A .声明变量p ,其中*表示p 是一个指针变量

B .变量p 经初始化,获得变量a 的地址

C .变量p 只可以指向一个整形变量

D .变量p 的值为100

9若有以下定义,则赋值正确的是( )。

int a ,b , *p;

float c, *q;

A .p=&c

B .q=p

C .p=NULL

D .q=new int

10如果x 是整型变量,则合法的形式是( )。

A .&(x+5)

B .*x

C .&*x

D .*&x

11若要建立如下关系,错误的语句组是( )。

A .

B .

C .

D .

int *p=&x, x; int x, *p=&x; int *p, x=10; int *p, x;

*p=10; *p=10; p=&x; p=&x ; x=10;

12若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a ;则( )不是对a 数组元素的正确引用(其中0≤i<10)。

A .p[i]

B .*(*(a+i))

C .a[p-a]

D .*(&a[i])

13以下程序的输出结果是( )。

#include

x

p

void main()

{ int a[3]={10,15,20};

int *p1=a,*p2=&a[1];

*p1=*(p2-1)+5;

*(p1+1)=*p1-5;

cout<

}

A.5 B.10C.15 D.20

14以下程序的输出结果是( )。

#include

void fun(int x,int y,int *cp,int *dp)

{ cp=x+y;

dp=x-y;

}

void main()

{ int a,b,c,d;

a=30,b=50;

fun(a,b,&c,&d);

cout<

}

A.50,30 B.30,50 C.80,-20 D.80,20 15要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确执行此功能的函数是( )。

A.funa(int *x,int *y) B.funb(int x,int y)

{ int *p=new int ; { int t;

p=*x; t=x;

*x=*y; x=y;

*y=*p; } y=t; }

C.func(int *x,int *y) D.fund(int x,int y)

{ *x=*y; { *x=*x+*y;

*y=*x; *y=*x-*y;

} *x=*x-*y; }

16以下程序的输出结果是( )。

#include

void main()

相关文档
最新文档