更多“在“int a = 3, *p = &a ; ”语句中,*p的值为()。”相关问题
  • 第1题:

    在int a=3,int*p=&a;中,P的值是

    A.变量a的地址值

    B.无意义

    C.变量P的地址值

    D.3


    正确答案:A
    解析:本题实际是考察指针的含义。指针代表的是变量或函数等在内存的地址。

  • 第2题:

    以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。

    include<stdio.h>

    main( )

    {int a[10],*p,*S;

    for(p=a;p-a<10;p++)scanf(”%d”,p);

    for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;

    printf(”max=%d\n”,________);

    }


    正确答案:*s
    *s 解析:首先依次输入10个数,存入数组a中。循环语句依次查找数组的元素,当*P的值大于*s时,s=p即找到当前数组中最大值,然后再将其余元素与新的*S元素比较,最终求得最大值。所以填*s。

  • 第3题:

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

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

    B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int *p=a;是把a[0]的值赋给变量p

    D.语句int *p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第4题:

    在下面语句中,其含义为“p为指向含n个元素的一维数组的指针变量”的定义语句是 ( )

    A.int p [n]

    B.int * p( );

    C.int * p(n);

    D.int( * p)[n]


    正确答案:D

  • 第5题:

    在int a=3,*p=&a中,*p的值是( )。

    A.变量s的地址值

    B.无意义

    C.变量p的地址

    D.3


    正确答案:A
    解析:*p表示指针p指向的内容,而语句*p=&a将a的地址传递给*p。

  • 第6题:

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

  • 第7题:

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

    A.p:a;

    B.p[0]=a;

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

    D.1a[1]=&a;


    正确答案:C
    A选项错误,因为P是指向一个指针数组,作为数组名,不能指向别的地方。B选项错误,因为P[0]是一个int指针,也就是int-;而a是一个指向指针的指针in‘}}。c选项正确,因为p[O]是一个int},a[1][2]是int,&a[1][2]是int+,类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,P[1]是int·,&a是int+t;,类型不对。因此C选项正确。

  • 第8题:

    若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是 _______。

    A.p+1

    B.a+1

    C.a++

    D.++p


    正确答案:C
    解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

  • 第9题:

    已知:int n=10;那么下列语句中错误的是

    A.int*p=new long[n];

    B.int p[n];

    C.int*p=new long(n);

    D.int p[10];


    正确答案:B
    解析:本题考核指针、数组和new运算符。运算符new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针>=new类型>(初值),如C选项所示,若带有元素个数,则其语法格式为:指针>=new类型>[元素个数>],如A选项所示。数组定义中数组大小必须为常量,而B选项中的n为一变量所以是错误的。

  • 第10题:

    下列语句中正确的是()。A.int * p;i=8; p=&i;B.int * p,i; p=&i;C.float * p;int i;p=&am

    下列语句中正确的是( )。

    A.int * p;i=8; p=&i;

    B.int * p,i; p=&i;

    C.float * p;int i;p=&(float)i;

    D.float * p;cout<<* p;


    正确答案:B
    解析:选项A中的变量i没有定义就使用了;选项C(float)i把i中的数据取出后变为float型,就是一个数值,“&(float)i”不能得到i的地址;选项D中的指针变量,p没有赋值就使用,它到底指向哪个存储单元没有指明,它可能指向不可读取的存储单元,这时的破坏性很大。

  • 第11题:

    下列程序的功能是输出数组中的最大值,其中用指针q指向该元素,在if语句中判断表达式应该是 ______。 #include<iostream.h> void main(){ int a[10]={6,7,2,9,1,10,5,8,4,3); int *p=a,*q=a; while(p-a<10){ if(_____)q=p; { p++; } cout<<”max=”<<*q; }

    A.ap>Aq

    B.*p>*q

    C.p>q

    D.p-a>p-q


    正确答案:B

  • 第12题:

    若有以下的定义:int a[]= {1,2,3,4}.*p=a;则值为3的表式是()

    • A、p+=2,*(p++)
    • B、p+=2.*++p
    • C、p+=3,*kp++
    • D、*p+=2

    正确答案:A

  • 第13题:

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

    A.p=a;

    B.p[0]=a;

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

    D.p[1]=&a;


    正确答案:C
    解析:选项A中,p为数组名,其值是不能被改变的,故非法;选项B中,p[0]的类型是int*,而a是二维数组名(类型为int[][3]),两者无法赋值,故非法:选项C中,p[0]为int型指针,&a[1][2]是int型变量的地址,可以合法赋值;选项D中,p[1]是int型指针,而&a是二维数组的地址(类型为int(*)[2][3]),两者无法赋值,故非法。所以本题应该选择C。

  • 第14题:

    若已有定义int x=2; int *p=&x;则*p的值为( )

    A. 2

    B. &x

    C. *x

    D. &p


    正确答案:A

  • 第15题:

    请将以下程序中的函数声明语补充完整。 include int【】 main(){int x,y,(*p)(); sccanf("

    请将以下程序中的函数声明语补充完整。

    include<stdio.h>

    int【 】

    main()

    { int x,y,(*p)();

    sccanf("%d%d",&x,&y);

    p=max;

    printf(%d\n",(*p)(x,y));

    }

    int max(int a,int b)

    {return(a>b?a:b);}


    正确答案:max(int aint b)
    max(int a,int b) 解析:在C语言中,除了主函数外,对于用户定义的函数都遵循“先定义,后使用”的规则,若把函数定义放在调用之后,应该在调用之前对函数进行说明(或称为函数原型说明)。
    函数的说明形式为:
    类型名 函数名(参数类型1,参数类型2……)
    本题是通过max()函数来求出a和b中较大的数,由于max()函数的位置在main()函数之后,想要在main()函数中调用max()函数,就必须先在main()函数之前对max()函数进行说明,因为当在所有函数外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置上都可以对该函数进行调用。所以,在横线上应该填上被调函数的说明语句即 max(int a,int b) 。

  • 第16题:

    在inta=3,int*p=&a;中,*p的值是()。

    A.变量a的地址值

    B.无意义

    C.变量p的地址值

    D.3


    正确答案:D

  • 第17题:

    若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。

    A.p+1

    B.a+1

    C.a++

    D.++p


    正确答案:C

  • 第18题:

    执行以下程序段后,m的值为______。 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4));

    A.15

    B.14

    C.13

    D.12


    正确答案:A

  • 第19题:

    在int a=10,* p=&a;语句中,p的值是( )。

    A.10

    B.变量p的地址

    C.变量a的地址

    D.随机数


    正确答案:C

  • 第20题:

    已知:intn=10;那么下列语句中错误的是

    A.int*p=new long[n];

    B.int p[n];

    C.int*p=new long(n);

    D.int p[10];


    正确答案:B
    解析:本题考核指针、数组和new运算符。运算符new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针>=new类型>(初值);如C选项所示,若带有元素个数,则其语法格式为:《指针》=new类型>[元素个数>],如A选项所示。数组定义中数组大小必须为常量,而B选项中的n为一变量所以是错误的。

  • 第21题:

    若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示 a[1]地址的表达式是( )。

    A.p+1

    B.a+1

    C.a++

    D.#NAME?


    正确答案:C
    解析:本题考查数组地址的表示。选项C)中,数组名所表示的数组地址不能被重新赋值。

  • 第22题:

    若有以下的定义, int a[ ]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是 ______。

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p


    正确答案:A

  • 第23题:

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

    • A、p[0]=&a[1][2];
    • B、p=a;
    • C、p[0]=a;
    • D、p[1]=&a;

    正确答案:A

  • 第24题:

    若有以下定义      int a〔 〕={1,2,3,4,5,6,7,8,9,10),*p=a;    则值为3的表达式是()   

    • A、p+=2,*(p++)
    • B、p+=2,*++p
    • C、p+=3,*p++
    • D、p+=2,++*P

    正确答案:A