大华技术股份笔试题重点总结

题型:选择25道  填空5道  问答5道

1.USB2.0的最大传输速度是480MB/S,大约每秒可以读60MB的数据(理论值),实际速度要考虑硬件等各方面。

2.const和指针的结合
const int *p;
const 修饰的是*p,*p不能改变(p指向的内容不能改变),p可以改变(p指针的指向可以改变)

int const *p;//同上

int *const p;
const修饰的是p, p不能改变(p指针的指向不能改变),*p可以改变(p指向的内容可以改变)

const int const *p;
第一个const修饰的是*p,第二个cosnt修饰的是p,p和*p都不能改变

3.提出中断请求后 cpu不予响应的状态为中断屏蔽

4.1080P的分辨率是1980*1080(宽*高)

5.P-V操作是一种低级通信原语,是两个执行时不可被中断的过程。PV操作是进程同步机制,P操作对信号量-1,若>-1,则可以继续执行操作;否则等待,直到有进程释放资源再执行;V操作对信号量+1,当使用完当前资源后,对信号量+1,以便其他进程使用该资源。

6.虚函数不能是static型的函数
虚函数与对象相关,调用时需要依赖于对象的vfptr,需要this指针。静态函数没有this指针,可以不通过对象调用。所以虚函数不能是static型的函数。

7.32位/33MHzPIC总线的峰值带宽是多少?
总线带宽=[(总线位宽/8)*工作频率] / 完成一次数据传送所需的总线时钟周期个数。
PCI 1.0规范完成一次数据传送需1个总线时钟周期时
{[(32/8)]*33}/1=4*33 /1 = 132MB/s

8.x=x&(x-1)  计算x二进制中1的个数

int count(int n)
{
    int count = 0;
    while(n)
    {
        ++count;
        n = n & (n-1);
    }
    return count;
}

9.Linux进程的几种状态(五种状态)
新建态:操作系统要将新进程的基本信息保存在内存的进程表中,但进程自身还未进入内存。即将执行的程序代码不在内存中,也没有为这个程序相关的数据分配空间。当程序处于新建态时,程序保留在外存中,通常是磁盘上。
新建态 就绪态 运行态 阻塞态 退出态

10.const和指针不同结合形式时变量的表述
指向整型数的常指针 int * const p;//p不能改变(p指针的指向不能改变)
指向常整型数的指针 const int *p;//*p不能改变(p指向的变量的值不能改变)

11.死锁
死锁:两个或两个以上的进程因争夺资源而造成相互等待的现象。死锁是永久性的。

产生死锁的条件:
(1)互斥条件。一个资源每次只能被一个进程使用,其他进程不能访问已经分配给其他进程的资源;
(2)等待时占有。一个进程因请求资源而被阻塞时,对已获取的资源保持不放;
(3)不能抢占。进程已获得的资源在未使用完之前,其他进程不能强制抢占;
(4)不可解的循环等待。形成一个封闭的进程环,使得每个进程至少占有下一个进程所需要的一个资源。

预防死锁的方法:
(1)要求进程一次性的请求所有需要的资源,并且阻塞该进程直到其他进程都获取到请求的资源;
(2)允许进程抢占使用其他进程占有的资源;
(3)通过资源有序分配,破坏不可解的进程环。
死锁预防通过破坏产生死锁的条件来预防发生死锁,这种方法会导致低效的资源使用和低效的进程执行。

避免死锁的方法:
死锁避免允许有产生死锁的条件,但是通过智能的选择确保永远不会到达死锁点。在死锁避免种,是否允许当前资源请求是通过判断该请求是够可能导致死锁来决定的。因此,死锁避免需要知道将来的进程资源请求情况。
(1)如果一个进程的请求会导致死锁,则不启动该进程;
(2)如果一个进程增加的资源请求会导致死锁,则不允许分配。

12.C++种,函数参数传引用的优点?
如果参数是非内置类型的变量,如果是直接传值,会调用拷贝构造函数产生副本,效率低;如果传引用,传的是实参本身。如果是传指针,外部调用函数时,需要使用取地址操作符“&”;在函数内部使用时,需要使用指针操作符“->”。如果传引用,可以避免这些操作,实参的地址能够自动传递到调用的函数当中,函数内部使用时会自动解引用。

13.strcpy函数的返回值为什么是char *类型?
strcpy函数的返回类型也可以是void类型,设计成char *类型是为了提供链式运算
( int len = strlen(strcpy(str,”hello world”));)

都是基础呀!

你可能感兴趣的:(笔试题)