首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、
函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、
admin
2018-09-27
29
问题
函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #defihe N 9
3 /**********found**********/
4 void fun(int ___1___,int n)
5 { int i,j,max,min,px,pn,t;
6 /**********found**********/
7 for(i=0;i<n-1;i+=___2____)
8 { max=min=a
;
9 px=pn=i;
10 /**********found**********/
11 for(j=___3___;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;a[px]=t;
19 if(pn==i) pn=px;
20 }
21 if(pn!=i+1)
22 {t=a[i+1];a[i+1]=min;a[pn]=t;}
23 }
24 }
25 main()
26 {int b[N]={1,4,2,3,9,6,5,8,7},i;
27 printf(’’\nThe original data:\n’’);
28 for(i=0;i<N;i++)printf(’’%4d’’,b
);
29 printf(’’\n’’);
30 fun(b,N);
31 printf(’’\nThe data after moving:\n’’);
32 for(i=0;i<N;i++)printf(’’%4d’’,b
);
33 printf(’’\n’’);
34 }
选项
答案
(1)*a (2)2 (3)i+1
解析
本题中函数的功能是将数组中的元素下标为偶数的元素按照从大到小排序,下标为奇数的元素按照从小到大排序,相当于2个排序过程。在fun函数中,采用选择排序法进行排序,分别用max和min存储每次寻找的最大值和最小值,px和pn记录每次查找到的最大值和最小值的下标位置。
第一空:主函数内fun函数的调用“fun(b,N);”,其中,b为整型数组名,故fun函数的第一参数为整型指针,又根据“max=a[j]”可知第一个参数名为a,故第一空处为“*a”。
第二空:根据题意a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,升序排序和降序排序的下标变化是每次在前一次的基础上+2,即a[0]、a[2]、a[4]…降序排序,a[1]、a[3]、a[5]…升序排序,故第二空应为“2”。
第三空:选择排序法中的升序排序,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。故内层循环变量j应该从i+1开始。因此,第三空处应为“i+1”。
转载请注明原文地址:https://kaotiyun.com/show/byxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序main(){chara1=’M’,a2=’m’;printf("%c\n",(a1,a2));}以下叙述中正确的是()。
有以下程序:main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)(
下列关键字中,不属于C语言变量存储类别的是______。
下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。intn=0,c;c=getchar();while(c!=’\n’){if(______)n++;}
给定的程序中,fun函数的功能是:将M行N列的矩阵中的数据,按行的顺序依次放在一维数组中,一维数组中的元素的个数存放在形参n所指的存储单元中。请在程序的下划线处填写正确的内容,使程序得到正确的结果。voidfun(int(*S)[10]
下列叙述中,不属于软件需求规格说明书的作用的是______。
对下列二叉树进行中序遍历的结果是()。
软件定义时期主要包括【】和需求分析两个阶段。
设有下列二叉树:对此二叉树中序遍历的结果为______。
给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删
随机试题
卫生部1989年12月发布的医院分级管理试行草案有以下要求,但除外
自动排放管道中的凝结水,并防止蒸汽泄漏的阀门是()。
在单元格中的段落标记或文字左边单击,可以选取()。
甲、乙两人同时加工同样多的零件,甲每小时加工40个。当甲完成任务的时,乙距离完成任务的还差40个,这时乙开始提高工作效率,又用了7.5小时完成了全部加工任务。这时甲还剩下20个零件没完成。乙提高工效后,每小时加工零件多少个?
计算
设f(x)在[a,b](0<a<b)上连续,在(a,b)内可导,则在(a,b)内存在ξ,η,使
Ayoungconsultant’slifeistiring.A【C1】______weekstartsbeforedawnonMonday,witharushtotheairportanda【C2】______to
有以下程序:#include<stdio.h>#include<string.h>#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s+
下述有关选项组叙述正确的是______.
一天晚上,一群游牧部落的牧民正准备安营扎寨休息,忽然被一束耀眼的光芒所笼罩。他们知道神就要出现了。因此,他们殷切地期盼着,恭候着来自上苍的重要旨意。最后,神终于说话了:“你们要沿路多捡一些鹅卵石,把它们放在你们的马褡子里。明天晚上,你们会非常快乐
最新回复
(
0
)