软考
APP下载

软考考试题型有哪些?举例说明

(一)选择题

1.在以下情况中,(1)适合于采用队列数据结构。

(1)A.监视一个火车站售票窗口等待服务的客户

B.描述一个组织中的管理机制

C.统计一个商场中的顾客数

D.监视进入某住宅楼的访客

2.软件测试的目的是(2)。

(2)A.尽可能地找出软件中的缺陷

B.缩短软件的开发时间

C.减少软件的维护成本

D.证明程序没有缺陷

3.In C language,a(3)is a series of charaters enclosed in double quotes.

(3)A.matrix B.string C.program D.stream

(二)问答题

试题一(必选样题)

阅读以下说明和算法,完善算法并回答问题,将解答填入答题纸的对应栏内。

【说明】

假设以二维数组G[1..m,1..n]表示一幅图像各像素的颜色,则G[i,j]表示区域中点(i,j)处的颜色,颜色值为0到k的整数。

下面的算法将指定点(图3.jpg)所在的同色邻接区域的颜色置换为给定的颜色值。约定所有与点(图3.jpg)同色的上、下、左、右可连通的点组成同色邻接区域。

例如,一幅8×9像素的图像如图1所示。设用户指定点(3,5),其颜色值为0,此时其上方(2,5)、下方(4,5)、右方(3,6)邻接点的颜色值都为0,因此这些点属于点(3,5)所在的同色邻接区域,再从上、下、左、右4个方向进行扩展,可得出该同色邻接区域的其他点(见图1中和阴影部分)。将上述同色区域的颜色替换为颜色值7所得的新图像如图2所示。

【算法】

输入:矩阵G,点的坐标(图3.jpg),新颜色值newcolor。

输出:点(图3.jpg)所在同色邻接区域的颜色为newcolor之后的矩阵G。

算法步骤(规范算法,规定该算法只在第七步后结束):

第一步:若点(图3.jpg)的颜色值与新颜色值newcolor相同,则(1);

第二步:点(图3.jpg)的颜色值→oldcolor;创建栈S,并将点坐标(图3.jpg)入栈;

第三步:若(2),则转第七步;

第四步:栈顶元素出栈→(x,y),并(3);

第五步:1)若点(x,y-1)在图像中且G[x,y-1]等于oldcolor,则(x,y-1)入栈S;

2)若点(x,y+1)在图像中且G[x,y+1]等于oldcolor,则(x,y+1)入栈S;

3)若点(x-1,y)在图像中且G[x-1,y]等于oldcolor,则(x-1,y)入栈S;

4)若点(x+1,y)在图像中且G[x+1,y]等于oldcolor,则(x+1,y)入栈S;

第六步:转(4);

第七步:算法结束。

【问题1】

是否可以将算法中的栈换成队列?回答:(5)。

试题二(必做的C语言样题)

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。

【函数说明】

函数int fun 1(int m,int,n)的功能是:计算并返回正整数m和n的最大公约数。

【函数】

int fun 1(int m,int n)

{

While((1)){

If(m>n)m=m-n;

Else n=n-m;

}

(2);

}

【函数说明】

函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。

例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。

【函数】

long fun2(char*str)

{int i=0;

long k=0;

char*p=str;

while(*p!=""&$(3)){

if(*p>="0"&&*p<="9"){

k=(4)+*p-"0";

++i;

}

(5);

}

Return k;

}

试题三(选做的C语言样题)

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

【说明】

某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表3-1)。该表粗略地描述了曲线Ratio(temp)。

校下系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要用更多的列表值细致地描述曲线K(temp),如表3-2所示。在表3-2中,各温度值所对应的K值是对表3-1进行线性插值再求倒数得到的,具体的计算方法如下:

(1)根据temp值,在表3-1中用二分法查找;

(2)若找到相应的温度值,则按相应的Ratio值求倒数得到K值;

(3)若没找到相应的温度值,则可确定temp所在的温度区间[Tp1,Tp2],同时获得了相应的Ratio1和Ratio2,再按如下公式计算K值:

Step=(Ratio1-Ratio2)/(Tp1-Tp2)

K=1.0/(Ratio1+Step*(temp-Tp1))

在程序中,当temp高于50℃或低于℃时,设定K=0。

【程序】

#include

typedef struct{

int Temp;/*环境温度*/

double Ratio;/*传感器的输出值*/

}CURVE;

#define ITEMS 7

double GetK(int,CURVE*,int);

Void main()

{

int Degree;

double k;

CURVE Curve{ITEMS}={{-40,0.2},{-20,0.60},{-10,0.8},

{0,1.0},{10,1.17},{30,1.50},{50,1.8}};

printf("环境温度校正系数n");

for(Degree=-40;Degree<=50;Degree++){

k=Getk(Degree,Curve,ITEMS);

printf("%3d%4.2fn",Degree,k);

}

}

double Get(int Temp,CURVE*P,int n)

{/*用二分法在n个元素有的序表p中查找与Temp对应的传感器输出值*/

int low,high,m;double Stemp;

low=0;high=n-1;

if((Temp

return 0.0;/*超出温度范围时返回0.0*/

while(low<=high){

m=(1);

if(Temp==(p+m)->Temp)

return(2);

if(Temp

else low=(3);

}

p+=high;

Step=((4))/((p+1)->Temp–p->Temp);

return 1.0/(p->Ratio+Step*((5)));

}

试题四(选做的C++语言样题)

阅读以下说明和C++程序,将解答写在答题纸的对应栏内。

【说明】

已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类SuperClass中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。

【C++代码】

试题五(选做的Java语言样题)

阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在下面的Java程序代码中,类SalesTicket能够完成打印票据正文的功能,类HeaDecorator与FootDecorator分别完成打印票据的台头和脚注的功能。

已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。

这是票据的台头!

这是票据的正文!

这是票据的脚注!

---------------------------

这是票据的台头!

这是票据的脚注!

【Java程序代码】

public class SalesTicket{

public void printTicket(){

System.out.printle("这是票据的正文");

}

}

public class Decorator extends SalesTicket{

SalesTicket ticket;

public Decorator(SalesTicket t){

ticket=t;

}

public void printTicket(){

if(ticket!=null)

ticket.printTicket();

}

}

public class HeadDecorator extends Decorator{

public HeadDecorator(SalesTicket t){

(1);

}

public void printTicket(){

System.out.println("这是票据的台头");

super.printTicket();

}

}

public class FootDecorator extends Dexorator{

public FootDexorator(SalesTicket t){

(2);

}

public void printTicket(){

super.printTicket();

System.out.println("这是票据的脚注!");

}

}

public class Main{

public static void main(String[]args){

T=new HeadDecorator((3));

T.(4);

System.out.println("------------------------");

T=new FootDecorator((5));

T.printicket();

}

}

备考资料 免费领取:系统分析师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
系统分析师题库