题目
【题目描述】
试题四 (共 15 分 )
阅读以下说明和C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
【 说明】】
某旅游服务应用程序运行时,根据输入的两个城市名查找其间的距离。各城市间的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。
在程序中,城市名用一维全局数组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中找到这两个城市之间的距离。 程序中定义的函数FindCityInSortedArray和GetCity说明如下:
(1)函数 FindCityInSortedArray 的功能是用二分查找法在全局数组 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[city1][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 = (lh + rh) / 2;
cmp = strcmp( (4) ); /* 比较两个城市名是否相同 */
if (cmp == 0) return (5) ; /* 两个城市名相同 */
if (cmp < 0) { rh = mid - 1; }
else { lh = mid + 1; }
}
return (-1); /* 城市名不存在时返回-1 */
}
【我提交的答案】:1)!cityName 2)index; 3)lh<=rh; 4)citTable[mid],cityname 5)mid
【参考答案分析】:
试题四分析
本题考查C语言程序设计基本能力。要求考生根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成题目。
本题涉及一维和二维数组操作,以及数组上的查找算法。先考察main()函数,理清程序整体结构,在该函数中提示并输入两个城市名,然后输出这两个城市之间的距离。
函数GetCity的功能是读入城市名,调用函数FindCityInSortedArray来获取城市所对应的下标值index。如果该城市名不存在,则提示用户重新输入。
函数FindCityInSortedArray的功能是用二分查找法在全局数组cityTable中查找城市名所对应的下标值。
最后用该下标在kmTable中找到这两个城市之间的距离。
先考查空(1),因为GetCity在while循环中执行完语句index=FindCityInSorted-Array(cityName)之后,获得城市对应的下标值index而有效的下标值就是城市名称在数组中的位置下标,所以index>=0时说明下标有效,跳出循环。
然后考查空(2),因为程序首先要获得两个城市名称所对应的下标,所以通过GetCity读入城市名称并获取所对应的下标,然后返回所对应的下标值。此处即为获取到的index。
接下来考查空(3)、(4)和(5),因为函数FindCityInSortedArray的功能是用二分查找法在全局数组cityTable中查找城市名所对应的下标值。在已经排序的数组中进行二分查找,在当前数组区域中,如果下界小于上界,则目标元素和中值进行比较,如果相等则返回下标;如果目标元素小于中值元素,则在前半区域(左分支中)继续查找;如果大于中值元素,则在后半区域(右分支中)继续查找。如果最后没有找到所需查找的目标元素,则返回-1。因此,空(3)处填入lh<=rh以判断下界是否小于上界;(4)处目标元素key和中值元素cityTable[mid],中值元素的也可以用*(cityTable+mid)表示;(5)处为比较成功时返回所在元素的下标,此处为mid。
参考答案
(1)index>=0,或等价形式
(2)index
(3)Ih<=rh,或等价形式
(4)key, cityTable[mid]或key,*(cityTable+mid)
(5)mid
【我的疑问】(如下,请求专家帮助解答)
老师你好,请问空四中题目中并没有定义变量key,这里需要的应该是输入的城市名,那么考试能用key吗?
第1题
【题目描述】
● 表达式“a*(b – c)+d”的后缀式为 (32) 。
(32)
A. abcd*-+
B. ab*c-d+
C. ab-cd+*
D. abc-*d+
【我提交的答案】: |
【参考答案与解析】: 正确答案:D |
【我的疑问】(如下,请求专家帮助解答)
则么样排
第2题
【题目描述】
● 若内存按字节编址,用存储容量为 32K×8 比特的存储器芯片构成地址编号A0000H 至DFFFFH 的内存空间,则至少需要 (7) 片。
(7)
A. 4
B. 6
C. 8
D. 10
【我提交的答案】: A |
【参考答案与解析】: 正确答案:C |
【我的疑问】(如下,请求专家帮助解答)
第3题
【题目描述】
● 某有限状态自动机的状态图如下图所示(状态 0是初态,状态2是终态),则该自动机不能识别 (30) 。
(30)
A. abab
B. aabb
C. bbaa
D. bbab
【我提交的答案】: B |
【参考答案与解析】: 正确答案:A |
【我的疑问】(如下,请求专家帮助解答)
第5题
【题目描述】
试题八
【我提交的答案】:
【参考答案分析】:
【我的疑问】(如下,请求专家帮助解答)
老师您好,请问第二空怎么理解
第6题
【题目描述】
● 根据 《软件文档管理指南》 (GB/T 16680-1996), 以下关于文档评审的叙述,(12)是不正确的。
(12)
A. 需求评审进一步确认开发者和设计者已了解用户要求什么及用户从开发者一方了解某些限制和约束
B. 在概要设计评审过程中主要详细评审每个系统组成部分的基本设计方法和测试计划,系统规格说明应根据概要设计评审的结果加以修改
C. 设计评审产生的最终文档规定系统和程序将如何设计开发和测试以满足一致同意的需求规格说明书
D. 详细设计评审主要评审计算机程序、程序单元测试计划和集成测试计划
【我提交的答案】: B |
【参考答案与解析】: 正确答案:D |
【我的疑问】(如下,请求专家帮助解答)
2010年上半年(5月份)软考《系统集成项目管理工程师》上午试卷第1大题第12小题如何解答?
第7题
【题目描述】
【问题 3】(4分)
各方准备对网络系统进行竣工验收,请根据你的工程经验,回答下述问题。
(1)验收测试的组织者是:()。
A 项目经理
B 总监理工程师
C 评审专家
D 建设单位主管领导
(2)网络系统验收的步骤如下,请给出正确的顺序 。
(a) 总监理工程师组织专家对验收标准进行会审,提出评审意见,和业主方及承建方进行探讨,如有必要,提出修改意见;
(b) 由业主方、承建方和监理方共同参与验收准备,按照验收方案对系统进行验收工作;
(c) 监理工程师根据网络系统竣工的准备情况,确定是否满足系统验收条件;
(d) 承建方在合同规定时间内提出验收标准;
(e) 总监理工程师确认验收工作是否完成;
(f) 监理工程师按照合同及相关文件对验收标准进行评审;
(g) 监理方向业主方提交最终评审意见,业主方根据评审意见确认验收标准;
【我提交的答案】:
【参考答案分析】:【问题3】
(1)B
(2)(d)-(f)- (a)-(g)-(c)-(b)-(e)
【我的疑问】(如下,请求专家帮助解答)
(1)D
(2)(d)-(f)- (a)-(g)-(c)-(b)-(e)
第8题
【题目描述】
【我提交的答案】: A |
【参考答案与解析】: 正确答案:C |
【我的疑问】(如下,请求专家帮助解答)
为什么
第9题
【题目描述】
【我提交的答案】: |
【参考答案与解析】: 正确答案:C |
【我的疑问】(如下,请求专家帮助解答)
怎么看图的
第10题
【题目描述】
● 在数据库设计中,E-R 模型常用于 (57) 阶段。
(57)
A. 需求分析
B. 概念设计
C. 逻辑设计
D. 物理设计
【我提交的答案】: D |
【参考答案与解析】: 正确答案:B |
第11题
【题目描述】
● 软件测试方法可分为静态测试和动态测试两大类,人工检测 (53) 。
(53)
A. 属于静态测试和动态测试
B. 属于静态测试
C. 属于动态测试
D. 既不属于静态测试也不属于动态测试
【我提交的答案】: C |
【参考答案与解析】: 正确答案:B |
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!