niusouti.com

设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_()A、for(i=0;iB、for(i=0;iC、for(i=0;iD、for(i=0;i

题目

设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_()

A、for(i=0;i<6;i++)printf(“%2d”,*(p++));

B、for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C、for(i=0;i<6;i++)printf(“%2d”,*p++);

D、for(i=0;i<6;i++)printf(“%2d”,(*p)++);


相似考题
更多“设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完 ”相关问题
  • 第1题:

    设有定义语句 int x[6]=(2,4,6,8,5,7.), *p=x, i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是

    A.for(i=0;i<6;i++) printf(“%2d”,* (p++));

    B.for(i=0;i<6;i++) printf(“%2d”,*(p+ i));

    C.for(i=0;i<6;i++) printf(“%2d”,*p++);

    D.for(i=0;i<6;i++) printf(“%2d”,*(p)++);


    正确答案:D
    解析:本题考核的知识点是通过指针引用数组的元素。本题中首先定义了一个一维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

  • 第2题:

    设有定义语句: int x[6] = {2,4,6,8,5,7} , * p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是( )。

    A.for(i=0; i <6;i++) printf("%2d",* (p++));

    B.for(i =0;i <6;i ++ ) printf( "%2d" , * (p +i));

    C.for(i =0;i <6;i ++ ) printf(" %2d" , * p ++ );

    D.for(i =0;i <6;i ++ ) printf("%2d" ,( * p) ++ );


    正确答案:D
    解析:*p=x的作用是将x的首地址赋给指针变量p。选项A)正确,*(P++)中括号内的++是在P的后面,所以它先取*P的值x[0],再执行p++;选项B)正确,p+i表示x[i]的地址,*(p+i)表示x[i]的值;选项C)中的*和++处于同一优先级别,而结合方向为自右而左,因此*p++相当于*(p++),与选项A)相同;选项D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能实现指针的移动,每次循环只是x[0]的值在改变,而P的值并没有改变,所以不能实现6个元素的输出。

  • 第3题:

    设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是 ______。

    A.for(i=0;i<6;i++) printf("%2d",*(p++));

    B.for(i=0;i<6;i++) printf("%2d",*(p+i));

    C.for(i=0;i<6;i++)printf("%2d",*p++);

    D.for(i=0;i<6;i++)printf("%2d",(*p)++);


    正确答案:D
    解析:选项D中(*p)++的意思是将p所指向的存储单元的值加1,与题意不符,错误。

  • 第4题:

    设有定义语句: int x[6]={2,4,6,8,5,7), *p=x, i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是( )。

    A.for(i=0;i<;i++) printf("%2d",*(p++));

    B.for(i=0;i<6;i++) printf("%2d",*(p+i));

    C.for(i=0;i<6;i++) printf("%2d",*p++);

    D.for(i=0;i<6;i++) printf("%2d",(*p)++);


    正确答案:D
    解析:本题中首先定义了一个了维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A和C,*和++的优先级相同且都具有右结合性,p++是先使用p的值再对p加1,即先输出*p的值,再将指针下移一位。选项B是取*(p+i)所对应的存储单元中的数据输出,随着i的递增输出x数组的6个元素。选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

  • 第5题:

    设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是______。

    A.for(i=0;i<6;i++) printf("%2d",*(p++));

    B.for(i=0;i<6;i++) printf("%2d",*(p+i));

    C.for(i=0;i<6;i++) printf("%2d",*p++);

    D.for(i=0;i<6;i++) printf("%2d",(*p)++);


    正确答案:D