目录: 标题| 题干| 答案| 搜索| 相关
问题

有以下程序fun(int *a,int n) { int i,j=0,p;


有以下程序fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]<a[p]) ____; return(p);}在下画线处应填入的是A.i=p B.a[p]=a[i] C.p=j D.p=i

  • Ai=p
  • Ba[p]=a[i]
  • Cp=j
  • Dp=i
参考答案
参考解析:

本题考查对程序作用的理解。该函数具有两个形参a和n,a为数组名,n为数组中元素的个数。函数的返回值为p,这里p为数组的下标。初始时,i、j、p都为0,for循环的初始表达式为i=j,条件表达式为i<n,也就是当i=n时,for循环结束。该for循环表达的含义为:初始时,令a[i]=a[p]=a[0],随后i可从0开始递增,直到n-1,对于每一个a[i],都与a[p]进行比较,空白处需要填入语句的部分是if语句满足条件后要进行的操作,表示如果a[i]<a[p],应当进行怎样的处理。选项A 是令i=p,此时整个程序中p的值没有发生改变,p=0,即如果a[i] <a[p],则令i=0,回到了初始化的状态,这样在for语句中造成了死循环,该选项错误。选项B是令a[p]=a[i],整个程序在运行过程中,p的值依然没有变化,p=0,即如果a[i] <a[0],则令a[0]=a[i],整个程序运行结束后,a[0]的数值应该为整个数组的最小值,用return语句返回下标0没有意义。选项C是令 p=j,程序在运行过程中,j的值和p的值都没有发生改变,整个程序没有意义。选项D是p=i,该语句的含义是如果a[i]<a[p],则令p=i,程序结束后则有a[p]为数组中的最小值,将最小值的下标返回。

分类:其他
相关推荐

1、若有程序 fun(int a,int b) { static int c=0

若有程序 fun(int a,int b) { static int c=0 c+=a+b; retum c; } main () { int x=5,y=3,z=7,r; r=fun((y,x+y),z); r=fun(x,y); printf("%d ",r); } 上面程序的输出结果______。A23B15C19D18

2、有以下程序 fun(int a,int b) { if(a>b) retur

有以下程序 fun(int a,int b) { if(a>b) return(a) ; else return(b) ; } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); Printf("%d ",r); } 程序运行后的输出结果是A3B6C8D12

3、有以下程序void fun(int a,int b,int c){ a=45

有以下程序void fun(int a,int b,int c){ a=456,b=567,c=678;}main(){ int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z);}输出结果是A.10,20,30 ...

4、有以下程序prt(int *m,int n){ int i; for(i=0

有以下程序prt(int *m,int n){ int i; for(i=0;i<n;i++) m[i]++;}main(){ int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]);}程序运行后的输...

5、有以下程序段int n=0,p;do {scanf("%d",&p);n++

有以下程序段int n=0,p;do {scanf("%d",&p);n++;}while(p!=12345 &&n<3);此处do-while循环的结束条件是()Ap的值不等于12345并且n的值小于3Bp的值等于12345并且n的值大...

6、有以下程序#include <stdio.h>int fun(i

有以下程序#include <stdio.h>int fun(int (*s)[4],int n, int k){ int m, i; m=s[0][k]; for(i=l; i<n; i++) if(s[i][k]>m) m=s[i][k]; return m;}main(){ i...