首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数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
2015-06-08
50
问题
函数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所指数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#irlclude
#define N 9
/**********found***********/
void fun(int ___1___ , int n)
{ int i,j,max,min,px,pn,t;
/**********found***********/
for (i=0; i
{ max=min=a
;
px=pn=i;
/**********found***********/
for(j=___3___; j
{ if(max
{ max=a[j]; px=j;}
if(min>a[j])
{ min=a[j]; pn=j;)
}
if(px!=i)
{ t=a
; a
=max, a[px]=t;
if(pn==i)pn=px;
}
if(pn!=i+1)
{t=a[i+1];a[i+1]=min;a[pn]=t;)
}
}
main()
{ int b[N]={1,4,2,3,9,6,5,8,7),i;
printf(“\nThe original data:\n”);
for(o=0;i
);
printf(“\n”);
fun(b,N);
printf(“\nThe data after moving:\n”);
for (i=0;i
);
printf(”\rl”);
}
选项
答案
(1)*a (2)2 (3)j+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个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。故内层循环变量i应该从i+1开始,因此第三空处应为“i+1”。
转载请注明原文地址:https://kaotiyun.com/show/yiJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
C语言中,函数值类型的定义可以默认,此时函数值的隐含类型是()。
数据库设计包括两个方面的设计内容,它们是()。
观察题目要求,可以知道以下几点:①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;②str[i]代表字符串str中的第i+1个字符;③整形变量num的值是要记录的单词的个数。C语言中规定字符串的最后一个字符是一个隐含的字符串结束符
下面程序的输出是【】。main(){enumem{em1=3,em2=1,em3};char*aa[]={"AA","BB","CC","DD"};printf("%s%s%s\n",aa[em1],aa[e
有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib
下面invert函数的功能是将一个字符串str的内容颠倒过来。请填空。 #include<string.h> voidinvert(charstr[]) {inti,j【】; for(i=0,j=strlen(str)
以下选项中,能定义s为合法的结构件变量的是_______。
在C语言中,合法的长整型常数是_______。
以下不能正确定义二维数组的选项是()。
实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。#include<stdio.h>voidmain(intargc,char*argv[])
随机试题
对于“百日维新”的表述正确的有()
超声探头压电材料的作用是
用户可以通过文件扩展名识别出文件的格式类型。()
A公司出纳员在审核该公司办公室主任李某购买办公用品的发票时,发现出具发票的商场误将“A公司”写成“AB公司”,该出纳员正确的处理方法是()。
地球东西半球的实际分界线是()。
下列关于现代通信发展的说法,正确的是()。
A.条件(1)充分,但条件(2)不充分.B.条件(2)充分,但条件(1)不充分.C.条件(1)和(2)单独都不充分,但条件(1)和条件(2)联合起来充分.D.条件(1)充分,条件(2)也充分.E.条件(1)和(2)单独都不充分,条件(1)和条件(2
关于CMIP协议的描述中,正确的是()。
在操作系统中,为保护临界资源不被破坏,程序进入临界区应遵循以下哪些准则?()
Careeristsarepeoplewhoseself-imageisdeterminedalmostexclusivelybytheirjobs.【B1】______everythingtheydoisdesignedt
最新回复
(
0
)