硬件工程师:
1.解释灌电流和拉电流。 2.一段PCI接口的英文翻译。 3.非门晶振电路计算输出频率。 4.一个电路晶振22.1182MHz,串口通讯波特率为9600,数据位8位,停止位1位,使用T1模式,求SMOD参数设置值。 5.异步逻辑电路设计一个。 6.一个简单的51单片机系统外围电路及其需要注意的问题。 7.PWM压控震荡电路的输出电压的设定。求R1,R2电阻。 8.通过CPLD芯片,运用VHDL语言来描述一个硬件信号传输接口。 9.一个VDD以10-40V输出,由于输出端容易和地接触,设计一个电源保护电路。 10.LM833等音频放大芯片主要技术指标。软件工程师:
1.求二进制中1的个数 unsigned int FindOneInBitNember(unsigned int x) { unsigned int n; for(n=0; x; n++) x &= x-1; return n; } 2.p操作使进程__加锁___,v操作使进程__解锁____ 3.有5个进程,有一个正在运行状态,则就绪状态的进展最多的个数: A.0 B.1 C.4 D.5 4.查错: unsigned int sum(unsigned int base) { static unsinged int sum=0; unsigned int index; for(index=1;index<=base;index++) sum+=index; return sum; } 5. DMA方式的特点:优点速度快、控制简单;缺点:DMA接口与CPU存在竞争冲突 6.CPU物理地址映射方式:端口和内存两种 7.中断的响应时间:中断的响应过程的时间 8.程序中变量和返回值等在内存中的存储位置:C语言题目
1:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)c计算结果不一致的是 A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b) 2:为了向二进制文件尾部增加数据,打开文件的方式应采用 A.″ab″ B.″rb+″ C.″wb″ D.″wb+″ 3:下述程序执行后的输出结果是 main(){ int x='f'; printf("%c/n",'a'+(x-'a'+1)); } A.G B.H C.I D.J 4:C语言中,下列运算符优先级最高的是 A.! B.% C.>> D.= = 5:数组定义为“ int a [ 4 ] ; ”,表达式 ( ) 是错误的。 A.*a B.a [ 0 ] C.a D.a++ 6:执行语句“ k=7>>1; ”后,变量 k 的当前值是 A.15 B.31 C.3 D.1 7:定义函数时,缺省函数的类型声明,则函数类型取缺省类型 A.void B.char C.float D.int 8:若main()函数带参数,参数个数最多是 A.0 B.1 C.2 D.3 9:若有宏定义:#define MOD(x,y) x%y 则执行以下语句后的输出结果是 int a=13,b=94; printf(″%d/n″,MOD(b,a+4)); A.5 B.7 C.9 D.11 10:下列各个错误中,哪一个不属于编译错误 A.改变 x 原值 3 为 5 ,写作“ x==5 ;” B.花括号不配对 C.复合语句中的最后一条语句后未加分号 D.变量有引用、无定义 11:下列程序段运行后, x 的值是( ) a=1;b=2;x=0; if(!( -- a))x -- ; if(!b)x=7;else ++x; A.0 B.3 C.6 D.7 12:设 #define N 3 #define Y(n) ((N+1)*n) 则表达式2*(N+Y(5+1))的值是 A.42 B.48 C.54 D.出错 13:若定义了char ch[]={″abc/0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是 A.def B.d C.e D.0 14:下列转义字符中错误的是 A.′/000′ B.′/14′ C.′/x111′ D.′/2′ 15:算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为 A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算 16:设#define N 3 #define Y(n) ((N+1)*n) 则表达式2*(N+Y(5+1))的值是 A.42 B.48 C.54 D.出错 17:表达式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一个 A.非零整数 B.浮点数 C.0 D.字符 18:设struct { short a; char b; float c; }cs; 则sizeof(cs)的值是 A.4 B.5 C.6 D.7 19:若变量已正确定义,表达式( j=3 , j++ )的值是 A.3 B.4 C.5 D.0 20:C 语言中运算对象必须是整型的运算符是 A.% B./ C.! D.** 简答题 21:打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),要求最外层为“X”,第二层为“Y”,从第三层起每层依次打印数字0,1,2,3,... 例子:当N =5,打印出下面的图形: X X X X X X Y Y Y X X Y 0 Y X X Y Y Y X X X X X X 1: void assign(char **arr,int m,int n,char ch) 2: { 3: int i, j; 4: for (i=m; i for (j=m; j int main( void) 9: { 10: char **array; 11: int n,i,j,u,v; 12: char ch='X'; 13: 14: printf(" Enter lines,press 'q' to quit: "); 15: while ( scanf(" %d", &n)==1) 16: { 17: array=( char **) calloc(n, sizeof( char *)); 18: for (i=0;i char *) calloc(n, sizeof( char)); 20: u=0; 21: v=n; 22: while (u<=v) 23: { 24: if (u==2) 25: ch='0'; 26: assign(array, u, v, ch); 27: u++;v--; 28: ch++; 29: } 30: for (i=0;i for (j=0; j printf(" %c ", array[i][j]); 34: printf(" /n"); 35: } 36: ch='X'; 37: printf(" /nEnter another lines, press 'q' to quit: "); 38: } 39: system(" pause"); 40: return 0; 41: } 22:谈谈COM的线程模型。然后讨论进程内/外组件的差别。 23:多态类中的虚函数表是Compile-Time,还是Run-Time时建立的? 24:#include void main() { int c; while ((c= getchar())!= ′/ n ′ ) switch(c - ′ 2 ′ ) { case 0: case 1: putchar(c+4); break; case 2: putchar(c+4); break; case 3: putchar(c+3); break; default: putchar(c+2); break; } printf( ″/ n ″ ); } 运行时输入: 2473 ,输出结果: 25:用两个栈实现一个队列的功能? 26:写一语句实现x是否为2的若干次幂的判断。 27:解二次方程:a*x*x+b*x+c int Quadratic( double a, double b, double c, double& x1, double& x2); 返回值:解的个数 28:如何判别一个数是unsigned。 29:执行下述程序的输出结果是__________________。 #include char b[]=" ABCDEF"; main() { char *bp; for (bp=b;*bp;bp+=2) printf(" %s",bp); printf(" /n"); } 30:已知一个数组table,用一个宏定义,求出数据的元素个数。