1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。
2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢? 3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的? 4.请问C++的类和C里面的struct有什么区别? 5.请讲一讲析构函数和虚函数的用法和作用。
6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的? 7.8086是多少位的系统?在数据总线上是怎么实现的? 联想笔试题
1.设计函数 int atoi(char *s)。
2.int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少? 3.解释局部变量、全局变量和静态变量的含义。 4.解释堆和栈的区别。
5.论述含参数的宏与函数的优缺点。
普天C++笔试题
1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 2.写一个函数,将其中的 都转换成4个空格。
3.Windows程序的入口是哪里?写出Windows消息机制的流程。 4.如何定义和实现一个类的成员函数为回调函数?
5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。 6.C++里面如何声明const void f(void)函数为C程序中的库函数? 7.下列哪两个是等同的 int b;
A const int* a = &b; B const* int a = &b; C const int* const a = &b; D int const* const a = &b;
8.内联函数在编译时是否做参数类型检查? void g(base & b){ b.play; }
void main(){ son s;
发信人: wildboy 标 题: 上午润汇的笔试题
发信站: BBS 水木清华站 (Sat Nov 30 13:18:53 2002), 站内
c++最后几个大题目是
1,实现双向链表删除一个节点P,在节点P后插入一个节点,这两个函数。 2,写一个函数将其中的\都转换成4个空格。
3,windows程序的入口是哪里?写出windows消息机制的流程。 4,如何定义和实现一个类的成员函数为回调函数。
还有前面的几个: 1. class A{ int a; int b; }
问的是编译时的default constructor function的问题。
还有一个说,A有其他自己定义的构造函数,问是否还有default constructor function 还是什么来着,记不清乐。
2. c++里面是不是所有的动作都是main()引起的?如果不是,请举例。
3. c++里面如何声明const void f(void)函数为C库函数?(这个我前几天还看来着, 居然就忘记乐, )
对了,还考乐一些关于const的问题 问下列哪两个是等同的 int b;
A const int* a = &b; B const* int a = &b; C const int* const a = &b; D int const* const a = &b;
还有一个是考类的成员函数是 void f() const;型的时候调用的问题。
幸好昨天刚刚看乐这部分的内容,呵呵
内联函数考了一题,问内联函数在编译时是否做参数类型检查。
虚函数也考了一题,不过不难。 class base{ public:
virtual void play(){ cout<<\"base\"; } }
class son: public base{ public:
void play(){cout<<\"son\";} }
void g(base & b){ b.play;
}
void main(){ son s; g(s); return; }
我所收集的intel比试题&面试题:
(熟悉大公司的题目,并不仅仅是为了进这些公司,而是很多国内公司考察内容都很接近而已.)
2005笔试 :
1。高效的内存管理 2。8皇后问题 面试q:
(2) 编译中的问题:全局变量如int i=5; int*(pf)()=foo; 分别在何时被初始化?设计时候如何具体的实现。
(3) OS相关的问题,内存访问,cache等(包括cache在整个系统中的位置,画出来,并解释)
(4) 解释例如mov ax,100H 这样一条指令的cpu, os, memory等都完成了什么样的工作。
(5) Strlen()的C语言实现,不能使用任何变量。
(6) 编译中display表的一些问题
(7) 一个hash函数,输入随机,现发生冲突,如数据集中在某几条中,问怎样处理hash函数保证高效的访问,怎样实现?
(8) 把Switch()case…语句翻译成三元组。
(9) 一个byte(用C语言实现计数其中1的个数),给出最高效的实现方法。(位域)或者查表最快的;
(10) 上海有多少个加油站?你是怎样解决这一问题?
(11) C语言参数的入栈顺序?为什么这么实现?
(12) 你的最大的优点和缺点分别是什么?
(13) C语言中字符串的翻转,最高效率(时间和空间)的实现? 2004
1. 三个float:a,b,c 问值 (a+b)+c==(b+a)+c (a+b)+c==(a+c)+b
2. 把一个链表反向填空
3. 设计一个重采样系统,说明如何anti-alias
4. y1(n)=x(2n), y2(n)=x(n/2),问:
如果y1为周期函数,那么x是否为周期函数 如果x为周期函数,那么y1是否为周期函数 如果y2为周期函数,那么x是否为周期函数 如果x为周期函数,那么y2是否为周期函数
5. 如果模拟信号的带宽为5KHZ,要用8K的采样率,怎么办。
4. 某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统
(300M的CPU,50M的SDRAM)中运行,还需要优化吗?
5. x^4+a*x^3+x^2+c*x+d最少需要作几次乘法
6. 什么情况下,sin(x+y)+y ~ ....
7. 下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort
8. 哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack
1。 pipeline 2。 程序流程图题目 3。 哲学家进餐
4。 32bit,64bit,两个平台上complier,linker,os kernel,library,debuger的性质 5。 const char * vs char const * (?) 6。 GDT and LDT 7。 1+1<<1 8。 Stack性质
9。 ???
10。正方体中压力什么的。。。 大题
1。f[40,400],log10变换 2。ACPI 3。读程序
4。频谱,采样分析 大题
1。写出下列信号的奈亏斯特频率
(1)f(t)=1+cos(2000pait)+sin(4000pait) (2)f(t)=sin(4000pait)/pait (3)f(t)=(sin(4000pait)的平方)/pait 2.填程序
把一个计算m^n的程序填充完整 大概的意思是:
有一个全局数组char s[BUFSIZE]
利用这个数组计算,就是每个单元存放计算结果的一位,index小的存放低位,index大 的存放高位 3。有两个线程 void producer() { while(1) {
GeneratePacket(); PutPacketIntoBuffer(); Signal(customer); } }
void customer() { while(1) {
WaitForSignal(); if(PacketInBuffer>10) {
ReadAllPackets(); ProcessPackets(); } } }
(1)有没有其他方法可以提高程序的性能
(2)可不可以不使用信号之类的机制来实现上述的功能 4。优化下面的程序 (0)sum=0 (1)I=1 (2)T1=4*I
(3)T2=address(A)-4 (4)T3=T2[T1] (5)T4=address(B)-4 (6)T5=4*I (7)T6=T4[T5] (8)T7=T3*T5 (9)sum=sum+T6 (10)I=I+1
(10)IF I<20 GOTO (2)
1。关于c的main函数
2。15个人循环报数,报到N的出列,找出最后留下的那个人,算法填空题 2。找出一个给出的并行解决方案的错误情况 3。关于GPIO,intel的四种体系结构
选择题10题
有关vc和c,指针,HyporThreading Dual-core等等 看也看不懂的
2003年的
1:概率题。x,y为随机变量,联合概率密度 f(x,y) = intig(0,1)*dx*intig(0,x)*k*d y,k为常数,求k=? E(xy)=? 注:intig(a,b)为a到b的定积分。
2:概率题。A,B为随机事件,以下哪个正确 A. P(A U B)*p(AB) <= P(A)P(B) B. P(A U B)*p(AB) >= P(A)P(B) C. P(A U B)*p(AB) <= P(A) + P(B) D. P(A U B)*p(AB) >= P(A) + P(B)
3: 信道带宽200kHz,信噪比10dB,求信道波特率=?
4:以下代码运行结果是什么 int main() {
int a,b,c,abc = 0;
a=b=c=40; if(c) { int abc; abc = a*b+c; }
printf(\"%d,%d\return 0; }
5:给出了从纽约出发和到达落山鸡的各种航班信息,写出找到一条从纽约到落山鸡的最 短距离的航班组合的代码。
6:从计算机图形上截取某个物体边缘的若干个坐标,求这个物体面积,并跟判断是方形 还是圆形,为啥。(坐标不记得,大概是个圆 )。
7:离散卷机与DFT的区别与关系。快速求不满足2^N长度的离散傅立叶变换的方法有哪些 ?如何用fft求N*M点的离散卷机?
8:给出fir和iir的优缺点。
9:如何计算线性标量量化器的量化噪声?需要那些假设
suningin详解华为笔试题(4)
2006-10-31 23:24:01
大 中 小
1. 找错
void test1() {
char string[10];
char* str1=\"0123456789\"; strcpy(string, str1); }
答:表面上并且编译都不会错误。但如果string数组原意表示的是字符串的话,那这个赋值就没有达到意图。最好定义为char string[11],这样最后一个元素可以存储字符串结尾符'\\0';
void test2() {
char string[10], str1[10]; for(int I=0; I<10;I++) {
str1[I] ='a'; }
strcpy(string, str1); }
答:strcpy使用错误,strcpy只有遇到字符串末尾的'\\0'才会结束,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]='\\0',这样就正常了。
void test3(char* str1) {
char string[10]; if(strlen(str1)<=10) {
strcpy(string, str1); } }
答:这又会出现第一道改错题的错误了。strlen(str1)算出来的值是不包含结尾符'\\0'的,如果str1刚好为10个字符+1结尾符,string就得不到结尾符了。可将strlen(str1)<=10改为strlen(str1)<10。 2. 找错
#define MAX_SRM 256 DSN get_SRM_no() {
static int SRM_no; int I;
for(I=0;I break; } } if(I>=MAX_SRM) return (NULL_SRM); else return SRM_no; } 答:我不知道这段代码的具体功能,但明显有两个错误 1,SRM_no没有赋初值 2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static声明。 3. 写出程序运行结果 int sum(int a) { auto int c=0; static int b=3; c+=1; b+=2; return(a+b+c); } void main() { int I; int a=2; for(I=0;I<5;I++) { printf(\"%d,\ } } 答:8,10,12,14,16 该题比较简单。只要注意b声明为static静态全局变量,其值在下次调用时是可以保持住原来的赋值的就可以。 4. int func(int a) { int b; switch(a) { case 1: b=30; case 2: b=20; case 3: b=16; default: b=0; } return b; } 则func(1)=? 答:func(1)=0,因为没有break语句,switch中会一直计算到b=0。这是提醒我们不要忘了break。呵呵。 5: int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p, *q; p=a; q=&a[2]; 则a[q-p]=? 答:a[q-p]=a[2]=2;这题是要告诉我们指针的运算特点 6. 定义 int **a[3][4], 则变量占有的内存空间为:_____ 答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空间为3×4×4=48。 7. 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。 答: /*输入年月日时分秒,输出年月日时分秒的下一秒,输出仍然在原内存空间*/ void NextMinute(int *nYear,int *nMonth,int *nDate,int *nHour,int *nMinute,int *nSecond) { int nDays; (*nSecond)++; // 秒加1 if(*nSecond>=60) // 秒满60,做出特殊处理,下面时,日,月等类同 { *nSecond=0; (*nMinute)++; if(*nMinute>=60) { *nMinute=0; (*nHour)++; if(*nHour>=24) { *nHour=0; (*nDate)++; switch(*nMonth) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: nDays=31; break; case 2:// 判断闰年 if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0) { nDays=29; } else { nDays=28; } break; default: nDays=30; break; } if(*nDate>nDays) { *nDate=1; (*nMonth)++; if(*nMonth>12) { *nMonth=1; (*nYear)++; } } } } } } /*示例可运行代码*/ void main() { int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59; NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond); printf(\"The result:%d-%d-%d %d:%d:%d\} 因篇幅问题不能全部显示,请点此查看更多更全内容