关于语句int i=10,?p=&i;叙述错误的是()

题目
单选题
关于语句int i=10,?p=&i;叙述错误的是()
A

p的值为10

B

p指向整型变量i

C

?p表示变量i的值

D

p的值是变量i的地址

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。A.D=aB.q[i]=a[i]C.p=a[l]D.

若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。

A.D=a

B.q[i]=a[i]

C.p=a[l]

D.P=&a[2][1]


正确答案:A
数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

第2题:

有如下程序段int i=0,j=1;int &r=i; //①r=j; //②int*p=&i; //③*p=&r; //④其中会产生编译错误的语句是

A.④

B.③

C.②

D.①


正确答案:A
解析:本题考查的知识点是:指针和引用。指针声明的一般形式为: 数据类型>*声明的指针变量名>;
引用声明的一般形式为:
数据类型>&声明的引用变量名>=被引用的变量名>;
引用声明时必须初始化,而指针则可有可无。通过引用来改变其所引用的对象,直接赋值即可,而通过指针改变其所指对象则须使用一元运算符“*”。在本题中,语句①就是一条合法的引用声明语句,使变量i被r所引用。语句②通过引用r将变量j的值赋给变量i。语句③声明了指针变量p,并初始化指向变量i。而语句④中的*p代表了变量i,欲将&r(变量r的地址值)赋给*p(变量i),这会引起VC6编译器产生一条类型不匹配的错误“无法将类型int*转换为int”。故本题应该选择A。

第3题:

若有定义语句: int a[4][10],*p,*q[4]; 且 0 ≤ i<4 ,则错误的赋值是

A)p=a

B)q[i]=a[i]

C)p=a[i]

D)p=&a[2][1]


正确答案:A

第4题:

程序中有如下语句for(int i=0;i<5;i++)cout<<*(p+i<<“,”;能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。

A.int*p=a;

B.int p=a;

C.*p=a;

D.p=a;


正确答案:A
解析: 从循环语句中可以看出,是在0到4的循环中输出数组a中的前5个元素,输出的值为*(p+i),即为指针p向后移动指向的元素。所以初始化要将指针p指向数组a,即int*p=a;。

第5题:

语句int *i;i=new int[10];,释放指针i的语句是【 】。


正确答案:delete[ ]i
delete[ ]i 解析:申请内存空间时用new,释放内存空间用delete。注意:new和delete的运用和malloc,free的运用。

第6题:

下列语句中不是死循环的是( )。A.int i=10;B.for(int i=1;j<10;i++) while(1) { { i--; i--; }

下列语句中不是死循环的是( )。

A.int i=10;

B.for(int i=1;j<10;i++) while(1) { { i--; i--; } if(i==1)break;

C.int i-0;

D.int i=1:


正确答案:A
选项A中i自减到1时就会执行break语句跳出循环,选项B中i<10永远成立不会跳出循环.选项C中第一次进入循环体后i>0永远不会跳出循环,选项D中未给出结束循环的条件。

第7题:

若有定义语句:int a[4][10],* P,* q[4];且0<=i<4,则错误的赋值是( )。

A.P=a

B.q[i]=a[i]

C.p=a[i]

D.p=&a[2][1]


正确答案:A
二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而P为指向int类型的指针。所以选项A)是将一个指向int类型的指针用来指向一个指针的指针,显然是错误的。其他几个选项都是正确的赋值,其中选项D)是用&返回整数的地址,然后赋值给P。

第8题:

( 20 )有如下程序段

int i =0, j=1;

int & r=i ; // ①

r =j; // ②

int*p= & i ; // ③

*p= & r ; // ④

基中会产生编译错误的语句是

A ) ④

B ) ③

C ) ②

D ) ①


正确答案:A

第9题:

若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ( )

A.i=*p;

B.*p=*&j

C.i=&j

D.i=* *p;


正确答案:B

第10题:

语句int*i=new intl [10];,释放指针i的语句是______。


正确答案:delete[]i
delete[]i

更多相关问题