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

阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。 【说明】为了减少直接插入排序关键字的

阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。

【说明】

为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置。(假设R[]中的元素互不相同)

[算法]

1.变量声明

X: Data Type

i,j,low, high,mid,r:0..n

2.每循环一次插入一个R[i]

循环:i以1为步长,从2到n,反复执行。

(1)准备

X←R[i];(1); high←i-1;

(2)找插入位置

循环:当(2)时,反复执行。

(3)

若X.key<R[mid].key

则high←mid-1;

否则 (4)

(3)后移

循环:j以-1为步长,从(5),反复执行。

R[j+1]←R[j]

(4)插入

R[low]←X

3.算法结束

查看答案
更多“阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。 【说明】为了减少直接插入排序关键字的”相关的问题

第1题

阅读以下应用说明以及Visual Basic程序代码,将应填入(n)。【应用说明】 某电视台拟开发应用程序来显

阅读以下应用说明以及Visual Basic程序代码,将应填入(n)。

【应用说明】

某电视台拟开发应用程序来显示戏曲大赛中1~4号四位选手决赛的现场投票情况。该程序从现场观众中(不超过2000人)每0.5秒收集一次对这四位选手的支持票数,并在屏幕上动态显示这四位选手的票柱(以高度反映票数)与累计得票数,如图2-3所示。投票过程限时30秒,每名观众最多为1名选手投票。投票结束后系统通过比较各位选手的累计得票数,显示决赛结果:“*号胜出”(如有单个冠军)或“继续进行PK”(如有多人获得相同的最高票数)。

在开发该程序的过程中创建的主要控件及其初始属性值说明如下:

该程序中设置公共变量T动态记录投票时间。四个形状ShpM(1 to 4)动态增长的底线固定。

【Visual Basic程序代码】

Dim T As Integer '声明全局变量

Private Sub Form_Load()

For i=1 To 4

ShpM(i).Top=2000 : ShpM(i).Height=0 '初始票柱高度为0

TxtM(i).Text=0

Next i

Timl.Enabled=False : Timl.Interval=500 : T=0

End Sub

Private Sub CmdStart Click()

Timl.Enabled=True '开始投票

CmdStart.Enabled=False

End Sub

Private Sub Timl Timer()

Dim n(1 To 4) As Integer 'n(1 to 4)为每次收集的票数

Dim i As Integer,j As Integer

Dim G As Integer 'G用于计算最高票数

Dim ng As Integer 'ng用于计算冠军个数

For i=1 To 4

n(i)=... '收集i号选手的票数,此处省略

TxtM(i).Text=TxtM(i).Text+n(i) '累计票(VB能进行自动转换)

ShpM(i).Top=ShpM(i).Top-n(i)

ShpM(i).Height=ShpM(i).Height+(1) '算出票柱高度

Next i

T=T+1 '计时

If T=60 Then '投票时间到

(2) '停止数据收集处理

ng = 1

G=TxtM(1).Text

For i=2 To 4

If G<TxtM(i).Text Then

G=TxtM(i).Text

ng=(3)

j = i

Else

If G=TxtM(i).Text Then ng=(4) '计算冠军个数

End If

Next i

If ng=1 Then

txtResult. Text=(5) '单个冠军结果

Else

txtResult. Text="继续进行PK"

End If

End If

End Sub

点击查看答案

第2题

阅读以下说明和C语言程序,将应填入(n)。【说明】 某电信公司记录了每个用户的详细通话情况(每次通话

阅读以下说明和C语言程序,将应填入(n)。

【说明】

某电信公司记录了每个用户的详细通话情况(每次通话数据记录在一行),现将某用户某月的通话数据存入一个文本文件dial.txt,其数据格式如下:

拨入或拨出标记通话开始时间通话结束时间对方号码 注1:数据字段以一个空格作为分隔符。

注2:拨入和拨出标记均为小写字母。拨入标记为i,表示其他用户呼叫本机,本机用户不需付费:拨出标记为o,表示本机呼叫其他用户,此时本机用户需要付费。

注3:通话开始和结束时间的格式均为HH:MM:SS。其中HH表示小时,取值00~ 23;MM表示分钟,取值00~59;SS表示秒,取值00~59。从通话开始到结束这段时间称为通话时间,假定每次通话时间以秒为单位,最短为1秒,最长不超过24小时。

注4:跨月的通话记录计入下个月的通话数据文件。

例如“o23:01:1200:12:15…”表示本次通话是本机呼叫其他用户,时间从23时01分12秒至次日的0时12分15秒,通话时间为71分03秒。

下面程序的功能是计算并输出该用户本月电话费(单位:元)。

通话计费规则为:

1.月通话费按每次通话费累加;

2.每次的通话费按通话时间每分钟0.08元计算,不足1分钟时按1分钟计费。

对于每次的拨出通话,程序中先分别计算出通话开始和结束时间相对于当日0点0分0秒的时间长度(以秒为单位),然后算出本次通话时间和通话费。

例如,若输入文件dial.txt的数据如下所示,则输出fee=7.44。

o 14:05:23 14:11:25 82346789

i 15:10:00 16:01:15 13890000000

o 10:53:12 11:07:05 63000123

o 23:01:12 00:12:15 13356789001

【C程序代码】

include<stdio.h>

FILE *fin;

Int main()

{

char str[80];

int h1,h2,m1,m2,s1,s2;

long t_start,t_end,interval;

int c;

double fee=0;

fin=fopen("dial.txt","r");

if (!fin)

return-1;

while (!feof(fin)) {

if (!fgets(str,80,fin)) break;

if ( (1) ) continue;

h1= (str[2] -48) *10+str[3] -48;

m1= (str[5] -48) *10+str[6] -48;

s1= (str[8] -48) *10+str[9] -48;

h2= (str[11] -48) *10+str[12] -48;

m2= (str[14] -48) *10+str[15] -48;

s2=(str[17]-48)*10+str[18]-48;

t_start=h1*60*60+m1*60+s1; /*通话开始时间*/

t_end=h2*60*60+m2.60+s2; /*通话结束时间*/

if( (2) ) /*若通话开始和结束时间跨日*/

interval;(3)-t_start+t_end;

else

interval=t_end-t_start;

c= (4) ; /*计算完整分钟数表示的通话时间*/

if (interval % 60)

(5);

fee+=c*0.08;

}

fclose(fin);

printf("fee=%.2lf\n",fee);

return 0;

}

点击查看答案

第3题

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】 设M叉树采用列表法表示,即每

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【说明】

设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值后跟用“()”括起来的各子树的列表(若有子树的话),各子树的列表间用“,”分隔。例如,如下图所示的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。

本程序根据输入的列表生成一棵M叉树,并由M叉树再输出列表。

【函数】

include

include

define M 3 /*三叉树*/

typedef struct node{

int val;

struct node *subTree[M];

}NODE;

char buf[255], *str=buf;

NODE *d=NULL;

NODE *makeTree() /*由列表生成M叉树*/

{

int k; NODE *s;

s=(1);

s->val=*str++;

for(k=0;k<M;k++)

s->subTree[k]=NULL;

if(*str=='(')

{

k=0;

do{

str++;

s->subTree[k]=(2);

if(*str==')')

{

str++;

break;

}

k=k+1;

}while((3));

}

return s;

}

void walkTree(NODE *t) /*由M叉树输出列表*/

{

int i;

if(t !=NULL)

{

(4);

if(t->subTree[0]==NULL)

return;

putchar('(');

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

{

(5);

if(i !=M-1 && t->subTree[i+1]!=NULL)

putchar(',');

}

putchar(')');

}

}

void main()

{

printf("Enter exp: ");

scanf("%s",str);

d=makeTree();

walkTree(d);

putchar('\n');

}

点击查看答案

第4题

阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【函数1.1说明】 本程序可以打印

阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【函数1.1说明】

本程序可以打印出如下图形(菱形):

*

***

*****

*******

*****

***

*

【函数2.1】

main()

{

int i,j,k;

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

{

for(j=0;j<=2-i;j++)

printf(" ");

for((1))

printf("*");

printf("\n");

}

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

{

for((2))

printf(" ");

for(k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

}

【函数2.2说明】

通过本程序,可以从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“CsaiWgm”中保存,输入的字符串以“!”结束。

【函数2.2】

include "stdio.h"

main()

{

FILE *fp;

char str[100],filename[10];

int i=0;

if((fp=fopen("CsaiWgm","w"))==NULL)

{

printf("cannot open the file\n");

exit(0);

}

printf("please input a string:\n");

gets(str);

while((3))

{

if(str[i]>='a'&&str[i]<='z')

str[i]=(4);

fputc(str[i],fp);

(5);

}

fclose(fp);

fp=fopen("CsaiWgm","r");

fgets(str,stden(str)+1,fp);

printf("%s\n",str);

fclose(fp);

}

点击查看答案

第5题

阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。【说明】 有数组A(4,4),把1到16个整数分别

阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。

【说明】

有数组A(4,4),把1到16个整数分别按顺序放入A(1,1),…,A(1,4),A(2,1),…,A(2,4),A(3,1),…,A(3,4),A(4,1),…,A(4,4)中,下面的流程图用来获取数据并求出两条对角线元素之积。

【流程图】

点击查看答案

第6题

函数fib1、fib2求得菲波那契数列第n项(n>40)的速度并不相同,请指出速度慢的函数名,并简要说明原因

点击查看答案

第7题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 【程序2.1说明】 已知一个排好序

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【程序2.1说明】

已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。

【程序2.1】

include <stdioh>

define N 100

void main()

{

float a[N+l],x;

int i,p;

printf("输入已经排好序的数列: ");

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

scanf(%f",&a[i]);

printf("输入要插入的数:");

scanf("%f",&x);

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

if(x<a[i])

{

(1)

break;

}

for(i=N-1; i>=p; i--)

(2)

(3)

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

prinff("%f\t",a[i]);

}

【程序2.2说明】

本程序用变量count统计文件中字符的个数。

【程序2.2】

include <stdio.h>

include <stdlib.h>

void main()

{

FILE *fp;

long count=0;

if((fp=fopen("letter.txt","r"))==NULL)

{

printf("can not open file\n");

exit(0);

}

while(!feof(fp))

{

(4)

count++;

}

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

(5)

}

点击查看答案

第8题

阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 在窗体

阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

在窗体上画一个名称为Combo1的组合框,画两个名称分别Labe11、Labe12及Caption属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键 (ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Labe12中给出提示“已成功添加输入项”;如果存在,则在Labe12中给出提示“输入项已在组合框中”。

【程序】

Private Sub Combo1 (1) (KeyAscii As Integer)

If KeyAscii=(2) Then

For i=0 To (3)

If Combo1. Text=(4) Then

Labe12. Caption ="输入项已在组合框中"

Exit Sub

End If

Next i

Label2. Caption ="已成功添加输入项"

Combo1. (5) Combo1.Text

End If

End Sub

点击查看答案

第9题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 编写程序,对于从键盘输入

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

编写程序,对于从键盘输入的3个实数a、b、c,计算实系数一元二次方程的根并输出所求的根。

【函数】

include<sldio.h>

include<sldlib.h>

include<math.h>

Main()

{

float a,b,c,delta,x1,x2;

printf("Enter a,b,c");

scanf("%f%f%f",&a,&b,&c));

if((1))

if((2))

printf("Input error!\n");

else

printf("The single root is%f\n",(3));

else

{

delta=b*b-4*a*c;

if((4))

{

x1=(-b+sqrt(delta))/(2*a);

x2=(-b-sqrt(delta))/(2*a);

printf("x1=%8.2f\nx2=%8.2f\n",x1,x2,);

}

else if(delta==0)

printf("x1=x2=%8.2f\n",(5);

else

{

Printf("z2=%8.2f+%8.2f*i\n",-b/(2*a),sqrt(-delta)/)(2*abs(a)));

Printf("z2=%8.2f-%8.2f*i\n",-b/(2*a),sqrt(-delta)/(2*abs(a)));

}

}

}

点击查看答案

第10题

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。【说明】 下面程序完成从键盘读入一个字

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。

【说明】

下面程序完成从键盘读入一个字符串,然后采用parseInt方法将其转换为一个相应的整数。

import java.io.*;

public class testThrows{

public static (1) readString() (2) IOException{

int ch;

String r="";

boolean done=false;

while((3)){

ch=System.in.read();

if(ch<0 || ch=0xd) //处理回车符中第一个符号

done=true;

else

r=r+(char)ch;

}

return r;

}

public static void main(Stling args[]){

String str;

(4) {

str=readString();

} (5) (IOException e){

System.out.println("error");

return;

}

System.out.println("input integer: "+Integer.parselnt(str));

}

}

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

1. 搜题次数扣减规则:

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

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

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

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

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

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

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

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

上学吧找答案