下列关于PTR的描述正确的是()
第1题:
已知类A有公用数据成员a,且有A ohj2;A*const ptr-new A;则下列语句正确的是( )。
A)ptr->a=100;
B)ptr=&obj2;
C)ptr++;
D)ptr=obj2;
本题主要考察const的使用,const根据其位置的不同修饰不同的成份,从而表现出灵 活的特性,考生容易混淆。此处const修饰的是指针,即指针本身不能改变.故选项B、C和D都是 错误的。但是指针指向的地址里面的值确实可以改变的,因此选项A是正确答案。
第2题:
A.*(--ptr)
B.*(ptr--)
C.*(ptr++)
D.*(++ptr)
第3题:
下列程序的输出结果是
#inClUde<iostream>
using namespace std;
intmain()
{
Char a[]="HellO,World";
Char*ptr=a;
while(*ptr)
{
if(*ptr>='a'&& *ptr <='Z')
cout<<char(*ptr+'A' -'a');
else cout<<*ptr;
ptr++;
}
retur0;
}
A.HELLO,WORLD
B.Hello,world
C.hELLO,wORLD
D.hellO,world
第4题:
下列有关指针的用法中错误的是( )。
A.int i;int *ptr=&i;
B.inti;int *ptr;i=*ptr;
C.int *ptr;ptr=0;
D.int i=5;int *ptr;*ptr&i;
第5题:
设有如下定义,则以下叙述中正确的是______。 int(*ptr)();
A.ptr是指向一维数组的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
第6题:
已知类A有公用数据成员a,且有A obj2;A*const ptr=new A;则下列语句正确的是
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.ptr=obj2;
第7题:
设有如下定义:
int(*ptr);
则以下叙述中正确的是( )。
A.ptr是指向一维组数的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指int型数据的指针
第8题:
已知类A有公用数据成员a,并重载了一运算符,且有A obj2;const A*ptr=new A;则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
本题考察const修饰符的作用。注意:const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而ptr->a则无法被更新。
第9题:
已有定义“int k=2;int*ptr1, *ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.ptr1=ptr2;
D.K=*ptr1*(*ptr2);
第10题:
下面的叙述中,正确的是______。
A.JMP WORD PTR[DI]是段内间接转移指令
B.JMP WORD PTR[DI]是段间间接转移指令
C.JMP WORD PTR[DI]是段内直接转移指令
D.JMP WORD PTR[DI]是段间直接转移指令