网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和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 */

}


参考答案

更多 “ 阅读以下说明和C程序,将填入 (n) 处的字句在对应栏内。[说明]某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。表4-1在程序中,城市名用一维全局数组cityTable存储,城市之间的距离矩阵用二维全局数组kmTable表示,并用相应的值对这两个数组进行初始化。define NCities 8 /*城市个数*/define TRUE 1static 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 */} ” 相关考题
考题 ●试题五阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】在窗体上画一个名称为Combo1的组合框,画两个名称分别Label1、Label2及Caption属性分别为"城市名称"和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键(ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Label2中给出提示"已成功添加输入项";如果存在,则在Label2中给出提示"输入项已在组合框中"。【程序】Private Sub Combo1_ (1) (KeyAscii As Integer)If KeyAscii= (2) ThenFor i=0 To (3)If Combo1.Text= (4) ThenLabel2.Caption="输入项已在组合框中"Exit SubEnd IfNext iLabel2.Caption="已成功添加输入项"Combo1. (5) Combo1.TextEnd IfEnd Sub

考题 阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。【说明】在窗体上画一个名称为Combo1的组合框,画两个名称分别Labe11、Labe12及Caption属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键 (ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Labe12中给出提示“已成功添加输入项”;如果存在,则在Labe12中给出提示“输入项已在组合框中”。【程序】Private Sub Combo1 (1) (KeyAscii As Integer)If KeyAscii=(2) ThenFor i=0 To (3)If Combo1. Text=(4) ThenLabe12. Caption ="输入项已在组合框中"Exit SubEnd IfNext iLabel2. Caption ="已成功添加输入项"Combo1. (5) Combo1.TextEnd IfEnd Sub

考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。【说明】已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:

考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]设学生某次考试的成绩按学号顺序逐行存放于某文件中,文件以单行句点“.”为结束符。下面的流程图读取该文件,统计出全部成绩中的最高分max和最低分min。

考题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。【函数】int fun(char *c,int status){if((1)=='')return 1;else{if((2)(3)(4))(5)='A'-'a';return 0;}}main(){int flag=1;char ch;printf("请输入一字符串,用点号结束输入!\n");do {ch=getchar();flag=fun(ch,flag);putchar(ch);}while(ch!='.');printf("\n");}

考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。