考研模拟面试-题目【攻略】
前言
2023-10-19 12:00:57
以下内容源自《考研模拟面试-答案》
仅供学习交流使用
版权
禁止其他平台发布时删除以下此话
本文首次发布于CSDN平台
作者是CSDN@日星月云
博客主页是https://jsss-1.blog.csdn.net
禁止其他平台发布时删除以上此话
推荐
如果简历的话,看一下简历
以下题目都是本人亲自想出来的
如果你能信手拈来,那你绝对没有问题的。
考研模拟面试-题目
前面的问题
请简单的自我介绍一下
你的家乡是哪?(请用英文介绍一下你的家乡)
本科专业是什么?(如果有,你为什么转专业? )
你是如何学习你的专业的?(考查学习方法)
遇到问题,你通常是怎么解决的?(考查解决困难的方法)
自己解决不了怎么办?查资料,问别人?
建议:3小时期限解决不了,就问其他人。
通用问题
你学过什么编程语言?
你认为他们之间的区别是什么?
如果提到了面向对象:
可问:你是怎么理解面向对象的
提示:特点或者其他理解都行
你本科课程的专业课是什么?
你认为你学的最好的一门课程是什么?
专业题
根据他的简历和问题的回答,
问其中一个或几个
数据结构
你学过什么数据结构
栈和队列的区别
字符串的匹配算法
提示:BP算法和KMP算法
跳转:next手写题
树的表示法
提示:双亲表示法,孩子表示法,兄弟孩子表示法
树的遍历算法
提示:前序,中序,后序
问给定哪些就可以确定二叉树?
跳转:手写题
二叉树和森林的转换
哈夫曼树的创建算法
跳转:手写题
图的存储算法:
提示:邻接矩阵和邻接表
区别:稀疏图和稠密图
最短路径的算法
提示:Dijkstra和Floyd
最小生成树的生成算法
提示:Prim和Kruskal
区别:稀疏图和稠密图
拓扑排序算法
提示:找到入度为0的点入栈,
如果栈不为空,从栈中弹出,并删除他所对应的边,如果入度变为0就入栈
判断:栈是否为空和结点是否全部遍历
有哪些查找算法
提示:顺序,折半,hash
跳转:手写题
有哪些稳定的排序算法
提示:冒泡、插入、归并、基数
冒泡排序的优化
提示:没有交换就返回
快速排序的过程和特点,时间复杂度:O(nlog(n))
特点:第n趟排序至少有n个数到其最终位置上
跳转:手写题
计算机网络
计算机网络有哪几层?
各层的功能和协议
IP地址的分类
为什么出现无分类的
如果提到了IPv4的地址不够用,
可问:除了无分类还有哪些技术解决不够用?
提示:IPv6
课文:IPv6的地址大小是IPv4的多少倍?
提示:128/32=4倍
跳转:手写题
UDP和TCP的区别?
TCP的三握四挥
TCP如何保证可靠性
DNS的过程
Http的优化
Http和Https的区别
操作系统
有哪些进程调度算法
跳转手写题
你对虚拟内存的理解
有哪些页面置换算法
跳转手写题
有哪些磁盘调度算法
数据库
left join和right join的区别
数据库的三大范式
有没有需要违反范式的设计
数据库事务及其特性
网络安全
对称加密和非对称加密算法的区别
有哪些算法
手写题
数据结构
前序和中序给出后序
前序遍历A-B-D-F-G-H-I-E-C
中序遍历F-D-H-G-I-B-E-A-C
后序遍历F-H-I-G-D-E-B-C-A
前序(根左右),中序(左根右),后序(左右根)
已知一颗二叉树的先序遍历结果ABDGCEF,则其可能的后序遍历结果为()。
A GDBEFCA
B DGBAECF
C BGECFDA
D BAGDECF
字符串"abaabcabc"的next值为()
Hello World的哈夫曼编码
哈希表的平均查找长度
10 24 32 17 31 30 46 47 40 63 49
哈希表:0~17
哈希函数:n%16
哈希冲突:index=i+1
平均查找长度AVL
假设一个数组采用快速排序,则下面的选项中,不可能是第4趟排序结果的是
A 5,2,4,9,10,12,14
B 14,11,9,10,6,4,2
C 2,4,11,13,10,14,18
D 6,8,10,12,14,2,4
操作系统
P1,P2,P3,P4四个进程到达时间和运行时间如下所示,则使用FCFS调度算法则平均周转时间是()
进程 | 到达时间 | 运行时间 |
---|---|---|
P1 | 0 | 7 |
P2 | 2 | 4 |
P3 | 4 | 1 |
P4 | 5 | 4 |
总共有70,先分配20,再分配35,回收20,在分配13,再分配11,采用最佳适应算法,最大的空闲区容量是多少
计算机网络
假设某网络块192.168.112.0中存在3台主机 A 、 B 、 C 。其中主机 A 的 IP 地址为192.168.112.40,主机 B 的 IP 地址为192.168.112.72,主机 C 的 IP 地址为192.168.112.100,如果主机 A 、 B 、 C 分别属于不同的网段,且 A 、 B 、 C 共同的子网码是255.255.255.224。则下列可能与主机 A 属于同一网段的 IP 地址有哪些(米哈游 2023/08/13)
A 192.168.112.32
B 192.168.112.36
C 192.168.112.40
D 192.168.112.60
当前的cwnd=8,下一个RTT之后可能会是多少
代码题
用你熟悉的语言实现?(最好是C语言)
基础代码题
请用链表实现一个栈
提示:实现入栈、出栈、取栈顶元素
c
#include<stdio.h>
#include<stdlib.h>
#define FALSE 0
#define TRUE 1
//链栈的C语言定义如下。
typedef int DataType;
typedef struct Stacknode{
DataType data;
struct Stacknode * next;
}slStacktype;
// 初始化
slStacktype* Init(){
slStacktype *p;
if((p=(slStacktype * )malloc(sizeof( slStacktype)))==NULL)
return NULL;
return p;
}
//(1)入栈操作
//将元素x压入链栈top中
//要求:成功返回TRUE 失败返回FALSE
int PushLstack(slStacktype * top, DataType x){
}
//(2)出栈操作
//从链栈top中删除栈顶元素
//要求:成功返回元素 失败返回-1
DataType PopLstack(slStacktype * top){
}
//取栈顶元素
//要求:成功返回元素 失败返回-1
DataType GetLsPop(slStacktype * top){
}
//测试
int main(){
slStacktype *sl=Init();
int x=1;
PushLstack(sl,x);
int y=GetLsPop(sl);
printf("%d\n",y);//1
int z=PopLstack(sl);
printf("%d\n",z);//1
}
请用数组实现一个循环队列
提示:实现入队、出队、判断队空
补充:
解决假溢出问题的三个方法
来自数据结构算法习题三的综合体中的7 8
- 少用一个元素空间:
(rear+1)%MAXSIZE==front
- 设置队尾元素位置
rear
和队中元素的个数quelen
- 设置标志位
tag
,区别队满队空
c
#include<stdio.h>
#include<stdlib.h>
#define FALSE 0
#define TRUE 1
#define MAXSIZE 10
//下面的循环以列及操作依据少用个元素空间来实现
//循环队列的类型定义及基本运算如下。
typedef int ElemType;
typedef struct{
ElemType elem [MAXSIZE];//队列的存储区
//队头队尾指针
int front, rear;
}CSeQueue;//循环队列
//(1)置空队
CSeQueue * IniseQueue(){
CSeQueue * q=(CSeQueue *)malloc(sizeof(CSeQueue));
q->front=q->rear=MAXSIZE-1;
return q;
}
//(2)入队
//要求:入队失败返回 FALSE 成功返回 TRUE
int InSeQueue( CSeQueue * q,ElemType x){
}
//(3)出队
//要求:出队失败返回 FALSE 成功返回 TRUE
int OutSeQueue( CSeQueue *q , ElemType *x){
}
//(4) 判断队空
//要求:队非空返回 FALSE 空返回 TRUE
int EmptySeQueue(CSeQueue *q){
}
int main(){
CSeQueue *cs=IniseQueue();
int x=1;
InSeQueue(cs,x);
printf("%d\n",EmptySeQueue(cs));//0
int x0;
OutSeQueue(cs,&x0);
printf("%d\n",x0);//1
printf("%d\n",EmptySeQueue(cs));//1
}
实现一个Hash表
提示:除留余数法+开放地址法
可问:平均查找长度
提示:编写[算法8-12]哈希表的查找HashSearch
c
#include<stdio.h>
#include<stdlib.h>
#define HASHSIZE 11
#define INIT -1
typedef int otherdata;
typedef struct{
int key;
otherdata other;
}Datatype;
// [算法8-10]采用除留余数法构造哈希函数
int HashFunc(int key){
return key%HASHSIZE;
}
//[算法8-11]采用线性探测再散列处理冲突
int Collision(int di){
return(di+1)%HASHSIZE;
}
//[算法8-12]哈希表的查找
int HashSearch(Hashtable ht, Datatype x){
}
//[算法8-13] 哈希表的插入
int HashInsert( Hashtable ht,Datatype x) {
int address;
address=HashSearch(ht,x);
if(address>=0)return 0;
int times=1;
address= HashFunc(x.key);//计算散列地址
while(ht[address].data.key!=INIT){
address=Collision(address);//没找到,处理冲突
times++;
}
ht[address].data=x;
ht[address].times=times;
return 1;
}
//[算法8-14]哈希表的创建
void Createht(Hashtable ht, Datatype L[],int n){
int i;
for(i=0;i<HASHSIZE;i++){
ht[i].data.key=INIT;
ht[i].times=0;
}
for(i=0;i<n;i++)
HashInsert(ht,L[i]);
}
//输出
void output(Hashtable ht){
printf("输出散列表\n") ;
int i;
printf("散列地址 关键字值 比较次数\n");
for(i=0;i<HASHSIZE;i++){
printf("%8d %8d %8d\n",i,ht[i].data.key,ht[i].times);
}
}
void CreateData(Datatype L[],int data[],int n){
int i;
for(i=0;i<n;i++){
L[i].key=data[i];
}
}
void printData(Datatype L[],int n){
int i;
for(i=0;i<n;i++){
printf("%d ",L[i].key);
}
}
// 19,01,23,14,55,68,11,82,36
int main(){
Hashtable ht;
Datatype L[9]={0};
int data[9]={19,1,23,14,55,68,11,82,36};
CreateData(L,data,9);
printData(L,9);
Createht(ht,L,9);
output(ht);
return 0;
}
其他代码题
回文或括号匹配
实现计算器:操作数栈和操作符栈
实现KMP算法
二叉树的遍历算法(非递归)
实现哈夫曼树
实现图的遍历
实现拓扑排序
实现最短路径
实现折半查找
实现快速排序
后面的问题
你认为你最有荣誉感或成就感的一件事?
你对自己的评价
对你最有帮助的人
你最敬佩的老师或同学,敬佩的点是什么
如果是班干部,可问:你认为怎么做好一个班干部?
你为什么选择我们学校?
你对研究生生活的期待是什么样的?
补充题目
你有什么反问我的吗?
你有什么其他问题想问后面的同学吗?
给我的题库做补充。
最后
我们都有光明的未来
祝大家考研上岸
祝大家工作顺利
祝大家得偿所愿
祝大家如愿以偿
点赞收藏关注哦