f2f preparation

suncup

佛祖保佑祖宗显神通八百万神保佑保佑我猛看一周末了让我一次通过吧!

======================C======================
1)C++和C的区别,C++的高级特性,分别阐述。 #define => const const不仅可以用来声明不变的常量,这个关键词更大的用处是保证函数的输入参数不可更改增强健壮性。另外它需要指定常数的数据类型,防止编译器在隐含类型转换时出现意外的危险。 value parameter/address parameter => reference parameter(&n=m) 函数参数的引用传递与传值和传址都不相同,引用相当于对源变量起“别名”,实现传址参数的便利同时也避免了对指针过于危险的修改。 class: constratuctor func, destraturctor func C++的一大高级特性便是基于类的数据类型以及面向对象的程序体系。类的封装把对象的变量、操作方法一并封装并定义了公共部分(public function)与私有部分(私有数据类型),用户不必或无权了解对象内部的实现专注于操作方法。

cpp printf,scanf => iostream <<, >>

2)冒泡法,快速排序。 bubbleSort 每次比较小数上浮,大数沉底,循环至有序

if (A[i]>A[i+1])
{
swap(A[i], A[i+1]);
swapped_flag=true;
}

类似的还有鸡尾酒排序,试图从两边双向的分离泡沫与石头。 quickSort 分而治之,设定一个pivot_idx(一般位于数组中部)并与其他元素比较,使其不小于所有左侧元素并不大于所有右侧元素。第二步将左右两部分使用同样的方法二分排序,直到递归调用至两元素相比。

3)写一个虚函数。 虚函数是C++实现多态性的机制,通过基类访问派生类定义的函数。同名的函数该调用基类还是派生类并非编译时确定,而是运行的时刻决定,即动态联编。

class Base_A
{
public:
virtural void foo()
{ cout<foo(); //却调用了Derived_B的成员函数
}

4)写一个位操作的函数。

#define CHIP\_SEL0x1000
#define BUS\_CMD\_ADDR0x0800+CHIP\_SEL
int main()
{
int reg\_ctrl\_addr=0x0000, reg\_ctrl\_val=0x0000;
//......
reg\_ctrl\_addr=(BUS\_CMD\_ADDR+0x40);
reg\_ctrl\_val=reg\_val\_read(reg\_ctrl\_addr);
int stat=(reg\_ctrl\_val&0x000f);
int disp\_num=(reg\_ctrl\_val&0x00f0)>>4;
//……
}

======================perl======================
匹配一个IP

perl /^(\[0-9\]\[1-9\]\[0-9\]1\[0-9\]\[0-9\]2\[4-9\]\[0-9\]25\[0-5\]\\.){3}(\[0-9\]\[1-9\]\[0-9\]1\[0-9\]\[0-9\]2\[4-9\]\[0-9\]25\[0-5\])$/

*匹配一个email地址

perl /^(\\w+\[\\.\]\\w\*)+@(\\w+\\.\\w+)$/

*并排序

perl @newlist = sort {(ab) (a cmp b)} @old\_list

谈谈对perl的理解 灵活,便利,贴近自然语言,与unix和C密不可分……

正则表达式的贪婪性,以及一些小问题 模式匹配的组合模式中,若既可匹配数个字符又能匹配数十个字符,则每次模式都将贪吃的匹配它最大长度的字符 比如 $_=”fred xxxxxxxxxxx barney”; s/x+/boom/; 最后被替代的会是所有x而不是一或两个x字符

hash的特点什么的。 hash关联的key与value一一对应,如同索引与档案……

======================电路 verilog======================
1)画一个触发器和除法器门级电路 一个边沿敏感的D-latch组成主从结构,从而成为脉冲敏感的D flip-flop 除法器……我建议考查运算量很小的情况下使用Rom查表 一位全加器 Sum=A^B^Cin; Cout=AB+BCin+ACin 一位乘法器 二选一mux out=AS+BnS, 用传输门实现

2)用verilog写一个4位的加法器,写一个模三计数器

module adder_4bit(in_a, in_b, in_carryi, out_sum, rst, clk)
parameter bitwidth=4;
input [bitwidth-1:0] in_a;
input [bitwidth-1:0] in_b;
input in_carryi;
input rst;
input clk;
output [bitwidth:0] out_sum;

reg [bitwidth-1:0] in_a;
reg [bitwidth-1:0] in_b;
reg [bitwidth-1:0] out_carryo
wire in_carryi;

always@(posedge clk)
if (!rst)
out_sum

3)@(posedge )和 @ * 的区别 对上升沿信号有效与对所有信号有效

4)setup time,hold time画图说明,不满足的话怎么解决。 tsu: 在寄存器时钟触发沿之前数据信号必须保持稳定有效的时间 thold: 在寄存器时钟触发沿之后数据信号必须保持稳定有效的时间

* 状态机,同步/异步实现 * System Verilog与verilog区别

======================系统结构======================
1)pipeline,为什么流水,流水线的结构,怎么解决数据,控制冲突。 Advantages: Allows us to increase throughput, by breaking up long combinational paths and (hence) increasing clock frequency Disadvantages: May increase latency… Only as good as the weakest link: slowest step constrains system throughput.

Data hazard, Structural hazard, Control hazard RAW,WAR,WAW,解决数据冲突:Insert nops in code at compile time/Rearrange code at compile time/Forward data at run time/Stall the processor at run time 分支跳转beq 控制冲突,解决:分支预测

2)virtual memory的结构,存储体系的结构。 (main memory->disk memory) cache与virtural存储结构,两级 多个层次的存储器 Register Files Buffers(Lookahead) Cache Main Memory Online Storage Off-line Storage

3)risc的register file有什么特点 和cisc有什么区别。

======================linux======================
1)常用的命令

======================others======================

  • Post title:f2f preparation
  • Post author:suncup
  • Create time:2010-11-01 00:57:07
  • Post link:https://blog.suncup.info/2010/11/01/f2f-preparation/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
f2f preparation