大学职业搜题刷题APP
下载APP
首页
课程
题库模板
Word题库模板
Excel题库模板
PDF题库模板
医考护考模板
答案在末尾模板
答案分章节末尾模板
题库创建教程
创建题库
登录
logo - 刷刷题
创建自己的小题库
搜索
【简答题】

[说明]
某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。
                    表4-1

Beijing Chengdu Chongqing Dalian Guiyang Lanzhou Nanjing Sanva
Beijing 1697 2695 937 1784 1356 926 2543
Chengdu 1697 313 1 840 533 940 1409 1505
Chongqing 2695 313 1734 343 1117 1206 1306
Dalian 937 1840 1734 1995 1594 818 2602
Guiyang 1784 533 343 1995 lll3 1346 976
Lanzhou 1356 940 1117 1594 lll3 1654 2075
Nanjing 926 1409 1206 818 1346 1654 1806
Sanya 2543 1505 1306 2602 976 2075 1806

在程序中,城市名用一维全局数组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 */

表4-1(1)--()

[说明]
某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表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 */

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
参考答案:
举一反三

【单选题】Java 应用程序主类中的 main 方法是?

A.
public void main(String args [])
B.
static void main(String args [])
C.
public static void Main(String args [])
D.
public static void main(String args [])

【单选题】Web应用程序的发布不包括()

A.
HTTP
B.
Web部署
C.
Web Deploy包
D.
文件系统
相关题目:
【单选题】Java 应用程序主类中的 main 方法是?
A.
public void main(String args [])
B.
static void main(String args [])
C.
public static void Main(String args [])
D.
public static void main(String args [])
【单选题】Web应用程序的发布不包括()
A.
HTTP
B.
Web部署
C.
Web Deploy包
D.
文件系统
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
AI解析
重新生成
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭