软考程序员下午试题类型_程序员考试下午试题(模拟)
【shitiku.jxxyjl.com--计算机技术】
一、把一个字符串插入到另一个字符串的某个位置(指元素个数)之后
char *insert(char *s,char *t,int position)
{ int i;
char *target;
if(position>strlen(t)) printf("error");
else
{ for (i=0;i< (1) ;i++)
{ if (i<position)
target[i]=s[i];
else
{ if(i< (2) )
target[i]=t[i];
else (3) ;
}
}
}
return garget;
}
二、辗转相除法求两个正整数的最大公约数
int f(int a,int b)
{ if (a==b) (4) ;
else
{ if (a>b) return f(a-b,b);
else (5) ;
}
}
三、求一个链表的所有元素的平均值
typedef struct { int num;
float ave;
}Back;
typedef struct node{ float data;
struct node *next;
} Node;
Back *aveage(Node *head)
{ Back *p,*q;
p=(Back *)malloc(sizeof(Back));
if (head==NULL)
{ p->num=0;
p->ave=0; }
else
{ (6) ;
p->num=q->num+1;
(7) ; }
retuen p;
}
main()
{ Node *h; Back *p;
h=create(); /*建立以h为头指针的链表*/
if (h==NULL) printf("没有元素");
else { p=aveage(h);
printf("链表元素的均值为:%6f",p->ave);
}
}
四、希尔排序
已知待排序序列data[n];希尔排序的增量序列为d[m],其中d[]序列降序排列,且d[m-1]=1。其方法是对序列进行m趟排序,在第i趟排序中,按增量d[i]把整个序列分成d[i]个子序列,并按直接插入排序的方法对每个子序列进行排序。
希尔排序的程序为:
void shellsort(int *data,int *d,int n,int m)
{ int i,j;
for (i=0;i<m;i++)
for (j=0; (1) ;j++)
shell( (2) );
}
void shell(int *data,int d,int num,int n)
{ int i,j,k,temp;
for (i=1; (3) ;i++)
{ j=0;
temp=data[j+i*d];
while ((j<i)&&( (4) ))
j++;
for (k=j;k<i;k++)
data[k+1]=data[k];
(5) ;
(6) }
}
五、求树的宽度
所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。本算法是按层次遍历二叉树,采用一个队列q,让根结点入队列,最后出队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。
int Width(BinTree *T)
{ int front=-1,rear=-1; /* 队列初始化*/
int flag=0,count=0,p;/*p用于指向树中层的最右边的结点,flag记录层中结点数的最大值。*/
if(T!=Null)
{ rear++; (1) ; flag=1; p=rear;
}
while( (2) )
{ front++;
T=q[front];
if(T->lchild!=Null)
{ rear++; (3) ; count++; } //
if(T->rchild!=Null)
{ rear++; q[rear]=T->rchild; (4) ; }
if(front==p) /* 当前层已遍历完毕*/
{ if( (5) ) flag=count; count=0; //
p=rear; /* p指向下一层最右边的结点*/
}
}
return(flag);
}
六、区间覆盖
设在实数轴上有n个点(x0,x1,……,xn-2,xn-1),现在要求用长度为1的单位闭区间去覆盖这n个点,则需要多少个单位闭区间。
int cover(float x[ ], int num)
{ float start[num],end[num];
int i ,j ,flag, count=0;
for (i=0;i<num;i++)
{ flag=1;
for (j=0;j< (1) ;j++)
{ if ((start[j]>x[i])&&(end[j]-x[i]<=1)) (2) ;
else if ( (3) ) end[j]=x[i];
else if ((x[i]>start[j])&&(x[i]<end[j])) flag=0;
if (flag) break;
}
if ( (4) )
{ end[count]=x[i]; (5); count++; }
}
return count-1;
}
start[count]=x[i]
七、围棋中的提子
在围棋比赛中,某一方(假设为黑方)在棋盘的某个位置(i,j)下子后,有可能提取对方(白方的一串子)。以W[19][19]表示一个棋盘,若W[i][j]=0表示在位置(i,j)上没有子,W[i][j]=1表示该位置上的是黑子,W[i][j]=-1表示该位置上是白子。可以用回溯法实现提子算法。
下列程序是黑棋(tag=1)下在(i,j)位置后判断是否可以吃掉某些白子,这些确定可以提掉的白子以一个线性表表示。
问题相应的数据结构有:
#define length 19 /*棋盘大小*/
#define max_num 361 /*棋盘中点的数量*/
struct position { int row; int col;
}; /*棋子位置*/
struct killed { struct position data[max_num]; int num;
} *p; /*存储可以吃掉的棋子位置*/
struct stack { struct position node[max_num]; int top;
}; /*栈*/
int w[length][length]; /*棋盘中双方的棋子分布*/
int visited[length][length]; /*给已搜索到的棋子位置作标记,初值为0,搜索到后为1*/
struct killed *kill(int w[length][length],int r,int c,int tag)
{ struct killed *p;
struct position *s;
struct stack S;
for (i=0;i<length;i++)
for (j=0;j<length;j++)
(1) ;
S.top=-1; p->num=-1;
if (w[r-1][c]==tag*(-1)) s->row=r-1; s->col=c;
else if (w[r+1][c]==tag*(-1)) s->row=r+1; s->col=c;
else if (w[r][c-1]==tag*(-1)) s->row=r; s->col=c-1;
else if (w[r][c+1]==tag*(-1)) s->row=r; s->col=c+1;
else p->len=0; return p;
push(S,s); visited[s->row][s->col]=1;
flag=search(s,tag);
while ( (2))
{ push(S,s); visited[s->row][s->col]=1;
(3);
}
while (S->top>=0)
{ pop(S);
(4);
flag=search(s,tag);
while (flag)
{ push(S,s);
visit(s);
flag=search(s);
}
}
}
void push( struct stack *S, struct position *s)
{ S->top++;
S->node[S->top].row=s->row;
S->node[S->top].col=s->col;
p->num++;
p->data[p->num].row=s->row;
p->data[p->num].col=s->col;
}
void pop(struct stack *S)
{ S->top--;
}
struct position *gettop(struct stack *S)
{ struct position *s;
s->row=S->data[S->top].row;
s->row=S->data[S->top].row;
return s;
}
int search(struct position *s,int tag)
{ int row,col;
row=s->row; col=s->col;
if (W[row+1][col]=(-1)*tag)&&(!visited[row+1][col])
{ s->row=row+1;s->col=col; return 1;}
if (W[row-1][col]=(-1)*tag)&&(!visited[row-1][col])
{ s->row=row-1;s->col=col; return 1;}
if (W[row][col+1]=(-1)*tag)&&(!visited[row][col+1])
{ s->row=row;s->col=col+1; return 1;}
if (W[row][col-1]=(-1)*tag)&&(!visited[row][col-1])
{ s->row=row;s->col=col-1; return 1}
(5);
}
答案:
(1)strlen(s)+strlen(t) (2)position+strlen(t) (3)target[i]=s[i-strlen(t)]
(4)return a (5)return f(a,b-a)
(6)q=aveage(head->next) (7)p->ave=(head->data+q->ave*q->num)/p->num
(1)j<d[i] (2)data,d[i],j,n (3)num+i*d<n (4)data[j+i*d]<temp (5)data[j]=temp
(1)q[rear]=T (2)front<p (3)q[rear]=T->lchild (4)count++ (5)flag<count
(1)count (2)(x[i]>end[j])&&(x[i]-start[j]<=1) (3)start[j]=x[i] (4)!flag (5)
(1)visited[i][j]=0 (2)flag (3)flag=search(s,tag) (4)s=gettop(S) (5)return 0
-
【2020年下半年网络工程师答案】2005年下半年网络工程师填空题总结详细阅读
第二章 1、 数据可定义为有意义的实体,它涉及到事物的存在形式,数据可分为______和_______两大类。 2、 信号是数据的电子或电磁编码。对应于模拟数据和数字数据,信号也可分为______和______两大类。 3、 通信过程中产生和发送信息的设备或计算机...
-
【微波网络基础试题】网络基础试题100例(附答案)详细阅读
1 “令牌环环存在冲突检测问题”的说法(B)A 正确 B 错误 2 网络中PC机与集线器相联所使用的网线接头类型为?AA RJ-45 B RJ-11 3 100BaseT中的“Base”的意义是?BA 基础传输 B 基带传输 4 下面哪种网络类型适合对网络进行集中管理?BA Peer-to-Peer...
-
[软考网络工程师真题]软考网络工程师模拟试题及答案(三)详细阅读
试题1从选择的答案中,选出应填入下面的叙述中_?_内的最确切的解答,把相应的编号写在答卷的对应栏内。在网络中使用的5类UTP作为传输介质,单段UTP的最长长度为_(1)_米,采用EIA568A布线标准时,可以达到的最高数据率是_(2)_Mbps STP与UTP的主要区别是_(3)_。一般而言,单模光...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(六)详细阅读
·多路复用技术能够提高传输系统利用率。常用的多路复用技术有_(1)_。将一条物理信道分成若干时间片,轮换的给多个信号使用,实现一条物理信道传输多个数字信号,这是_(2)_。将物理信道的总频带宽分割成若干个子信道,每个信道传输一路信号,这是_(3)_。在光纤中采用的多路复用技术是_(4)_,多路复用技...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(二)详细阅读
数据通信中采取的纠错方式通常有两种,即丢弃重发和(1),丢弃重发方式中,当线路出错率较高时,其效率较高的控制协议时(2)。海明码的是属于(3)纠错方式中常用到的措施,这种方式一般适合于(4) 情况。在Go Back N ARQ协议中,若窗口大小用K位二进制表示,且分别WT和WR表示发送窗口大小和...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(五)详细阅读
第2章 计算机硬件基础知识复习题1单项选择题(1)中央处理器包括( )。A 运算器和控制器 B 累加器和控制器C 运算器和寄存器组 D 运算和控制系统答案:A。分析:中央处理器简称CPU,由运算器和控制器组成。(2)运算器的作用是( )。A 计算...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(一)详细阅读
网络工程师模拟试题上(1) 若卫星信道的数据传输率为1Mbps,帧长为1000bit,利用卫星信道的两个站点从一方到另一方的传播时延为250ms。忽略确认帧长和处理时间则若帧的出错概率为0 1, 而假设应答帧不出现错误,当采用停等协议时,其协议效率是(1)。若采用连续ARQ协议,发送窗口Wt=7,接...
-
专升本模拟试题app_专升本微机原理模拟试题详细阅读
一、填空题(每空0 5分,共15分) 1 8086 CPU通过______________寄存器和______________寄存器能准确找到指令代码。 2 8086中地址 数据线分时复用,为保证总线周期内地址稳定,应配置___________,为提高总线驱动能力,应配置_____________。...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(四)详细阅读
试题一 阅读以下说明,回答问题1、问题2、问题3。[说明]随着网络应用的日益广泛,接入网络和边缘网络的需求也更加复杂多样,企业为了开展电子商务,必须实现与Internet的互联,路由器是实现这一互联网的关键设备,路由器可以位企业提供越来越多的智能化服务,包括安全性、可用性和服务质量(QoS)等。...
-
网络管理员面试试题及答案_2005年5月网络管理员试题及答案详细阅读
1.在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规2B铅笔在你写入的准考证号下填涂准考证号。2.本试卷的试题中共有75个空格,需要全部解答,每个空格1分,满分75分。3.每个空格对应一个序号,有A、B、C、D四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。4.解答前...