C++常见选择填空习题集

2018-10-18 15:23

第六章指针

一、选择题

1. 下列关于函数参数的描述中错误的( )

A. 函数的形参在定义时不占用内存的存储单元

B. 在函数的传值调用中将用实参来初始化形参

C. 在函数的传址调用中形参不需要分配存储空间

D. 在函数的传引用调用中形参是实参的别名

2. 关于函数的说法中,错误的是( )

A. 函数名代表函数的入口地址

B. 函数指针就是返回指针值的函数

C. 函数指针可以作为另一个函数的参数

D. 在32位系统中,函数指针变量的存储空间是4个字节

3. 关于指针运算的说法中,不正确的是( )

A. 两个指针在一定条件下可以进行相等或不等的运算

B. 可以用空指针赋值给指针变量

C. 一个指针可以加上两个整数之差

D. 两个指针在一定条件下可以相加

4. 已知:const char *p=”abc”;,则下列语句合法的是( )

A. p[2]=’k’; B. *p[2]=’k’; C. *p=”xyz”; D. p=”xyz”;

5. 若有语句:char* p=new char[30];,则释放p所指向的动态内存应使用的语句是( )

A. delete p; B. delete *p; C. delete &p; D. delete[] p;

6. 若有变量定义:int x=5;,则将rx定义为变量x的引用的是( )

A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;

7. 传递引用调用方式起着( )的作用。

A. 传值调用C. 在函数的传址调用中形参不需要分配存储空间 B. 函数指针就是返回指针值的函数 D. 两个指针在一定条件下可以相加

8. 关于引用的叙述中,不正确的是( )

A. 每一个引用都是其所引用对象的别名,因此必须初始化

B. 形式上针对引用的操作实际上作用于它所引用的对象

C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行

D. 不需要单独为引用分配存储空间

9. 若有定义:int a[5],*p=a;,则不合法的表达式是( )

A. p=p+1 B. a=a+1 C. p-a D. a+2

10.关于delete的描述中,正确的是( )

A. delete是函数

B. 它必须用于new返回的指针

C. 对一个指针可以连续使用多次delete

D. delete[]只能删除一维的动态数组

11.引用调用的调用方式是指( )

A. 形参和实参都是变量 B. 形参是指针,实参是地址值

C. 形参是引用,实参是变量 D. 形参是变量,实参是地址值

12. 下面程序段的运行结果是( )

char a[]=\

char *p=a;

p+=3;

cout<

A. 4 B. 8 C. 9 D. 12

13. 若有定义:

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int *p=&a[0][0];

下列选项中的表达式能表示a[2][2]的是( )

A. p[2][2] B. *(*(p+2)+2) C. *(p+10) D. *(p+8)

14. 若有定义:int *p=new int;,则下列说法中不正确的是( )

A. 声明了一个指向整型变量的指针p

B. 可以用*p来表示所指向的整型变量

C. 通过运算符new,分配了一个整型数据的空间,并将其起始地址赋给指针p

D. 系统为指针变量p分配了一个整型数据的存储空间

15. 定义函数指针的是( )

A. int *p( ); B. int (*p)( ); C. (int *) p( ); D. (int *p)( );

16. 在int a=5, *p=&a;中,*p的值是( )

A. 变量a的地址 B. 无意义 C. 变量p的地址 D. 5

17. 在int a=5, *p=&a;中,p的值是( )

A. 变量a的地址 B. 无意义 C. 变量p的地址 D. 5

18. 已知:int a[3][7];,下列格式中不表示数组元素的是( )

A. *(a+1)[5] B. *(*a+3) C. *(*(a+1)) D. *(&a[0][0]+2)

19. const char *ptr;语句的含义是( )

A. 定义指向字符常量的指针 B. 定义指向字符的常量指针

C. 定义指向字符串常量的指针 D. 定义指向字符串的常量指针

20. char * const ptr;语句的含义是( )

A. 定义指向字符常量的指针 B. 定义指向字符的常量指针

C. 定义指向字符串常量的指针 D. 定义指向字符串的常量指针

21. 对下面语句的描述中,正确的是( )

const int* x; //(1)

int* const x; //(2)

const int* const x; //(3)

A. 语句(1)的含义是指针变量x不能更改

B. 语句(2)的含义是指针变量x所指向的值不能更改

C.语句(3)的含义是指针变量x及其所指向的值均不能更改

D. 语句(1)和语句(2)是相同含义的不同定义方式

22. 定义数组指针的是( )

A. int *p[5]; B. int (*p)[5]; C. (int *)p[5]; D. int *p[];

23. 下列关于delete运算符的描述中,错误的是( )

A. 它必须用于new返回的指针

B. 它也适用于空指针

C. 对一个指针可以使用多次该运算符

D. 指针名前只用一对方括号符,不管删除数组的维数

24. 下列说法正确的是( )

A. 数组的下标表示法处理速度比指针表示法处理速度慢

B. 数组的下标表示法处理速度比指针表示法处理速度快

C. 数组的下标表示法处理速度和指针表示法处理速度相同

D. 数组的下标表示法处理速度和指针表示法处理速度不可比较

25. 已知:char * const p=”abc”;,则下列语句合法的是( )

A. p[2]=’k’; B. *p[2]=’k’; C. *p=”xyz”; D. p=”xyz”;

26. 下列表示中,函数指针的引用格式是( )

A. (*p)(5) B. *p[5] C. *p(5) D. (*p)[5]

27. 对于int *pa[5];的下列描述中正确的是( )

A. pa是一个指向数组的指针,所指向的数组是5个int型元素

B. pa是一个指向某数组中第5个元素的指针,该元素是int型变量

C. pa[5]表示某个数组的第5个元素的值

D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针

28. 下列语句错误的是( )

A. char *p=”John”; p[2]=’a’;

B. char name[5]=”John”; name[2]=’a’;

C. char name[5]=”John”, *p=name; p[2]=’a’;

D. char name[5]=”John”, *p=&name[2]; *p=’a’;

29. 有如下定义语句:int a[]={1,2,3,4,5};,则对语句int *p=a;正确的描述是( )

A. 语句int *p=a;定义不正确


C++常见选择填空习题集.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012届中考英语完形填空训练及解析7

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: