首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。 例如,有10个
给定程序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。 例如,有10个
admin
2018-03-28
26
问题
给定程序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。
例如,有10个正整数如下:
初始数列为:6 5 7 23 18 5 8 21 45 38
第1组数为:6 5 7 中值为:6
替换后的数列为:
6 6 7
23 18 5 8 21 45 38
第2组数为:5 7 23 中值为:7
替换后的数列为:6
6 7 23
18 5 8 2l 45 38
第3组数为:7 23 18 中值为:18
替换后的数列为:6 6
7 18 18
5 8 2l 45 38
第4组数为:23 18 5中值为:18
替换后的数列为:6 6 7 18 18 5 8 21 45 38
第5组数为:18 5 8 中值为:8
替换后的数列为:6 6 7 18
18 8 8
21 45 38
第6组数为:5 8 21 中值为:8
替换后的数列为:6 6 7 18 18
8 8 21
45 38
第7组数为:8 21 45 中值为:21
替换后的数列为:6 6 7 18 18 8
8 21 45
38
第8组数为:21 45 38 中值为:38
替换后的数列为:6 6 7 18 18 8 8
21 38 38
最终结果为:6 6 7 18 18 8 8 21 38 38
请改正程序中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<Stdio.h>
#define N 10
int findmid(int a,int b,int c)
{int t;
t=(a>b)? (b>c?b:(a>c?c:
a)):((a>c)?a:((b>c)?c:b));
/*********found*********/
return b;
}
void fun(int x[])
{int i,a,b,c,t[N];
/*********found*********/
for(i=0;i<N;i++)t
=x
for(i=0;i<N一2;i++)
{a=t
;b=t[i+1];c=t[i+2];
/*********found*********/
t[i+1]=findm~d(a,b,c);
}
}
main()
{int i,x[N]={6,5,7,23,18,5,8,21,45,38);
for(i=0;i<N;i++)
printf("%d",x
);
printf("\n");
fun(x);
for(i=0;i<N;i++)
printf("%d",x
);
printf("\n");
}
选项
答案
(1)retum t; (2)for(i.0;i<N;i++)t[i]=x[i]; (3)x[i+1]=findmid(a,b,c);
解析
(1)函数findmid的功能是找到a、b、c三个数中的中间数,并存放在变量t中,因此应返回t。
(2)语法错误,句末缺少分号。
(3)本程序是对数组x进行操作,数组t只是用来暂时存放数组x中的元素,因此此处应为x[i+1] =findmid(a,b,c)。
转载请注明原文地址:https://kaotiyun.com/show/zDxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列程序输出结果是()。#includemain(){chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’\0’};inti,j;i=sizeof(a);
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
以下程序的输出结果是【】。main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);}
阅读下面程序,则执行后的输出结果是【】。#include"stdio.h"main(){intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);el
以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【】;s=s+t;}print
下列程序的运行结果为【】。#include<stdio.h>main(){staticcharstr1[40];charstr2140];strcpy(str2,"China")
有以下程序#inculde#deFineSUB(a)(a)(a)main(){inta=2,B=3,c=5,d;d=SUB(a+B)*c;printF(”%d\n”,d);}程序运行后的输山结果是
以下程序的功能是进行位运算main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序运行后的输出结果是
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
随机试题
A.风邪B.寒邪C.暑邪D.湿邪E.燥邪具有“凝滞收引”特性的六淫之邪为()
因施工合同引起的诉讼,一般由( )人民法院管辖。
国际多式联运必须使用一张运输单证。()
下列计算式子正确的是()。
《旅游法》第82条规定,旅游者在人身、财产安全遇有危险时,有权请求()进行及时救助。
东汉名医华佗在外科手术中应用的麻醉药是()。
第二次世界大战,苏德战场的转折点是()。
马可.波罗是否真的到过中国,国际学术界一直有争议。我在读过各种资料后认为,他确实来过中国,因为他游记中对元大都和卢沟桥的细致描绘,对刺杀阿合马事件的准确叙述,不可能只凭_________。而对于反对派关于其游记中存在的时间不符及史料无据的质疑,可能的解释是
【B1】【B10】
【1】【4】
最新回复
(
0
)