有以下程序: #inelude<stdio.h> int fun(inta[],int n,int x) {int*p=a; while(p<a+n&&*p!=x)p++; if(p<a+n)return p-a; else return-1; } mai

admin2021-07-09  17

问题 有以下程序:
#inelude<stdio.h>
int fun(inta[],int n,int x)
{int*p=a;
while(p<a+n&&*p!=x)p++;
if(p<a+n)return p-a;
else return-1;
}
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\\n",fun(a,10,10));
}
程序运行后的输出结果是(    )。

选项 A、9
B、-1
C、10
D、0

答案A

解析 while(p<a+n&&*p!=x)p++;当p=a;n=10,x=10;时while循环条件成立,直到p=a+9,结束循环,执行下一条语句,if条件成立,返回p-a,此时执行p-a=a+9-a=9;因此,输出9。故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/OFz0FFFM
0

最新回复(0)