首页 > 软考
题目内容 (请给出正确答案)
[主观题]

试题二(共15分) 阅读以下说明和C函数,回答问题 l至问题 3,将解答写在答题纸的对应栏内。 【说明1】

试题二(共15分)

阅读以下说明和C函数,回答问题 l至问题 3,将解答写在答题纸的对应栏内。

【说明1】

函数substring(const char str[],int index,int length)的功能是求出字符串str中指定序号index开始且长度为length的子串,并返回所取出的子串。以字符串“China today”为例,其第一个字符“C”的序号为1(而其在字符数组str中的下标为0),从序号 5开始且长度为 3的子串为“at”。

试题二(共15分) 阅读以下说明和C函数,回答问题 l至问题 3,将解答写在答题纸的对应栏内。 【说

【问题1】(6分)

函数substring 中有两处错误,请指出这些错误所在代码的行号,并在不增加和删除 代码行的情况下进行修改,写出修改正确后的完整代码行(有注释时,注释可省略)。

试题二(共15分) 阅读以下说明和C函数,回答问题 l至问题 3,将解答写在答题纸的对应栏内。 【说

【说明2】

在C函数 2中,reverse(unsigned intn的功能是求出并返回n的反序数。例如,1234 的反序数是4321,其求解过程如下:

(1)由1234除以 10得到商123和余数4,O乘以10再加上 4得到 4;

(2)由123除以10得到商12和余数 3,4乘以10再加上 3得到43;

(3)由12除以10得到商 l和余数2,43乘以10 再加上2得到432;

(4)由 1除以 10得到商 0和余数 1,432乘以10再加上 1得到4321。

【C函数2】

unsigned int reverse(unsigned int n)

{

unsigned int result=0;

while((1) ){

result= result *10+ n%10;

n= (2)__;

}

retum result,

}

【问题2] (6分)

请根据说明2,填充C函数 2中的空缺(1)和(2)。

【问题3](3分)

用567,1234,56781234,62354879643分别作为实参调用函数reverse,对应的返回值分别

为765,4321,43218765,1357400630。请说明以62354879643作为实参调用函数 reverse

时返回结果出错的原因。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“试题二(共15分) 阅读以下说明和C函数,回答问题 l至问题…”相关的问题
第1题
试题二(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】如果矩

试题二(共15分)

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。

【说明】

如果矩阵A中的元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。

一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。

【C函数】

Int findSaddle(int a[][N],int M),

{ /*a表示M行N列矩阵,N是宏定义符号常量量*/

int row,column,i,k;

int minElem;

int count=0;/*count用于记录矩阵中马鞍点的个数*/

for(row = 0;row< (1) ;row++) {

/*minElem用于表示第row行的最小元素值,其初值设为该行第0列的元素值*/

(2) ;

for(column = 1;column< (3) ;column++)

if(minElem> a[row][column]) {

minElem = a[row][column];

}

for(k=0;k<N;k++)

if(a[row][k]==minElem){

/术对第row行的每个最小元素,判断其是否为所在列的最大元素*/

for(i=0;i <M;i++)

if((4) >minElem) break;

if(i>=(5) ){

printf("(%d,%d):%d\n",row,k,minElem);/*输出马鞍点*/

count++;

}/*if*/

}/*if*/

}/*for*/

return count,

}/*findSaddle*/

点击查看答案
第2题
试题二(共15分)阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。[说明]某单位准

试题二(共15分)

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

[说明]

某单位准备进行一次选举,对指定的n 名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n 名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3 个,也不得少于1 个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,

n=8 时所形成的文件如下:

01011000

10010100

10011000

11111111

00000000

00111000

其中,每行表示一张选票的数据,每列代表一位候选者的得票情况。第i 行第j 列为1,表示第i 张选票上投了第j 名候选人1 票。函数statistic()的功能是读入选票数据,并统计每位候选者的得票数,函数返回

有效选票数。

[C函数]

int statistic(FILE *fp,int candidate[],int n)

{ /* 从文件中读入选票数据,n 为候选人数量(n<80),从有效选票中统计每位候选者

的得票数并存入candidate[],函数返回有效选票数*/

char str[80]; /* str 保存读入的一张选票数据 */

int i,tag = 0; /* tag用于判断每张选票是否有效 */

int q = 0; /* q用于计算有效选票数 */

for(i = 0; i < n; i++)

candidate[i] = 0;

while ((1) ) {

fgets(str,80,fp); /* 读入一张选票数据 */

for(tag = 0,i = 0; (2) ; i++)

if (str[i] == '1') tag++;

if ((3) ){ /* 若是有效选票,则进行统计 */

(4) ;

for(i = 0; i < n; i++)

if (str[i] == '1') (5) ;

}

}

return q;

}/* statistic */

点击查看答案
第3题
试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】 公司A网

试题二(共15分)

阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。

【说明】

公司A网络拓扑结构如图2-1所示,其中FTP_server是在Windows Server 2003操作系统中配置的FIP服务器,仅供公司内部主机访问。

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】 公司

【问题1】

图2-2是配置FTP服务时的FTP站点选项卡,“IP地址”栏的值为 (1);TCP端口默认值为(2)。

若要利用访问情况来分析非法行为,在图2-2中应如何配置?

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】 公司

【问题2】

图2-3是配置FTP服务时的主目录选项卡,“本地路径”栏的信息默认为(3)。

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】 公司

【问题3】

图2-4是配置FTP服务时的目录安全性选项卡,选中“拒绝访问”单选框,点击“添加”按钮,弹出图2-5所示的窗体,“网络标识”栏应填入(4),“子网掩码”栏应填入(5)。

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】 公司

【问题4】

根据图2-3,在FTP服务器配置完成后,网络管理员要添加可供下载的资料,该如何操作?

点击查看答案
第4题
试题三(共15分) 阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。 【说明】

试题三(共15分)

阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。

【说明】

对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为 0的数组元素,并将a中所有的非 O元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1 和CompactArr v2来实现上述处理要求,函数的返回值为非零元素的个数。 函数CompactArr_vl(int a[],int n)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非O元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。

函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为 0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组 a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增 1,而遇到非 0元素并将其前移后k才增 1。

试题三(共15分) 阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。 【说

【问题1】 (12分)

请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理

思路填补空缺(4)。

【问题2】(3分)

请说明函数CompactArr vl存在的缺点。

点击查看答案
第5题
试题五(共15分)阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。[说明]某班级有

试题五(共15分)

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

[说明]

某班级有N 名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N,如图5-1 所示。

试题五(共15分)阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。[说明]某班

程序中相应的类型定义如下:

define N 6

struct node{

char cname[5]; /*课程名*/

int grade; /*成绩*/

struct node *next; /*指针,指示某学生选修的下一门课程及成绩*/

};

struct student{

char xh[5]; /*学号*/

char name[20]; /*姓名*/

struct node *link; /*指针,指示出选修的课程及成绩链表*/

}stud_info[N];

stud_info[]为一个全局数组。

函数func (char kc[],int *num)的功能是统计选修了课程名为kc 的学生的人数,

并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num 带回选修课程kc 的学生人数。

[C函数]

double func (char kc[],int *num)

{

int i,count = 0,sum = 0; /*count用于记录选修课程名为kc 的学生的人数*/

double avg = 0.0;

struct node *p;

for(i = 0; i < N; i++){

p = (1) ; /*取第i 个学生所修课程链表的头指针*/

while (p) {

if ((2) ) {

sum = (3) ;

count++;

break;;

}/*if*/

p = p->next;

}/*while*/

}

(4) ;

if ((5) )

avg = (double)sum / count; /* 计算平均成绩 */

return avg;

}/*func*/

点击查看答案
第6题
试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 Linux

试题二(共15分)

阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。

【说明】

Linux系统有其独特的文件系统ext2,文件系统包括了文件的组织结构、处理文件的数据结构及操作文件的方法。可通过命令获取系统及磁盘分区状态信息,并能对其进行管理。

【问题1】(6分)

以下命令中,改变文件所属群组的命令是__ (1) ,编辑文件的命令是 (2) ,查找文件的命令是(3)

(1)~(3)备选答案:

A. chmod B. chgrp C.vi D. which

【问题2】(2分)

在Linux中,伪文件系统(4)只存在于内存中,通过它可以改变内核的某些参数。

(4)备选答案:

A. /proc B. ntfs C. /tmp D. /etc/profile

【问题3】(4分)

在Linux中,分区分为主分区、扩展分区和逻辑分区,使用fdisk—1命令获得分区信

息如下所示:

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 L

试题二(共15分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 L

【问题4】(3分)

在Linux系统中,对于(7)文件中列出的Linux分区,系统启动时会自动挂载。此外,超级用户可通过(8)一命令将分区加载到指定目录,从而该分区才在Linux系统中可用。

点击查看答案
第7题
试题四(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】已知两

试题四(共15分)

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。

【说明】

已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列,函数Adjustment(A,B,m,n)的功能是合并两个非递减序列,并将序列的前m个整数存入A中,其余元素依序存入B中。

试题四(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】已知两

合并过程如下:从数组A的第一个元素开始处理。用数组B的最小元素B[0]与数组A的当前元素比较,若A的元素较小,则继续考查A的下一个元素;否则,先将A的最大元素暂存入temp,然后移动A中的元素挪出空闲单元并将B[0]插入数组A,最后将暂存在temp中的数据插入数组B的适当位置(保持B的有序性)。如此重复,直到A中所有元素都不大于B中所有元素为止。

【C函数】

void Adjustment(int A[],int B[],int m,int n)

{ /*数组A有m个元素,数组B有n个元素*/

inti,k,temp;

for(i=0;i<m;i++)

{

if(A[i]<=B[0]) continue,

temp= (1) ;/*将A中的最大元素备份至temp*/

/*从后往前依次考查A的元素,移动A的元素并将来自B的最小元素插入A中*/

for(k= m-1; (2) ;k--)

A[k]=A[k-1];

A[i]=(3) ;

/*将备份在temp的数据插入数组B的适当位置*/

for(k=1; (4) &&k<n;k++)

B[k_1]=B[k];

B[k-1]= (5) ;

}

}

点击查看答案
第8题
试题五(共15分) 阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 小明在一家

试题五(共15分)

阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

小明在一家超市工作,该超市将进行整体改造,小明负责信息系统软硬件升级,他制定的工作计划如表5.1所示。

试题五(共15分) 阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 小明在

每项任务的逻辑关系和部分时间信息如图5-1所示。

试题五(共15分) 阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 小明在

【问题1】 (10分)

请根据表5-1和图5-1,计算各项任务的最迟开始时间和最迟结束时间,填充图5-1中的空(1)~(10)。

点击查看答案
第9题
试题二(共15分)阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某公司使用ASP

试题二(共15分)

阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某公司使用ASP.NET+SQLServer开发电子商务网站,该网站分为前台和后台两部

分,前台具有会员登录、商品展示、商品搜索;、个人中心和购物车等功能;后台具有商

品管理、会员管理和订单管理等功能。

【问题1】(6分)

ASP.NET访问数据库一般采用ADO.NEt。ADO.NET主要包含Connection对象、

Command对象、DataReader对象、DataAdaptiIr对象、DataSet对象和DataView对象等。

建立数据源连接使用的对象是(l).。连接对象创建完成后,打开连接,需使用的方法是

(2),连接对象使用结束后,一般需要关闭连接,使用的方法是(3)。如果在操作数据

库时,需要大批量的处理数据或者想在断开数据库连接的情况下操作数据,.NET使用(4)

对象将数据从数据库服务器中取出,并将数据存入(5)对象中。如果要添加、修改或删

除数据,需要使用(6)对象。

【问题2](3分)

该电子商务网站数据库business中包含一张新闻表,名为news,结构如表2-1所示。

试题二(共15分)阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某公司使用A

现在发现news表中缺少字段“新闻作者”,要求使用SQL语句添加该字段,字段名

为newsauthor,数据类型为varchar,长度为20,默认值为admin。请根据题目说明,将

SQL语句补充完整。

ALTER TABLE (7) ADD (8)(2O)default‘(9)’。

试题二(共15分)阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某公司使用A

点击查看答案
第10题
试题二(共15分)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是

试题二(共15分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

struct _ProtobufCIntRange{

int start_value;

unsigned orig_index;

};

typedef struct _ProtobufCIntRange ProtobufCIntRange;

int int_range_lookup (unsigned n_ranges, const ProtobufCIntRange *ranges, int value){

unsigned start,n; ∥1

start=0;

n=n_ranges;

while(n>1){ //2

unsigned mid= start+ n/2;

if(value< ranges[mid].start_value){ //3

n=mid-start; //4

}

else if(value>=ranges[mid].start value+

(int)(ranges[mid+1].orig_index-ranges[mid].orig_index){ //5

unsigned new_start= mid+1; //6

n=start+n-new_start,

start = new_start;

}

else //7

return (value - ranges[mid].start_value)+ ranges[mid],orig_index;

}

if(n>0){ //8

unsigned start_orig_index= ranges[start].orig_index;

unsigned range_size=ranges[start+1].orig_index - start_orig_index;

if (ranges[start].start_value<=value

&& value< (int)(ranges[start].start_value+ range_size》 //9, 10

return (value - ranges[start].start_value)+start_orig_index; //11

}

retum -1, //12

} //13

【问题1】(5分)

请给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2】 (7分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】(3分)

请给出【问题2】中控制流图的线性无关路径。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改