题目
试题四(共15分)
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列,函数Adjustment(A,B,m,n)的功能是合并两个非递减序列,并将序列的前m个整数存入A中,其余元素依序存入B中。
合并过程如下:从数组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) ;
}
}
第1题
试题四(共 15分)
阅读以下说明和C函数,将解答填入答题纸的对应栏内。
【说明】
函数del_substr(S,T)的功能是从头至尾扫描字符串 S, 删除其中与字符串T相同的所有子串,其处理过程为:首先从串 S 的第一个字符开始查找子串 T,若找到,则将后面的字符向前移动将子串T覆盖掉,然后继续查找子串T,否则从串S的第二个字符开始查找,依此类推,重复该过程,直到串S的结尾为止。该函数中字符串的存储类型 SString
定义如下:
typedef struct {
char *ch; /*串空间的首地址*/
int length; /*串长*/
}SString;
【C函数】
void del_substr(SString *S, SString T)
{
int i, j;
if (S->length < 1 || T.length < 1 || S->length < T.length )
return;
i = 0; /* i为串S中字符的下标 */
for (; ; ) {
j = 0; /* j为串T中字符的下标 */
while (i < S->length && j < T.length ) { /* 在串S中查找与T相同的子串 */
if (S->ch[i]==T.ch[j] ) {
i++; j++;
}
else {
i = (1) ; j = 0; /* i值回退,为继续查找T做准备 */
}
}
if ((2) ) { /* 在S中找到与T相同的子串 */
i = (3) ; /* 计算S中子串T的起始下标 */
for(k = i+T.length; k<S->length; k++) /* 通过覆盖子串T进行删除 */
S->ch[ (4) ] = S->ch[k];
S->length = (5) ; /* 更新S的长度 */
}
else break; /* 串S中不存在子串T*/
}
}
第2题
试题四(共15分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。
【 说明 】
某公司的网络结构如图 4-1 所示,所有 PC 机共享公网 IP 地址211.156.168.5 接入Internet,另外有2台服务器提供Web服务和FTP 服务,服务器的内网和公网地址如表4-1所示。
【 问题1】(3 分)
参照图 4-1 中各个设备的 IP 地址,完成表 4-2 中防火墙各个端口的 IP 地址和掩码设置。
(1)~(3)备选答案:
A. 192.168.1.1
B. 10.1.1.1
C. 210.156.169.1
D. 211.156.168.8
E. 255.255.255.0
F. 255.255.255.248
第3题
试题四(共15分)
阅读以下说明,回答问题l至问题3,将解答填入答题纸的对应栏内。
【说明】
赵新锐是一名大学生,他申请了学校的大学生创新创业项目,计划建立一个网上商
店,他制定的工作计划如表4-1所示。
【问题2](5分)
项目在第14天时进行了检查,工作代码为G、I、H的检查情况见表4-3。请计算工
作代码为G、I、H任务的进度状况并填空。
【问题3](5分)
在答题纸对应位置完成项目里程碑甘特图(注:答题纸上的时间为每方格一天)。
第4题
试题四(共15分)
阅读以下说明,回答问题l至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司使用ASP开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理和访客计数器等功能,采用Sqlserver数据库,数据库名为business,其中访客计数器表存储今日访问量、昨日访问量和总访问量等字段,其名称为counter。
【问题1】(6分)
ASP访问数据库一般采用ADO技术,ADO对象主要包含Connection对象、Command对象、Parameter对象、Recordset对象、Field对象和Error对象等。请根据ADO对象之间的关系,在空(1)~(6)处填写正确的对象名。
第5题
试题四(共15分)
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。
【说明】
图4-1是某企业网络拓扑结构。
【问题1】(2分)
防火墙的规则配置如表4-1所示,请解释该配置的含义。
【问题2】 (5分)
编写表4-2中规则1,禁止内网主机pc1访问Internet上的FTP服务。
【问题3】(2分)
能否在不增加规则的前提下,通过修改表4-2中的规则1,限制内网主机pc1仅能访问Internet上的FTP服务,请说明理由。
【问题4】 (5分)
编写表4-3中的规则,允许外网主机访问内网的DNS服务。
【问题5】(1分)
请说明表4-3中的规则应该插入到表4-2中的何处才能生效。
第6题
试题二(共15分)
阅读以下说明和C函数,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。
【说明1】 函数deldigit(char *s) 的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与 s 等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。
【C函数】
void deldigit(char *s)
{
char *t = (char *)malloc((1) ); /*申请串空间*/
int i, k = 0;
if (!t) return;
for(i = 0; i < strlen(s); i++)
if (!(*(s+i)>='0' && *(s+i)<='9') ) {
t[k++] = (2) ;
}
(3) = '\0'; /*设置串结束标志*/
strcpy(s,t);
free(t);
}
【说明2】
函数reverse(char *s, int len)的功能是用递归方式逆置长度为 len的字符串s。例如,若串s的内容为“abcd” ,则逆置后其内容变为“dcba” 。
【C函数】
void reverse(char *s, int len)
{
char ch;
if ((4) )
{
ch = *s;
*s = *(s+len-1);
*(s+len-1) = ch;
reverse((5) );
}
}
第7题
试题四(共15分)
阅读以下说明,回答问题 1 至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司使用 ASP 开发了商务网站,购物车是网站中一个重要的组件。
【问题 1】(6 分)
设计购物车模块的核心思想是将顾客订购的物品进行临时保存,其中利用 (1) 可以将订购信息临时存在WEB服务器内存中,利用 (2) 可以将订购信息临时存于客户端硬盘上,另外还可以将订购信息临时存在 (3) 中。
【问题 2】(4 分)
1.在ASP内置对象中,有两个对象与cookie操作有关。其中 (4) 用来写cookie内容,
(5) 用来读cookie内容。
备选答案:
A.application B.asperror C.response
D.request E.session F.server
2.在ASP内置组件中,使用(6)可以在主页上交替地变换广告,使用(7)可以读写
服务器文件。
A.Browser Capabilities B.File Access C.AD Rotator
D.Content Linking E.Database Access
【问题 3】 (5 分)
该网站购物车模块页面脚本语言是 JavaScript,用户订购信息临时存在 cookie 中,下
面是购物车页面中读取 cookie 值的函数,请完成该程序。
<script. language="javascript">
……
function readCookie(name)
{
var cookieValue = "";
var search = (8) + "=";
if(document.cookie. (9) > 0)
{
start= document.cookie.indexOf(search);
if (start != -1)
{
start += search.length;
end = document.cookie.indexOf(";",start);
if (end = = -1)
end = document.cookie.length;
cookieValue = document.cookie.substring((10) , (11) )
}
}
return (12) ;
……
</script>
第8题
试题二(共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*/
第9题
试题三(共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。
【问题1】 (12分)
请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理
思路填补空缺(4)。
【问题2】(3分)
请说明函数CompactArr vl存在的缺点。
第10题
试题三(共 15分)
阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明 1】
函数test_f1(int m, int n)对整数 m、n进行某种运算后返回一个整数值。
【C函数 1】
int test_f1(int m, int n)
{ int k;
k = m > n ? m : n;
for(;(k%m!=0) || (k%n!=0);k++);
return k;
}
【问题 1】(5分)
(1)请写出发生函数调用test_f1(9,6)时,函数的返回值;
(2)请说明函数test_f1的功能。
【说明 2】
设在某 C 系统中为每个字符分配 1 个字节,为每个指针分配 4 个字节,sizeof(x)计算为x分配的字节数。
函数test_f2()用于测试并输出该C系统为某些数据分配的字节数。
【C函数 2】
void test_f2()
{ char str[] = "NewWorld"; char *p = str; char i = '\0';
void *ptr = malloc(50);
printf("%d\t", sizeof(str)); printf("%d\n", sizeof(p));
printf("%d\t", sizeof(i)); printf("%d\n ", sizeof(ptr));
}
【问题 2】(4分)
请写出函数test_f2()的运行结果。
【说明 3】
函数 test_f3(char s[])的功能是:将给定字符串 s 中的所有空格字符删除后形成的串
保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。
【C函数 3】
char *test_f3 (const char s[])
{ char tstr[50]={'\0'}; unsigned int i, k = 0;
for(i=0; i<strlen(s); i++)
if (s[i] != ' ') tstr[k++] = s[i];
return tstr;
}
【问题 3】(6分)
函数test_f3()对返回值的处理有缺陷,请指出该缺陷并说明修改方法。
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!