题目
第1题
第2题
第3题
第4题
算法设计:对于给定的游艇出租站i到游艇出租站j之间的租金为r(i,j)(1≤i
数据输入:由文件input.txt提供输入数据.文件的第1行中有1个正整数n(n≤200),表示有n个游艇出租站.接下来的n-1行是r(i,j)(1≤i<j≤n).
结果输出:将计算出的从游艇出租站I到游艇出租站n所法的最少租金输出到文件output.txt.
第5题
算法设计:对于给定的n个元件,改计一个优先队列式分支限界法,计算最佳布线方案,使布线费用达到最小.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n(1≤n≤20).接下来的n-1行,每行n-1个数,表示元件i和元件j之间连线数(1≤i<j≤20).
结果输出:将计算的最小布线费川以及相应的最佳布线方案输出到文件output.txt.
第6题
问题描述:设磁盘上有n个文件每个文件占用磁盘上的1个磁道.这n个文件的检索概率分别是且磁头从当前磁道移到被检信息磁道所需的时间可用这两个磁道之间的径向距离来度量.如果文件fi存放在第i(1≤i≤n)道上,则检索这n个文件的期望时间是.式中,d(i,j)是第i道与第j道之间的径向距离|i-j|.
磁盘文件的最优存储问题要求确定这n个文件在磁盘上的存储位置,使期望检索时间达到最小.试设计一个解此问题的算法,并分析算法的正确性与计算复杂性.
算法设计:对于给定的文件检索概率,计算磁盘文件的最优存储方案.
数据输入:由文件input.txt给出输入数据.第1行是正整数n,表示文件个数.第2行有n个正整数a,表示文件的检索概率.实际上第k个文件的检索概率应为
结果输出:将计算的最小期望检索时间输出到文件output.txt.
第7题
下列给定的程序中,函数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;j++)
/*************found**************/
{p=j
for(i=j;i<n;i++)
if(a[i]<a[p])
/*************found**************/
p=j;
t=a[p]; a[p]=a[j]; a[j]=t;
}
}
main()
{int a[N]={9.6,8,3,-1},i,m=5;
printf("排序前的数据: ");
for(i=0;i<m;i++) printf("%d",a[i]);
printf("\n");
fun(a,m);
printf("排序后的顺序: ");
for(i=0;i<m;i++) printf("%d",a[i]);
printf("\n");
}
第8题
下列给定程序中,函数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; j++){
/***********found***********/
p=j
for(i=j; i<n; i++)
if(a[i]<a[p])
/***********found***********/
p=j;
t=a[P];
a[p]=a[j];
a[j]=t;
}
}
msin()
{
int a [N]=(9, 6, 8, 3, -1), i, m=5;
printf("排序前的数据:”);
for(i=0; i<m; i++)
printf("%d", a[i]);
printf("\n");
fun(a, m);
printf("排序后的数据:");
for(i=0; i<m; i++)
printf("%d", a[i]);
printf("\n");
}
第9题
下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
include <stdlib.h>
fun(int n, int *a)
{ int i,j,p,t;
for (j=0;j<n-1;j++)
{ P=j;
/***************found*******************/
for(i=j+l;i<n-1;i++)
if (a[p]>a[i])
/***************found*******************/
t=i;
if (p!=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
putarr(iht n,int *z)
{int i;
for (i=l;i<=n;i++,z++)
{ printf("%4d",*z);
if (!(i%10)) printf("\n");
} printf ("\n");
}
main ()
{int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
clrscr();
printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);
fun(n,aa);
printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);
}
第10题
下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdio.h>
define N 20
void fun(int a[ ],int n)
{
int i,j,t,p;
/*************found*************/
for(j=0;j<n-1;j++) ;
{
p=j;
for(i=j;i<n;i++)
if(a[i)>a[p])
p=i;
t=a[p];
a[p]=a[i];
/*************found**************/
a[p]=t;
}
}
main()
{
int a[N]={11,32,-5,2,14},i,m=5;
printf(“排序前的数据:”);
for(i=0;i<m;i++)
printf(“%d”,a[i]);
printf(“\n”);
fun(a,m);
printf(“排序后的顺序:”);
for(i=0;i<m;i++)
printf(“%d”,a[i]);
printf(“\n”);
}
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!