全国计算机技术与软件专业技术资格(水平)考试2011全真模拟试卷(三)下午试题.docxVIP

  • 5
  • 0
  • 约4.74千字
  • 约 13页
  • 2020-10-29 发布于山东
  • 举报

全国计算机技术与软件专业技术资格(水平)考试2011全真模拟试卷(三)下午试题.docx

全国计算机技术与软件专业技 术资格 ( 水平 ) 考试 2011 全真模拟试卷 ( 三) 下午试题 全国计算机技术与软件专业技术资格 ( 水平 ) 考试 全真模拟试卷 ( 三) 下午试题 ( 考试时间 14∶00~16∶30,共 150 分钟 ) 本试卷共六道试题,满分 75 分。 ●试题一 阅读以下说明和流程图 ( 如图 1 所示 ) ,回答问题 1 至问题 4,将答案写在答卷的对应栏内。 【说明】 本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式 (A- (B*C + D)*E)/(F + G)) 的后缀表示为 ABC*D+E*-FG+ / 为了方便,假定变量名为单个英文字母,运算符只有+、-、 * 、 /( 均为双目运算符,左结合 ) ,并假定所 提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结 束。流程图中使用的符号的意义如下: 数组 IN[] 存储中缀表达式; 数组 POLISH[] 存储其后缀表达式; 数组 S[] 是一个后进先出栈; 函数 PRIOR(CHAR)返回符号 CHAR的优先级,各符号的优先级见表 2: 2 CHAR PRIOR(XHAR) */ 4 +- 3 ( 2 ) 1 【问题 1】 填充流程图中①的判断条件。 【问题 2】 写出子程序 A 的功能,并顺序写出实现该功能的操作 【问题 3】 写出子程序 B 的功能,并顺序写出实现该功能的操作。 【问题 4】 中缀表达式 (A+ B-C*D)*(E -F)/G 经该流程图处理后的输出是什么? 【流程图】 图 1 ●试题二 阅读下列程序和控制流图,将应填入 (n) 的字句写在答题纸的对应栏内。 【程序】 图 2  控制流图 下面是一段求最大值的程序,其中  datalist  是数据表,  n 是 datalist  的长度。 int GetMax(int n  ,int datalist[]){ int k  =0; for(int j  =1; jn ; j ++ ) if(datalist[j]datalist[k]) k= j ; return k  ; } 【控制流图】 【问题 1】 该程序的控制流图中 A~E 分别是什么? 【问题 2】 计算控制流图的 McCabe环路复杂性。 【问题 3】 用基本路径覆盖法给出测试路径。 【问题 4】 为各测试路径设计测试用例。 ●试题三 请补充函数 fun() ,该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的 字符串中,由全局变量 m对删除后字符串的长度进行保存。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容, 仅在函数 fun() 的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h #includeconio.h int m ; void fun(char *s) { int i = 0, j =0; char *p = s; while(*(p +i)) { if(*(p +i) =′A′*(p+ i) =′Z′) { ; } ; } s[j] =′ 0′; ; } main() { char str[80] ; clrscr() ; printf(\nEnter a string : ) ; gets(str) ; printf(\n\nThe string is :s\n ,str) ; fun(str) ; printf(\n\nThe string of changing is : s\n , str) ; printf(\n\nThe length of changed string is : d\n ,m); } ●试题四 阅读下列程序说明和 C 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【程序 4.1 说明】 “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为 S,设有 N 件物品,其重量分别为 w1, w2, ... , wn,希望从 N 件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的 重量之和等于 S。 如下程序均能求得“背包问题”的一组解,其中程序 4.1 是“背包问题”的递归解法,而程序 4.2 是“背 包问题”的非递归解法。 【程序 4.1 】 #includestdio.h #define N 7 #define S 15 int w[N + 1] = {0,1,4,3,4,5,2,7} int knap(int s ,int n) { if(s == 0)return 1 ; if (s0||(s0 n1))return 0 if

文档评论(0)

1亿VIP精品文档

相关文档