报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > 试题汇编 > 计算机水平考试 > 真题 >
→论坛登陆 用户名  密码  
2007年11月软件设计师模拟试题(6)下午试卷

作者: 发布时间:2008-04-28 11:46:57 来源:

●试题一
阅读以下说明和流程图(如图1所示),回答问题1至问题4,将答案写在答卷的对应栏内。
【说明】
本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式
(A-(B*C+D)*E)/(F+G))
的后缀表示为
ABC*D+E*-FG+/
为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:
数组IN[]存储中缀表达式;
数组POLISH[]存储其后缀表达式;
数组S[]是一个后进先出栈;
函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:
 
【问题1】
填充流程图中①的判断条件。
【问题2】
写出子程序A的功能,并顺序写出实现该功能的操作
【问题3】
写出子程序B的功能,并顺序写出实现该功能的操作。
【问题4】
中缀表达式
(A+B-C*D)*(E-F)/G
经该流程图处理后的输出是什么?
【流程图】




 
图1
 
●试题一
[问题1]
【答案】PRIOR(IN[i]):PRIOR(S[p])
[问题2]
【答案】功能: 将当前符号IN[i]入栈
操作:p+1->p
IN[i]->S[p]
[问题3]
【答案】功能:出栈
操作:k+1->k
S[p]->POLISH[k]
p-1->p
[问题4]
【答案】AB+CD*-EF-*G/
【解析】本题考查栈的使用和中序表达式与后缀表达式的互换。

●试题二
阅读下列程序和控制流图,将应填入(n)的字句写在答题纸的对应栏内。
【程序】
下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
int GetMax(int n,int datalist[]){
int k=0;
for(int j=1;j<n;j++)
if(datalist[j]>datalist[k])
  k=j;
return k;
}
【控制流图】


 
图2控制流图
【问题1】
该程序的控制流图中A~E分别是什么?
【问题2】
计算控制流图的McCabe环路复杂性。
【问题3】
用基本路径覆盖法给出测试路径。
【问题4】
为各测试路径设计测试用例。
 
●试题二
[问题1]
【答案】(1)j<n(2)return k;(3)datalist[j]>datalist[k]〓(4)k=j;(5)j++;
[问题2]
【答案】 McCabe环路复杂性为3。

[问题3]
【答案】测试路径:
Pathl:①→③
Path2:①→②→④→⑥→…
Path3:①→②→⑤→⑥→…
[问题4]
【答案】测试用例:
Path1:取n=1,datalist[0]=1,
预期结果:k=0
Path2:取:n=2,datalist[0]=1,datalist[1]=0,
预期结果:k=0
Path3:取n=2,datalist[0]=0,datalist[1]=1,
预期结果:k=1
【解析】本题考查对软件测试概念和过程的理解,结合具体实例运用各种测试技术,学会测试用例设计、软件测试与程序调试的方法。软件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。根据2004新大纲和最近两次软件设计师考试的真题,不难发现各类系统分析理论的实例化考核比例逐渐升温,只要读者平时对这部分知识的实例多分析、多思考,这部分分数其实不难拿到。
 
●试题三
请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.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′)
{
  (1)  ;
}
  (2)  ;
}
s[j]=′\0′;
  (3)  ;
}
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】
#include<stdio.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 (s<0||(s>0& &n<1))return 0;
if(  (1)  )){
printf(″%4d″,w[n]);return 1;
}return  (2)  ;
}
main(){
if( knap(S,N))printf(″OK!\n″);
else printf(″N0!\n″);
}

【程序4.2】
#include<stdio.h>
#define N 7
#define S 15
typedef struct {
int s;
int n:
int job;
} KNAPTP;
int w[N+1]={0,1,4,3,4,5,2,7};
int knap (int s,int n);
main( ) {
if (knap (S,N)) printf (″OK!\n″);
else printf (″NO!\n″);}
int knap (int s,int n)
{ KNAPTP stack[100],x;
int top,k,rep;
x.s=s;x.n=n;
x.job=0;
top=l;stack[top]=x;
k=0;
while(  (3)  ) {
x=stack [ top ];
rep=1;
while ( !k && rep ) {
if (x.s==0)k=1;/*已求得一组解*/
else if (x.s<0 || x.n <=0)rep=0;
else{x.s=  (4)  ;x.job=1;
  (5)  =x;
}
}
if(!k){
rep=1;
while(top>=1&&rep){
x=stack[top--];
if(x.job==1){
x.s+=w[x.n+1];
x.job=2;
stack[++top]=x;
  (6)  ;
}
}
}
}
if(k){/*输出一组解*/
while(top>=1){
x=stack[top--];
if(x.job==1)
printf(″%d\t″,w[x.n+1]);
}
}
return k;
}
 
●试题五
阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。
【说明】
①定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。
②完成类Table的成员函数print()的定义,该函数以"x*y=z"的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现。
③完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕。
④补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。
源程序文件test8_3.cpp清单如下:
#include<iostream.h>
#include<stdio.h>
class Table
{
  (1) 
int z;
public:
void print(int x,int y,int z);
};
void Table::print (int x,int y,int z)
{
  (2) 
}
class Table9:public Table
{
public:
void print();
};
void Table9::print()    
{
  (3) 
int x,y,z;
for (i=1;i<10;i++)
{
for(j=1;j<i+1;j++)
{
x=i;
y=j;
z=i*j;
Table::print(y,x,z);
}
printf("\n");
}
}
main()
{
//**4** 
return 0;
}

●试题六
【说明】
下面是一个Applet程序,其功能是建立2个文本区域,一个为编辑区,一个为只读区;建立2个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。
程序运行结果如图3所示。
 
图3
import javA.awt.*;
import javA.applet.*;
/*
<applet code="ex3_6.class" width=800 height=400 >
</applet>
*/
public class ex3_6 extends Applet{
private Button okBtn, clearBtn;
private String strMessage;
private TextArea tArea1, tArea2;
public void init(){
strMessage = "Hello! Welcome to the test! \n" +
"Wish you good luck!";
tArea1 = new TextArea( 10, 25 );
  (1)  ;
tArea2 = new TextArea( 10, 25 );
  (2)  ;
okBtn = new Button( "Copy" );
clearBtn =  (3)  ;
add( tArea1 );
add( tArea2 );
add( okBtn );
add( clearBtn );
}
public boolean action( Event e, Object o ){
if( e.target == okBtn )
tArea2.setText(  (4)  );
else if( e.target == clearBtn )
  (5)  ;
return true;
}
}
ex3_6.html
<HTML>
<HEAD>
<TITLE>ex3_6</TITLE>
</HEAD>
<BODY>
<applet code="ex3_6.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
 

    育路网
 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[作文雅思写作高分必读:小作文句子模 ·[资讯中心湖北:2008上半年英语等级考试(P
·[真题2007年11月软件设计师模拟试题( ·[真题2007年11月网络管理员模拟试题(
·[真题2007年11月网络管理员模拟试题( ·[真题2007年11月程序员模拟试题(5)上
·[真题2007年11月程序员模拟试题(5)下 ·[真题07年11月网络工程师模拟试题(7)
·[司考聚焦2008年司法考试“刑法”总体分析 ·[真题07年11月网络工程师模拟试题(7)
·[真题2007年11月软件设计师模拟试题( ·[真题2007年11月软件设计师模拟试题(
·[真题2007年11月网络管理员模拟试题( ·[真题2007年11月网络管理员模拟试题(
·[复习指导同等学力写作185套写作方法(2) ·[真题2007年11月程序员模拟试题(4)上
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·公务员考试:良好的心态至关重要
·律师评"玫琳凯礼单"事件 倡建公务员财产申报
·贵阳禁止公务员赴饮用水源保护区游玩
·重庆市08公招公务员笔试成绩及有关事宜公告
·贵州省实施考核新规公务员连续两年不称职 辞退
·上海对公务员“革薪”值得老百姓期待
·全国首个限价房项目售罄 买家以公务员教师为主
·首都青年公务员 风采大赛昨颁奖
·湖南省长力主行政程序统一 拒绝公务员办事推诿
· 50万公务员轻松家装 5月3日嘉禾公务员家居节
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号