niusouti.com

以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回 , 但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A) 定义语句 int i,max; 中 max 未赋初值B) 赋值语句 max=MIN; 中,不应给 max 赋 MIN 值C) 语句 if(

题目

以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回 , 但程序中有错导致不能实现预定功能

#define MIN -2147483647

int findmax (int x[],int n)

{ int i,max;

for(i=0;i<n;i++)

{ max=MIN;

if(max<x[i]) max=x[i];}

return max;

}

造成错误的原因是

A) 定义语句 int i,max; 中 max 未赋初值

B) 赋值语句 max=MIN; 中,不应给 max 赋 MIN 值

C) 语句 if(max<x[i]) max=x[i]; 中判断条件设置错误

D) 赋值语句 max=MIN; 放错了位置


相似考题
更多“以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回 , 但程序中有错导致不能实 ”相关问题
  • 第1题:

    补充程序Ccon073.C,函数findmax返回数组中的最大元素。


    Printf("Themaxis%d\n",/**/findmax(a,10)/**/);
    Inti,/**/max=array[0]/**/

  • 第2题:

    以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致

    不能实现预定功能。

    #define MIN-2147483647

    int findmax(int x[],int n)

    {int i,max;

    for(i=0;i<n;i++)

    {max=MIN;

    if(max<x[i])max=x[i];)

    return max;

    }

    造成错误的原因是( )。

    A.定义语句“int i,max;”中max未赋初值

    B.赋值语句“max=MIN;”中,不应给max赋MIN值

    C.语句“if(max<x[i])max=x[i];”中判断条件设置错误

    D.赋值语句“max—MIN;”放错了位置


    正确答案:D
    “max=MIN;”语句应放在for循环之前,否则每次循环时都重新赋值,值没有变化。

  • 第3题:

    以下程序调用findmax函数返回数组中的最大值 findmax(int*a,int n) { int * p,* s; for(p=a,s=a;p-a<n;p++) if(_____)s=p; return(*s); } main() { int x[5]={12,21,13,6,18}; printf(“%d\n”,findmax(x,5)); } 在下划线处应填入的是

    A.p>s

    B.*p>*s

    C.a[p]>a[s]

    D.p-a>p-s


    正确答案:B
    解析:在main()函数中定义了一个具有5个元素的x数组并赋初值,然后调用findmax()函数求数组中元素的最大值。调用时把数组元素x的首地址,传给了形参指针变量a,把5传给形参n。在函数findmax()中定义了两种指针变量p和s,其中s用来记录最大元素的地址,p作为循环控制变量,表示每个元素的地址。求最大值的算法是先将第一个元素(用s记下它的地址)做为最大值,然后用最大值(*s)与后面的每个元素比较(*p),若后面的元素大,则用s记下它的地址,所以下划线应填“*8*p或“*p>*8”。

  • 第4题:

    以下函数findmin拟实现在数组中查找最小值并作为函数值返回,但程序中有错导致不能实现预定功能。

    造成错误的原因是( )。

    A)定义语句int i,min;中vain未赋初值

    B)赋值语句min=MAN;中,不应给min赋MAX值

    C)语句if(min

    D)赋值语句min=MAX;放错了位置


    正确答案:D
    在C语言中,一个整型变量占用4个字节的内存单元,并按整型数的存储方式存放数据,允许存放的数值范围是:一2147483648-2147483647。所以在这个题目中定义的宏变量MAX的值就是整数范围内最大的数值,因而对于任意一个整数来说,其值都比MAX小,而判断最小值,是当找到的数比rain小时,才交换。

  • 第5题:

    以下程序调用findmax函数返回数组中的最大值 findmax (inE *a,int n) { int*p,*s; for(p=a,s=a;p-a<n;p++) if(______)s=p; return(*S); } main() { int x[5]={12,21,13,6,18); printf("%d\n",findmax(x'5)); } 在下划线处应填入的是

    A.p>s

    B.*p>*s

    C.a[p]>a[s]

    D.p-a>p-s


    正确答案:B
    解析:在main()函数中定义了一个具有5个元素的x数组并赋初值,然后调用findmax()函数求数组中元素的最大值。调用时把数组元素x的首地址,传给了形参指针变量a,把5传给形参n。在函数findmax()中定义了两种指针变量p和s,其中s用来记录最大元素的地址,p作为循环控制变量,表示每个元素的地址.求最大值的算法是先将第一个元素(用s记下它的地址)做为最大值,然后用最大值(*s)与后面的每个元素比较(*p),若后面的元素大,则用s记下它的地址,所以下划线应填“*s<*p*或“*P>*s”。所以,4个选项中B为所选。