DOS下如何使用c/c++的编译器


1.进程和线程的差别


线程是指進程内的一个执行单元,也是进程内的可调度实体.
(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程の间可以并发执行同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源但可以访问隸属于进程的资源. 
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源导致系统的开销明显大于创建或撤消线程时的开銷。


6./++编译器中虚表是如何完成的


7.谈谈OM的线程模型。然后讨论进程内/外组件的差别


8.谈谈IA32下的分页机制


小页(4K)两级分页模式,大页(4M)一級


9.给两个变量如何找出一个带环单链表中是什么地方出现环的?


一个递增一一个递增二,他们指向同一个接点时就是环出现的地方   ?


10.在IA32中一共有多少种办法从用户态跳到内核态


11.如果只想让程序有一个实例运行,不能运行两个像winamp一样,只能开一个窗口怎样實现?

用内存映射或全局原子(互斥变量)、查找窗口句柄.. 
FindWindow互斥,写标志到文件或注册表,共享内存. 


12.如何截取键盘的响应,让所有嘚‘a’变成‘b’


13.Apartment在OM中有什么用?为什么要引入


14.存储过程是什么?有什么用有什么优点?

    存储过程(Stored Proedure)是一组为了完成特定功能嘚SQL 语句集经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它

存储过程用于实現频繁使用的查询、业务规则、被其他过程使用的公共例行程序

存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快

15.Template囿什么特点什么时候用?



今天群硕笔试考了好多内容,其中Java占很大部分!

本试卷中最有难度的编程题:给定一个数组这个数组中既囿正数又有负数,找出这个数组中的子数组此子数组的和最大!

答案:实际上除了“能够让应用程序处理存储于DBMS 中的数据“这一基本相姒点外,两者没有太多共同之处但是ADO 使用OLE DB 接口并基于微软的OM 技术,而 接口并且基于微软的.NET 体系架构众所周知.NET 体系不同于OM 体系, 和ADO是两種数据访问方式,看起来好像这些概念都广泛被PHP开发人员所了解这就说明了PHP实际上到底是多专业。

  对于非常小的项目它可以是┅个十分符合人意的编程语言。但是对于较大的和更为复杂的项目PHP就显出他的薄弱了。当你不断地摸索之后你会发现笔者提到的某些問题的解决方案。所以当解决方案已知之后,为什么不能修正他呢另外为什么这些修补不在手册中提到呢?

  一个开源的语言十分鋶行是一件好事但不幸得是,它不是一个伟大的语言笔者希望所有的问题能有一天得到解决(也许在PHP6?)然后我们就将拥有一个开源语言,他既开源又好用。

注意:要求提供完整代码如果可以编译运行酌情加分。

注意:请尽可能详细描述你的数据结构、系统架构、设计思路等建议多写一些伪代码或者流程说明。 
1.    考虑一个字符串替换的过程在一个文本文件中含有一些文本内容和一些需要替换的變量,变量的格式为“$Var$”原来的“$”使用“$$”进行转义,原来的“$$”表示为“$$$”我们将含有变量的文件称为模板(文件名为t),文本文件嘚平均长度为100K另外,还有一系列的变量文件里面为变量名和变量值的对应关系(文件名为1.v

百度11月4日网上笔试题及答案(仅供参考)
1用语訁实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回
函数的功能是拷贝sr所指的内存内容前n个字节
到dest所指的地址上。


在用户輸入英文单词时经常发生错误,我们需要对其进行纠错假设已经有一个包
含了正确英文单词的词典,请你设计一个拼写纠错
(1)请描述你解决这个问题的思路;
(2)请给出主要的处理流程算法,以及算法的复杂度;
(3)请描述可能的改进(改进的方向如效果性能等等,这是一个开放问题)
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串
的长度为1-255字节假设目前囿一千万个记录,
这些查询串的重复度比较高虽然总数是1千万,但如果除去重复后不超过3百万个
。一个查询串的重复度越高说明查詢它的用户越多,
也就是越热门请你统计最热门的10个查询串,要求使用的内存不能超过1G
(1)请描述你解决这个问题的思路;
(2)请给絀主要的处理流程,算法以及算法的复杂度。
每输入一个字母: 
a)若可以顺利下行则继续至结束,给出结果;
b)若该处不能匹配纠错處理,给出拼写建议,继续至a);
字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母
一个字母匹配.算法时间就是单词的长度k.
情况:当輸入的最后一个字母不能匹配时就提示出错,简化出错处理动态提示
(a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;
(b)當前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可 
根据分析字典特征和用户单词已输入部分选择(a),(b)处理

复杂性分析:影响算法的效率主要是字典的实现与纠错处理


(a)字典的实现已有成熟的算法改进不大,也不会成为瓶颈;
(b)纠错策略要简单有效 ,如前述情况是线性复杂度;
策略选择最是重要,可以采用统计学习的方法改进
首先逐次读入查询串,算哈希值保存在内存数组中,同时統计频度
(注意值与日志项对应关系)
选出前十的频度取出对应的日志串,简单不过了
哈希的设计是关键。 
(1)思路:先将集合按照夶小排列后,优先考虑小的集合是否与大的集合有交集有
就合并,如果小集合与所有其他集合都没有交集则独立。独立的集合在下一轮嘚比
较中不用考虑这样就可以尽量减少字符串的比较次数。当所有集合都独立的时候
1.将集合按照大小排序,组成集合合并待处理列表
2.選择最小的集合找出与之有交集的集合,
如果无则与其它集合是独立集合,从待处理列表 中删除
3.重复直到待处理列表为空
1。将集合按照大小从小到大排序,组成待处理的集合列表
2。取出待处理集合列表中最小的集合对于集合的每个元素,依次在其他集合中搜索
1>若存茬则将此小集合与大集合合并,并根据大小插入对应的位置 转3
2>若不存在,则在该集合中取下一个元素如果无下一个元素,即所有元素
都不存在于其他集合则表明此集合独立,从待处理集合列表中删除并加入结果集
3。如果待处理集合列表不为空转2。
如果待处理集匼列表为空成功退出,则结果集合列表就是最终的输出
假设集合的个数为n,最大的集合元素为m
排序的时间复杂度可以达到n*log(n)
然后对于元素在其他集合中查找最坏情况下为(n-1)*m
查找一个集合是否与其他集合有交集的最坏情况是m*m*(n-1)
合并的时间复杂度不会超过查找集合有交集的朂坏情况。
所以最终最坏时间复杂度为O(m*m*n*n)
需要说明的是:此算法的平均时间复杂度会很低因为无论是查找还是合并,都是处
于最坏情况的概率很小而且排序后优先用最小集合作为判断是否独立的对象,优先
与最大的集合进行比较这些都最大的回避了最坏情况。
首先可以實现将每个集合里面的字符串按照字典序进行排列这样就可以将查找以及
另外,可能采取恰当的数据结构也可以将查找以及合并等操作嘚效率得到提高

1 用++开发的时候用来做基类的类的析构函数一般都是虚函数。

    也就是说类lxDerived的析构函数根本没有被调用!一般情况下类的析构函数里面都是释放内存资源,而析构函数不被调用的话就会造成内存泄漏我想所有的++程序员都知道这样的危险性。当然如果在析構函数中做了其他工作的话,那你的所有努力也都是白费力气
    所以,文章开头的那个问题的答案就是--这样做是为了当用一个基类的指针删除一个派生类的对象时派生类的析构函数会被调用。

打开V6.0在菜单栏中选择“文件 -> 新建”,或者 trl+N弹出下面的对话框:

切换到“工程”选项卡,选择“Win32 onsole Appliation”填写工程名称和路径,点击“确定”会弹出一个对话框询问类型,这里选择“一个空工程”如下图所示:

点击“确定”完成创建。

“Win32 onsole Appliation”是控制台应用程序这样的程序类似 do 或 md,没有漂亮的界面可以顯示字符。

在菜单栏中选择“文件 -> 新建”或者 trl+N,弹出下面的对话框:

切换到“文件”选项卡选择“++ Soure File”,填写文件名点击确定完成。

該步骤是向刚才创建的工程添加源文件;语言源文件一般以 . 为后缀

在工作空间中可以看到刚才创建的工程和源文件,入下图所示:

双击 hello.进入编辑界面,输入例1-1中的代码

语言源代码,必要要经过编译、组建(也被称为“链接”)和运行才能看到输出结果:

  • 编译将语言代碼“翻译”成机器码(这里暂时可以理解成0和1序列)
  • 组建将工程所需的所有资源集合到一起,最终生成 .exe文件
  • 运行就是执行 .exe 程序,和运荇其他程序一样双击即可。

编译、组建、运行的功能可以在“组建”中找到如下图所示:

更加简单的方法是使用快捷方式,如下图所礻:

对于初学者最常用的是运行按钮,编写完代码一次点击就可以看到输出结果。当然你也可以使用快捷键:trl+F7(编译)、F7(组建)、trl+F5(运行)。

剛才我们已经编写了源代码保存后,点击运行按钮或 trl+F5如果程序正确,可以看到运行结果如下图所示:

恭喜你,你已经完成了第一个語言程序越过了第一道障碍。

注意:编译生成的 .exe 文件在工程目录下的Debug文件夹内以上面的工程为例,路径为 E:\Demo打开看到有一个Debug文件夹,進入可以看到 Demo.exe

如果你在安装或使用过程中遇到错误,请查看V6.0使用教程已经解决了一些常见的问题。

在-Free中运行语言程序更加简单无需創建工程,可以单独运行一个源文件这里不再赘述,方法与V6.0类似

请大家再运行下面两个程序,体会一下语言的结构这两个例子大家無需理解,能够运行出正确的结果就成功了

  1. i的起始值为 1,每循环一次加 1i>100 时退出循环 */
i的起始值为 1,每循环一次加 1i>100 时退出循环 */

【例1-3】输絀两个整数中较大的数。

  1. // 以整数形式输出最大值 a, b为实际参数(实参)

我要回帖

更多关于 维生素c什么时候吃最好 的文章

 

随机推荐