重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

用函数编程实现在一个按升序排序的数组中查找x应插入...

用函数编程实现在一个按升序排序的数组中查找x应插入的位置,将x插入数组中,使数组元素仍按升序排列。 提示:插入(Insertion)是数组的基本操作之一。插入法排序算法的关键在于要找到正确的插入位置,然后依次移动插入位置及其后的所有元素,腾出这个位置放入待插入的元素。插入排序的原理如图所示:用函数编程实现在一个按升序排序的数组中查找x应插入...用函数编程实现在一个按升序排序的数组中查找x在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include<stdio.h> #define N 20 /* 插入前数组最大元素个数 */ void Insert(int a[], int n, int x); int main() { int a[N+1]; /* 定义数组长度为插入前的数组元素个数加1 */ int x, i, n; printf("Input array size:\n"); scanf("%d", &n); /* 输入插入前数组元素个数 */ printf("Input array:\n"); for (i=0; i<n; i++) { scanf("%d", &a[i]); * 输入插入前已按升序排序的数组元素 } printf("input x:\n"); &x); 输入待插入的元素x insert(a, n, x); 插入元素x到已排序数组中 printf("after insert %d:\n", for (i="0;" printf("%4d", a[i]); 输出插入x后的数组元素 return 0; 函数功能:将x插入到一个已按升序排序的数组中 void insert(int a[], int x) i="0," pos; while (______________) 查找待插入位置 i++; pos="i;" 记录元素x应插入的数组下标位置pos _______; i--) 从尾部开始移动pos及其后所有的元素 _____________; 向后复制数组元素 a[pos]="x;" 插入元素x到位置pos> A、第30行: i < n && x > a[i] 第35行: i>= pos 第37行: a[i+1] = a[i]

B、第30行: i <= n && x> a[i] 第35行: i>= 0 第37行: a[i] = a[i+1]

C、第30行: i < n || x > a[i] 第35行: i>= 1 第37行: a[i+1] = a[i]

D、第30行: i < n && x >= a[i] 第35行: i> pos 第37行: a[i] = a[i+1]

暂无答案
更多“用函数编程实现在一个按升序排序的数组中查找x应插入...”相关的问题

第1题

在升序排序的数组中插入一个元素
点击查看答案

第2题

请补充main函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组bb[M]={10 20 30 40 50 60 70 80 85 95} 中插入75,结果为 bb[M]={10 20 30 40 50 60 70 75 80 85 95} 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: include<stdlib.h> include<stdio.h> define M 10 void main { int i,j; int n; int bb[M+1]={10,20,30,40,50,60,70,80,85,95}; system("CLS"); printf("\nlnput n n"); scanf("%d",&n); printf("\nn=%d",n); printf("\n***original list***\n"); for(i=0;i<M;i++) printf("%4d",bb[i]); for(i=0;i<M;i++) { if(n<=bb[i]) { for(j==M;【1】 ;j--) 【2】 ; bb[j]=n; 【3】 ; } } if(i==M) bb[i]=n: printf("\n****new list****\n"); for(i=0;i<M+1;i++) printf("%4d",bb[i]); }

点击查看答案

第3题

请补充main函数,该函数的功能是:把一个整数插入到一个已经按从小到大排序的数组中。插入后,数组仍然有序。

例如,在数组bb[N]={12,23,31,44,51,63,71,79,85,95}中插入93,结果为:

bb[N]{11,21,31,41,51,61,7l,79,8l,93,95}

注意:部分源程序给出如下.

请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。

试题程序:

include<std/o. h>

define N 10

main()

{

int i,j;

int n;

int bb IN+l] ={ t2,23, 31, 44, 51, 63, 71,

79,85,95};

clrscr ();

printf("\nInput n \n");

scanf ("%d", &n);

printf ("\nn=%d ",n);

printf("\n*** original list ***In");

for (i=0; i<N; i++)

printf ("%4d ",bb [ii );

for (i=0; i<N; i++)

{

if (n<=bb [i ] )

{

for(j=N;【 】;j--)

【 】;

bb [j] =n;

【 】;

}

if (i=N)

bb[i]=n;

printf("\n***** new list ******In");

for (i=0;i<N+l; i++)

printf ("%4d ",bb [i]);

}

点击查看答案

第4题

用字符数组作函数参数编程,利用一个数组实现字符串(允...

用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下: (1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。 调用Inverse()函数将字符串逆序存放,然后在主函数中输出逆序后的字符串。 (2)在子函数Inverse()中实现字符串的逆序存放。函数原型为: void Inverse(char str[]); 在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #include <string.h> #define N 80 void Inverse(char str[]); int main() { char a[N]; printf("Input a string:\n"); ________; Inverse(a); printf("Inversed results:\n"); ________; return 0; } void Inverse(char str[]) { int len, i, j; char temp; len = __________; for (___________; i <j; i++, j--) { temp="str[i];" str[i]="str[j];" str[j]="temp;" }> A、第9行: gets(a) 第13行: puts(a) 第22行: strlen(str) 第24行: i=0, j=len-1

B、第9行: get(a) 第13行: put(a) 第22行: strlen(str) 第24行: i=1, j=len

C、第9行: gets(a) 第13行: puts(a) 第22行: sizeof(str) 第24行: i=0, j=len

D、第9行: getchar(a) 第13行: putchar(a) 第22行: sizeof(str) 第24行: i=1, j=len-1

点击查看答案

第5题

数组A和B,各有20个数据,它们均已按升序排序。现要求将这两个数组合并为一个数组C,且要求其数据也按升序排序,试编程实现。
点击查看答案

第6题

下面程序用“冒泡”法将数组a中的10个整数按升序排列,算法是:从数组的第1个元素开始,依次将相邻的两个数相比较(第1个数与第2个数,第2个数与第3个数……如此重复),若前面的数较大,则这两个数交换位置。这样执行一遍后,最后一个数已经是数组中最大的数。然后将数组的前n-1个数重复上述过程。如此继续,可将数组排序,请将程序补充完整。

Option Base 1

Private Sub Command1_Click()

Dim a()

a=Array(678,45,324,528,439,387,87,875,273,823)

Fori=【 】

Forj= 【 】

If a(j)【 】a(j+1)Then

a1=a(j)

a(j)=a(j+1)

a(j+1)=al

End lf

Nextj

Next i

For i=1 To 10

Print a(i)

Next i

End Sub

点击查看答案

第7题

下列程序的功能是:用Array函数建立一个含有8个元素的数组,然后查找并在文本框Text l中输出该数组中各元素的最小值。请填空。

Option Base 1

Private Sub Command1_Click()

Dim arr1()

Dim Min As Integer,i As Integer

Arr1=Array(12,435,76,-24,78,54,866,43)

Min=______

For i=2 To 8

If arr1(i)<Min Then______

Next i

Text1=Min

End Sub

点击查看答案

第8题

下面程序的功能是:用Array函数建立一个含有8个元素的数组,然后查找并在文本框Text1中输出该数组中各元素的最小值。请依据上述功能将程序补充完整。

Option Base 1

Private Sub Command1_Click()

Dim arr1()

Dim Min As Integer,i As Integer

arr1=Array(12,435,76,-24,78,54,866,43)

Min=______

For i=2 To 8

If arr l(i)<Min Then______

Next i

Text1=Min

End Sub

点击查看答案

第9题

用 C#实现以下功能

a 产生一个 int 数组,长度为 100,并向其中随机插入 1-100,并且不能重复。

b 对上面生成的数组排序,需要支持升序、降序两种顺序

点击查看答案

第10题

请完成函数fun(),它的功能是:用选择法对数组中n个元素按从大到小的顺序进行排序。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在下划线上填入所需的内容。

include<stdio.h>

define N 20

void fun(int a[],int n)

{

int i,j,t,p;

for(j=0;j<n-1; 1 )

{ p=j;

for(i=j;i<n;i++)

if(a[i] 2 a[p]

p=i;

t=a[p];

a[p]=a[j];

a[ 3 ]=t;

main()

{int a[N]={11,32,-5,2,14},i,m=5;

for(i=0;i<m;i++)

printf("%d\n",a[i});

fun(a,m);

for(i=0;i<m;i++)

printf("%d"a[i]);

}

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案