java面试笔试代码填空 java面试题编程题( 六 )


2.用两个栈实现一个队列的功能?要求给出算法和思路!答案:设2个栈为A,B, 一开始均为空. 入队: 将新元素push入栈A; 出队: (1)判断栈B是否为空; (2)如果不为空 , 则将栈A中所有元素依次pop出并push到栈B; (3)将栈B的栈顶元素pop出;这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好 。
3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?答案:函数名: atol 功能: 把字符串转换成长整型数用法: long atol(const char *nptr); 程序例: #include stdlib.h #include stdio.h int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); }
4 。对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? 答案:c用宏定义,c++用inline
5 。直接链接两个信令点的一组链路称作什么? 答案:PPP点到点连接
7 。软件测试都有那些种类? 答案:黑盒:针对系统功能的测试白合:测试函数功能,各函数接口
8 。确定模块的功能和模块的接口是在软件设计的那个队段完成的? 答案:概要设计阶段
9 。enum string{x1,x2,x3=10,x4,x5,}x;问x;答案:取值在0 。1 。10 。11 。12中的一个
10 。unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;请问p1+5=;p2+5=; 答案:801005; 810014 。不要忘记了这个是16进制的数字 , p2要加20变为16进制就是14 选择题:1.Ethternet链接到Internet用到以下那个协议?A.HDLC;B.ARP;C.UDP;D.TCP;E.ID2.属于网络层协议的是:A.TCP;B.IP;C.ICMP;D.X.253.Windows消息调度机制是:A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈; 答案:b,a , c
四.找错题:
1.请问下面程序有什么错误?int a[60][250][1000],i,j,k;for(k=0;k =1000;k++)for(j=0;j 250;j++)for(i=0;i 60;i++)a[i][j][k]=0; 答案:把循环语句内外换一下
2 。以下是求一个数的平方的程序,请找出错误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++); 答案:这个没有问题,s(a++) , 就是((a++)×(a++))唯一要注意的就是计算后a=7了 3 。typedef unsigned char BYTEint examply_fun(BYTE gt_len; BYTE *gt_code){BYTE *gt_buf;gt_buf=(BYTE *)MALLOC(Max_GT_Length);......if(gt_lenMax_GT_Length){return GT_Length_ERROR;}.......} 答案:要释放内存问答题: 1.IP Phone的原理是什么? 答案:IPV6 2.TCP/IP通信建立的过程怎样,端口有什么作用?答案:三次握手 , 确定是哪个应用程序使用该协议(三)
1、局部变量能否和全局变量重名?答案:能,局部会屏蔽全局 。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量 。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量 , 比如在两个循环体内都定义一个同名的局部变量 , 而那个局部变量的作用域就在那个循环体内
2、如何引用一个已经定义过的全局变量?答案:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时 , 假定你犯了同样的错误 , 那么在编译期间不会报错,而在连接期间报错
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答案:可以,在不同的C文件中以static形式来声明同名全局变量 。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值 , 此时连接不会出错

推荐阅读