快捷搜索:  汽车  科技

软考初级程序员备考资料(初级软考程序员考试大纲)

软考初级程序员备考资料(初级软考程序员考试大纲)(2)A. 尽可能地找出软件中的缺陷2.软件测试的目的是(2) 。B. 描述一个组织中的管理机制C. 统计一个商场中的顾客数D. 监视进入某住宅楼的访客

软考初级程序员备考资料(初级软考程序员考试大纲)(1)

三、题型举例

(一)选择题

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 的整数。

下面的算法将指定点( )所在的同色邻接区域的颜色置换为给定的颜色值。约定所有

与点( )同色的上、下、左、右可连通的点组成同色邻接区域。

例如,一幅 8×9 像素的图像如图 1 所示。设用户指定点(3,5),其颜色值为 0,此时

其上方(2,5)、下方(4,5)、右方(3,6)邻接点的颜色值都为 0,因此这些点属于点(3,

5)所在的同色邻接区域,再从上、下、左、右 4 个方向进行扩展,可得出该同色邻接区域

的其他点(见图 1 中和阴影部分)。将上述同色区域的颜色替换为颜色值 7 所得的新图像如

图 2 所示。

1 2 3 4 5 6 7 8 9

1 5 4 5 4 3 1 5 1 2

2 2 5 5 3 0 1 3 2 1

3 0 3 2 3 0 0 2 3 1

4 2 0 1 0 0 0 0 2 0

5 1 0 0 0 0 3 2 0 1

6 0 1 0 2 0 0 2 2 1

7 6 5 5 0 1 0 2 1 0

8 6 3 3 4 0 0 7 4 5

图 1

1 2 3 4 5 6 7 8 9

1 5 4 5 4 3 1 5 1 2

2 2 5 5 3 7 1 3 2 1

3 0 3 2 3 7 7 2 3 1

4 2 7 1 7 7 7 7 2 0

5 1 7 7 7 7 3 2 0 1

6 0 1 7 2 7 7 2 2 1

7 6 5 5 0 1 7 2 1 0

8 6 3 3 4 7 7 7 4 5

图 2

【算法】

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

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

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

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

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

第三步:若 (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 != "\0" &$ (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)。

表 3-1 曲线 Ratio(temp)的列表值

环境温度

temp 传感器的输出值

Ratio 环境温度

temp 传感器的输出值

Ratio

-40℃ 0.20 10℃ 1.17

-20℃ 0.60 30℃ 1.50

-10℃ 0.80 50℃ 1.80

0℃ 1.00

校下系数 K 是 Ratio 的倒数,因此也依赖于环境温度 temp。在数据处理中,人们需要

用更多的列表值细致地描述曲线 K(temp),如表 3-2 所示。在表 3-2 中,各温度值所对应的

K 值是对表 3-1 进行线性插值再求倒数得到的,具体的计算方法如下:

表 3-2 曲线 K(temp)的列表值

环境温度

temp 较正系数

K 环 境 温 度

temp 较正系数

K

-40℃ 5.00 -19℃ 1.61

-39℃ 4.55 … …

-38℃ 4.17 -10℃ 1.25

-37℃ 3.85 -9℃ 1.22

… … … …

-20℃ 1.67 50℃ 0.56

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 <stdio.h>

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 (" = %4.2f \n" 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< p->Temp)||(Temp> (p high)->Temp) )

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

while (low <=high){

m= (1) ;

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

return (2) ;

if (Temp < (p m)->Temp) high = m-1;

else low = (3) ;

}

p =high;

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

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

}

猜您喜欢: