面试题
ShawnWang1994
用心,慢慢来!
展开
-
一道关于const关键字的面试题
首先我来回顾一下const的相关知识…const含义:只要一个变量前用const来修饰,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着const“只读”(readonly)规则:const离谁近,谁就不能被修改;const修饰一个变量时,一定要给这个变量初始化,若不初始化,在后面也不能初始化。题目1:int const a; 与const int a;...原创 2019-04-08 10:17:29 · 502 阅读 · 2 评论 -
TCP/UDP优缺点
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接...原创 2019-06-29 14:31:52 · 484 阅读 · 0 评论 -
黑白盒测试
白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑...原创 2019-06-30 12:20:49 · 2202 阅读 · 0 评论 -
对指针和引用的理解?指针和引用的区别?
对指针和引用的理解?指针我们都知道,指针也是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;所以通过指针可以找到变量的位置。 所以,对于指针,我们可以分为五个方面去理解。己址:指针自己的地址己值:指针变量自己的数据值他址:他人的地址,也就是地址变量的己值。他值:他人的数据值,通过指针变量获取他人的数据值他型:他人的类型引用引用引用跟原来的变量实质上是同一个东西,只...原创 2019-06-30 12:56:24 · 172 阅读 · 0 评论 -
冒泡排序
冒泡排序介绍冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!冒泡排序C实现一void ...原创 2019-06-30 13:47:01 · 117 阅读 · 0 评论 -
写出float x 与“零值”比较的if语句
请写出 float x 与“零值”比较的 if 语句:const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。解析:一个区间内有无限个实数,因此计算机的浮点类型不能表示所有数,浮点...转载 2019-06-30 14:11:31 · 4081 阅读 · 0 评论 -
约瑟夫问题
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。例如:m=3,数到3的人就出队列,下一个人接着从1开始计数!方法一:#include <stdio.h> #define ALL ...原创 2019-06-30 21:10:47 · 253 阅读 · 0 评论 -
求出用1,2,5这三个数不同个数组合的和为100的组合个数
题目:求出用1,2,5这三个数不同个数组合的和为100的组合个数//基础编程void func1(){ int number=0; for (int x=0; x<=100; x++) for (int y=0; y<=50; y++) for (int z=0; z<=20; z++) if ((x+2*y+5*z)==100) numbe...原创 2019-07-01 09:36:49 · 1529 阅读 · 0 评论 -
设计函数实现将一个字符串中小写字母转化为大写字母
题目:设计函数实现将一个字符串中小写字母转化为大写字母#include<stdio.h>#include<stdlib.h>void uppers(char *s,char *us){ for(;*s!='\0';s++,us++) { if(*s>='a'&&*s<='z') *...原创 2019-07-01 11:07:22 · 10035 阅读 · 1 评论 -
求2~2000的所有素数.有足够的内存,要求尽量快
解答;#include<stdio.h>#include<stdbool.h>int a[2000]={2};//定义a来存储素数static int count=1;bool adjust(int value){ int i; for(i=0;i<count;i++) { if(value==2)//如果输入的值...原创 2019-07-01 11:40:18 · 1120 阅读 · 0 评论 -
百度2019校招计算与存储系统研发工程师笔试题(第二批)
1面关于USB的叙述中,错误的是()正确答案: BA.在具有OTG的USB总线上,可以实现在没有主机情况下从设备之间直接进行点对点通信B.USB 2.0 的速度为480Mbps,USB3.0达到640MbpsC,主机的USB接口向从设备提供了电源D.USB支持热插拔解答:usb的传输速度没有那么快,usb2.0也是这样的.usb3.0的理论达到的速度是640MB/s,但是这个速度是在...原创 2019-07-13 14:36:44 · 1334 阅读 · 0 评论 -
百度2019校招核心系统工程师笔试题(第一批)
1以下哪个字符串不能被正则表达式 a(bc?)d 匹配到?正确答案: C DA、abcdB、abdC、abcD、acd解析:相当于ab(c?)d2下列哪个命令不能查看根目录下磁盘空间占用?正确答案: AA、topB、duC、dfD、ls解析:top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:s – 改变画面更新频率l – 关闭或开启...原创 2019-07-18 16:20:59 · 917 阅读 · 0 评论 -
百度2019校招核心系统工程师笔试题(第二批)
1面向对象的三个基本元素是什么?正确答案: A B CA、多态B、继承C、封装D、重载解析:三个基本元素:封装,继承,多态。五个基本原则:单一职责原则,开放封闭原则,里氏替换原则,依赖倒置原则,接口隔离原则2小于()的TCP/UDP端口号已保留与现有服务一一对应,此数字以上的端口号可自由分配?正确答案: CA、80B、1024C、8080解析:对端口号的约束如下,小于...原创 2019-07-16 15:49:35 · 587 阅读 · 0 评论 -
2019年3月计算机三级嵌入式系统开发技术练习题(1)
1.嵌入式系统是一类特殊的计算机系统。下列产品中不属于嵌入式系统的是( )。A.电饭煲B.路由器C.巨型机D.POS机答案:C2.嵌人式系统硬件的核心是CPU。下面关于嵌入式系统CPU特点的叙述中,错误的是( )。A.支持实时处理B.低功耗C.字长在16位以下D.集成了测试电路答案:C解析:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以...原创 2019-07-17 10:30:06 · 1625 阅读 · 0 评论 -
网易面试题(2018C++工程师)
1如果C类子网的掩码为255.255.255.240,则包含的子网位数、子网数目、每个子网中的主机数目正确的是( )正确答案: CA、2 2 2B、3 6 30C、4 14 14D、5 30 6答案:首先C类地址掩码为255.255.255.000 。可知子网号为240(1111 0000) 。所以子网位数为4(前四位可变),对于分类的IPv4地址进行子网划分时,子网号不能使用全1和...原创 2019-08-02 15:24:43 · 1582 阅读 · 0 评论 -
ISO七层模型
物理层:设备之间的比特流的传输、物理接口、电气特性等数据链路层: 成帧、用MAC地址访问媒介、错误检测与修正网络层:提供逻辑地址、选路传输层:可靠与不可靠的传输、传输钱的错误检测、流控。会话层:对应用会话的管理、同步表示层:数据的表现形式、特定功能的实现如==》加密应用层:用户接口...原创 2019-06-29 14:22:48 · 582 阅读 · 0 评论 -
死锁处理方式
1.检测死锁并恢复。2.仔细对资源进行动态分配,以避免死锁。3.通过破坏死锁产生的四个必要条件之一,来防止死锁的产生。4.鸵鸟算法忽略该问题。...原创 2019-06-29 14:18:30 · 310 阅读 · 0 评论 -
编写strcmp函数
编写strcmp函数,不使用库函数,相等返回0,不等返回1。#include<stdio.h>#include<stdlib.h>int strcmp(char *source,char *dest){ int ret=0; while(!(ret=*(unsigned char *)source-*(unsigned char *)dest)&am...原创 2019-07-01 15:52:45 · 2762 阅读 · 0 评论 -
一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。
题目:一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。解答:#include<stdio.h>#include<stdlib.h>//定义一个链表,存放学生信息struct stu{ char name[20]; char sex; in...原创 2019-07-01 22:29:07 · 993 阅读 · 0 评论 -
C语言的一维数组名和对数组名取地址
逐步分析,下面是一段验证这个问题的代码:#include<stdio.h> int main() { int a[10]; printf("a:\t%p\n", a); printf("&a:\t%p\n", &a); printf("a+1:\t%p\n...原创 2019-06-28 10:54:28 · 2798 阅读 · 0 评论 -
c语言中static关键字用法详解(转载)
概述static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。在程序中使用static变量1.局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。普通局部变量存储于进程栈空间,使用完毕会立即释放。静态...转载 2019-06-28 13:16:31 · 347 阅读 · 0 评论 -
C语言malloc和free使用详解
在 C 语言中,程序中 malloc 等内存分配函数的使用次数一定要和 free 相等,并一 一配对使用。绝对要避免“malloc 两次 free 一次”或者“malloc 一次 free 两次”等情况。这就像我们的婚姻制度,必须是“一夫一妻制”,不能够“多夫一妻”或者“一夫多妻”,这些都是不合法的,如下面的示例代码所示:#define MAX_BUF_SIZE 100int main(vo...原创 2019-06-28 15:39:04 · 2842 阅读 · 0 评论 -
死锁的发生必须具备以下四个必要条件
1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时...原创 2019-06-28 17:03:12 · 1628 阅读 · 0 评论 -
百度2019校招计算与存储系统研发工程师笔试题(第一批)
1一个典型双路Intel Xeon CPU服务器系统,每个CPU有24个核心,6个DDR4-2666内存通道,每个通道接2条DDR4-2400 RDIMM内存条,请问系统内存带宽是多少?正确答案: AA、230.4GB/sB、511.872GB/sC、255.936GB/sD、460.8GB/s2下列关于构造函数的描述中,错误的是()正确答案: DA、构造函数可以设置默认的参数B...原创 2019-07-13 16:07:21 · 2266 阅读 · 0 评论 -
操作系统中的进程调度策略有哪几种(转载)
1.先来先服务调度算法:先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运...转载 2019-06-29 10:04:37 · 1279 阅读 · 0 评论 -
数组和链表的区别
不同:链表是链式的存储结构;数组是顺序的存储结构。链表通过指针来连接元素与元素,数组则是把所有元素按次序依次存储。链表的插入删除元素相对数组较为简单,不需要移动元素,且较为容易实现长度扩充,但是寻找某个元素较为困难;数组寻找某个元素较为简单,但插入与删除比较复杂,由于最大长度需要再编程一开始时指定,故当达到最大长度时,扩充长度不如链表方便。相同:两种结构均可实现数据的顺序存储,构造出来的模...原创 2019-06-29 10:12:57 · 687 阅读 · 0 评论 -
(void *)ptr 和 (*(void**))是否相同
(void *)ptr 将变量ptr的值强制转换为 void(无类型)的指针(*(void**))ptr 将变量ptr的值强制转换为 (void*),即把一个指向(void类型指针)的指针,求他的值,结果相当于括号里面的(void类型指针)这两个的效果是完全一样的,用前面那种就可以了...原创 2019-06-29 10:37:42 · 4262 阅读 · 0 评论 -
进程和线程的联系和区别
进程和程序区别和联系表现在以下方面:1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在一定的数据集上运行的全部动态过程。2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上...原创 2019-06-29 11:37:43 · 223 阅读 · 0 评论 -
对绝对地址赋值的问题
1. 要对绝对地址0x10 0000赋值,我们该怎么做?*(unsigned int *)0x10 0000 = 1234 ;通过这个程序我们把常量1234存储在地址为0x10 0000。2. 如果想让程序跳转到绝对地址为0x10 0000去执行,应该怎么做?*( (void (*)( ))0x100000 ) ( );首先要将0x10 0000转换成函数指针:(void (*...原创 2019-06-29 13:47:01 · 2400 阅读 · 1 评论 -
进程同步的5种机制
(1)信号量机制一个信号量只能置一次初值,以后只能对之进行p操作或v操作。 由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。(2)自旋锁旋锁是为了保护共享资源提出的一种锁机制。 调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁,自旋锁是一种比较低级的保护数据结构和代码片段的原始方式,可能...原创 2019-06-29 14:04:57 · 1555 阅读 · 0 评论 -
进程死锁原因
1) 系统资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在 运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。2) 进程推进顺序非法进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁。例如,并发进程 P1、P2分别保持了资源R1、R2,而进程P1申请资源R2,进程...原创 2019-06-29 14:09:51 · 2366 阅读 · 0 评论 -
网易面试题(俄罗斯方块)
题目:小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。输入描...原创 2019-08-02 20:12:15 · 431 阅读 · 0 评论