题目
A.义乌
B.衡阳
C.沙市
D.长沙
第2题
第6题
该山横跨衡阳、衡东、湘潭等8个县(市).南起衡阳回雁峰.北至长沙岳麓l.逶迤盘旋400千米()
第7题
①从最西端城市出发,单向从西向东途经若干城市到达最东端城市,再单向从东向西飞回起点(可途经若干城市).
②除起点城市外,任何城市只能访问1次.
算法设计:对于给定的航空图,试设计一个算法,找出一条满足要求的最佳航空旅行路线.
数据输入:由文件input.txt提供输入数据.文件第1行有两个正整数N和V,N表示城市数(N<100),V表示直飞航线数.接下来的N行中的每行是一个城市名,可乘飞机访问这些城市.城市名出现的顺序是从西向东.也就是说,设i、j是城市表列中城市出现的顺序,当i>j时,表示城市i在城市j的东边,而且不会有两个城市在同一条经线上.城市名是一个长度不超过15的字符串,串中的字符可以是字母或阿拉伯数字,如AGR34或BEL4.
再接下来的V行中,每行有2个城市名,中间用空格隔开,如city1city2表示city1到city2有一条直通航线,从city2到city1也有一条直通航线.
结果输出:将最佳航空旅行路线输出到文件output.txt.文件第1行是旅行路线中所访问的城市总数M.接下来的M+1行是旅行路线的城市名,每行写一个城市名.首先是起点城市名,然后按访问顺序列出其他城市名.注意,最后一行(终点城市)的城市名必然是起点城市名.如果问题无解,则输出“NoSolution!”.
第9题
A.List1.Removeltem List1.Text
B.List1.R(moveItem List1.Clear
C.List1.R(、moveItem List1.ListCount
D.List1.Rt-moveItem List1.Listlndex
第10题
阅读以下说明和C程序,将填入 (n) 处的字句在对应栏内。
[说明]
某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。
表4-1
在程序中,城市名用一维全局数组cityTable存储,城市之间的距离矩阵用二维全局数组kmTable表示,并用相应的值对这两个数组进行初始化。
define NCities 8 /*城市个数*/
define TRUE 1
static char * cityTable[NCities]={ /*城市名按字典序升序排列*/
"Beijing",
…… /*其他城市名略去*/
"Sanya",
};
StatiC int kmTable[NCities][NCities]={
{0, 1697, 2695, 937, 1784, 1356, 926, 2543},
{1697, 0, 313, 1840, 533, 940, 1409,1505},
…… /*剩余元素的初始值略去*/
};
程序执行时,首先按提示输入两个城市名,然后在cityTable中查找与城市名对应的下标,最后用该下标在kmTable中找到这两个城市之间的距离。
程序中定义的函数FindCitylnSortedArray和GetCity说明如下:
(1)函数FindCitylnSortedArray的功能是用二分查找法在全局数组cityTable中查找城市名所对应的下标值。
(2)函数GetCity的功能是读入城市名,调用函数FindCityInSortedArray来获取城市所对应的下标值。如果该城市名不存在,则提示用户重新输入。
[C程序]
int main() {
int city1,city2;
city1=GetCity("输入第1个城市名:");
city2=GetCity("输入第2个城市名:");
printf("%S和%s之间的距离为:%d km.\n”,cityTable[city1],
cityTable[city2],
kmTable[cityl][city2]);
return 0;
}
StatiC int GetCity(char * prompt) {
char * CityName;
int index;
cityName=(char *)malloc(20*sizeof(char));
while(TRUE){
printf("%S",prompt);
gets(cityName); /*获取输入字符串*/
index=FindCityInSortedArray(cityName);
if((1) ________ )break;
printf("城市名不存在,请重新输入。\n");
}
free(cityName);
return (2)__________;
}
Static int FindCityInSortedArray(char * key) {
int lh, rh, mid, cmp;
lh=0;
rh=NCities-1;
while((3)________){
mid=(1h+rh)/2;
cmp=strcmp((4)______ ); /*比较两个城市名是否相同*/
if(cmp==0)return (5)_______; /*两个城市名相同*/
if(cmp<0){rh=mid-1;)
else {lh=mid+1;)
}
return (-1); /*城市名不存在时返回-1 */
}
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!