摘要:1.下面的代码输出是什么,为什么?(考查有符号类型与无符号类型之间的转换)voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");}这个问题测试你是否懂得C语言中的整数自动转换原则;这无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。2.Typedef
阅读全文
摘要:1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。注:此题我在Xcode上用了来,的确,如果是两个循环的话,都可以用同名的变量,这在objective-c中是可以的,但我不记得在Java和C中是否可以了2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern
阅读全文
摘要:1.publicclassTest1 {publicstaticvoidchangeStr(String str){ str="welcome"; }publicstaticvoidmain(String[] args) { String str="1234";changeStr(str); System.out.println(str); }}程序输出多少?答:输出结果:1234这里虽然是一个静态方法,但是里面的变量是一个局部变量,所以这里不因为是静态方法,就误认为里面的变量也是静态变量了2.publicclassTest2 {staticboolea
阅读全文
摘要:1.计算题1.1unsigned short hash(unsigned short key){return (key>>)%256}请问hash(16),hash(256)的值分别是:A.1.16;B.8.32;C.4.16;D.1.32答:首先我们不知道这道题的右移位数是多少,也不知道这道题是不是出题有问题,现在我们来看看答案首先%256肯定不起作用,因为16%256移动一位以后都小于256,所以只要考虑key> > n即可我们考虑16=10H,他右移可能的结果是移动位数,结果1 82 43 24 1对比四个答案A.1.16;B.8.32;C.4.16;D.1.32
阅读全文