执行以下程序后,y的值是() main() {int a [ ]={2,4,6,8,10); int y=1,x, *p; p=&a[1];

题目

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

执行以下程序段后,y的值是()。 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("%dn",y);

A.17

B.18

C.19

D.20


C

第2题:

有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

A.8,2,3,4.,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,


正确答案:D
解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,

第3题:

有以下程序*f(int * x,int * y) { if( * x< * y) return x; else return y; } main() { int a=7.b=8, * p, * q, * r; p=&a; q=&b: r=f(p,q); coat<< * p<<","<< * q<<","<< * r<<end1; } 执行后输出结果是

A.7,8,8

B.7.8,7

C.8,7,7

D.8.7,8


正确答案:B
解析:可以很容易分析出f函数的功能是比较两个数的大小,返回较小者。而,指向的也是较小者,故代人数据即可得出正确结果为B。

第4题:

有以下程序: main() {int a[]={2,4,6,8,10},y=0,x,*p; p=&a(1); for(x=1;x<3;x++) y+=p[x]; printf("%d\n",y); } 程序运行后的输出结果是 ______。

A.10

B.11

C.14

D.15


正确答案:C
解析:本题通过语句“p=&a[1]扩将指针变量p指向了存储单元a[1],即使得p[0]的值为4,然后通过两次for循环,使得y的值分别加上p[1]和p[2],那么y=6+8,所以输出的y的值为14。

第5题:

有以下程序: int*f(int*x,int*y) { if(*x<*y) return x; else return y; } main() { int a=7,b=8,*P,*q,*r; P=&a; q=&b; r=f(p,q); print("% d,% d,% d\n",*P,*q,*r); } 执行后的输出结果是 ______。

A.7,8,8

B.7,8,7

C.8,7,7

D.8,7,8


正确答案:B
解析:函数f是一个返回值为指针的函数,其功能是比较两个数中的最小值,并返回最小值的存储单元地址。main函数中定义了指针变量p和q,p=&a,q=&b,即*p=7,*q=8,调用函数{后r=p,所以*r=7,printf函数的输出结果为 7,8,7。

第6题:

有以下程序: main() {int a[]={2,4,6,8,10},y=0,x,*p; p=&a[1]; for(x=1;x<3;x++)y+=p[x]; printf("%d\n",y); } 程序运行后的输出,结果是 ______。

A.10

B.11

C.14

D.15


正确答案:C
解析:因为p=&a[1],p[0]=a[1],p[1]=a[2],p[2]=a[3]。for循环是求p[1]+p[2],因此y的值应为:6+8= 14。

第7题:

有以下程序:include main() {int a[] = {2,4,6,8,10} ,y =0,x, * p;p =&a[1];for(

有以下程序: #include <stdio.h> main() { int a[] = {2,4,6,8,10} ,y =0,x, * p; p =&a[1]; for(x=1;x<3;x++)y+ =p[x]; printf( "% d \n" , y); }程序运行后的输出结果是( )。

A.10

B.11

C.14

D.15


正确答案:C
解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。

第8题:

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

第9题:

有以下程序

intā*f(int*x,int*y)

{ if(*x<*y)

return x;

else

return y;

}

main( )

{ int a=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=f(p,q);

cout<<*p<<","<<*q<<","<<*r<<endl;

}

执行后输出结果是

A.7,8,8

B.7,8,7

C.8,7,7

D.8,7,8


正确答案:B
解析:value作为类的数据成员在引用时可以通过对象来引用,也可以通过域操作符引入类名来限定。因此选项A和C可以排除,由于选项D中p是指针,它对指针变量的赋值方式是错误的。