使用Vc++20lO打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是把形参a所指数组元素中的最大值放在a[0]中,接着把a所指数组元素中的最小值放在a[1]中,再把a所指数组

admin2023-02-27  2

问题 使用Vc++20lO打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是把形参a所指数组元素中的最大值放在a[0]中,接着把a所指数组元素中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,依此类推。
    例如,若a所指数组中的元素最初排列为1、4、20、
9、6、5、8、7,按规则移动后,元素排列为9、1、8、2.7、3、6、
4、5。形参n中存放a所指数组中元素的个数。
    请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 #define N 9
3  /*********found*********/
4 void fun(int<u>【1】</u>,int n)
5 {  inti,j,max,min,px,pn,t;
6  /*********found*********/
7    for(i=0;i<n-1;i+=<u>【2】</u>)
8    {max=min=a;
9    px=pn=i;
10  /*********found*********/
11    for(j=<u>【3】</u>; j<n;j++)
12    {if(max<a[j])
13    {max=a[j];px=j;}
14    if(min>a[j])
15    { min=a[j]; pn=j;}
16    }
17    if(px!=i)
18    {t=a;a=max;
19    a[px]=t;
20    if(pn==i) pn=px;
21    }
22    if(pn!=i+1)
23    {t=a[i+1];a[i+1]=min;
24    a[pn]=t;}
25    }
26 }
27 main()
28 {int b[N]=[1,4,2,3,9,5,5,8,7),i;
29  printf("\nThe original data:  \n");
30  for(i=0;i<N; i++)
31    printf("%4d",b);
32  printf("\n");
33  fun(b,N);
34    printf("\nThe data after moving:\n");
35    for(i=0;i<N; i++)
36    printf("%4d",b);
37  printf("\n");
38 }

选项

答案(1)a[] (2)2 (3)i+1

解析 填空1:由main()中的函数调用语句确定函数定义的形参为数组或指针类型,故空1处应该填a[]。
    填空2:for循环语句中,循环变量增值为2。故空2处应该填2。
    填空3:确定for循环语句变量的初值为i+1。故空3处应该填i+1。  
转载请注明原文地址:https://jikaoti.com/ti/MnoiFFFM
0

随机试题
最新回复(0)