【学习笔记】内大复试
复试科目
复试批次 | 科目名称 | 分值 | 考试方式 | 考试时间 |
一志愿 | 程序设计 | 50 | 笔试 | 3月30日上午9:00-10:00 |
外国语 | 20 | 面试 |
3月30日下午 3月31日全天 |
|
专业能力 | 30 | |||
调剂 | 外国语 | 20 | 面试 | 另行通知 |
专业能力 | 80 |
成绩计算
复试成绩计算公式如下: 一志愿考生复试成绩 = 程序设计成绩 + 外国语成绩 + 专业能力成绩 调剂考生复试成绩 = 外国语成绩 + 专业能力成绩
入学考试总成绩计算公式如下: 入学考试总成绩(满分 100 分) = 初试成绩(折合为百分制) × 50% + 复试成绩 × 50%
程序设计(笔试)
2024真题
题目1
输入一个字符串,设计一个算法处理后可以从大到小输出每种字符(包含空格)及其个数
尝试
1 |
|
问题
1 | 1. 字符数组未初始化 |
标答
1 |
|
题目2
实现栈 stack 的基本操作函数。初始化 (Init_Stack)。创建一个空栈并分配必要的存储空间。 判空 (Stack_Empty)。检查栈是否为空,并返回相应的布尔值。 进栈(Push)。向栈中添加一个元素,这个操作通常将新元素添加到栈顶。 出栈(Pop)。从栈中移除一个元素,这个操作通常是移除栈顶元素。 读栈顶元素(GetTop)。返回栈顶元素但不删除它,如果栈是空的,这个操作可能会失 败或返回一个特殊值。 销毁栈 (DestroyStack)。释放栈占用的所有存储空间,并设置指针为 NULL。
答案
1 |
|
题目3
设计一个算法实现输入一个数字将其转换成汉语大写并输出 例:输入 0 输出 零 输入 121 输出 一百二十一 输入 -121 输出 负一百二十一
1 | 测试 |
2023真题
题目1
帮助大家利用鞋码算出脚长。要求: 1、允许用户输入自己的鞋码,并有提示语'请输入你的鞋码:',不需要包括单引号; 2、计算鞋码,脚长=(鞋码+10)/2; 3、输出脚长,并有提示语'你的脚长是:' 示例 输入:38 输出:你的脚长是:24.0
1 |
|
题目2
给定一个以秒为单位的时间t,要求用“H:M:S”的格式来表示这个时间。H表示时间,M表示分钟,而S表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。 输入格式 输入只有一行,是一个整数t(0<=t<=86399)。 输出格式 输出只有一行,是以“H:M:S”的格式所表示的时间,不包括引号。 样例输入 5436 样例输出 1:30:36
1 |
|
题目3
有n个学生的信息(包括学号,姓名,成绩),存入结构体中,要求按照成绩的高低顺序输出学生的信息。
1 |
|
优化后
1 |
|
题目4
输入字符串A、字符串B,求在字符串A、字符串B中相同的字符个数
1 |
|
在上述程序中,我们用 gets()
函数代替了
scanf()
函数,确保了可以一次性读取一整行输入。然后我们需要确保输入的字符串不会超出数组的容量,以避免缓冲区溢出的情况。
上述scanf语句中可以把A写成&A吗?
不可以,scanf函数中应该直接使用数组名,而不需要加上取地址符号 &。数组名本身就代表数组在内存中的地址,因此不需要使用 &。所以正确的写法是: scanf("%s", A); scanf("%s", B);
若输入的是%c则可以写成&A吗
对于%c格式的输入,需要使用 & 取地址符号来获取输入的字符的地址。因此,对于%c格式的输入,可以写成&A。所以正确的写法是: scanf("%c", &A); scanf("%c", &B);
其中%s是什么意思
%s 是 scanf 函数的格式控制符,用于读取字符串。当使用 %s 时,scanf 会从输入中读取字符,直到遇到空白字符(空格、制表符、换行符)或者字符串结束符 \0 为止,并将读取的字符序列存储到指定的字符串变量中,以空字符 \0 结尾。 例如,scanf("%s", str); 会从标准输入中读取一个字符串,并将其存储到 str 中。
2019真题
题目1
输入10个人的成绩,计算平均分,记录低于平均分的人数,并将他们的成绩输入到一个数组中
1 |
|
题目2
使用递归方法从数组中找出最大值
1 |
|
题目3
求解一元二次方程组(三种情况)(一个解,两个,复数解)
1 |
|
题目4
输入字符串和一个数字,并将字符串以数组方式存储并进行平移操作, 如abdcf 向前平移2个 变成dcfab
尝试
1 | //输入字符串和一个数字,并将字符串以数组方式存储并进行平移操作, 如abdcf 向前平移2个 变成dcfab |
标答
1 |
|
题目5
用二维数组实现矩阵乘法
尝试
1 | //用二维数组实现矩阵乘法 |
标答
1 |
|
题目6
输入工人的工资,要求工资从小到大进行排序,并以链表的形式进行存储并输出
尝试 由AI完善
1 |
|
题目7
快速排序
1 |
|
2018真题
题目1
两个正整数间所有偶数和
1 |
|
题目2
输入一个数,计算 \[ 1\times 1+2\times 2+...+n\times n \]
1 |
|
题目3
迭代法求平方根 迭代公式为: \[ x_{n+1}=\frac{1}{2}(x_n+\frac{a}{x_n}) \] 要求前后两次求出的得差的绝对值少于0.00001
1 |
|
题目4
读文件,统计行数,大小写字母,数字
1 |
|
题目5
(a+b)的n次方方程的展开后的各项系数,即杨辉三角
1 |
|
题目6
输入一个整数,递归逆序输出这个整数的各位数,例如n为4892,则输出2984
1 |
|
其他
输入两个数m,n,然后输入一个m进制字符串,将其转化为n进制
1 |
|
C语言中使用快速排序
1 |
|
外国语(面试)
自我介绍(self-introduction)
Good morning/afternoon, dear professors. It is my honor to meet all of you here. My name is Wang Qinlei, (you know), "qin" in Chinese means diligent and hard-working while "lei" represents frank and honest. These qualities truly reflect who I am. I'm twenty-two years old and come from Jining, Shandong Province, a city with rich history and vivid culture. I will be graduating this year from Linyi University with a Bachelor's degree in Software Engineering, which let me step into the door of computer and programming.
During my undergraduate studies, I gained some relevant skills, such as CET4(College English Test Band 4), database system engineer in software examination, second prize in 'LanQiao Cup' algorithm competition, second prize in CUMCM(China Undergraduate Mathematical Contest in Modeling) and so on, which developed my programming literacy and teamwork capability. I kept writing blogs in my spare time, now I've written about one hundred blogs. With the advent of autonomous driving and ChatGPT, I became increasingly interested in computer vision and large models. And I know university education only offer a rough understanding of programming, deeper researches are needed. So, I took this examination to further my academic study.
I am determined to further my academic pursuit here. Finally, I ended my self-introduction with a sentence. I do not know where to go,but I have been on the road.
That's all about me. Thanks for your listening!
逐句翻译
Good morning/afternoon, dear professors.
尊敬的各位教授,早上/下午好。
It is my honor to meet all of you here.
非常荣幸能在这里与大家见面。
My name is Wang Qinlei, (you know), "qin" in Chinese means diligent and hard-working while "lei" represents frank and honest.
我叫王勤磊,“勤”在中文里意为勤奋刻苦,“磊”则代表坦诚正直。
These qualities truly reflect who I am.
这些品质正是我的真实写照。
I'm twenty-two years old and come from Jining, Shandong Province, a city with rich history and vivid culture.
我今年二十二岁,来自山东省济宁市,一个拥有丰富历史和生动文化的美丽城市。
I will be graduating this year from Linyi University with a Bachelor's degree in Software Engineering, which let me step into the door of computer and programming.
今年我将从临沂大学软件工程专业毕业,获得学士学位,这让我踏上了计算机和编程的大门。
During my undergraduate studies, I gained some relevant skills, such as CET4 (College English Test Band 4), database system engineer in software examination, second prize in 'LanQiao Cup' algorithm competition, second prize in CUMCM (China Undergraduate Mathematical Contest in Modeling) and so on, which developed my programming literacy and teamwork capability.
在本科期间,我掌握了一些相关技能,例如通过了大学英语四级考试(CET4),获得了软件评测师(数据库系统工程师)证书,在“蓝桥杯”算法竞赛中获得二等奖,在全国大学生数学建模竞赛(CUMCM)中也获得了二等奖等。这些经历不仅提升了我的编程素养,还锻炼了我的团队合作能力。
I kept writing blogs in my spare time, now I've written about one hundred blogs.
课余时间,我一直坚持写博客,至今已经撰写了大约一百篇技术文章。
With the advent of autonomous driving and ChatGPT, I became increasingly interested in computer vision and large models.
随着自动驾驶和ChatGPT等新兴技术的发展,我对计算机视觉和大模型产生了浓厚的兴趣。
And I know university education only offers a rough understanding of programming, deeper researches are needed.
我知道,大学教育只能提供编程的初步理解,深入的研究还需要进一步的学习。
So, I took this examination to further my academic study.
因此,我参加了这次考试,以继续深造。
I am determined to further my academic pursuit here.
我决心在这里进一步追求学术研究。
Finally, I ended my self-introduction with a sentence.
最后,我想用一句话结束我的自我介绍。
I do not know where to go, but I have been on the road.
我不知道要去哪里,但我一直在路上。
That's all about me. Thanks for your listening!
这就是我,谢谢大家的聆听!
提问
研究生期间计划(plans in the postgraduate study)
What are your plans for graduate school?
职业规划(career planning)
What are your career plans for the future?
介绍你的家庭(family)
Please introduce your family?
The person in your family who has the most influence on you, and explain?
介绍你的大学(university)
When and where did you graduate?
介绍你的家乡(hometown)
Please introduce your hometown
Tell me about a traditional culture in your hometown
Tell me about your hometown cuisine
兴趣爱好(hobby)
Describe your interests
What's your favorite movies?
What is your favorite sport?
What is your favorite song and why do you like it?
What kind of job do you like to give three reasons?
What's your favorite food? Why is that?
性格特点(personality)
What are your strengths and weaknesses/personalities?
印象中最深刻的一件事(memory)
如果这次失败了,你会怎么做?
If you fail this time, what will you do?
研究生需要具备哪些(品质)能力?
What abilities are required of graduate students?
你在大学里参加过什么社团或者活动?并获得了什么?
What clubs or activities did you participate in at university? And what did you get?
你最喜欢的老师?对你影响最大的老师?
The teacher who influenced you the most
Which kind of professors do you like best?
介绍一下你的大学生活
Tell me about your college life
你认为最好的大学生活是怎样的?
What is the best university life in your opinion?
你最怀念现在学校的什么?
What do you miss most about your current school?
明年你想要做什么?
What you want to do next year?
如果你成功通过复试,你是否有心仪的老师?
If you successfully pass the second interview, do you have a favorite teacher?
说说你的获奖情况
Tell me about your awards
What qualifications have you obtained?
我们为什么录取你?你和其他人有什么不同?
Why did we admit you? What makes you different from the other candidates?
本科学习阶段最大的挑战是什么?并且是如何克服的?
What are the biggest challenges in undergraduate study?And how did they overcome it?
你如何解决你曾经犯过的错误?
How do you solve a mistake you once made?
寒假假期干了什么?
What did you do during your winter vacation?
最擅长的课程?最喜欢的课程?
What is your best subject?What is your favorite subject?
数学在计算机中重要吗?为什么?给出三个理由
Is mathematics important in computers? Why give three reasons?
你最后悔的事?最怕的事?
What's your biggest regret?
人生方向
If you were given only one choice, would you choose a specialized life direction or a divergent life direction?
如果团队里有人不干活,你会怎么处理?
What do you do when other people on your team don't do their jobs?
使你感到最兴奋的一件事,说出三个原因?
What is the one thing you are most excited about, and name three reasons why?
你最害怕什么?
What are you most afraid of?
如何解决压力?
How do you deal with stress?
如何平衡学习和生活?
How to balance study and life?
你的强项是什么?
What are your strengths?
你现在最在意什么?
What is your biggest concern right now?
怎么庆祝生日?
How do you celebrate your birthday?
人工智能是什么?
What is artificial intelligence?
你对科技的看法?
Talk about your views on technology
说一下互联网的优缺点
Let's talk about the advantages and disadvantages of the Internet
你认为对我们专业影响最大的人是谁?
Who do you think has had the greatest impact on our profession?
你认为是哪一个学科推动了社会的进步?
QQ和微信你觉得哪一个更好?
good和excellent的区别
What's difference between good and excellent?
大学生的使命?
Mission of college students
你觉得钱不重要得三个原因?
Do you have three reasons why money is not important?
你为什么选择内蒙古大学?
Why did you choose Inner Mongolia University?
为什么不选择本校的研究生?
Why not choose a graduate student from an undergraduate school?
为什么考研?
Why do you plan to make master’ s degree?
为什么选择这个专业?
Why did you study this major?
应急措施:
问题没听清时:
I'm sorry, I didn't get your question.
Could you say it again?
问题不会时:
I'm so sorry. I find it hard for me to answer this question.
So could you mind asking another question?
等待一分钟:
I'm so sorry. I find it hard for me to answer this question. So,may I have two minutes to think about it?
总结
smile bar
- s-3 个
-studying in a great academic atmosphere 好的学术氛围学习
-searching literature quickly and accurately 快速准确搜索⽂献
-shortening the distance with friends 拉近和朋友的距离
- m-3 个
-making more excellent/outstanding friends(new)认识更多优秀的朋友
-maintaining my continuous passion for study 保持持续的热情
-making great efforts for my goals 努⼒实现⽬标
- i-1 个
improving my study efficiency 提⾼学习效率/ competence 竞争力/social responsibility 社会责任感
- l-2 个
-living in a beautiful campus ⽣活在美丽的校园
-learning more things 学到更多东⻄/learning more knowledge 知识
- e-3 个
-enriching my (spiritual) life
-enjoying the great teaching faculty.享有好的师资⼒量
-exploring new things 探索新事物
- b-3 个
-bearing hardships and sufferings 吃苦耐劳
-becoming a more positive/optimistic person 更乐观
-broadening my horizons 开阔视野
- a-2 个
-acquiring X 获得 X
先进知识 more advanced knowledge
更⾼平台 a higher platform
更多快乐和满⾜感 more happiness and satisfaction
更⼤动⼒ more motivation
-adapting to the new environment quickly 适应新环境
- r-2 个
-relaxing myself 放松自己
-relieving my pressure 缓解压力
你喜欢的?
模板
Thanks for your question! 感谢您的问题
X
is my favorite___
, because: X是我最喜欢的___
,因为From
___
, I can benefit a lot, such as A, B and C. 通过___
,我受益颇多,比如...All of these would be helpful to my future life and study. 这些对我未来的生活和学习都很有帮助
书籍(book)
Thanks for your question!
《Three Days to See》is one of my favorite books, because:
From reading this book, I benefit a lot, such as acquiring more motivation, becoming a more positive person and enriching my spiritual life.
All of these would be helpful to my future life and study.
专业书籍(professional book)
Thanks for your question!
《The Crowd》is one of my favorite books, because:
From reading this book, I benefit a lot, such as gaining deeper insights into human behavior, understanding the dynamics of group psychology, and learning how collective thought can influence individual actions. Broadening my horizons in this way has helped me appreciate the complexity of social phenomena. Additionally, it has improved my competence in analyzing crowd behavior and its implications on society.
All of these would be helpful to my future life and study
老师(teacher)
Thanks for your question! The teacher I like the most is the one who teaches my Java course, because: From his class, I can always benefit a lot, such as acquiring more motivation, becoming a more positive person and learning more things. All of these would be helpful to my future life and study.
音乐(music)
Thanks for your question! Chasing Dreams with a Young Heart' is one of my favorite songs because: From listening to 'Chasing Dreams with a Young Heart', I can always benefit a lot, such as acquiring more motivation, becoming a more positive person and improving my social responsibility. All of these would be helpful to my future life and study
爱好(hobby)
Thanks for your question! Playing badminton is one of my favorite hobbies, because: From playing badminton, I can always benefit a lot, such as relieving my pressure, enriching my life and relaxing myself. All of these would be helpful to my future life and study.
颜色(color)
Thanks for your question! Blue is one of my favorite colors, because: From looking at the blue sky when I feel sad, I can always benefit a lot, such as relieving my pressure, acquiring more motivation and relaxing myself.
课程(class)
Thanks for your question! Java Programming is one of my favorite classes/courses because: From Java, I can always benefit a lot, such as broadening my horizons, improving my competence and learning more things. All of these would be helpful to my future life and study.
景点(scenic spots)
Thanks for your question! 'Xinglong Pagoda' is one of my favorite scenic spots because: It is located in my hometown and was originally built during the Tang Dynasty, possessing a long and profound history. From visiting the 'Xinglong Pagoda', I can always benefit a lot, such as broadening my horizons, relieving my pressure and relaxing myself. All of these would be helpful to my future life and study.
季节(season)
Thanks for your question! The spring is one of my favorite seasons because: From traveling in Spring, I can always benefit a lot, such as broadening my horizons, relieving my pressure and relaxing myself. All of these would be helpful to my future life and study.
歌手(singer)
Thanks for your question! Deng Ziqi is one of my favorite singer because: From listening to her songs, I can always benefit a lot, such as relieving my pressure and relaxing. Additionally, her melodies and lyrics often resonate with my emotions, providing comfort and inspiration. All of these would be helpful to my future life and study.
运动员(athlete)
Thanks for your question! Lin Dan is one of my favorite athlete because: From watching his matches, I can always benefit a lot, such as relieving my pressure, relaxing myself and learning badminton skills. All of these would be helpful to my future life and study.
大学参加?
实习(intern experience、internship)
活动(activity)
社团(club)
Thanks for your question!
During my undergraduate studies, I took part in X X1=志愿活动 volunteer activities for the our city library X2=竞赛 many competitions about my major, such as Lan qiao Cup, China Undergraduate Mathematical Contest in Modeling X3=证书 many certificate examinations, such as CET4, CET6 and Software Examination X4=实习 an internship in a Internet campany
From this experience, I benefit a lot, such as learning more things, making more excellent friends and improving my competence.
All of these would be helpful to my future life and study.
你为什么选择 ?
模板
Thanks for your question! 感谢您的问题!
I decided to
xxx
, because: 我选择xxx
,因为:From 考研/学校/换专业/城市/毕业论⽂/本科/读研计划, I can benefit a lot, such as A, B and C.
All of these would be helpful to my future life and study.
考研(pursue a master degree)
Thanks for your question! I decided to continue my study, because: From pursuing a master degree, I can benefit a lot, such as acquiring a higher platform, making more excellent friends, learning more things and broadening my horizons. All of these would be helpful to my future life and study.
我们学校(our university)
Thanks for your question! I decided to choose your university, because: From pursuing a master degree in your university, I can benefit a lot, such as studying in a great academic atmosphere, living in a beautiful campus and enjoying the great teaching faculty. All of these would be helpful to my future life and study.
读研计划(postgraduate study)
Thanks for your question! I decide to focus on my study in the next several years, because: From doing this, I can benefit a lot, such as learning more things, broadening my horizons, improving my competence. All of these would be helpful to my future life and study.
介绍一下你的?
模板
Thanks for your question!
I come from
xxx
.From
xxx
, I/people can benefit a lot, such as A, B and C.All of these would be helpful to my future life and study.
家庭(family)
Thanks for your question! I come from a family with unconditional love and respect. From talking with my parents, I can always benefit a lot, such as acquiring more motivation, learning more things and relieving my pressure. All of these would be helpful to my future life and study.
本科学校(undergraduate school)
Thanks for your question! I come from Linyi University, a very beautiful school. It is called the largest single university in Asia. From studying in my university, I benefit a lot, such as learning more things, making more excellent friends and improving my competence. All of these would be helpful to my future life and study
家乡(hometown)
Thanks for your question! I come from Jining, Shandong province: it has a lot of scenic spots, such as the birthplace of Confucius (Confucius Mansion, Confucius Temple, Confucius forest) , and Taibai Tower, where Li Bai once drank wine and wrote poems. From visiting my hometown, people can benefit a lot, such as relieving their pressure, acquiring unique experience and broadening their horizons.
评价人?
模板
Thanks for your question!
你是个什么样的人/你最突出的优点
In my view, I am a girl/boy who is willing to A, B and C.
你的缺点是什么
In my view, I am a girl/boy who is not good at A, B and C
研究⽣具备什么能⼒
In my view, a qualified postgraduate should be a girl/boy who is able to A, B and C.
合格的导师是什么样的
In my view, a qualified supervisor should be a teacher who is able to A, B and C.
你是个什么样的人
In my view, I am a girl/boy who is willing to explore new things, make great efforts for my goals and adapt to the new environment quickly.
你最突出的优点
In my view, I am a girl/boy who is willing to explore new things, make great efforts for my goals and adapt to the new environment quickly.
你的缺点是什么
In my view, I am a girl/boy who is not good at making new friends,
explore new things and adapt to the new environment.
研究生具备什么能力
In my view, a qualified postgraduate should be a girl/boy who is able to explore new things, make great efforts for my goals and search literature quickly and accurately.
合格的导师是什么样的
In my view, a qualified supervisor should be a teacher who is able to explore new things and maintain his continuous passion for study.
专业能力(面试)
1 | 数据结构 |
数据结构
什么是数据结构?
数据结构是具有某些关系的数据元素的集合。
数据元素三要素:逻辑结构、物理结构、运算
逻辑结构:线性结构、非线性结构(树、图)
物理结构:顺序结构、链式结构、索引结构
O是什么意思?
它是算法的一个量级,在时间复杂度中表示所有语句的频次,在空间复杂度中表示辅助空间大小
循环和递归的区别?
循环:速度快,结构简单,但不适用于解决所有问题
递归:代码简单,但效率低,可能导致堆栈溢出
顺序表和链表的区别?
顺序表:支持随机存取,因此查询操作时间复杂度为O(1),增删操作时间复杂度为O(n),物理地址空间连续。
链表:不支持随机存取,只支持顺序存取,因此查询操作时间复杂度为O(n),增删操作时间复杂度为O(1),物理地址空间不一定连续。
头指针和头结点的区别?
头指针指向头结点,头结点是第一个元素前的节点,通常不存储实际数据,仅用于简化链表操作,首元结点才是第一个数据节点。
栈和队列的区别?
栈是先进后出,只能在栈顶进行插入和删除操作,主要应用于函数调用、递归、括号匹配
队列是先进先出,在队尾进行插入,在队头进行删除,主要应用于广度优先搜索、消息队列、任务调度,还可以用于树的层次遍历
简单说明共享栈?
共享栈就是让两个顺序栈存储在一个一维数组中,两个栈的栈底分别位于共享栈的两端,插入数据时向共享栈的中间进行延伸,当top[0]+1=top[1]时,栈满
简单说明循环队列?
循环队列就是用一个定长的数组作为队列,当队列为空时,
Q.rear=Q.front
,当队列满时,(Q.rear+1)%maxsize=Q.front
几种表达式的算法思想?
前缀表达式:从右向左扫描表达式。遇到操作数,直接压入栈中;遇到运算符,弹出栈顶的两个操作数,进行运算,然后将结果压入栈中。扫描结束后,栈中剩余的即为表达式的值。
后缀表达式:从左到右扫描表达式。遇到操作数,直接输出;遇到运算符,弹出栈中优先级较高的运算符,直到栈顶运算符优先级较低或栈为空,然后将当前运算符压入栈中。扫描结束后,将栈中剩余运算符依次输出。
中缀转后缀:
- 使用栈来临时存放运算符。
- 遇到左括号,压入栈中。
- 遇到右括号,弹出栈中运算符直到遇到左括号。
- 遇到运算符,比较当前运算符与栈顶运算符的优先级,优先级高的运算符先弹出。
- 所有字符处理完毕后,将栈中剩余运算符依次弹出。
简述KMP算法?
KMP算法是对朴素算法的一种改进
预处理阶段:构建前缀函数数组(next数组),记录模式字符串中每个位置的最长前后缀。O(m)
匹配阶段:利用前缀函数数组,在遇到不匹配时跳转到前缀函数记录的位置,继续比较,避免从头开始。O(n)
树的几种存储方式?
双亲表示法:用一组连续的空间进行存储,有data和parent两个数据域,parent存放的是双亲在数组中的位置。
孩子表示法:将结点的每一个孩子用一个单链接连接起来。
孩子兄弟表示法:采用了二叉树的存储方法,左孩子右兄弟,可以实现树转化为二叉树的操作
简述广度优先搜索和深度优先搜索?
广度优先遍历:类似树的层次遍历,将v进入队列,访问顶点v并出队,让他的左右孩子进入队列,将队列中元素依次出队并在每次出队时让其左右孩子入队,直到队列为空,完成遍历。
深度优先遍历:类似于树的先序遍历,先访问结点v,然后访问v相邻并且没有被访问的顶点,依次访问刚刚被访问的相邻的并且没有被访问过得顶点
区别邻接矩阵和邻接表?
邻接矩阵适用于稠密图中,用一个二维数组表示各个结点间是否有关系,空间复杂度为 O(v²)
邻接表适用于稀疏图中,对每个结点建立一个单链表,存放依附于该结点的边,但是寻找入度比较困难,时间复杂度为有向图O(v+e)、无向图:O(v+2e)
特性 邻接矩阵 邻接表 存储结构 二维数组 链表数组 空间效率 浪费空间(稀疏图) 节省空间(稀疏图) 查边速度 O(1) O(k)(k为邻接顶点数) 遍历邻接点速度 O(V) O(k) 适用场景 稠密图、频繁查边、矩阵运算 稀疏图、频繁遍历邻接点、动态图 区别十字链表和邻接多重表?
两个都是适用于稀疏表的存储。
邻接多重表用于无向图中,分为边表结点和顶点结点,每个顶点结点有2部分组成:data,与该顶点相连的第一条表;边结点包括边的两个顶点i,j,权值info,依附于顶点i的下一条边,依附于顶点j的下一条边;
十字链表表用于有向图,分为边表结点和顶点结点,顶点结点有3部分组成:data,以该顶点为弧头的第一条弧,以该顶点为弧尾的第一条弧;弧结点:权值info,弧头顶点,弧尾顶点,弧头相同的下一条弧,弧尾相同的下一条弧。
特性 十字链表 邻接多重表 适用图类型 有向图 无向图 边存储次数 每条边存储一次 每条边存储一次 查询优化方向 同时支持出边和入边查询 消除边的冗余存储 边结点复杂度 较高(维护两个链) 较低(维护两个链指针) 最小生成树的算法?
Prim算法:
- 核心思想:贪心策略,从顶点出发逐步扩展,选择当前最小边。
- 步骤
- 随机选择一个顶点作为起点,加入已选集合。
- 将连接已选集合和未选集合的边加入最小堆(优先队列)。
- 取出堆顶最小边,将新顶点加入已选集合,记录该边。
- 重复直到所有顶点被选中。
- 时间复杂度
- 邻接矩阵+普通队列:O(V²)(适合稠密图)。
- 邻接表+二叉堆优化:O(ElogV)。
- 适用场景:稠密图(顶点较少或边数较多时更优)。
Kruskal算法:
- 核心思想:贪心策略,按边权重从小到大选择边,避免形成环。
- 步骤
- 将所有边按权重升序排序。
- 初始化并查集,每个顶点独立成集合。
- 遍历排序后的边,若边的两个顶点属于不同集合,则选择该边并合并集合。
- 重复直到选出 V-1条边(V为顶点数)。
- 时间复杂度:O(ElogE),主要由排序决定。
- 适用场景:稀疏图(边数较少时更高效)。
简述迪杰斯特拉算法?
- 初始化:所有节点距离设为无穷大,起点距离为0。
- 优先队列:将所有节点加入优先队列。
- 处理节点:循环取出队列中距离最小的节点。
- 更新距离:检查该节点的邻接节点,计算新路径距离,若更短则更新并加入队列。
不适用于含负权边的图,此时需使用Floyd算法。
区别B树和B+树?
哈希冲突的解决方法?
开放寻址法:冲突发生时,按照某种规则寻找下一个空闲位置。
- 常见策略:
- 线性探测(Linear Probing)
- 冲突后依次检查下一个位置(如
hash(key) + 1, +2, ...
)。 - 缺点:容易导致“聚集”(连续占用的位置形成区块),降低查询效率。
- 冲突后依次检查下一个位置(如
- 平方探测(Quadratic Probing)
- 冲突后按平方步长跳跃检查(如
hash(key) + 1², +2², ...
)。 - 优点:缓解聚集问题,但可能无法遍历所有槽位。
- 冲突后按平方步长跳跃检查(如
- 双重哈希(Double Hashing)
- 使用第二个哈希函数计算步长(如
hash2(key)
),冲突后按步长跳跃。 - 优点:分散更均匀,需设计良好的第二个哈希函数。
- 使用第二个哈希函数计算步长(如
- 线性探测(Linear Probing)
链地址法:每个哈希桶(bucket)维护一个链表(或其他结构),冲突元素直接添加到同一位置的链表中。
适合频繁插入删除的场景(如数据库索引)。
缺点:链表过长时查询效率下降(可优化为红黑树,如 Java 8+ 的
HashMap
)。
再哈希法:冲突时使用另一个哈希函数重新计算位置,直到找到空槽。
- 优点:减少聚集问题。
- 缺点:需预定义多个哈希函数,计算开销较大。
- 常见策略:
各种排序方法?
(1)直接插入排序:序列分为有序部分和无序部分,依次将无序部分的数插入到有序部分合适的位置
(2)折半插入排序:设置三个指针,low,high,mid,low指向第一个元素,high指向最后一个元素,mid指向其中间位置,待排序元素与mid比较,
(3)希尔排序:设置一个步伐d,将序列分成若干子序列,进行直接插入排序;每次缩小步伐,直到序列基本有序时,进行直接插入排序
(4)简单选择排序:分为有序部分和无序部分,在无序部分选出最小(大)的元素,将元素与无序部分第一个元素交换位置,重复执行。每次可以确定一个元素的位置。
(5)堆排序:有大根堆和小根堆两种,大根堆为例:根大于左孩子,大于右孩子。适用于大文件中
(6)冒泡排序:每一趟将元素进行两两比较,将小的元素交换到前面,实现递增排序,每次可以确定一个元素的位置
(7)快速排序:选取一个中轴元素p,还需要用到两个指针,记为low和high,从high进行比较,如出现high<p的情况,则将high的元素放到low上,low指针开始移动,直到遇到low>p的情况,将low中元素放到high的位置,high再次进行上述操作,最后直到low>high时,将p放到low的位置。每一趟可以确定一个元素的位置
(8)归并排序:把两个或者两个以上的有序表合并成一个新的有序表
内部排序与外部排序?
特性 内部排序 外部排序 数据规模 数据量小,可全部加载到内存 数据量极大,无法一次性装入内存 存储依赖 仅依赖内存操作 依赖内存 + 磁盘/外部存储(分块读写) 时间复杂度 关注比较和交换次数(如O(n²)、O(n log n)) 关注磁盘I/O次数(主要性能瓶颈) 适用场景 内存中的数组、链表等 数据库大表、日志文件等海量数据排序 拓扑排序?
- 选择一个没有被访问过的节点,进行深度优先搜索(DFS)。
- 在DFS过程中,记录节点的访问状态(未访问、正在访问、已访问)。
- 当一个节点的所有后继节点都被访问完毕后,将其添加到拓扑排序结果的最前面。
- 重复步骤1至3,直到所有节点都被访问。
算法
问题 |
---|
中序遍历递归与非递归算法 |
括号匹配算法 |
图的出入度算法 |
图的遍历 |
计算有向图的入度出度 |
构建二叉树 |
非递归中序遍历二叉树 |
二叉树先序遍历 |
二叉树的前序遍历 |
已知是几月几号,问是今年的第几天 |
有序链表排序 |
无头结点的链表的插入 |
尾插法 |
双向链表插入 |
判断链表升序还是降序 |
两个有序链表合并成一个有序链表 |
单链表删除一个节点 |
单链表逆序 |
带头结点的单链表插入 |
在一组数中找出素数并求和 |
在数组里找一个指定的数,返回它的位置 |
用递归把一个数的每一位输出 |
一张100元人民币换成1元,2元,5元,10元的纸币,每种纸币至少一张,问有几种换法 |
一串数字一个一个输出 |
统计字符串里大写数字小写个数 |
孙子定理 |
水仙花数 |
输入一个二维矩阵求每列的和并输出 |
闰年判断 |
如何判断是否是回文? 定义两个整型变量i和j分别指向数组头和尾,比较数组内的字符是否相等,若相等i++ j--继续遍历,若i大于等于j 说明是回文 |
求一个矩阵里的所有奇数和 |
求一个矩阵当中所有偶数的和 |
计算1!×2!×3!×...×100! ,这串东西后有多少零 |
给定一个整数n,求1到n之间的所有素数 |
给定一个n,输出从1到n的所有质数 |
递归算法 1+2+......+50 |
大数乘法 https://blog.csdn.net/u010983881/article/details/77503519 |
查找第二大的数 |
编程:歌唱大赛,十个专家打分,去掉一个最高分,去掉一个最低分,输出剩余专家打分的平均分 |
把二维数组的每行数相加 |
3的33次方,说算法,不用说结果 |
3的33次方 |
13的13次幂取后三位(个十百) |
计算机网络
计算机网络的功能?
(1)资源共享:包括硬件、软件和数据
(2)提高可靠性
(3)信息通信
(4)分布式处理
计算机网络的分类?
(1)按拓扑结构分类:总线型、星型、环形
(2)按分布范围分类:广域网、城域网、局域网、个人区域网
主机间的通信方式?
(1)c/s方式:客户是请求方,服务器是服务提供方
(2)p2p方式:点对点的方式
电路交换、报文交换、分组交换的区别?
电路交换:传输单位是比特流,像建立一条物理通道。包括建立连接、传输数据和断开连接三部分组成
报文交换:传输单位是报文,将报文发给相邻结点,查找转发表,转发给下一个结点。是一种存储-转发类型的网络
分组交换:传输单位是报文段,将报文分组转发到相邻结点,查找转发表,转发给下一个结点。是一种存储-转发类型的网络
计算机网络的性能指标?
(1)带宽:网络通信线路所能传送数据的能力,单位是bit/s
(2)时延:总时延=发送时延+处理时延+传播时延+排队时延
发送时延:结点将所有bit发往链路所需要的时间
传播时延:一个bit从从链路一端传输到另一端的时间
处理时延和排队时延一般忽略不计
(3)时延带宽积:传播时延×信道带宽
OSI模型和TCP/IP模型
OSI模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP模型:物理层(透明的传输比特流)、数据链路层(封装成帧、透明传输、差错检测)、网络层(路由选择、分组转发)、传输层(进程通信、可靠和不可靠的两种协议、差错检测、分用和复用)、应用层
两者都采用分层结构,都能实现网络异构
OSI模型的网络层支持无连接和面向连接两种通信,传输层只提供面向连接的通信服务;TCP模型网络层只提供无连接的服务,运输层提供无连接和面向连接的服务;
通信信道的方式?
(1)单工:只能有一个方向的信道
(2)半双工:双向都能通信,但不能同时进行
(3)全双工:双方可以同时通信,即通信双方可以同时发送和接收信息
端到端的通信和点到点的通信?
点到点的通信是两个主机之间的通信,不涉及进程和程序,不能保证传输的可靠性;端到端的通信是建立在点到点的通信之上的,是运输层提供的,涉及两个进程之间的通信。
同步通信和异步通信?
同步通信是接受端和发送端的时钟在用一个频率进行通信,同步通信的数据率较高但是代价也比较高;异步通信发送端发送的字符间的时间间隔是任意的,并且可以在任意时刻发送数据,但是必须在开始和结束的地方加上开始位和结束位作为标记,接受端时刻再好接收数据的准备。异步通信的传输效率比较低,标志位开销大。
频分复用、时分复用、码分复用、波分复用?
(1)频分复用:给信号分配唯一的载波频率通过单一媒体传输多个独立的信号;
(2)时分复用:每个信号在一个很短时间内占用信道,接着让下一个信号使用
(3)波分复用:就是光的频分复用,用光纤传递频率接近的光载波信号
(4)码分复用:用一组包含正交的码携带多路信号,可以实现同一时间用相同频带进行通信;
数据链路层主要功能?
(1)封装成帧:在一端数据前后增加首部和尾部,进行帧定界
(2)透明传输:可以防止信息符号和帧定界符混淆
(3)差错控制:通常采用循环冗余码、奇偶校验码进行检错,海明码用于纠错
为什么进行流量控制?主要方式有哪些?
可能出现发送方发送数据能力大于接收方接收数据能力,导致后者来不及接收所有数据而造成数据丢失,所以要进行流量控制,限制发送方的数据流量,使其发送速率不超过接收方的能力。
(1)停止等待协议:发送窗口=接收窗口=1,发送方每发送一帧等到接收方应答后才能发送下一帧
(2)后退n帧协议:发送窗口>1,接收窗口=1,发送方可以连续发送帧,当接收方发现失序时,发送给发送方最后一个接收到的数据,发送方需要发送这个数据之后的所有数据
(3)选择重传协议:发送窗口>1,接收窗口>1,在发生失帧时,只需要重传出现差错的数据帧。
如何保证可靠传输?
通过确认和超时重传两种机制。确认是一种无数据的数据帧,一般采用捎带确认的方式,将确认捎带在一个回复中;超时重传是发送方在发送时开始计时,一定时间内没有收到确认帧会重新发送该数据。
随机访问介质控制?
(1)Aloha协议:只要用户有数据就会发送
(2)CSMA协议(载波监听多路访问):在发送前,先监听信道,
1坚持:空闲则发送;信道忙,持续监听直到空闲发送
p坚持:空闲以概率p发送数据,信道忙则以p概率延迟一个时间再来监听
(3)CSMA/CD协议(载波监听多路访问碰撞检测):先听后发,边听边发,冲突停发,随机重发,适用于有线局域网中0
(4)CSMA/CA协议(载波监听多路访问碰撞避免):适用于无线局域网,发送包的同时不能检测到信道上是否有冲突,只能尽量“避免”
中继器、集线器、网桥、交换机、路由器的区别?
中继器也称放大器,将数字信号加强,原理是信号再生,是一种工作在物理层的设备;集线器是多接口中继器;
网桥是工作在数据链路层的机器,他可以隔离冲突域,不能隔离广播域;交换机是多接口网桥;
路由器是工作在网络层的设备,隔离了广播域和冲突域、可以进行路由选择(根据网络的变化,动态选择路由)和分组转发(根据转发表将用户IP数据从合适的端口转发出去);
网络协议三要素?
语法:规定了传输数据的格式
语义:规定了所要完成的功能
时序:规定了各种操作的执行顺序
动态路由算法?
(1)RIP距离-向量路由算法:所有结点定期将他们的整个路由表传发给直接相邻的节点,若该路由在原来的路由中不存在,则加入这条新的路由到路由表中;若存在,则比较是否激励更短,若更短或者相等则进行更新;跳数是决定最佳路径的唯一指标;适用于小型网络;它只与自己相邻的路由器交换信息;
(2)OSPF链路状态路由算法:OSPF 仅在网络拓扑发生变化时才交换路由信息。它其中的每个路由器都与其他所有路由器交换信息适用于大型网络;
区别IP地址和MAC地址?
MAC地址是数据链路层的地址,IP地址是网络层的地址,mac地址位于IP地址的首部
ARP地址解析协议?
完成IP地址到mac地址的映射。ARP工作在网络层,ARP请求分组是广播发送的,ARP响应分组是单播
DHCP协议?
用于给主机动态分配IP地址,提供了即插即用的机制,是位于应用层的协议;
- 发现阶段(DHCP Discover):
- 当设备(客户端)连接到网络时,它会发送一个DHCP Discover广播消息,寻找可用的DHCP服务器。
- 提供阶段(DHCP Offer):
- DHCP服务器收到Discover消息后,会从地址池中选择一个可用的IP地址,并通过DHCP Offer消息发送给客户端。
- 请求阶段(DHCP Request):
- 客户端收到Offer消息后,会发送一个DHCP Request广播消息,确认接受该IP地址。
- 确认阶段(DHCP Acknowledge):
- DHCP服务器收到Request消息后,会发送DHCP Acknowledge消息,确认IP地址的分配,并附带其他网络配置参数。
- 发现阶段(DHCP Discover):
传输层功能?
(1)提供应用进程间的逻辑通信
(2)对收到的报文和数据进行差错检测
(3)提供面向连接和无连接的服务
(4)复用和分用;
三次握手和四次挥手?
三次握手是建立连接:
1.客户机向服务器发送一个连接请求报文,SYN=1,seq=x;
2.服务器收到连接请求后接收并发送确认报文,SYN=1,ACK=1,ack=x+1;seq=y;
3.发送方收到确认报文ACK=1,seq=x+1,ack=y+1;
四次握手是释放连接:
1.客户机向服务器发送一个释放报文FIN=1,seq=u;
2.服务器收到后发送一个确认报文,ACK=1,ack=u+1,seq=v;
3.服务器向客户机发送释放连接的请求,将服务器到客户机方向的连接释放。FIN=1,ACK=1,seq=w,ack=u+1;4.客户机收到释放连接的报文,发送确认,ACK=1,seq=u+1,ack=w+1
拥塞控制与流量控制的区别?
拥塞控制是一个让网络能够承受现有的网络负荷,是一个全局的过程,
流量控制是接受端控制发送端的速率,让接受端来得及接收
拥塞控制算法(接收窗口rwnd,拥塞窗口cwnd):
(1)慢开始算法:拥塞窗口从1开始指数增加
(2)拥塞避免:达到拥塞窗口门限值后,拥塞窗口不再指数增加,而是每次+1,并且出现一次网络拥塞时,慢开始门限值变为当前拥塞窗口的一半;
(3)快重传:当发送方连续收到三个重复的ack,直接重传对方尚未收到的报文段
(4)快恢复:收到三个连续的ack时,cwnd变为新的慢开始门限值,然后cwnd再加法增大;
DNS域名解析?
把域名与IP进行映射。
- A记录:IPv4地址(如
192.0.2.1
)。 - AAAA记录:IPv6地址(如
2001:db8::1
)。 - CNAME记录:域名别名(如将
www.example.com
指向example.com
)。 - MX记录:邮件服务器地址(用于电子邮件路由)。
- TXT记录:文本信息(如验证域名所有权或SPF防垃圾邮件)。
- A记录:IPv4地址(如
FTP文件传输?
在服务器与客户机之间进行文件传输
SMTP?
工作在应用层,主要用于将邮件从发送方的邮件服务器传送到接收方的邮件服务器,或从用户端(如邮箱客户端)发送到邮件服务器
HTTP?
超文本传输协议,基于TCP,用于从万维网服务器传输超文本到本地浏览器。
物理层接口的四大特性?
(1)机械特性:指明接口的尺寸、引脚数目等
(2)电气特性:指明电压的高低、电压范围
(3)功能特性:规定接口各信号线的功能
(4)规程特性:指明信号线的工作顺序和时序
数据库
事务的特性?
事务是用户定义的一个数据库操作序列,要么全做,要么全不做
事务具有ACID的特性:
- A:原子性,要么都做,要么都不做
- C:一致性
- I:隔离性
- D:持续性:事务对数据的影响是持续的
并发操作带来的数据不一致?
(1)丢失修改:T1和T2对同一数据进行修改,T2结果的提交破坏了T1提交的结果,导致T1的修改丢失
(2)不可重复读:T1读取数据后,T2对数据进行更新,T1无法再现前一次的读取结果
(3)读“脏”数据:T1修改数据后T2进行读取,但是T1又因为某种原因撤销修改,导致T2的数据域数据库中数据不一致
什么是封锁?有哪些封锁?
封锁就是在数据操作前对其加锁,只有释放锁后,其他事务才能对其操作
排它锁(X锁):只有有X锁的事务可以进行读写;(不能加任和锁)
共享锁(S锁):所有事务只能读,不能写(可以加S锁)
区别几种范式?
第一范式:每个属性不可分割,具有原子性
第二范式:非主属性完全依赖主属性
第三范式:非主属性对主属性不存在传递函数依赖
BC范式:在第三范式的基础上,消除主属性间的传递函数依赖
数据、数据库、数据库管理系统、数据库系统?
数据:是数据库存储的基本对象
数据库:长期存储在计算机中的有组织、可共享的数据集合
数据库管理系统:是用户与操作系统之间的一层数据管理软件(功能:数据定义、数据组织、存储和管理、数据操纵、数据库事务的管理和运行、数据库的建立和维护)
数据库系统:由数据库、数据库管理系统、数据库管理员、应用程序组成;
关系、关系模式和关系数据库的区别?
关系:一个关系对应着一个二维表,是关系模式在某一时刻的状态,关系是动态的
关系模式:二维表中的行定义,即对关系的描述,关系模式是静态的,稳定的
关系数据库是以关系模型为基础的数据库,利用关系来描述现实世界,一个关系既可以描述一个实体及其属性,也可以描述实体间的联系;
关系数据库的特点?
关系数据库就是依照关系模型建立的数据库
优点:
(1)关系数据库:在数学模型的基础上建立
(2)关系模型的概念单一,结构简单,容易理解
(3)存取路径对用户透明,安全性和独立性好,也简化了程序员的工作
缺点:由于路径透明,查询效率不如非关系数据库
数据模型包括什么?
(1)数据结构(描述数据库的组成对象以及他们之间的联系)
(2)数据操作
(3)数据的完整性约束(用户定义完整性、实体完整性、参照完整性)
逻辑独立性、物理独立性?
(1)逻辑独立性:模式改变、应用程序和外模式不改变
(2)物理独立性:数据存储结构改变,不会改变模式和应用程序
(3)数据独立性:不会因为数据的物理结构和逻辑结构的改变影响应用程序
人工管理阶段和数据库系统和文件管理系统的区别?
(1)人工管理阶段:数据不能保存,由应用程序管理数据
(2)文件阶段:数据库长期保存,由文件系统管理数据,数据共享性差、冗余度大、数据独立性差
(3)数据库阶段:由数据库管理系统管理数据,数据共享性好,冗余度底,独立性高
等值连接和自然连接的区别和联系?
自然连接是一种特殊的等值连接,要求连接属性必须是相同的属性组,并且自然连接会去掉重复的属性
视图优点?
(1)简化用户操作
(2)可以在多种角度看待同一数据
(3)可以对机密数据提供安全保护
哪些视图不能更新?
(1)有聚合函数或者表达式的
(2)出现distinct/unique的
(3)出现group by的语句
(4)不包含主键的
SQL语句?
数据库查询:select
数据库定义:create、drop、alter
数据库操纵:insert、update、delete
数据库控制:grant、revoke
关系的基本操作?
选择、投影、并、差、笛卡尔积
什么是数据库的安全性?
保护数据库防止不合法使用造成数据泄露、更改或破坏;
数据库的完整性?
数据的正确性和相容性;防止数据库中存在不合法语义的数据,防止错误信息的输入和输出;
触发器?
是一种特殊的存储过程,是由事件触发的,自动激活并执行
封锁协议?
(1)一级封锁协议:避免丢失修改
(2)二级封锁协议:避免丢失修改和读脏数据
(3)三级封锁协议:避免丢失修改、读脏数据和不可重复读
(4)两段锁协议:事务分为两个阶段,获得封锁和释放封锁;
数据库设计阶段?
(1)需求分析(数据流图)
(2)概要设计(E-R图):解决结构冲突、属性冲突、命名冲突
(3)逻辑设计(数据模型):解决冗余问题,插入、删除、更新问题
(4)物理设计:实现存取方式
(5)数据库实施
(6)数据库运行和维护
数据库的几种故障?
(1)事务故障:只影响事务,通过撤销或者重做恢复
(2)系统故障:由于断电、非正常关机引起;通过设置检查点(最近一次日志记录的地址)和运行日志恢复
(3)介质故障:硬件损坏引起的;通过设置存储点,副本恢复
计算机组成原理
冯诺依曼机的特点?
(1)计算机由运算器、存储器、控制器、输入设备和输出设备组成
(2)指令和数据都存储在存储器中,并可以按地址访问
(3)指令和数据都用二进制表示
(4)指令由操作码和地址码组成
早期的冯诺依曼机以运算器为中心,现代的以存储器为中心
计算机的工作过程?
(1)将程序和数据装入主存储器中
(2)将源程序转化为可执行程序
(3)从可执行文件的首地址开始执行指令
高级语言、汇编语言和机器语言?
高级语言:我们平时编写程序所使用的语言
汇编语言:符号语言,用指令助记符来编写程序
机器语言:二进制语言,用二进制代码表示,计算机可以直接识别
区别编译和解释?
编译和解释是翻译的两种方式;
编译需要一个专门的编译过程,会产生一个目标程序(C、C++、Java)
翻译是翻译一句执行依据,不产生目标程序,效率比较低(python、JavaScript)
编译过程:预处理----编译-----汇编----链接
机器字长、指令字长和存储字长?
机器字长:计算机可以直接处理二进制的位数,等于CPU内部寄存器的大小
指令字长:一个指令包含的二进制的位数,一般为存储字长的整数倍
存储字长:一个存储单元存储的二进制代码的长度,等于MDR的位数
为什么用二进制编码?
(1)二进制只有0,1两种状态,很多电子元件都可以表示这两种状态
(2)二进制的运算简单,有利于简化计算机的硬件结构
(3)0,1可以表示逻辑代数的假和真
计算机常见的存储层次结构?
(1)cache-主存:解决CPU与主存速度不匹配问题,由硬件完成,对程序员透明
(2)主存-辅存:解决主存容量不够的问题,由操作系统和硬件共同完成,对应用程序设计者透明,对系统程序设计者不透明
半导体随机存储器?
(1)静态随机存储器SRAM:存储单元是双稳态触发器,速度快,集成度低,价格贵,一般用作高速缓冲存储器,是一种易失型存储器;
(2)动态随机存储器DRAM:存储单元是晶体管,集成度高,价格低,但是每隔一段时间需要进行刷新,适用于大容量的主存,是一种易失型存储器;
(3)只读存储器ROM:支持随机存取的存储器,结构简单,位密度比大,具有非易失性,可靠性高;
DRAM的刷新方式?
(1)集中刷新:一个固定时间对存储器所有行进行刷新
(2)分散刷新:对每一行的刷新分散到各个工作周期
(3)异步刷新:对每行的刷新分散到整个刷新周期
Cache页面置换算法?
(1)最佳置换算法:淘汰将来一段时间不会使用的页面(但是一般无法预知未来情况)
(2)先进先出:选择最早调入的进行替换
(3)最近最少使用(LRU):选择最近长久未访问过得存储行作为替换的行
(4)时钟算法:使用环形链表将页面连接,使用一个指针指向最老的页面,标记1则进行替换,遇到0就将0变为1;依次进行循环
Cache与主存的映射方式?
(1)直接映射:主存只能存入cache中的唯一位置
(2)全相联映射:主存的数据块可以存入cache的任意位置
(3)组相联映射:cache分成若干组,各组之间采用直接映射,而组内各块之间采用全相连映射。
Cache的写策略?
(1)写回法+写分配策略:cache命中时,只修改cache内容,不直接写入主存;cache未命中时,加载主存到cache中,在cache中更新,最后同步到主存;
(2)全写法+非写分配策略:cache命中时,同时写回cache和主存;cache未命中时,只写入主存,不调块
虚拟存储器?
(1)页式虚拟存储器:把虚拟空间和实际空间分成固定大小的页,各虚拟页可装入内存中的不同实际位置;逻辑地址=虚页号+页内地址;实际地址=页号+页内地址;
(2)段式虚拟存储器:将主存按段分配;段的长度却不固定,决定于用户编写的程序。
(3)段页式虚拟存储器
RISC和CISC区别?
(1)RISC:指令数目少,通用寄存器数量少,指令字长是定长的;大多数指令在一个周期内完成;只能用load/store访问指令,控制方式为组合逻辑控制;使用指令流水线;
(2)CISC:指令数目多,通用寄存器数量多,指令字长不固定,指令的执行时间相差较大;访存指令不加以限制,控制方式为微程序控制,只能通过一定的方式实现指令流水线
数据据寻址方式?
(1)隐含寻址:操作数地址不直接给出,隐含在指令中
(2)立即寻址:直接给出操作数本身
(3)直接寻址:直接给出操作数的地址
(4)间接寻址:给出操作数地址所在的存储空间的地址
(5)寄存器寻址:给出操作数所在的寄存器的编号
(6)寄存器间接寻址:给出操作数所在主存单元地址的寄存器编号
(7)相对寻址:将PC计数器的内容加上指令格式中的形式地址
(8)基址寻址:将基址寄存器中的内容加上指令格式中的形式地址
(9)变址寻址:将变址寄存器中的内容加上指令格式中的形式地址
(10)堆栈寻址:在规定的堆栈中取出操作数
指令的执行过程?
(1)取值周期:将指令地址送入到地址寄存器中(MAR);控制器(CU)发出读(R)控制信号;主存根据地址线上的地址和读信号,从指定的存储单元得到数据,将数据放回数据寄存器(MDR)中,并送到IR中;PC+1,形成下一条指令
(2)间指周期:将(IR)指令的地址码送入地址寄存器(MAR)中,控制器发出读控制信号;将地址寄存器(MAR)所指主存中的内容经数据线送到数据寄存器(MDR)中;
(3)执行周期:不同指令的指令周期不同
(4)中断周期:中断请求、中断判优、中断响应(关中断、保存断点、引入中断服务程序)、中断处理(保护现场、开中断、执行中断服务程序、关中断、恢复现场、开中断、中断返回)和中断返回
指令周期、机器周期、时钟周期?
指令周期是取出并执行一条指令所需要的全部时间;一个指令周期包括若干个机器周期,一个机器周期包括若干个时钟周期;
机器周期:指令周期中一步相对完整的操作所需要的时间
时钟周期:计算机主频的倒数,是计算机运行的基本时序单位
总线周期:两个设备进行一次信息传输需要的时间
指令流水线?
指令流水线技术是一种显著提高指令执行速度和效率的技术,指令取址完成后,不等该指令执行完毕就可以进行下一条指令的取址;
特点:
(1)将一个任务分成许多子任务,依靠多个部件并发工作缩短指令的执行时间;
(2)流水线每个功能段部件后都有一个缓冲寄存器,也叫锁存器,用于保存本流水段的执行结果,供给下一个流水段使用;
(3)流水线的各功能段时间应当尽量相等;
(4)要连续的进行任务;
影响流水线的因素?
(1)结构相关:多条指令同一时刻征用同一资源形成的冲突;(暂停一个时钟周期/设置单独的数据存储器和指令存储器)
(2)数据相关:后面的指令要用到前面指令的执行结果;(暂停一个周期/数据旁路:将计算结果直接输入到下一条指令)
(3)控制相关:流水线遇到分支指令或其他改变PC值的指令引起的(延迟转移:将转移指令与和转移指令无关的一条或几条指令对换转移)
CPU的组成?
控制器(程序计数器PC、指令寄存器IR、指令译码器ID、MAR、MDR)、运算器(算术逻辑单元ALU、累加寄存器ACC、程序状态寄存器PSW、通用寄存器)
CPU的性能?
(1)指令控制:完成取指令、分析指令和执行指令的过程
(2)操作控制:对操作信号进行处理
(3)数据加工:对数据进行算数和逻辑运算
(4)时间控制:对各种操作加以时间上的控制
(5)中断处理
引入总线的好处?
(1)简化了系统结构、便于系统扩充,易于实现系统的模块化
(2)减少了连线数目、体积减小、提高系统的可靠性
(3)便于接口设计
总线的仲裁方式?
(1)链式查询:所有部件用一根总线请求线,设备的先后顺序决定其优先级(总线请求:1,总线允许:1,总线控制:1)
(2)定时器定时查询:采用计数器控制总线的使用权(总线请求:1,总线允许:logn,总线忙:1)
(3)独立请求:每一个设备均有总线请求信号和总线同一信号(总线请求:n,总线允许:n,总线忙:1)
总线分类?
数据总线MDR(反应存储字长)(双向)、地址总线MAR(反应存储单元的个数)(单向)、控制总线(用来传输控制信号和时序信号)
总线基本特征?
1)共享:多个部件连接在同一组总线上,各个部件之间都通过该总线进行数据交换。
2)分时:同一时刻,总线上只能传输一个部件发送的信息;
IO设备的编址方式?
(1)统一编制方式:存储器和IO地址统一编制,不需要专门的IO指令
(2)独立编址方式:IO地址和存储器地址分开编址,需要专门的IO指令
IO方式?
(1)程序查询方式:不断查询IO设备是否就绪
(2)程序中断方式:在一个指令结束后检查是否有中断发生
(3)DMA方式:外部设备不经过CPU直接与主存进行数据交换
(4)通道方式:建立一个通道,主存与外部设备通过通道完成数据交换
中断响应优先级和中断处理优先级?
中断响应优先级是硬件排队路线或者中断查询程序的查询顺序决定的,不可动态更改;
中断处理优先级是由中断屏蔽字决定,可以进行更改,可以动态反应正在处理的中断是否比新发生的中断优先级低;
区别中断向量、向量中断和向量地址?
(1)中断向量:中断服务程序的入口地址
(2)向量地址:中断向量表中每个表项所在的内存地址
(3)向量中断:一种识别中断源的技术;
中断方式和DMA方式的区别?
(1)中断响应只能在中断周期时响应,DMA响应可以在每个机器周期结束响应
(2)中断方式需要CPU干预,DMA不需要CPU干预
(3)DMA请求的优先级高于中断请求
计算机的主要性能指标?
(1)机器字长
机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数,
(2)数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。
(3)主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量。
波特率和比特率?
波特率表示单位时间内传输的符号数(Symbols per second),单位为波特(Baud)。符号是调制技术中的基本单位,可以表示一个或多个比特的组合。
比特率表示单位时间内传输的比特数(Bits per second),单位为bps(bits per second)。它直接反映了实际有效数据的传输速率。
存储单元、存储字、存储字长、存储体?
存储单元:存储一个存储字并具有特定存储地址的存储;
存储字:一个存储单元中存放的所有的二进制数据;
存储字长:存储字中二进制数据的位数;
存储体:由多个存储单元构成的存储器件;
IEEE754浮点数的组成?
由数符、阶码、阶符以及尾数组成。阶码用移码表示,尾数用原码表示。
float为短实数,占32位,其中阶码8位,尾数23位。
double为长实数,占64位,其中阶码占11位,尾数为52位。
存取时间、存取周期?
1)存取时间:启动一次存储器完成本次操作(读或写)所需的时间;
2)存取周期:连续两次启动存储器所需要的最小间隔时间;
3)存取周期包含存取时间;
操作系统
什么是操作系统?
操作系统是管理计算机硬件和软件的应用程序。
具有并发性、共享性、虚拟性和异步性
操作系统的主要功能?
(1)管理计算机资源:处理机管理/进程管理、存储管理(管理内存的分配和回收)、文件管理(计算机中的信息是以文件形式存在)、设备管理(完成io请求)
(2)为用户提供软硬件的接口:命令结构、系统调用、GUI图像处理
(3)作为扩充机器,在裸机的基础上加上一层软件,方便用户使用,成为虚拟机器或扩充机器
操作系统的两种状态?
核心态(管态):可以执行特权指令,比如I/O指令和中断指令
用户态(目态):只能执行非特权指令,只能控制用户自编程序和系统外核应用程序,不能控制系统内核程序
区别中断和异常?
广义的中断:内中断和外中断
内中断也叫异常,是来源于CPU执行指令内部的中断信号,比如地址越界、缺页异常;
外中断也就是平时所说的中断,中断信号来自CPU的外部,比如,I/O中断,时钟中断
什么是系统调用?
系统调用是操作系统给用户提供的使用计算机硬件资源的接口,通过中断指令从用户态转化为核心态
什么是临界区?解决临界区问题需要什么条件?
临界区是访问临界资源的那段代码,临界资源是一次仅允许一个进程使用的共享资源。
进程进入临界区的调度规则:空闲让进、忙则等待、有限等待、让权等待
程序、进程和线程?
进程:资源分配的基本单位,进程拥有独立的系统资源;进程间通信要以进程间通信进行;多进程中,一个进程崩溃对其他无影响;进程是暂时的、动态的、可并发的
线程:资源调度的基本单位,线程依赖进程,线程没有独立的系统资源;同一进程下的线程通信共享数据;多线程中,一个线程崩溃,其他也崩溃
程序:程序是永久的、静态的、不可并发的;
进程的状态?
进程调度算法?
(1)先来先服务
(2)短作业优先
(3)时间片轮转
(4)高响应比优先:响应比=等待时间/处理时间
(5)多级队列:优先级递减、时间片递增
同步的四个准则?
(1)空闲让进:当没有进程处于临界区时,其他请求进入的进程应能立即进入,避免资源闲置。
(2)忙则等待:同一时间只能有一个进程/线程访问共享资源或临界区,防止数据竞争和不一致。
(3)有限等待:任何进程在请求进入临界区后,必须在有限时间内获得机会,避免无限期等待(饥饿)。
(4)让权等待:若进程无法进入临界区,应主动释放CPU(如通过阻塞或挂起),而非持续占用CPU资源进行忙等。
死锁产生的必要条件?
(1)互斥条件:至少有一个资源必须是互斥使用的,即同一时间只能被一个进程占用。例如,打印机或扫描仪等设备一次只能被一个进程使用。
(2)请求和保持:一个进程在持有至少一个资源的同时,还在请求其他资源。例如,进程A已经占用了打印机,同时还在等待扫描仪的使用。
(3)不可剥夺:资源不能被强行剥夺,只能由持有资源的进程自行释放。这意味着如果进程A占用了资源,其他进程必须等待,直到进程A释放该资源。
(4)循环等待:存在一个进程链,每个进程都在等待下一个进程释放资源,而最后一个进程又在等待第一个进程释放资源,形成一个环状的等待链。例如,进程A等待进程B的资源,进程B等待进程C的资源,而进程C又等待进程A的资源。
地址翻译过程?(虚实地址转换)
TLB快表-->页表-->Cache-->内存-->外存)
步骤 1:进程访问虚拟地址
- 进程访问虚拟地址(例如
0x12345678
)。
步骤 2:虚拟地址分解
- 虚拟地址被分解为页号和页内偏移量。
步骤 3:查找TLB
- CPU首先查找TLB(快表):
- 如果TLB命中,则直接获取物理页框号,跳转到步骤5。
- 如果TLB未命中,则继续查找页表。
步骤 4:查找页表
- 如果TLB未命中,CPU通过多级页表查找虚拟页号对应的物理页框号。
- 如果页表项无效,则触发缺页异常,操作系统加载页到物理内存并更新页表。
步骤 5:生成物理地址
- 将物理页框号与页内偏移量组合,生成物理地址(例如
0xABCDE678
)。
步骤 6:访问缓存(Cache)
- CPU使用物理地址访问缓存(Cache):
- 缓存命中:如果数据在缓存中,则直接从缓存中读取或写入数据,无需访问物理内存。
- 缓存未命中:如果数据不在缓存中,则从物理内存中加载数据到缓存,然后从缓存中访问数据。
步骤 7:访问物理内存(缓存未命中时)
- 如果缓存未命中,则访问物理内存,加载数据到缓存,并完成操作。
步骤 8:更新TLB和缓存
- 如果TLB未命中,则将虚拟页号到物理页框号的映射存入TLB。
- 如果缓存未命中,则将数据从物理内存加载到缓存。
- 进程访问虚拟地址(例如
前沿知识
你对人工智能有什么了解?强人工智能可能实现吗? 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 强人工智能观点认为有可能制造出真正能推理和解决问题的智能机器,并且,这样的机器能将被认为是有知觉的,有自我意识的。 强人工智能有两类:
- 类人的人工智能,即机器的思考和推理就像人的思维一样。
- 非类人的人工智能,即机器产生了和人完全不一样的知觉和意识,使用和人完全不一样的推理方式。
什么是机器学习?讲讲具体的算法。 机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构从而不断改善自身的性能。相对于传统机器学习利用经验改善系统自身的性能,现在的机器学习更多是利用数据改善系统自身的性能。基于数据的机器学习是现代智能技术中的重要方法之一,它从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。
机器学习算法:决策树、神经网络、向量机、贝叶斯、Boosting… 决策树:决策树(decision tree)是一类常见的机器学习方法。类似于流程图,一颗决策树包含一个根节点、若干个内部节点和叶子节点,每一个树节点表示对一个特征或属性的测试,每一个分支代表一个属性的输出,每一个叶子节点对应一种决策结果。从根节点到每个叶节点的路径对应了一个判定测试序列。其学习的基本流程遵循分治(divide-and-conquer)策略。
什么是大数据?你接触到的最大的数据有多大? 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
什么是数据挖掘? 数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。
大数据和机器学习之间有什么联系? 物联网是“交互方式”,云计算是“基础设施”,人工智能是“场景应用”,大数据是“交互内容”。大数据使用物联网交互方式、存储在云计算基础设施、支持人工智能场景应用,生成完整的价值链。大数据的存储、处理需要云计算基础设施的支撑,云计算需要海量数据的处理能力证明自身的价值;人工智能技术的进步离不开云计算能力的不断增长,云计算让人工智能服务无处不在、触手可及;大数据的价值发现需要高效的人工智能方法,人工智能的自我学习需要海量数据的输入。
什么是云计算? 云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。可以在很短的时间内完成对数以万计的数据的处理,从而达到强大的网络服务。
什么是深度学习? 深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
总结
第一部分:毕设
- 毕设关于什么?(2018)
- 前端、后台用的什么技术?(2018)
- 介绍一下用到的框架技术。(2018)
第二部分:项目
- 项目是关于什么的?(2018,2019)
- 你主要负责哪部分,做了什么?(2018,2019)
- 如果中间用到某技术或框架,可能会让介绍。(2018,2019)
- 硬件用什么系统,软件用什么系统。2019)
第三部分:专业课(去年问的最多的就是数据结构的问题)
数据结构由哪个老师教的?(内大本校学生需准备,忘记就尴尬喽!)(2018)
数据结构排序有哪些?(2018)
OSI的七层协议模型。
TCP/IP四层模式。(2019)
答:TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。从实质上讲,只有上边三层,网络接口层没有什么具体的内容。

- 栈和队列的区别?(2019)
- 介绍一下最大堆排序?(可能也会是其他排序,要记住算法思想)(2018,2019)
- 介绍一下快速排序?(2019)
- 初试专业考的什么?(接下来肯定会接着问考的课程内容,需要准备一下)(2018)
- 数据库有哪些操作,特点是什么?(2018)
- 什么是平衡二叉树?(2018)
- 进程调度。(2019)
第四部分:跨专业
为什么跨专业?(必备)(2018)
第五部分:成绩
- 本科成绩排名。(看一下成绩单上有没有排名,如果没有,你说了算)(2018)
- 专业有多少人。(老师不知道你专业有多少人,你说了算)(2018)
第六部分:其他
- 为什么选择内大?(2019)
- 为什么考研?(2019)
- 编程能力怎么样?(2019)
- 人工智能、大数据了解多少?(2019)
- 你报考的老师的研究方向,你了解多少?(2019)