博文
[面试题]C/C++应聘常见面试试题深入剖析(转)(2006-11-25 21:37:00)
摘要:试题:编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh”
函数头是这样的:
//pStr是指向以'\0'结尾的字符串的指针
//steps是要求移动的n
void LoopMove ( char * pStr, int steps )
{
//请填充...
}
解答:
正确解答1:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
正确解答2:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
memcpy( tmp, pStr + n, steps );
memcpy(pStr + steps, pStr, n );
memcpy(pStr, tmp, steps );
}
剖析:
这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。
最频繁被使用的库函数包括:
(1) strcpy
(2) memcpy
(3) memset
试题6:已知WAV文件格式如下表,打开一个WAV文件,以适当的数据结构组织WAV文件头并解析WAV格式的各项信息。
WAVE文件格式说明表
......
[面试题]2005年11月华为在南邮的招聘笔试题(转)(2006-11-25 21:32:00)
摘要:1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?
答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;
改后答案依次为9,10,10,11
2.某32位系统下, C++程序,请计算sizeof 的值(5分).
char str[] = “www.ibegroup.com”
char *p = str ;
int n = 10;
请计算
sizeof (str ) = ?(1)
sizeof ( p ) = ?(2)
sizeof ( n ) = ?(3)
void Foo ( char str[100]){
请计算
sizeof( str ) = ?(4)
}
void *p = malloc( 100 );
请计算
sizeof ( p ) = ?(5)
答:(1)17 (2)4 (3) 4 (4)4 (5)4
3. 回答下面的问题. (4分)
(1).头文件中的 ifndef/define/endif 干什么用?预处理
答:防止头文件被重复引用
(2). #i nclude 和 #i nclude “filename.h” 有什么区别?
答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。
(3).在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?
答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变
量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调
用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。
(4). switch()中不允许的数据类型是?
答:实型
4. 回答下面的问题(6分)
(1).Void GetMemory(char **p, i......
[面试题]C/C++面试题大汇总(转)(2006-11-25 21:31:00)
摘要:最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。
发布之前先申明两点:
1 所有资料来自网络(主要是CSDN),本人只是收集和转发。
2 所有问题解答(尤其是代码)只是参考,不保证正确。
先发基本问题,再发编程问题..........
想成为嵌入式程序员应知道的0x10个基本问题:
预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。
2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) ? (A) : (B))
这个测试是为下面的目的而设的:
1) 标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3) 懂得在宏中小心......
[VB]VB在线更新程序示例,支持.zip自解压缩(2006-11-24 23:52:00)
摘要:用VB帮星河霸业游戏团队的《第二天堂》游戏写的一个在线更新程序, 自动判断是否需要更新,支持多文件更新,并支持.zip压缩文件更新,自动将.zip压缩文件解压到目录下。
源代码下载:VB_OnlineUpdateInet.rar
其中:ClientInfor.inf 文件:
第一行的数据表示: 客户端游戏版本号
第一行的数据表示: 更新文件存放的网络路径
UpdateInfor.inf文件:
&......
[日记]凌晨6点起来吃沙琪玛(恐怖)(2006-11-24 23:26:00)
摘要: 今天零晨6点的时候,起来上厕所,在途中,冷气围绕过来,顿时头脑N清醒,然后就发现肚子咕咕的叫,额。 饿了。。 回到床上,想睡着了就不会觉得饿了。。
10多分钟过后,还是没有睡着,肚子饿,睡不着。。 郁闷阿。。。 突然想起前几天买了沙琪玛, 可以填下肚子。。 但又想这么晚还吃东西,感觉怪怪的。。 经过一番思想斗争, 最后还是选择了吃。
于是拿了个沙琪玛半躺在床上吃。。 吃着吃着就想, 要是睡在旁边的室友睁开眼看见有个家伙凌晨几点无声无息的躺在床上吃东西,会不会吓死去。。 越想越恐怖, 草草的吃完就躺下睡觉去了。。
现在想起来都觉得有点恐怖,要是我晚上睁开眼看见这种情况,肯定会下一跳。。。 不由得想起以前我同学跟我讲的一个在某个大学发生的怪事(他说是真的):
在某个大学,......
[鼠标]零摩擦力!全球首款电磁悬浮鼠标(转)(2006-11-23 13:30:00)
摘要:
CrazyPC Hover Mouse是全球首款100%无摩擦鼠标。通过采用CrazyPC公司专利的电磁悬浮技术,Hover Mouse在任何时候都可以悬浮在离专用鼠标垫1cm的空中。
众所周知摩擦力会磨损鼠标垫脚并降低游戏中的移动准确率。Hover Mouse由于完全消除了摩擦力令移动准确率大大增加。另外,这款鼠标采用无线设计,光学引擎分辨率达到6000DPI,配套的鼠标垫采用获专利的金属合金复合材料,拉丝铝合金鼠标外壳,鼠标左右键和滚轮还能发出蓝色LED灯光。
别以为这款“高科技”鼠标的价格有多夸张,它的身价仅为75美元,可以在这个网站购买。
......
[星际]青山依旧在,几度夕阳红—戏说星际风云人物(转)(2006-11-22 19:08:00)
摘要:发布人:leak (玄德)
序章 题解
光阴似箭,时光如梭,98年星际争霸呱呱坠地,一转头已近十年。星际出生伊始,就有帝国时代、黑暗王朝、横扫千军等Rts游戏来与之争辉,当年的最佳即时战略游戏头衔还被帝国抢走,此后又有一母所生的胞弟魔兽三汹汹杀来。然沧海横流方显英雄本色,时至今日,细沙淤泥皆被大江淘尽,星际却如中流砥柱,不仅屹立不倒,且能在职业化道路上奋发激扬,发展至今日之蔚然足观。
十年来星际的发展日新月异,不可以道里计。这一方面得益于其本身具丰富的内涵,深厚的底蕴,足够我辈尽发自身想象力和创造力仍不能穷之尽之;另一方面,总有超伦卓绝之人,能发前人之未发、见前人之未见,于无声处现惊雷,引领风骚,横绝当时。此等人物出现之时,每每让人眼前一亮,并感慨道:“原来星际还能这样玩”。
然而星际的复杂与精深,注定了任何人都不能以一己之力包举宇内,独揽乾坤。十年来星际界能人辈出,长江后浪推前浪,一代新人胜旧人。各个超卓的人物,因为对星际的领悟不同,自身的条件不同,各辟蹊径,通过不同的方式,各自达到了旁人难以企及的高度,也成就了今天星坛百家争鸣,纷繁复杂的态势。
面对这乱花渐欲迷人眼的局面,鄙人不才,盼能稍稍整理一下其间的发展脉络。而要梳茎络脉,就不能不提到那些超卓的人物,一时有感,便拟了这个题目:青山依旧在,几度夕阳红。
第一章 天地玄黄,宇宙洪荒
在星际争霸之前,已经有过非常辉煌的即时战略游戏了:命令与征服,红色警戒。笔者就是由红警入手接触电脑游戏的,说起红警,脑子里自然就出现漫山遍野的坦克。作为Rts游戏的鼻祖,红警对玩家的影响是不能忽略的。
星际争霸的第一批玩家大多是玩红警出身的,自觉不自觉地就把红警那一套大手大脚、以量取胜的粗放式打法引入到星际中来。再加上1.07以前版本zerg的先天优势(狗池150),造成了遍地虫窝,人神共愤的尴尬局面。
然而非常之时当有非常之人,这人便是Grrrr了。此人的辉煌不必多言,在我看来,这是将星际争霸和其他Rts游戏区分开来的第一人。Grrrr的成名之作是用自杀蚊克隆了对手的吞噬和飞龙,玩了一手漂亮的四两拨千斤;而他用的最出色的是神族,乃是第一代的闪电王子;在pvz遍地龙骑海的......
[星际]金鼠标传奇-三届OSL冠军Nada(转)(2006-11-22 18:57:00)
摘要:
06 Shinhan OSL Season2 决赛
VS
AnyTime..[gm](P/Lecaf OZ) 2 : 3 [ReD]NaDa(T/Pantech EX)
Win 1.Tau Cross Lose
Lose 2.Sin Peaks of Baekdu Win
Lose 3.A......
[JavaScript]网页背景色渐变(2006-11-22 12:33:00)
摘要:
示例演示:http://scboy.ik8.com/ColorInOut.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ColorInOut</title>
<script language="javascript">
hexa = new Array(16);
for ( var i = 0; i < 10; i++ )
{
hexa[i] = i;
}
hexa[10] = "a";
hexa[11] = "b";
hexa[12] = "c";
hexa[13] = "d";
hexa[14] = "e";
hexa[15] = "f";
// 产生16进制数
function hex(i)
{
if ( i < 0 )
return "00";
else if ( i > 255 )
return "ff";
&nb......
[JavaScript]跑马灯示例(2006-11-21 19:08:00)
摘要:
示例演示:http://scboy.ik8.com/RandomRunHouse.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>RandomRunHouse</title>
<script language="javascript">
msgArray = new Array(4);
msgArray[0] = "欢迎光临";
msgArray[1] = "白日依山静,黄河入海流";
msgArray[2] = "人道是,三国周郎赤壁";
msgArray[3] = "EmailTo: kof_he@163.com";
var msg = "";
var flag = true;
var addOne = 1;
var space = 50;
var addTwo = 0;
function randomMessage()
{
// 判断次句跑马灯是否跑完,跑完则重新随机获得语句
if ( flag == true )
{
// 随机获得状态栏显示语句
&......