itgle.com

3、设有如下一段程序: int *p,a,b; a=10; p=&b; p=&a; a=*p+10; 执行上面的程序后,a的值为A.20B.10C.110D.不确定

题目

3、设有如下一段程序: int *p,a,b; a=10; p=&b; p=&a; a=*p+10; 执行上面的程序后,a的值为

A.20

B.10

C.110

D.不确定


相似考题
参考答案和解析
D
更多“3、设有如下一段程序: int *p,a,b; a=10; p=&b; p=&a; a=*p+10; 执行上面的程序后,a的值为”相关问题
  • 第1题:

    有以下程序 main() { char str[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10); } 程序运行后的输出结果是

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    解析:本题中首先定义了一个字符串数组并初始化,初始化后使得str[0] =“China”,str[1]=“Beijing”,然后定义一个指针变量p并让其指向str,而在该二维数组中定义每个字符串的长度为10,所以p+10将指向str[1],因此最后输出*(p+10)的值为Beijing。

  • 第2题:

    设有以下程序: include using namespace std; int main() {inta,b,k:4,m=6,*p1=&k

    设有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int a,b,k:4,m=6,*p1=&k,*p2=&m;

    a=p1==&m;

    b=(*p1)/(*p2)+7;

    cout<<a<<b<<end1;

    return 0;

    }

    执行该程序后,a的值为【 】,b的值为【 】。


    正确答案:0 7
    0 7 解析:本题考核的知识点是有关指针的运算。程序中定义了两个指针变量p1和p2,并通过赋初值让它们分别指向了变量k和m。语句“a=p1==&m;”中先执行关系运算符“p1==&m”,显然是0(假),然后把0赋值给a。接着执行语句“b=(*p1)/(*p2)+7”,此处*p1的值就是k的值4,*p2的值就是m的值6,即把“4/6+7”的结果赋给b,b的值为7。

  • 第3题:

    以下程序段执行后,a的值为______。 int*p,a=10,b=1; p=&a;a=*p+b;

    A.11

    B.12

    C.10

    D.编译出错


    正确答案:A
    解析:p是指向整型变量的整型指针,并赋值为指向a,*p表示指针p所指向单元的内容,即为a,等于10,a=*p+b=10+1=11。

  • 第4题:

    有以下程序: main { int a=1,b=3,C=5,*P; int*p1=&a,*p2=&b,*p3=&c; *p=*p1*(*p2); } 执行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:C
    本题中指针p1、p2、p3指向a、b、c值所存放的地址空间,然后再将指针变量*p1、*p2中值的乘积赋给指针变量*P,即赋给变量c,输出c的值3。

  • 第5题:

    有如下程序段: int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=P[5];则b的值是( )。

    A.5

    B.6

    C.9

    D.8


    正确答案:C
    解析:p=&a[3]将指针指向数组a的第4个元素,p[5]则是数组a的第9个元素,而a[8]=9,所以b=9。

  • 第6题:

    执行以下程序段后,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

  • 第7题:

    有如下程序段int *p,a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为A.12 B.10 C.11 D.编译出错


    正确答案:C
    p=&a表达式的含义是将变量a的地址赋给指针变量p;a=*p+b表达式的含义是将指针变量p所存地址对应的值与b的和赋给a。

  • 第8题:

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

    A.4

    B.5

    C.3

    D.3不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。p[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第9题:

    执行以下程序后,y的值是 ( ) main( ) { int a [ ]={2,4,6,8,10); int y=1,x, *p; p=&a[1]; for(x=0;x<3; x + +) y + =* (p + x); printf("%d\n",y); }

    A.17

    B.18

    C.19

    D.20


    正确答案:C

  • 第10题:

    设有以下程序: struct st{int n;struct st*next;}; static struct st a[3]={5,&a[1],7,&a[2],9,'\0\},*p; p=&a[0];下面其值为6的表达式为______。

    A.p++->n

    B.p->n++

    C.(*p).n++

    D.++p->n


    正确答案:D
    解析:p指向数组的第1个元素,由于运算符->优先级高于运算符++,可知选项A应先取p->n的值5,再使p++指向下一个元素;选项B,先取p->n的值5作为表达式的值,再使p->n的值加1;选项C与选项B等价:选项D,先使p->n的值增1(即值为6),再以此值作为表达式的值,本题应选择选项D。

  • 第11题:

    有如下程序段 int*p,a=10,b=3; p=&a; a=*p+b;执行该程序段后,a的值为______。

    A.11

    B.12

    C.13

    D.14


    正确答案:C

  • 第12题:

    单选题
    有以下程序: #include  main() {  int *p,x=100;  p=&x;  x=*p+10;  printf(%d,x); } 程序运行后的输出结果是(  )。
    A

    110

    B

    120

    C

    100

    D

    90


    正确答案: A
    解析:
    程序执行过程为:定义指针p,指向变量x,p的值即为x的地址,*p就表示该地址处存放的值,x=(*p)+10=110,输出110。答案选择A选项。

  • 第13题:

    设有以下程序片段:char a[ ]="hello",*p;p=a;printf("%d",*(p+5));执行上面的程序片段后的结果为( )

    A.111

    B.0

    C.104

    D.不确定的值


    正确答案:B 

  • 第14题:

    设程序如下:includeusing namespace std;int main(){int **p,*q,r=10;q=&r;p=&am

    设程序如下: #include<iostream> using namespace std; int main() { int **p,*q,r=10; q=&r; p=&q; cout<<**p+1<<end1; return 0; } 以上程序的输出结果是( )

    A. p的地址

    B. r的地址

    C.11

    D.运行错误


    正确答案:C
    解析:p为一个二级指针,其存放的是指针变量q的地址,而q存放的又是r的地址。故式子++p相当于对r的引用。所以最后输出的结果为11。

  • 第15题:

    有以下程序:includeusing namespace std;int n[][3]={10,20,30,40,50,60};int main()

    有以下程序: #include<iostream> using namespace std; int n[][3]={10,20,30,40,50,60}; int main() { int (*p)[3]; p=n; cout<<p[0] [0]<<","<<*(p[0]+1)<<","<<(*p) [2]<<end1; return 0; } 上述程序执行后的输出结果是( )。

    A.10,20,30

    B.20,30,40

    C.10,30,50

    D.10,40,60


    正确答案:A
    解析:程序中p是指针数组,它等价于二维数组p[][3]。给p赋值二维数组n后。p[0][0]等于n[0][0],*(p[0]+1)等于n[O][1],(*p)[2]等于n[O][2]。即程序最后输出10,20,30。

  • 第16题:

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

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。p[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第17题:

    下列程序的执行结果为includevoid main( ) { int a=3,b=0; int * p=&a; b=+a+

    下列程序的执行结果为

    #include<iostream.h>

    void main( )

    {

    int a=3,b=0;

    int * p=&a;

    b=+a++;

    cout < < * p < < "," < < b < < endl;

    }

    A.3,4

    B.4,3

    C.3,4

    D.4,4


    正确答案:B
    解析:* p为所指对象a的值,语句“b=+a++;”等价于“b=b+a; a=a+1;”。

  • 第18题:

    如下程序的执行结果是 include void main( ) { static int a[ ]={ 1,7,3,9,5,11

    如下程序的执行结果是 #include<iostream.h> void main( ) { static int a[ ]={ 1,7,3,9,5,11 }; int * p=a; * (p+3)+=4; cout < < * p < <"," < < * (p+3);}

    A.1,13

    B.1,16

    C.3,13

    D.1,14


    正确答案:A
    解析:指针数组的定义、赋初值、数组元素的引用与赋值等操作和一般数组的处理方法基本相同。需要注意指针数组是指针类型的,对其元素所赋的值必须是地址值。其格式是“存储类型数据类型*指针数组名1[长度1]={初值1},功能是定义指向“数据类型”变量或数组的指针型数组,同时给指针数组元素赋初值。这些指针变量具有指定的“存储类型”。本题中指针*p指向数组a,表达式*(p+3)+=4的含义是*(P+3)=*(p+3)+4,而*(p+3)在数组中指向的值为9,最后输出的结果为9+4=13,注意:一个语句的结束要有分号。

  • 第19题:

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

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。P[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第20题:

    下列程序的执行结果为includevoid main( ){ int a=3,b=0; int * p=&a; b=+a++;

    下列程序的执行结果为 #include<iostream.h> void main( ) { int a=3,b=0; int * p=&a; b=+a++; cout<<*p<<','<<b<<end1; }

    A.3,4

    B.4,3

    C.3,4

    D.4,4


    正确答案:B
    解析:*p为所指对象a的值,语句“b=+a++;”等价于“b=b+a;a=a+1;”。

  • 第21题:

    有程序段: int * p,a,b=1; p=&a; *p=10;a=* p+b; 执行该程序段后,a的值是 ( )

    A.12

    B.11

    C.10

    D.编译出错


    正确答案:B

  • 第22题:

    执行下列程序段后,变量y的值为( ) int x[]={1,2,3,4},y,*p=&x[1]; y=(*--P)++;

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    从数据定义语句中可以得出下列结论:指针变量P指向的数组元素是x[1]。再来分析赋值句的右边表达式“(*--p)++”,其中的“--”优先于“*”先计算“--p”,使得p指向数组元素x[0];所以“(*--p)”就是数组元素a[0],再计算其后的“++”,由于“++”是后缀,所以表达式的值就是数组元素x[0]的值,为1,然后再对数组元素x[0]加1。因此变量y的值是1。本题答案应选A。

  • 第23题:

    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }

    • A、17
    • B、18
    • C、19
    • D、20

    正确答案:C

  • 第24题:

    单选题
    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }
    A

    17

    B

    18

    C

    19

    D

    20


    正确答案: A
    解析: 暂无解析