niusouti.com
更多“程序中有如下语句 for(int i=0;i<5;1++)cout<<*(p+i)<<","; 能够依次输出int型一维数组DATA的前5 ”相关问题
  • 第1题:

    程序中有如下语句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;。

  • 第2题:

    若有以下程序: void g(int **q) { (**q) ++; (*q) ++; } void main() { int line [5]; int *p=line; for (i=0; i<5; i++) { *p=i; g(&P); } for (i=0; i<5; i++) cout<<line[i]; cout<<end1; } 该程序运行后的输出结果为( )。

    A.12345

    B.1234

    C.11111

    D.55555


    正确答案:A
    解析:本题考核指针的运用。主函数的for循环中向函数g()传入实参&p,则在函数g()中执行“(**q)++;”相当于执行“(**(&p))++”,即(*p)++,其结果就是对相应的数组元素值加1。函数g()中执行“(*q)++;”相当于执行“(*(&p))++”,即p++。其结果为指针p指向下一个数组元素。这样通过for循环给数组元素分别赋值1、2、3、4、5。

  • 第3题:

    5、现有如下定义语句 int*p,s[20],i;   p=s; 表示数组元素s[i]的表达式不正确的是()

    A.*(s+i)

    B.*(p+i)

    C.*(s=s+i)

    D.*(p=p+i)


    *(s=s+i)

  • 第4题:

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

    A.int*p=a;

    B.intp=a;

    C."p=a;

    D.p=a;


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

  • 第5题:

    若有下面语句“int i , a[5] ; int *p ; p=a; ”,则()是对数组元素的错误表示。

    A.*(a+i)

    B.p[i]

    C.*(p+i)

    D.p+i


    pa是一个具有5个元素的指针数组,每个元素是一个int型指针