niusouti.com

下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>define N 20void fun(int *a,int n){int i, m,t,k;/*************found**************/for(i=O; i<n; i++)

题目

下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <conio.h>

include <stdio.h>

define N 20

void fun(int *a,int n)

{

int i, m,t,k;

/*************found**************/

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

{

m==i;

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

if(a[k]<a[m])

/*************found**************/

k=m;

t=a[i];

a[i]=a[m];

a[m]=t;

}

}

main()

{

int x,b[N]={11,5,12,0,3,6,9,7,10,8},

n=10,i;

clrscr();

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

printf("%d",b[i]);

printf("\n");

fun(b,n);

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

printf("%d",b[i]);

printf("\n");

}


相似考题
更多“下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最 ”相关问题
  • 第1题:

    程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。

    例如:a数组中的值为:

    则返回主程序后s的值应为:3.375。

    注意:部分源程序存在文件PROGl.C文件中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。

  • 第2题:

    15、连续抛掷一颗骰子,问 4次抛掷中恰好有两次出现6点的概率为()写成最简分数或四位小数


    正确

  • 第3题:

    试编程求首地址为ARRAY的1000个带符号字数组中的最小数,并把它存在MIN单元中。


    array;&array[0 ]

  • 第4题:

    下列给定程序中,函数fun()的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    请修改程序中的错误,得出正确的结果。

    注意:不要改动main()函数,不能增行或删行,也不能更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:m=j;
    正确:voidfun(int*b,intn)
    (2)错误:voidfun()
    正确:m=i;
    【解析】本题中函数的功能是求出数组中最大数和次最大数。解题思路是首先求出数组中最大数和次最大数,然后将最大数和次最大数分别放到数组的第一位和第二位。
    第一个错误标识下“voidfun(int*b,intn);”函数的定义语法有误,根据C语言语法函数定义后面不应该加“;”,所以“voidfun(int*b,intn);”应该改为“voidfun(int*b,intn)”。
    第二个标识符下for循环逐个对m个数据进行选择判断,原题中“m=0;”语句将m值设置为0,在循环中m的值始终是0,不会改变,根据“for(i=0;i<2;i++)”语句中的循环条件,“m=0;”改为“m=i;”。

  • 第5题:

    14、连续抛掷一颗骰子,问第4次抛掷时恰好第二次出现6点的概率为 (写成最简分数或四位小数)


    [5.99,6.01]