收藏 分享(赏)

华为面试题二套.doc

上传人:weiwoduzun 文档编号:4847091 上传时间:2019-01-16 格式:DOC 页数:5 大小:36KB
下载 相关 举报
华为面试题二套.doc_第1页
第1页 / 共5页
华为面试题二套.doc_第2页
第2页 / 共5页
华为面试题二套.doc_第3页
第3页 / 共5页
华为面试题二套.doc_第4页
第4页 / 共5页
华为面试题二套.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、C #include class humanpublic:human() human_num+;static int human_num;human()human_num-;print();void print()coutxj+1.key) temp=xj;xj=xj+1;xj+1=temp;c 语言 文件读写#include “stdio.h“main()FILE *fp;char ch,filename10;scanf(“%s“,filename);if(fp=fopen(filename,“w“)=NULL)printf(“cannt open filen“);exit(0);ch=ge

2、tchar();while(ch!=#)fputc(ch,fp);putchar(ch);ch=getchar();fclose(fp);c 指针int *pn;-指针数组,每个元素均为指向整型数据的指针。int (*)pn;-p 为指向一维数组的指针,这个一维数组有 n 个整型数据。int *p();-函数带回指针,指针指向返回的值。int (*)p();-p 为指向函数的指针Windows 的消息机制 1Windows 是一个消息(Message)驱动系统。Windows 的消息提供了应用程序之间、应用程序与 Windows 系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且

3、靠对消息的响应和处理来完成。Windows 系统中有两种消息队列:系统消息队列和应用程序消息队列。计算机的所有输入设备由 Windows 监控。当一个事件发生时, Windows 先将输入的消息放入系统消息队列中,再将消息拷贝到相应的应用程序消息队列中。应用程序的消息处理程序将反复检测消息队列,并把检测到的每个消息发送到相应的窗口函数中。这便是一个事件从发生至到达窗口函数必须经历的过程。必须注意的是,消息并非是抢占性的,无论事件的缓急,总是按照到达的先后派对,依次处理(一些系统消息除外) ,这样可能使一些实时外部事件得不到及时处理。Windows 的消息机制 2Windows 中的消息是放在对

4、应的进程的消息队列里的。可以通过 GetMessage 取得,并且对于一般的消息,此函数返回非零值,但是对于 WM_QUIT 消息,返回零。可以通过这个特征,结束程序。当取得消息之后,应该先转换消息,再分发消息。所谓转换,就是把键盘码的转换,所谓分发,就是把消息分发给对应的窗口,由对应的窗口处理消息,这样对应窗体的消息处理函数就会被调用。两个函数可以实现这两个功能:TranslateMessage 和DispatchMessage。另外,需要注意,当我们点击窗口的关闭按钮关闭窗口时,程序并没有自动退出,而是向程序发送了一个 WM_DESTROY 消息(其实过程是这样的,首先向程序发送 WM_C

5、LOSE消息,默认的处理程序是调用 DestroyWindow 销毁窗体,从而引发 WM_DESTROY 消息) ,此时在窗体中我们要响应这个消息,如果需要退出程序,那么就要向程序发送 WM_QUIT消息(通过 PostQuitMessage 实现 )。一个窗体如果想要调用自己的消息处理函数,可以使用 SendMessage 向自己发消息。如上所述,大部分(注意是大部分)的消息是这样传递的:首先放到进程的消息队列中,之后由 GetMessage 取出,转换后,分发给对应的窗口。这种消息成为存储式消息。存储式消息基本上是使用者输入的结果,以击键(如 WM_KEYDOWN 和 WM_KEYUP 讯

6、息) 、击键产生的字符(WM_CHAR) 、鼠标移动(WM_MOUSEMOVE)和鼠标按钮(WM_LBUTTONDOWN)的形式给出。存储式消息还包含时钟消息(WM_TIMER) 、更新消息(WM_PAINT)和退出消息(WM_QUIT) 。但是也有的消息是直接发送给窗口的,它们被称为非存储式消息。例如,当 WinMain 调用CreateWindow 时,Windows 将建立窗口并在处理中给窗口消息处理函数发送一个WM_CREATE 消息。当 WinMain 调用 ShowWindow 时, Windows 将给窗口消息处理函数发送 WM_SIZE 和 WM_SHOWWINDOW 消息。当

7、 WinMain 调用 UpdateWindow 时,Windows 将给窗口消息处理函数发送 WM_PAINT 消息。Windows 的消息机制 3C+:memset ,memcpy 和 strcpy 的根本区别? #include “memory.h“memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为 或0 ;例 :char a100;memset(a, 0, sizeof(a); memcpy 用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a100,b50; memcpy(b, a, sizeof(b);注意如

8、用 sizeof(a),会造成 b 的内存地址溢出。strcpy 就只能拷贝字符串了,它遇到0 就结束拷贝;例:char a100,b50;strcpy(a,b);如用strcpy(b,a),要注意 a 中的字符串长度(第一个0之前)是否超过 50 位,如超过,则会造成 b 的内存地址溢出。strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include 功能:把 src 所指由 NULL 结束的字符串复制到 dest 所指的数组中。说明:src 和 dest 所指内存区域不可以重叠且 dest 必须有足够的空间来容纳 src 的

9、字符串。返回指向 dest 的指针。memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由 src 所指内存区域复制 count 个字节到 dest 所指内存区域。说明:src 和 dest 所指内存区域不能重叠,函数返回指向 dest 的指针。memset原型:extern void *memset(void *buffer, char c, int count);用法:#include 功能:把 buffer 所指内存区域的前 count 个字节设置成字符 c。说明:

10、返回指向 buffer 的指针。ASSERT()是干什么用的ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为 FALSE (0), 程序将报告错误,并终止执行。如果表达式不为 0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。例如,变量 n 在程序中不应该为 0,如果为 0 可能导致错误,你可以这样写程序: ASSERT( n != 0); k = 10/ n; ASSERT 只有在 Debug 版本中才有效,如果编译为 Release 版本则被忽略。 assert()的功能类似,它是 ANSI C 标准中规定的函数,它与 ASSERT 的一个重要区别是可以用在 Release 版本中。system(“pause“);系统的暂停程序,按任意键继续,屏幕会打印,“按任意键继续。 。 。 。 。“ 省去了使用getchar() ;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 招聘面试

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报