首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。 例如,若a所指数组中的数
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。 例如,若a所指数组中的数
admin
2017-09-23
37
问题
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。
例如,若a所指数组中的数据最初排列为:9,1, 4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9, 2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。
规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#define N 9
void fun(int a[],int n)
{int i l J r max t min f px f pn,t;
for(i=0;i < n一1;i+=2)
{
/*********found*********/
max=min=
【1】
;
px=pn=i;
for(j=i+1;j < n;j++) {
/*********found*********/
if(max <
【2】
)
{max=a[j];px=j;)
/*********found*********/
if(min >
【3】
)
{min=a[j];pn=j;)
}
if(pn!=i)
(t=a
;a
一min;a[pn]=t;
if(px==i)px=pn;
}
if(px!=i+1)
( t=a[i+1];a[i+1]=max;
a[px]=t;)
}
}
void main()
{ int b[N]=(9,1,4,2,3,6,5,8,7},i,
printf("\nThe original data:
\n"),
for(i=0;i < N;i++)
printf("%4 d",b
);
printf("\n");
fun(b,N);
printf("\nThe data after
moving:\n");
for(i=0;i < N;i++)
printti("%4 d",b
);
printi("\n");
}
选项
答案
(1)a[i] (2)a[j] (3)a[j]
解析
本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,则不执行下面的语句。
填空1:for循环语句循环体中将数组元素a
赋值给变量max和变量min。
填空2:通过一次for循环,找到数组中的最大值,if语句的条件表达式是max <a[j]。
填空3:同理,此处if语句的条件表达式是min>a[j]。
求最大值或者最小值的题目,一般都是先假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。
转载请注明原文地址:https://kaotiyun.com/show/szxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序调用函数swap将指针s和t所指单元(a和B)中的内容交换,请填空。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swa
uniondt{inta;charb;doublec;}data;以下叙述中错误的是()。
两次运行下面的程序,如果从键盘上分别输入3和2,则输出结果是()。#include<stdio.h>main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);
设q1和q2是指向一个int型一维数组的指针变最,k为float型变量,下列小能正确执行的语句是()。
下述程序的输出结果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(
若定义函数int*func(),则函数func的返回值为()。
定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
下面程序运行后的输出结果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[
以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\
以下语句段执行后的输出结果是()。#include<stdio.h>main(){intk=3;if(k)printf("###")elseprintf("&&&&");}
随机试题
审美实践活动发展中最基本的两种审美形态是【】
在Word2010的图片编辑器中,不能改变图片的()
某女,60岁,子宫脱出阴道口外,摩擦损伤,最易继发下列何证
维生素C中特殊杂质是维生素E中的特殊杂质是
《国家中长期教育改革和发展规划纲要(2010--2020年)》确立了我国教育发展的战略性目标是()。
从十一届三中全会到20世80年代中期,在邓小平的领导下,中国共产党和中国政府创造性地发展了以毛泽东为代表的党的第一代领导集体的设想,提出并全面阐述了“一国两制”的战略构想,其核心目的是()。
(陕西2008—15)某商店规定每4个空啤酒瓶可以换一瓶啤酒,小明家买了24瓶啤酒,他家前后最多能喝多少瓶啤酒?()
(2004年)设A是3阶方阵,将A的第1列与第2列交换得B,再把B的第2列加到第3列得C,则满足AQ=C的可逆矩阵Q为【】
在表设计器中创建的索引都存放在:
两个或两个以上的模块之间关联的紧密程度称为()。
最新回复
(
0
)