2012年2月29日

摘要: 1.下面的代码输出是什么,为什么?(考查有符号类型与无符号类型之间的转换)voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");}这个问题测试你是否懂得C语言中的整数自动转换原则;这无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。2.Typedef 阅读全文
posted @ 2012-02-29 23:57 朝寒雨晚来风 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。注:此题我在Xcode上用了来,的确,如果是两个循环的话,都可以用同名的变量,这在objective-c中是可以的,但我不记得在Java和C中是否可以了2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern 阅读全文
posted @ 2012-02-29 23:06 朝寒雨晚来风 阅读(301) 评论(0) 推荐(0) 编辑

2011年12月22日

摘要: 1.publicclassTest1 {publicstaticvoidchangeStr(String str){ str="welcome"; }publicstaticvoidmain(String[] args) { String str="1234";changeStr(str); System.out.println(str); }}程序输出多少?答:输出结果:1234这里虽然是一个静态方法,但是里面的变量是一个局部变量,所以这里不因为是静态方法,就误认为里面的变量也是静态变量了2.publicclassTest2 {staticboolea 阅读全文
posted @ 2011-12-22 14:38 朝寒雨晚来风 阅读(247) 评论(0) 推荐(0) 编辑

2011年12月12日

摘要: 1. 交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;有两种解法,一种用算术算法,a = a + b;b = a - b;a = a - b;一种用^(异或)a = a^b;//只能对int,char..b = a^b;a = a^b;ora ^= b ^= a;2. c和c++中的struct有什么不同?c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private3.以下程序有什么错误?#i 阅读全文
posted @ 2011-12-12 14:21 朝寒雨晚来风 阅读(373) 评论(0) 推荐(0) 编辑

2011年12月11日

摘要: 1.什么是预编译,何时需要预编译:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。2.上述三个有什么区别?char * const p;char const * pconst char *p解答:我们先来看看解题思路*********************************************************Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。char * const cp; 阅读全文
posted @ 2011-12-11 17:10 朝寒雨晚来风 阅读(313) 评论(0) 推荐(0) 编辑

2011年12月10日

摘要: 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 阅读全文
posted @ 2011-12-10 12:15 朝寒雨晚来风 阅读(824) 评论(0) 推荐(1) 编辑

导航