C++语言程序设计

单选题若有以下定义,说法错误的是(  )。int a=100,*p=&a;A 声明变量p,其中*表示p是一个指针变量B 变量p经初始化,获得变量a的地址C 变量p只可以指向一个整型变量D 变量p的值为100

题目
单选题
若有以下定义,说法错误的是(  )。int a=100,*p=&a;
A

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

B

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

C

变量p只可以指向一个整型变量

D

变量p的值为100

参考答案和解析
正确答案: D
解析:
语句“int *p=&a”,定义一个整型指针*p,并初始化指向变量a,p的值为变量a的地址,*p的值为100。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有定义语句:int a[2][3],*p[33;,则以下语句中正确的是( )。

A.p=a;

B.p[0]=a;

C.p[0]=&a[1][2];

D.p[1]=&a


正确答案:B
解析:本题考查的重点是指针数组与二维数组的关系。因为*p[3]定义成指针数组,从而指针数组中的任何元素都是一个地址,因此,选项B是正确的。

第2题:

若有一些定义和语句 include int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q

若有一些定义和语句 #include <stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是

A.*q=0;

B.w=p;

C.*p=va;

D.*p=*w;


正确答案:A
解析:给一指针赋空值的正确语句是q=NULL;或q='\0';或q=0;。选项B)的含义为使指针p指向指针q所指向的存储单元。选项C)的含义为使指针P指向变量a所在的存储单元。选项D)的含义为把指针a赋给指针p。

第3题:

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是A ) p=a;B)p[0]=a; C) p[0]=&am

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是

A ) p=a;

B)p[0]=a;

C) p[0]=&a[1][2];

D)p[1]=&a;


正确答案:C

                                           

第4题:

若有以下定义和语句 int a=4.b=3.* p, * q, * w; p=&a;q=& b; w=q;q=NULL; 则以下选项中错误的语句是

A.*q=0;

B.w=p;

C.*p=a;

D.*p=* w;


正确答案:D
解析:考生遇到这么复杂的变量间关系时,可以在草稿纸上画出各个变量的内存存放示意图,然后用箭头指向表示指针变量与其他变量之间的关系。如果能够清晰的画出这些变量间关系,则可以会让你容易的判断出正确答案为D。

第5题:

若有以下定义和语句:includeinta=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则

若有以下定义和语句: #include<stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是( )。

A.*q=0;

B.w=p;

C.*p=a;

D.*p=*w;


正确答案:A
解析:本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将q指向NULL。因为q指向NULL,所以选项A中对q所指地址进行写入是非法的。故A选项为所选。

第6题:

若有定义语句:"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的基本类型不同。

第7题:

若有以下定义,则对a数组元素的正确引用是( )。

int a[5],*p=a;

A)*&a[5]

B)*a 1

C)*(p 5)

D)*(a 2)


正确答案:D
本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项c),*(p 5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a 2)引用数组的第3个元素。

第8题:

若有定义语句: 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

第9题:

若有以下说明和定义 typedef int*INTEGER; INTEGER p,*q; 以下叙述正确的是

A.p是int型变量

B.p是基类型为int的指针变量

C.q是基类型为int的指针变量

D.程序中可用INTEGER代替int类型名


正确答案:B
解析:INTEGER是类型名,由它来间接定义P和*q的类型,因此,p是基类型为int的指针变量,q是二级指针变量,它指向基类型是int的指针变量。

第10题:

若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

A.p=a;

B.p[0]=a;

C.p[o]=&a[1][2];

D.p[1]=&a;


正确答案:B
选项B表示把整型数组a[o]的指针赋给p[0]。

更多相关问题