若有定义:int a[5]={1,2,3,4,5},*p=a;,则*(p+2)的值是( )
- AA. 1
- BB. 3
- CC. 2
- DD. 4
若有定义:int a=5,b=6,*p=&a,*q=&b;,交换*p和*q的方法是( )
- AA. p=q
- BB. *p=*q
- CC. temp=*p;*p=*q;*q=temp
- DD. swap(p,q)
若有定义:char *s="Hello";,则s[0]的值是( )
- AA. 'H'
- BB. 'e'
- CC. 'l'
- DD. 'o'
若有定义:int a[3][4],*p=a[0];,则p+1表示( )
- AA. a[1]的地址
- BB. a[0][1]的地址
- CC. a[0]的地址
- DD. a的地址
若有定义:int a[5]={1,2,3,4,5},*p=a;,以下表示a[3]的是( )
- AA. *(p+2)
- BB. *p+3
- CC. *(p+3)
- DD. *p[3]
若有定义:int a=5,*p=&a;,则&a和p的关系是( )
- AA. 值相等
- BB. &a是p的地址
- CC. 类型不同值相等
- DD. 完全相同
若有定义:int *p=NULL;,则p是( )
- AA. 未初始化的指针
- BB. 空指针
- CC. 野指针
- DD. 指向0的指针
若有定义:void *p;,则p是( )
- AA. 通用指针
- BB. 空指针
- CC. 整型指针
- DD. 函数指针
若有定义:int a=5;int *p=&a;,则&p表示( )
- AA. p本身的地址
- BB. a的地址
- CC. p指向的地址
- DD. a的值
若有定义:int a[5]={1,2,3,4,5},*p=a;,下列运算正确的是( )
- AA. p++
- BB. a++
- CC. &a++
- DD. *p++
若有定义:int a=5,*p=&a;,则sizeof(p)和sizeof(*p)的值分别是( )
- AA. 5,5
- BB. 8,4(64位系统)
- CC. 4,5
- DD. 4,4
若有定义:int (*p)[5];,则p是( )
- AA. 整型指针
- BB. 整型数组
- CC. 数组指针
- DD. 函数指针
若有定义:int *f();,则f是( )
- AA. 返回整型指针的函数
- BB. 整型函数
- CC. 函数指针
- DD. 指针变量
若有定义:int (*p)();,则p是( )
- AA. 整型函数
- BB. 函数指针
- CC. 返回指针的函数
- DD. 整型指针
若有定义:int a=5,b=6,*p=&a,*q=&b;,以下语句能将a和b的值交换的是( )
- AA. p=q
- BB. *p=*q
- CC. temp=*p;*p=*q;*q=temp
- DD. swap(&a,&b)
以下关于指针的说法正确的有( )
- AA. 指针存储地址
- BB. 指针有类型
- CC. 指针变量需要定义
- DD. 指针可以参与运算
- EE. 指针就是地址
- FF. 所有指针类型相同
- GG. 指针占用1字节
- HH. 指针可以指向任何类型
以下关于指针运算的说法正确的有( )
- AA. 指针可以加一个整数
- BB. 指针可以减一个整数
- CC. 相同类型指针可以比较
- DD. 两个指针可以相减
- EE. 指针可以相加
- FF. 指针可以相乘
- GG. 指针可以除以整数
- HH. 指针可以进行位运算
以下关于NULL指针的说法正确的有( )
- AA. NULL是空指针常量
- BB. NULL值为0
- CC. NULL不指向任何地址
- DD. NULL指针可以解引用
- EE. NULL必须大写
- FF. NULL是(void*)0
- GG. NULL可以赋值给任何指针
- HH. NULL等于0
以下关于指针和数组的说法正确的有( )
- AA. 数组名可以赋给指针
- BB. a[i]等价于*(a+i)
- CC. 指针可以遍历数组
- DD. 指针运算适用于数组
- EE. 数组是指针
- FF. 指针是数组
- GG. 数组名是常量指针
- HH. 指针可以改变数组名
以下关于指针初始化的说法正确的有( )
- AA. 指针可以初始化为NULL
- BB. 指针可以不初始化
- CC. 指针可以初始化为变量地址
- DD. 指针可以初始化为另一个指针
- EE. 指针初始化必须用&
- FF. 指针不能初始化
- GG. 指针必须初始化为0
- HH. 指针初始化后不能改变