面试
zhuzhiqi11
天行健君子当自强不息
展开
-
拷贝构造函数和赋值函数
在 C++ 中,赋值和拷贝是不同的, 1)拷贝构造函数是对未初始化的内存进行初始化操作 2)而赋值是对现有的已经初始化的对象进行操作。(这里我对“已经初始化”的理解是已经调用了构造函数,并且构造函数体可以未执行,只要调用到即可),赋值函数应该给所有数据成员都初始化。 3)重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。原创 2014-07-16 13:12:20 · 619 阅读 · 0 评论 -
展讯2015年校园招聘数字工程师试题(回忆版)
一 名词解释: DLL, AMBA ,STA,CRC(还有几个记不清了,因为别的不知道) DLL:延时锁相环AMBA:高速微控置总线,STA: 静态时序分析CRC: 循环冗余校验二 数字前端设计的基本流程以及主要工具:前端设计的流程及使用的EDA工具如下:1、架构的设计与验证:按照要求,对整体的设计划分模块。 架构模型的仿真可以使用Synopsys公司的Co原创 2014-09-17 20:32:40 · 1288 阅读 · 0 评论 -
动态链接库与静态链接库
本文是笔者在其他地方看到, 觉得不错, 转载过来,对于之前看到的有些图片不能显示, 笔者在自己的环境下,将其还原了文章来源:http://hi.baidu.com/yueyemijing/blog/item/b0a3f500f932c181e850cd07.html一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模转载 2014-08-11 11:05:49 · 498 阅读 · 0 评论 -
IC设计前端到后端的流程和eda工具。
IC前端设计(逻辑设计)和后端设计(物理设计)的区分:以设计是否与工艺有关来区分二者;从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。前端设计的流程及使用的EDA工具如下:1、架构的设计与验证:按照要求,对整体的设计划分模块。 架构模型的仿真可以使用Synopsys公司的CoCentric软件,它是基于System C的仿真工具。2、HDL设计输入:设计输入方法有原创 2014-08-12 10:33:56 · 9296 阅读 · 0 评论 -
linux exec 函数族
原文地址:http://linux.chinaunix.net/techdoc/develop/2008/12/23/1054446.shtmlexec函数族 也许有不少读者从本系列文章一推出就开始读,一直到这里还有一个很大的疑惑:既然所有新进程都是由fork产生的,而且由fork产生的子进程和父进程几乎完全一样,那岂不是意味着系统中所有的进程都应该一模一样了吗?而且,就我们的常识来说,当转载 2014-09-08 20:53:51 · 530 阅读 · 0 评论 -
归并排序的实现
归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 首先我们来讨论归并算法,归并算法将一系列数据放到一个向量中,索引范围为[first,last],这个序列由两个排好序的子表构成,以索引终点(mid)转载 2014-08-13 21:02:51 · 426 阅读 · 0 评论 -
socket编程
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmi转载 2014-08-26 14:05:35 · 435 阅读 · 0 评论 -
网络基础
我们将学习有关子网和CIDR(无类域间路由)的知识。我们希望能够以比某些图书提供的更容易管理的方式学习这些知识。让我们先搞清楚一件事情:在子网中是没有“类别”的。在以前,网络分为A类、B类和C类。这些网络只能分为相等的几部分,因此现在我们引入了可变长度子网掩码(VLSM)来解决这个问题。老类别的C类网络是一个24位网络地址,B类网络是一个16位网络地址,A类网络是一个8位网络地址(如果你不清楚转载 2014-09-02 10:46:03 · 381 阅读 · 0 评论 -
页式存储管理
基本原理 1.等分内存 页式存储管理将内存空间划分成等长的若干区域,每个区域的大小一般取2的整数幂,称为一个物理页面有时称为块。内存的所有物理页面从0开始编号,称作物理页号。 2.逻辑地址 系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址转载 2014-09-03 09:54:24 · 915 阅读 · 0 评论 -
百度2014面试题
先总体说下题型,共有3道简答题,3道算法编程题和1道系统设计题,题目有难有易,限时两小时完成。 一、简答题1. 动态链接库和静态链接库的优缺点2. 轮询任务调度和可抢占式调度有什么区别?3. 列出数据库中常用的锁及其应用场景 二、算法设计题1. 给定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位转载 2014-09-04 15:26:02 · 454 阅读 · 0 评论 -
2015年兆芯面试题
要求:一个握手的模块,输入信号分别为en,ack,all_done;输出信号是req,done;要求如下en高电平有效时可以输出req信号,然后等待ack信号,收到ack信号后会发出done信号,模块的数量不定,当所有模块done信号军发送完毕后会接收到all_done信号,只有接收到aLL_done信号才可以发送下一次req信号。难点在于第一次发送时只需要en有效即可,而下一次发送必原创 2014-10-22 09:47:10 · 3841 阅读 · 0 评论 -
异步FIFO的编程
对于异步FIFO,最主要的两个方面是地址控制和空、满标志位的产生。首先地址控制分别为读地址和写地址,每次读写时能读写地址应该加1.计数次数为ram深度的2倍,当读写地址相等时则空标志位有效,当读写地址最高位互补其余位相等时则满标志位有效。存储部分采用双口RAM实现。下面是具体的Verilog代码:module afifo(r_clk,w_clk,rst_n,data_in,data原创 2014-10-06 10:18:18 · 911 阅读 · 0 评论 -
SVA(system verilog assertions)基础
1什么是断言: 断言就是在模拟过程中根据我们事先安排好的逻辑是不是发生了,如果发生断言成功,否则断言失败。2断言的执行分为:预备(preponed)观察(observed)响应(reactive).3断言的分类:并发断言(基于时钟)和即时断言(基于语义)。4SVA(system Verilogassertions):块的建立:序列: Sequencename_of_se原创 2014-10-31 11:14:00 · 5308 阅读 · 0 评论 -
RTL 编码指南
1 使用函数,减少代码的书写量。2 使用有意义的变量名。3 不要使用立即数。4 使用工艺无关库。5 避免使用混合时钟沿。如果必须使用上升沿和下降沿进行触发,则必须保证综合和时序分析后该模块的时序周期在最坏的情况下也是正确的。且必须给出文档说明。6 如果需要使用门控时钟或内部时钟,或者Reset信号,应把内部时钟产生电路或者Reset电路分离出来。Reset信号的功能是直接清除所原创 2014-11-01 21:43:58 · 1646 阅读 · 0 评论 -
ftoa浮点型转换成字符串
#include bool ftos(float num,char *s,int n){ int temp;float t=num;int pn=0;bool flag_s=true;bool flag_z=false;for(int i=n;i>0;i--) t=t*10;printf("%f\n",t); temp=t原创 2014-10-16 22:26:50 · 4146 阅读 · 0 评论 -
主存与Cache的地址映射
主存与Cache的地址映射 2012-02-20 10:30:05| 分类: 计算机组成原理|举报|字号 订阅 CPU对存储器的访问,通常是一次读写一个字单元。当CPU访Cache不命中时,需将存储在主存中的字单元连同 其后若干个字一同调入Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。因此,主存和Cache之间一次交换的数据转载 2014-10-19 10:59:44 · 2546 阅读 · 0 评论 -
兆芯笔试题(2015)找重复数最多的字母的数量以及位置
例子:“aaaabcaa”,查找a则返回值为0,长度为4;#include #include using namespace std;int find_max_repeat(char *str, char ch, int *len){ char *p=str; int num(0),start(0); while(*p!='\0') {原创 2014-10-20 11:52:06 · 3598 阅读 · 2 评论 -
Ping Pong 操作
1 什么是pingpong? pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率。2 什么时候需要pingpong?在两个模块间交换数据时,上一级处理的结果不能马上被下一级所处理完成,这样上一级必须等待下一级处理完成才可以送新的数据,这样就会对性能产生很大的损失。引入pingpong后我们可以不去等待下一级处理结束,而是将结果保存在pong路的原创 2015-05-31 16:55:47 · 5644 阅读 · 0 评论 -
查找重复的字符串
给定一个长度为n的数组,其元素也在【0 n-1】范围内,判断其中是否包含重复元素。#include #include #include#includeusing namespace std;bool find_repeat(int *s,int len){int max(s[0]),min(s[0]);if(len==0)return false;原创 2014-09-04 10:36:43 · 742 阅读 · 0 评论 -
把字符串转化成整型显示
用法./change 23456 10, 按最后指定的进制显示#include#include#includeint mystrlen(char *s){ int len=0; char *temp=s; while(*(temp)!='\0') { ++len; ++temp; } return le原创 2014-07-31 16:45:32 · 624 阅读 · 0 评论 -
全排列的实现
1 什么是全排列:例如给出字符串abc: 其全排列为:abc bca cba acb bac cab; 对于acc则全排列为 acc cac cca 2 下面看一下非递归的实现方法:以1234 为例从右向左找相邻递增(严格递增)的数对: 34 满足条件,把3记为一个交换点。 在从右向左找第一个大于第一个交换点的数为4作为第二个交换点,交换后得:1243;然后把第一个交换点后的序列逆序。原创 2014-08-19 14:41:34 · 650 阅读 · 0 评论 -
运算符重载详解
1.运算符重载定义:C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运原创 2014-07-17 16:19:39 · 749 阅读 · 0 评论 -
C/C++文件输入输出操作——FILE*、fstream、windowsAPI
基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* Fil转载 2014-06-25 12:33:27 · 590 阅读 · 0 评论 -
C语言面试题(嵌入式开发方向,附答案及点评)
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值转载 2014-06-28 20:41:53 · 592 阅读 · 0 评论 -
华为C语言经典面试题
华为C语言经典面试题。每道题都附有详细解答和讲解,很有参考价值的C语言面试题。怎么判断链表中是否有环?bool CircleInList(Link* pHead){if(pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环return (false);if(pHead->next = = p转载 2014-06-29 19:45:16 · 912 阅读 · 0 评论 -
C++ 容器的用法
C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等是线性的;后者包括set,map,multiset,multimap等则能够通过key访问元素,multimap,multiset 允许一个key对应多个元素,这和数学中的映射道理一样,完全映射,多重映射。。。。下面介绍一下map的使用,其他的使用方法类似。一、map的说明原创 2014-07-02 13:56:23 · 723 阅读 · 0 评论 -
C++容器类
C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。 1、vector连续存储结构,每个元素是在内存上是连续的;支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操转载 2014-07-02 13:40:18 · 540 阅读 · 0 评论 -
FPGA面试宝典
1、同步电路和异步电路的区别是什么?(仕兰微电子) 2、什么是同步逻辑和异步逻辑?(汉王笔试) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试) 线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用oc门来实现,由于不用 oc门可能使灌电流过大,而烧坏逻辑门. 同时在输出端转载 2014-06-11 21:05:24 · 3528 阅读 · 0 评论 -
单链表
链表是面试中一个重要的内容:1 实现一个单链表的建立测长,打印 #include "stdafx.h" #include #include #include #include //控制台输入输出 typedef struct student { int data; struct stude原创 2014-07-22 10:51:55 · 572 阅读 · 0 评论 -
排序算法汇总总结
一、插入排序 直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。代码实现:原创 2014-07-07 13:59:17 · 691 阅读 · 0 评论 -
C++可变参数...
va_list是一个宏,由va_start和va_end界定。 typedef char* va_list; void va_start ( va_list ap, prev_param ); type va_arg ( va_list ap, type ); void va_end ( va_list ap ); 其中,va_list 是一个字符指针,可原创 2014-07-02 09:36:03 · 382 阅读 · 0 评论 -
二叉树
一、什么是树? 在前几篇的博文中主要讲述的是链式存储这种数据结构,它们的用途非常广泛,但是在实际的应用中,还存在着另一种非常重要的数据结构,它就是树。树的结构示意图如下所示: 上图就是一种数据结构----树,之所以在每个框中都留出空白,主要原因是这种结构如果根据上下文是能够传达一些重要的结构信息,比如我们可以作如下思考:转载 2014-07-28 14:16:40 · 475 阅读 · 0 评论 -
阻塞和非阻塞
阻塞和非阻塞对于软件和硬件概念是一致的:对于软件:简单点说:阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据原创 2014-07-28 11:14:47 · 898 阅读 · 0 评论 -
嵌入式试题
1. 以下三条输出语句分别输出什么?char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout c原创 2014-07-09 14:57:41 · 1094 阅读 · 0 评论 -
程序在内存中的分配方式
1 桟区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的值,其操作方式类似于数据结构中的栈。 若申请的内存小于系统所剩内存则成功,否则就会发生栈溢出错误。栈的增长方向是向下的,通常栈的初始化指针指向内存的最高地址,它是连续的。系统自动分配,因此速度很快。在函数调用时,第一个进栈的是主函数的下一条指令的地址,然后是各个函数的参数,参数从右向左进栈原创 2014-07-28 09:44:04 · 765 阅读 · 0 评论 -
嵌入式linux面试题
基础试题(C语言) 一、ANSI C/C++方面的知识 一.1、简答题。下面的题目必须全部答对才给分(20分): 1、 如何在C中初始化一个字符数组。 2、 如何在C中为一个数组分配空间。 3、 如何初始化一个指针数组。 4、 如何定义一个有10个元素的整数型指针数组。 5、 s[10]的另外一种表达方式是什么。 6、 GCC3.2.2版本中支持哪几种编程语言。原创 2014-07-31 14:16:45 · 1875 阅读 · 0 评论 -
硬件面试题
模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 2、平板电容公式(C=εS/4πkd)。(未知) 3、最基本的如三极管曲线特性。(未知) 4、描述反馈电路的概念,列举他们的应用。(仕兰微电子) 5、负反馈种类(电压并联反馈,电流串联反馈,电压串联反馈和电流并联反馈);负反 馈的优点(降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非 线性失真,有效转载 2014-06-22 15:45:49 · 53131 阅读 · 0 评论 -
linux I节点
最近在复习linux, 谈谈自己对i节点的理解。 一个磁盘可以划分为很多个扇区, 每个扇区有512个字节, 扇区是磁盘的基本存储单元。将每个扇区编号, 这样磁盘就变为了一系列编了号的块组合。一个磁盘主要包括引导块, 超级块, i节点表,文件存储区, 进程对换区等。1、.引导块引导块占用第0号物理块, 不属于文件系统管辖。如果系统中有多个文件系统, 只有跟文件转载 2014-06-22 09:29:00 · 829 阅读 · 0 评论 -
Python argparse
python get option which is similiar with perl's get option long翻译 2016-09-25 11:18:18 · 587 阅读 · 0 评论