itgle.com
更多“( 20 )有如下程序段int i =0, j=1;int & r=i ; // ①r =j; // ②int*p= & i ; // ③*p= & r ; // ④ ”相关问题
  • 第1题:

    有如下程序段: int i=0,J=1; nt&r=i;//④ ’ r=j;//② int * P=&i;//③ * P=&r;//④ 其中会产生编译错误的语句是( )。

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*P已经是-一个值了,不能将一个指针赋值给一个值,所以编译错误。

  • 第2题:

    以下程序输出正确的是______。 amovep(int *p,int(*a)[3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); arnovep(p,a,3); printf("%d%d\n",p[2],p[5];free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

  • 第3题:

    有如下程序段: int i=0,J=1; nt&r=i;//④ ’ r=j;//② int * P=&i;//③ * P=&r;//④ 其中会产生编译错误的语句是( )。

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*P已经是-一个值了,不能将一个指针赋值给一个值,所以编译错误。

  • 第4题:

    有如下程序段: int i=0,J=1; int&r=i;//① r=j;//② int*P=&i;//⑧ *P=&r;//④ 其中会产生编译错误的语句是( )。

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    本题考查指针和引用。①为引用,使用正确;④中&r表示一一个地址,而*P已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。

  • 第5题:

    以下程序输出正确的是______。 amovep(int *p,int(*a)[3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针P和二维数组a,通过函数amovep将数组的值存入指针P所指向的存储单元中,a的各元素分别为:a[0]=1,a[o][1]=3,a[0][2]=5,……,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)讽用函数amovcp,使得实参P与形参P,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。