202华为面试心得点滴总结大全.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

202华为面试心得点滴总结大全
202*华为面试心得点滴总结大全
华为面试点滴总结这段时间所有的事情告一段落,正好有点时间写些最近自己面试心得,包括昨天刚结束的华为面试。

自己不常去写东西的,更不会做一些无用的感慨,以前(包括现在)我一直觉得诗人就是懦弱的抒情汉,如同任何一个动物都会有发情期,我从不认为诗人会对人类历史的科学进步有任何的贡献可言。

但令人讽刺的是,你会发现你身边会有很多诗人,从qq空间再到微博微信可略见一斑(无非都是想向他人证明自己存在感,更多的都是无病呻吟),当然我认同这是每个人的权利,而我在此只是表达自己态度而已,尊重但不提倡。

所以有什么不同意见,我会悉心接受,但暂且姑妄听之。

Okay,言归正传,网上有很多大牛都会分享一些自己的面试心得,自己算不上大牛,小牛都不算的,并非谦虚,实则诚实,也未曾想过哗众取宠,记得《Prisonbreak》里面MichaelScofield刚进监狱第一天被狱友戏称为fish,自己大概也如此吧,只不过自认为是只咸鱼,期待有咸鱼翻身当家作主的那么一天。

希望有缘人看到,或多或少能够得到些许帮助,便是我的初衷。

最初是听同学说的华为最近在招聘实习生,华为对于学it的并不陌生,自己也满怀憧憬,因之前未在官网注册所以也没收到参加机试的短信邀请,便和同学一同前往,心想着应该会给机试机会吧,去了之后,一个HR 说必须注册才能参加考试,只能回去注册下午再来,真是悲哀,大热天的从中南铁道校区到中南本部校区并非易事,有始有终,下午就去了,一批一批的进去上机考试,一道编程题,时间为30分钟,可以选择编程语言
(C,C++,JAVA)都可以,自己对java比较熟悉(C++之前学的,忘了很
多),便选择了JAVA的试题,题目是,请输入一个任意长度的17进制的字符串(如GG,12A),然后转化成10进制的输出。

题目并不是很难,但老实说,你要是一开始思路方向找错了,那就完了,因为只有30min,所以,本人认为还是有一定难度的。

下面是我写的程序,
和我不同批次的同学抽的题目是不同的,他大概给我说了一下题目,我回来之后也试图解答了一下,题目是一个加密算法,输入四位整数,每位数字加9并与10取余,得出的结果让个位与百位相替换,十位与千位相替换,并输出。

我觉得我的方法不是很好,但能实现,也未去细细研究优化,若有大神可提出更好的解决方法。

程序如下:
机试完后就回学校了,当天晚上收到短信邀请,说是第二天下午3点30参加在湖南大学的面试。

第二天,自己提前半个多小时就到了湖大的一个大厅里,百十来号人吧,进去之后让拿出身份证(验明正身),然后交了简历,就去等待区,8个HR,每个HR对一个面试者,第一轮是技术面试,第二轮是综合面试,技术面试不通过直接pass,技术面试每人大概40min 左右,一对一,看上去挺正式的,其实也确实有料。

过了以后,考官念到我的名字,屁颠屁颠的就跟着他过去了,其实之前参加这种类似的面试笔试,可是如今还是有点小紧张。

先简单的自我介绍了一下,然后就直入主题,问问做过什么开发之类的,自己本人做过学生管理系统(C/S架构)和企业邮箱登录系统(B/S)架构,虽然程序并不大,但都是自己完成的,然后HR问的比较深入,问具体怎么实现的,用到那些技术,自己这些还真不是虚的,所以没难到我(本人建议,简历上所写的项目经验千万别吹嘘,一定实打实的,做学问,不可有半点虚假,否则,你会死的很难堪的),又问了一些数据库之类的东西,主要是ORACLE的PL/SQL编程,问我是否编写过过程,函
数,触发器等,幸好之前很深入的自学过,所以说了一些这部分内容,又问我自己编写的过程比较得意的是实现了什么功能,想想就用PL/SQL编写过分页技术,便如实回答。

还问了一些自己过去编写的程序中比较得意的是什么项目或程序。

之前看着视频编写过坦克大战,他又问我坦克对象的接口都有哪些,坐标,坦克方向等等。

最后,给了我一张纸和笔,让我编写一个strcpy函数。

这个估计大家都会,蛮简单的,便不再列出程序。

写完之后,HR说挺好的,让我去综合面试等待区。

这就是第一轮技术面试。

过了2个小时,因为还有人在一面,HR说,其他人先去吃饭,吃完发接着回来第二轮面试,唉这是要打持久战了,买了瓶水吃了些饼干就过来等着了。

大概到晚上8点时,叫到我的名字开始第二轮综合面试,这次是通过技术面试的人,六人为一组开始群面,是一个项目经理吧,我也不确定。

首先让每个人轮流用中文自我介绍。

并问了一些基本情况。

面试官看的挺和善的,总是面带微笑,但却往往是这种人杀人不见血,如果你被pass了,你都不知道怎么死的,呵呵,这或许才是真正的高手,杀人于无形之中。

然后又让我们进行英文自我介绍,并用英文介绍一下家庭情况,自己英语还不是很差,感觉还蛮ok的,然后又问了问五年之后自己希望的生活状态以及自己对未来工作的规划,以及自己最大的梦想是什么,还问我愿不愿意去欧洲工作(当然愿意咯嘿嘿),综合面试也持续了大概30分钟吧。

然后出来之后等结果,面试完后都感觉不错,过了一会结果出来了,六个人刷了三个人(那三个人一脸茫然),自己侥幸通过。

写到此,也差不多了,自己也就是想到哪就写到哪,写的不好,更谈不上文笔,但真实,童叟无欺,呵呵,希望能或多或少帮助到后来人面试华
为,自己感觉华为真不是吹的,很公平也很正规,okay,就这样吧,写的不好,希望更多大神补充更正,共同进步。

202*/6/1622:33记
扩展阅读:【华为系列】华为面试总结
这篇文章是写给202*届的毕业生的,我想我这些日子的经历应该能给202*届的师弟和师妹们将来的校园招聘提供点帮助。

一、准备阶段:在华为面试之前,我把《软件设计师教程》大概的复习了一遍,时间实在太紧迫了,有些概念我也只是很粗糙地掠过去。

10号下午还到图书馆借了一本《程序员面试攻略》,11号下午就差不多把那本书大概地啃完。

二、笔试:
11号,收到短信通知当晚7:00在E栋笔试(只要是注册了电子简历的同学都有资格),考试种类分两种:硬件和软件,共四类题:填空,选择,改错,程序设计。

基本上都是一些C/C++语言题,数据结构的树的前序、中序及后序排列,计算机网络里的IP报文中的TTL(Timetolive),数据库的操作等等;程序题有两道,一道题是关于数据结构的,另外有一道是“字符串A插入字符串B中”。

虽然都基础,但题量太大,考试时间太短。

大家都在喊没信心。

三、面试:
第二天就有人接到通知去面试了,我们班一位同学去了,他很牛B,从第一轮到第四轮一直很顺利。

我是第三天才和我们寝室另外的一位同学才接到面试通知的(不过我听说我们这一批接到通知的笔试分数普遍都很高),当然在前三天的等待时间里,我心情很郁闷,我还以为我没有慧通的面试资
格了,所以一直在玩,希望有时真的是期而不遇,遇而不期阿。

(其实笔试这一轮刷的人不多,大家以后没必要像我这样子提前就爆弃了)我下午4:00准时到凯莱大酒店,一进去就感觉一股热气,大厅里也许是因为太热或者太紧张的缘故,每个人的脸都很红,很红。

大概等了半个小时,我的心也跳得好厉害,我就到门口舒缓下情绪,很快一位帅哥就领我去第一轮面试了,他问我会什么,**,这问题该怎么答阿,然后我说我是电子科学与技术专业的,计算机基本上是靠自学的,大概他体会到自学的不易,他给我出了5道编程题,虽然很多,但基本上都不很难。

(我一同专业的哥们虽然只有一道题,但却是用C语言编桌球的运动轨迹,妈啊,对于C语言的图像功能我都没接触到过阿),我的题目是:
1、1到100之间的所有素数之和;
2、队列的实现;
3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)
4、字符串匹配问题(intcountABC(*s)输入任何一串字符串,计算机其中有连续ABC子字符串的个数)
5、用数组存储超大数的问题。

6、询问我操作系统的进程和线程的区别
幸好这些题目在笔试前我就都已经见过了,虽然第四个题目,面试老师说我执行效率不高,但可以过得去了。

哈哈,他直接通知我去进行第二轮面试了。

第二轮是资格面试,没多大问题,就聊聊家乡,聊聊自己的情况,这一关只要说话有分寸,一般都可以通过。

第二轮面试完,就快到了晚饭的时间了,晚饭当然是慧通免费提供的,晚饭一过后,我就被一被称作是部长的面
试官叫了进去,这一关一进去他直接拿了我《软件设计书》提问我:1、ping命令使用的是哪种报文?2、OSI分哪几个层,IP是在哪个层?3、哈希表的问题
4、为什么要采取二叉树这种数据结构?(折半查找)
5、两台计算机中的进程怎么互相通信,我说通过IP呗,他说除了IP 呢?我卡住了,他说你听说过五元组吗?我只好老老实实的回答说不知道,然后他在那里给我解释一通,但我还是没搞明白,回来翻潘爱民老师的《计算机网络书》也没有。

这一轮虽然第5个问题我有点卡壳,但老师说我毕竟是自学,还表扬了我,说我已经很不错了。

面试完已经好晚了,华为的MM 通知我第二天继续去进行第四轮的面试。

第二天,我按时到了考试地点,这一天,明显感觉气氛没有第一天的好,垂头丧气的好多。

很快就通知我去面试了,这一轮面试的老师明显态度比前几轮差多了,问的问题都有点让我透不过气来,但终于挺了过去,最后他直接点到桌子上的一个题目:voidmain(){
char*p;*p=-130;
printf("%d",*p);}
正确的答案是126,原因:-130在计算机里面存储形式是
11111111-01111110(取反码的形式),因为C里面的CHAR是8位的,所以,最高位1去掉,剩下01111110。

四、些许体会
面试,就是面试,不是学习,考试。

你现在会多少东西固然重要,但更重要的是你得
让面试官知道,所以面试时把你的知识表达出来是最重要的。

切记!面试表达是关键,你
可以先把自己熟悉的整理一下,不至于面试的时候磕磕碰碰的。

面试,好比下棋。

把握局
面,掌握主动权是关键。

一旦你把面试官成功引入你的领地,让他把注意力关注在你熟悉
的领域,无暇自顾,那就尽情发挥吧,已经成功了一大半。

所以从面试官拿到你的简历起
,就主动出击,别给他机会.
另外,在大肆开学初,一定要把各位的专业课翻出来看看,考软件的特别要多多看看基础的C语言,想找到好工作一定要从骨子里面重视起来。

=====================================
篇中提及的问题的解答:
1、1到100之间的所有素数之和;inti=1;intj=0;
boolchange=1;intsum=0;
for(i=1;iif(j==0)num++;}
}5、用数组存储超大数的问题。

这是数组得一个应用,思想是我们定义一个数组,让每一个元素得值都是从后到前以十进制得方式存贮得,如过到了9下一位就要让前一个元素进位为1,9变为0同时。

下面这个例子是要求一个40位的n!的值intdata[40];//存储40位书的整数数组intdigit;//数据位数变量inti,j,r,k;
intn;//用户输入值
for(i=1;i}
6、询问我操作系统的进程和线程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。

进程和线程的区别,简而言之:一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

=========================================
1、ping命令使用的是哪种报文?
PING命令使用ICMP的哪种code类型:Echoreply(回显请求报文)
2、OSI分哪几个层,IP是在哪个层?
osi:物理层、链路层、网络层、传输层、会话层、管理层、应用层。

tcp/ip:主机网络层、互联层、传输层、应用层。

ip是在互联层3、哈希表的问题
主要用于快速查找检索方面
4、为什么要采取二叉树这种数据结构?他折半查找,可以减少查找比较次数
5、五元组
二元组的定义:三元组的定义:
五元组的定义:
V是值的集合,O是操作的集合,G是构成名字的文法,M是存储的集合,S 是从G能构成的名字几个到M的映射.
iP报文中的五元组(即源IP地址,源端口号,目的IP地址,目的端口,协议)。

半相关
综上所述,网络中用一个三元组可以在全局唯一标志一个进程:(协议,本地地址,本地端口号)
这样一个三元组,叫做一个半相关(half-association),它指定连接的每半部分。

全相关
一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。

也就是说,不可能通信的一端用TCP协议,而另一端用UDP协议。

因此一个完整的网间通信需要一个五元组来标识:
(协议,本地地址,本地端口号,远地地址,远地端口号)
这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。

1任意入的字符串行判是否相等.不使用库函数,编写函数
intstrcmp(char*source,char*dest)相等返回0,不等返回-1;
2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回
-11、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量?
答:extern
可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答:可以,在不同的C文件中以static形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C 文件中对此变量赋初值,此时连接不会出错
4、语句for(;1;)有什么问题?它是什么意思?
答:和while(1)相同。

5、dowhile和whiledo有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环
6、请写出下列代码的输出内容
#includemain(){
inta,b,c,d;a=10;b=a++;c=++a;d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);return0;}
答:10,12,120
7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

这两者在存储方式上并无不同。

这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。

由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。

从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。

把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。

static函数与普通函数作用域不同。

仅在本文件。

只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说
明和定义。

对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。

9、设有以下说明和定义:
typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;d oubledog;}too;DATEmax;
则语句printf("%d",sizeof(structdate)+sizeof(max));的执行结果是:___52____
答:DATE是一个union,变量公用空间.里面最大的变量类型是int[5],占用20个字节.所以它的大小是20
data是一个struct,每个变量分开占用空间.依次为
int4+DATE20+double8=32.所以结果是20+32=52.
当然...在某些16位编辑器下,int可能是2字节,那么结果是
int2+DATE10+double8=20
10、队列和栈有什么区别?
队列先进先出,栈后进先出
11、写出下列代码的输出内容
#includeintinc(inta){
return(++a);}
intmulti(int*a,int*b,int*c){
return(*c=*a**b);}
typedefint(FUNC1)(intin);
typedefint(FUNC2)(int*,int*,int*);
voidshow(FUNC2fun,intarg1,int*arg2){
INCp=&inc;
inttemp=p(arg1);
fun(&temp,&arg1,arg2);printf("%d\\n",*arg2);}
main(){
inta;
show(multi,10,&a);
return0;}答:110
12、请找出下面代码中的所以错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
1、#include"string.h"
2、main()
3、{
4、char*src="hello,world";
5、char*dest=NULL;
6、
intlen=strlen(src);
7、dest=(char*)malloc(len);8、char*d=dest;9、
char*s=src[len];10、while(len--!=0)11、d++=s--;
12、printf("%s",dest);13、return0;14、}
答:方法1:
intmain(){
char*src="hello,world";intlen=strlen(src);
char*dest=(char*)malloc(len+1);//要为\\0分配一个空间
char*d=dest;
char*s=&src[len-1];//指向最后一个字符while(len--!=0)*d++=*s--;
*d=0;//尾部要加\\0printf("%s\\n",dest);
free(dest);//使用完,应当释放空间,以免造成内存汇泄露return0;} 方法2:
#include#includemain(){
charstr[]="hello,world";intlen=strlen(str);chart;
for(inti=0;i{
t=str[i];
str[i]=str[len-i-1];str[len-i-1]=t;}
printf("%s",str);return0;}
1.-1,2,7,28,,126请问28和126中间那个数是什么?为什么?
第一题的答案应该是4^3-1=63
规律是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5)
答案:63
2.用两个栈实现一个队列的功能?要求给出算法和思路!
设2个栈为A,B,一开始均为空.
入队:
将新元素push入栈A;
出队:
(1)判断栈B是否为空;
(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;(3)将栈B的栈顶元素pop出;
这样实现的队列入队和出队的平摊复杂度都还是O(1),比上面的几种方法要好。

3.在c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么?
函数名:atol
功能:把字符串转换成长整型数用法:longatol(constchar*nptr);程序例:#include#include
intmain(void){
longl;
char*str="98765432";l=atol(lstr);
printf("string=%sinteger=%ld\\n",str,l);return(0);}
13.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
c用宏定义,c++用inline
14.直接链接两个信令点的一组链路称作什么?
PPP点到点连接
15.接入网用的是什么接口?
16.voip都用了那些协议?
17.软件测试都有那些种类?
黑盒:针对系统功能的测试
白合:测试函数功能,各函数接口
18.确定模块的功能和模块的接口是在软件设计的那个队段完成的?
概要设计阶段
19.
enumstring{
x1,x2,x3=10,x4,x5,}x;
问x=0x801005,0x8010f4;
20.
unsignedchar*p1;unsignedlong*p2;
p1=(unsignedchar*)0x801000;p2=(unsignedlong*)0x810000;
请问p1+5=;p2+5=;选择题:
21.Ethternet链接到Internet用到以下那个协
议?A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
22.属于网络层协议的是:
A.TCP;
B.IP;
C.ICMP;
D.X.2523.Windows消息调度机制是:
A.指令队列;
B.指令堆栈;
C.消息队列;
D.消息堆栈;24.
unsignedshorthash(unsignedshortkey){
return(key>>)%256}
请问hash(16),hash(256)的值分别是:A.1.16;B.8.32;C.4.16;D.1.32找错题:
25.请问下面程序有什么错误?
inta[60][250][1000],i,j,k;for(k=0;k
26.
#defineMax_CB500
voidLmiQueryCSmd(StructMSgCB*pmsg){
unsignedcharucCmdNum;......
for(ucCmdNum=0;ucCmdNum{......;}
死循环
27.以下是求一个数的平方的程序,请找出错误:
#defineSQUARE(a)((a)*(a))inta=5;intb;
b=SQUARE(a++);
28.
typedefunsignedcharBYTE
intexamply_fun(BYTEgt_len;BYTE*gt_code){
BYTE*gt_buf;
gt_buf=(BYTE*)MALLOC(Max_GT_Length);......
if(gt_len>Max_GT_Length){
returnGT_Length_ERROR;}.......}
问答题:
29.IPPhone的原理是什么?IPV6
30.TCP/IP通信建立的过程怎样,端口有什么作用?三次握手,确定是哪个应用程序使用该协议31.1号信令和7号信令有什么区别,我国某前广泛使用的是那一种?
32.列举5种以上的电话新业务?
Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
:Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?:TCP与UDP呢?
:Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实:现的?
请问C++的类和C里面的struct有什么区别?
:Q5:请讲一讲析构函数和虚函数的用法和作用?
:Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器:是怎么知道的?
:Q7:一些寄存器的题目,我忘记了具体实什么题目,主要好像是寻址和内:存管理等一些知识,不记得了。

:Q8:8086是多少尉的系统?在数据总线上是怎么实现的?还有一些硬
件方:面的知识我既不清楚了。

题目:一个黑暗的房间有三盏灯,房间外有三个开关.你只能进入房间一次,看你怎么来判断哪个开关控制哪个灯泡.
老题目了,先打开一盏灯A,5分钟后把灯关掉,开另外一个灯B,然后进去,亮着的就是B,摸一摸灯泡,暗的灯如果有热度,那就是A,剩下的就是C了
华为招聘--C语言笔试试题
一、判断题(对的写T,错的写F并说明原因,每小题4分,共20
分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。

(T)2、int(*ptr)(),则ptr是一维数组的名字。

(T)
注明:一个数组,其元素均为指针类型数据,称为指针数
组.Int*p[4]Int(*p)()定义p是一个指向函数的指针变量.Int(*p)[4]这个是指向一维数组的指针变量.
3、指针在任何情况下都可进行>,=,charstr[]="
Hello";char*p=str;intn=10;
sizeof(str)=()sizeof(p)=()sizeof(n)=()voidfunc(charstr[100]){} sizeof(str)=()
2、
voidsetmemory(char**p,intnum){*p=(char*)malloc(num);}voidtest(void ){char*str=NULL;getmemory(&str,100);strcpy(str,"
hello");printf(str);}
运行test函数有什么结果?()10分
3、设intarr[]={6,7,8,9,10};int*ptr=arr;*(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
()10分
二、编程题(第一小题20,第二小题30分)
1、不使用库函数,编写函数intstrcmp(char*source,char*dest)相等返回0,不等返回-1;
2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1五、阅读程序题(每个小题5分,共20分)1.阅读以下程序,概括地写出程序的功能。

#include
doubleExp(doublex){doublesum=1.0;doubleterm=x;doublei=1;
while(term>=1.0E-8){sum+=term;i++;
term=term*x/i;}
returnsum;}voidmain(){doubles;
s=Exp(1.0)+Exp(2.0);cout.precision(8);coutcoutTdatebday(10);Td atecday(2,12);Tdatedday(1,2,1998);}运行结果:
4.阅读程序,写出程序运行时输出结果。

#include#includeclassshape{public:
shape(doublex,doubley):xCoord(x),yCoord(y){}virtualdoubleArea( )const{return0.0;}protected:
doublexCoord,yCoord;};
classAA:publicshape{public:
AA(doublex,doubley,doubler):shape(x,y),rad(r){}virtualdoubleAr ea()const{return3.0*rad*rad;}protected:doublerad;};
classBB:publicshape{public:
BB(doublex1,doubley1,doublex2,doubley2):shape(x1,y1),x2Coord(x 2),y2Coord(y2){}virtualdoubleArea()const;protected:
doublex2Coord,y2Coord;};
doubleBB:Area()const
{returnfabs((xCoord-x2Coord)*(yCoord-y2Coord));//库函数
fabs(doublet)求得t的绝对值}
voidfun(constshape&sp){cout六、编写程序题(每小题10分,共20分)
1.编写一个函数intJudge(int*pArray,intn),判断一个n×n二维整数数组pArray是否为“魔方阵”,若是返回1,否则返回0。

所谓魔方阵就是将1到n2的各个数字组成的方阵,它的每一行、每一列以及两个对角线上数字之和均相等。

例如,3×3的中,A是魔方阵,而B不是魔方阵。

然后在主程序中调用Judge函数判断数组A是否为魔方阵。

参考程序#include
intJudge(int*pArray,intn){ints1,s2,s3,s4,sum=0;int*p=pArray;
for(inti=1;ivoidmain()
{intArray[3][3]={{8,1,6},{3,5,7},{4,9,2}};当x输入值为9999时,函数返回值为多少?intfun(unsignedintx){intcount=0;while(x){ x=x&(x-1);count++;}
returncount;}
答案:此函数是在计算x中含有1的个数,所以返回值为8。

if(Judge((int*)Array,3))coutc[i]=c[i]%10;}
/*打印出来*/for(i=0;i}
void*p=malloc(100);请计算
sizeof(p)=?(5)
答:(1)17(2)4(3)4(4)4(5)4
3.回答下面的问题.(4分)
(1).头文件中的ifndef/define/endif干什么用?预处理答:防止头文件被重复引用
(2).#include和#include“”有什么区别?
答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。

(3).在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明?。

相关文档
最新文档