微软亚洲技术中心的面试题
微软面试题及答案-(很需要开放性思维啊)

第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?第二组1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个A TM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?第三组1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
微软经典面试题

微软经典面试题
微软经典面试题
1、如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下几乎不均匀,问你如何才能准确称出4公升的水?(40秒-3分钟)
2、一个岔路口分别通向诚实国和毁谤国。
来了两个人,已知一个
是正直国的,另一个是自白国的。
诚实国永远总的来说,说谎国永远
说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?(20秒-2分钟)
3、烧一根不均匀的绳,从头烧到尾总共需要1个小时。
以前有若
干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟
呢(1分钟)
4、你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取
科紫萁同种颜色的三个。
抓取多少个就可以确定你有两个同一颜色的
果冻?(5秒-1分钟)
5、在9个点上画10条直线,准许每条直线上至少有起码三个点?(3分钟-20分钟)
6、在一天的24小时之中,时钟的时针、分针和秒针完全重合在
一起的时候有几次?都分别是什么时间?你怎样算出来的?(5分钟-15分钟)
7、12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次表示就找到那个球。
13个呢?(注意此题未能说明那个球的重量是轻是重,所以可能需要仔细考虑)(5分钟-1小时)。
微软公司面试试题

微软公司面试试题work Information Technology Company.2020YEAR微软公司面试试题微软公司面试试题以下是微软的面试题目很有趣哦,自认为智商高的童鞋可以挑战以下自己!1. 你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
如果只允许你两次把金条弄断,你如何给你的工人付费2. 有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京。
如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。
请问,这只鸟共飞行了多长的距离?3. 你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。
只称量一次,如何判断哪个罐子的药被污染了4. 门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系5. 人民币为什么只有1、2、5、10的面值6. 你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会在你的计划里,得到红球的几率是多少(超难题说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在半个小时之内做出答案。
只能说明你的智力超常……)7. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢8. 你有一桶果冻,其中有**、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻9. 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水10. 一个岔路口分别通向诚实国和说谎国。
微软公司面试题及答案

微软面试题及答案1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?答案:1. 一要一头烧,一根从两头烧,再有一根做参照,两头烧完的记下位置(即烧到这里要半小时),把参照的那根从标记位置处剪开,取其中一段A。
一头烧的那根烧完后(就是一个小时后),把A从两头开始烧,烧完后即为十五分钟,加起来共一小时十五分钟。
2. 答案:四个~3. 大桶装满水,倒入小桶,大桶剩下2公升水。
小桶水倒掉,大桶剩2公升水倒入小桶中,大桶再装满后,倒入小桶至小桶满,大桶即剩4公升水。
4. 如果参加过类似于奥林匹克数学班的,都应做过这些题。
问他你的国家怎么走,他肯定指向的是诚实国。
5. 12个时可以找出那个是重还是轻,13个时只能找出是哪个球,轻重不知。
把球编为①②③④⑤⑥⑦⑧⑨⑩⑾⑿。
(13个时编号为⒀)第一次称:先把①②③④与⑤⑥⑦⑧放天平两边,㈠如相等,说明特别球在剩下4个球中。
把①⑨与⑩⑾作第二次称量,⒈如相等,说明⑿特别,把①与⑿作第三次称量即可判断是⑿是重还是轻⒉如①⑨<⑩⑾说明要么是⑩⑾中有一个重的,要么⑨是轻的。
微软面试题及答案

第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢? (注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?第二组1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个ATM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?第三组1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
十大微软最难面试题

十大微软最难面试题Microsoft 面试的难题是许多求职者在进入这家科技巨头面试时面临的挑战。
这些难题旨在考察应聘者的技术能力、解决问题的能力和创造性思维。
本文将介绍微软十大最难的面试题,展示这些问题的难度和解决思路。
1. 排序光标移动:在一维数组中,给定一个初始位置和一组操作指令(如L代表向左移动,R代表向右移动),求最终光标停留的位置。
解决思路:使用一个变量来记录当前光标位置,根据指令对其进行移动操作即可。
2. 判断回文字符串:给定一个字符串,判断它是否是回文(正读和倒读相同)。
解决思路:使用双指针法,一个指针从字符串的开头向后移动,另一个指针从字符串的结尾向前移动,比较对应位置的字符是否相同。
3. 统计岛屿数量:给定一个由0和1组成的二维矩阵,其中1代表岛屿,0代表海洋,求岛屿的数量。
解决思路:使用深度优先搜索(DFS)或广度优先搜索(BFS)算法,遍历矩阵的每个元素,当遇到岛屿时,将其周围的岛屿标记为已访问,统计岛屿的数量。
4. 实现LRU缓存:设计一个基于最近最少使用(Least Recently Used)策略的缓存数据结构,使得当缓存已满时,能够移除最久未使用的数据。
解决思路:使用哈希表和双向链表结合的数据结构来实现LRU缓存,哈希表用于快速查找数据,双向链表用于维护数据的使用顺序。
5. 二叉树的最近公共祖先:给定一个二叉树和两个节点,找到它们的最近公共祖先。
解决思路:使用递归的方式,从根节点开始向下遍历二叉树,当遇到节点p 或节点q时,返回该节点;如果左子树返回非空,右子树返回非空,则说明p和q分别在左子树和右子树中,最近公共祖先为当前节点。
6. 链表的倒数第k个节点:给定一个链表,找到倒数第k个节点。
解决思路:使用快慢指针的方式,让快指针先移动k个节点,然后快慢指针一起向后移动,直到快指针到达链表末尾,慢指针指向的即为倒数第k 个节点。
7. 判断二叉树是否平衡:给定一个二叉树,判断它是否是平衡二叉树(左右子树的高度差不超过1)。
微软面试题和答案

微软面试题与答案对数学难题和逻辑难题来说,我们比较容易断定它们的正确答案。
但是对那些“没有答案的问题”来说,什么样的答案才是主考官所希望的最好答案呢?这比较难说。
我们要注意,主考官对“弹性’问题答案的评价往往带有主观色彩和个人喜好。
比如,什么是“检侧盐瓶”的最佳方式?恐怕主考官喜欢什么样的方式,那种方式就是最佳方式了。
在提供答案的同时,我特意详细给出了答案背后的推理过程。
因为对于招聘面试来说,推理过程才是“真正”的答案。
1.让我们玩一玩俄罗斯轮盘吧……设想你被绑到椅子上没办法站起来,这里有一把枪,这是枪管,有6个枪膛,都是空的。
现在注意观察,我把两颗子弹装进去,看清楚我怎样把子弹装到相邻的两个枪膛里了吗?注意我现在合上枪膛转动枪管。
现在我把手枪对准你的脑袋并扣动了扳机,喀哒一声过后,你还活着!你真走运!现在,在讨论你的简历之前,我会再次扣动扳机。
请问你呈希望我首先转动枪管,还是直接扣动扳机就可以了?转动枪管的选择比较容易分析。
我们知道6个枪膛中装有2颗子弹。
或者乐观地说,6个枪膛中有4个是空的:如果转动枪管,你就有4/6,或者说2/3的生存机会。
如果不转动枪管呢?我们知道4个空枪膛都是相邻的:其中有一个刚刚没要你的性命:除了有一个空枪膛正好挨着两个实枪膛中的某一个,你还有3/4的机会可以活命,而只有1/4的机会中弹:3/4的生存机会当然要大于2/3的生存机会,你当然会选择不要转动枪管。
2.在不使用台秤的情况下,你怎样称出一架喷气式飞机的重量?有的应聘者建议到波音公司的网站上去查查这架飞机的具体规格,就会知道这架喷气式飞机的重量了。
可是主考官不允许这样做的话,他们还能够有什么招数?难道不允许使用互联网吗?不是。
这个问题的传统版本是要你在没有台秤的情况下称出一头大象的重量。
不管是飞机还是大象,都不允许你把他们卸成可以方便处理的小块儿。
答案是:你可以雇人运输或把飞机开到—个航空母舰、渡船或者轮船上,反正只要足够大能够放下飞机就可以厂,然后在船体上标记下此时水位线:接着把飞机开走,船又会浮起来。
微软面试题面试提示

微软面试题面试提示1、微软面试题:我们为什么要雇请你呢?有些面试只有一个问题。
虽然单词很简单,但却很难。
它主要测试你的冷静和自信。
给出一个简短、礼貌的回答:“我可以做我想做的事。
我相信自己。
我想要这份工作。
”。
根据你的实际情况,思考一下,看看如何以最高的说服力来表达。
2、微软面试题:你认为自己最大的弱点是什么?永远不要聪明地回答“我最大的弱点是追求完美”。
有些人认为这个答案看起来会更好,但事实上,他已经处于危险之中。
3、微软面试题:你最喜欢的大学课程是什么?为什么?谈谈与你申请的职位相关的课程。
展现你的热情没有坏处。
4、微软面试题:你最不喜欢的大学课程是什么?为什么?我不得不说这是我在我们大学的专业课。
虽然我知道这只是例行公事,但教室里一片死气沉沉。
老师和学生都想完成这个学期。
5、微软面试题:你在大学期间最喜欢的老师是谁?有人曾经回答得很好:“教授我们广告营销的教授可以让课堂充满活力。
通过例子,让学生把知识与现实紧密结合起来,而不是阅读课本。
我想我从他那里得到了最多。
”。
6、微软面试题:你能为我们公司带来什么呢?如果可以,试着告诉他们你可以减少他们的开支:“我已经接受了Microsoft Access 和word方面的培训,我可以立即工作。
”。
(访问培训费用为540美元,word费用为445美元,这可以为公司节省1000美元。
)7、微软面试题:最能概括你自己的三个词是什么?根据情况,可以说你有很强的适应能力、责任心和从头到尾的工作能力。
用具体的例子向考官解释,让他们觉得你有发展潜力。
8、微软面试题:你为什么来应聘这份工作?(或为什么你想到这里来工作?)“我来应聘是因为我相信我能为公司做出贡献。
我在这个领域的经验与少数人相当,我的适应性使我能够将我的责任提升到一个新的水平。
”为了说明申请的原因和工作意愿,应聘者的答案应该与公司的产品和企业相关,最好不要回答:因为未来有发展性和稳定的答案,我们应该表明我们已经充分研究了企业。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微软亚洲技术中心的面试题!!!1.进程和线程的差别。
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
2.测试方法人工测试:个人复查、抽查和会审机器测试:黑盒测试和白盒测试2.Heap与stack的差别。
Heap是堆,stack是栈。
Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。
Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行3.Windows下的内存是如何管理的?4.介绍.Net和.Net的安全性。
5.客户端如何访问.Net组件实现Web Service?6.C/C++编译器中虚表是如何完成的?7.谈谈COM的线程模型。
然后讨论进程内/外组件的差别。
8.谈谈IA32下的分页机制小页(4K)两级分页模式,大页(4M)一级9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方10.在IA32中一共有多少种办法从用户态跳到内核态?通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等11.如果只想让程序有一个实例运行,不能运行两个。
像winamp一样,只能开一个窗口,怎样实现?用内存映射或全局原子(互斥变量)、查找窗口句柄..FindWindow,互斥,写标志到文件或注册表,共享内存。
.12.如何截取键盘的响应,让所有的‘a’变成‘b’?键盘钩子SetWindowsHookEx13.Apartment在COM中有什么用?为什么要引入?14.存储过程是什么?有什么用?有什么优点?我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行SQL快很多15.Template有什么特点?什么时候用?16.谈谈Windows DNA结构的特点和优点。
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?1,进程:子进程是父进程的复制品。
子进程获得父进程数据空间、堆和栈的复制品。
2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。
同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
思科1. 用宏定义写出swap(x,y)#define swap(x, y)\x = x + y;\y = x - y;\x = x - y;2.数组a[N],存放了1至N-1个数,其中某个数重复一次。
写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:int do_dup(int a[],int N){int nSum1 = 1;int nSum2 = 0;int nRet = 0;for(int i = 0; i < N; i ++){nSum1 += i;nSum2 += a[i];}nRet = nSum2 - nSum1;return nRet;}3 一语句实现x是否为2的若干次幂的判断int i = 512;cout << boolalpha << ((i & (i - 1)) ? false : true) << endl;4.unsigned int intvert(unsigned int x,int p,int n)实现对x的进行转换,p 为起始转化位,n为需要转换的长度,假设起始点在右边.如x=0b0001 0001,p=4,n=3转换后x=0b0110 0001unsigned int intvert(unsigned int x,int p,int n){unsigned int _t = 0;unsigned int _a = 1;for(int i = 0; i < n; ++i){_t |= _a;_a = _a << 1;}_t = _t << p;x ^= _t;return x;}慧通:什么是预编译何时需要预编译:1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。
在这种情况下,可以将所有包含文件预编译为一个预编译头。
char * const p;char const * pconst char *p上述三个有什么区别?char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p; //和char const *pchar str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";cout << ( str1 == str2 ) << endl;cout << ( str3 == str4 ) << endl;cout << ( str5 == str6 ) << endl;cout << ( str7 == str8 ) << endl;结果是:0 0 1 1解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。
12. 以下代码中的两个sizeof用法有问题吗?[C易]void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{for( size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )if( 'a'<=str[i] && str[i]<='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl; UpperCase( str );cout << str << endl;答:函数内的sizeof有问题。
根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。
函数外的str是一个静态定义的数组,因此其大小为6,函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。
一个32位的机器,该机器的指针是多少位指针是多少位只要看地址总线的位数就行了。
80386以后的机子都是32的数据总线。
所以指针的位数就是4个字节了。
main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int *ptr=(int *)(&a+1);则ptr实际是&(a[5]),也就是a+5原因如下:&a是数组指针,其类型为 int (*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同a是长度为5的int数组指针,所以要加 5*sizeof(int)所以ptr实际是a[5]但是prt与(&a+1)类型是不一样的(这点很重要)所以prt-1只会减去sizeof(int*)a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].1.请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。
char* s="AAA";printf("%s",s);s[0]='B';printf("%s",s);有什么错?"AAA"是字符串常量。
s是指针,指向这个字符串常量,所以声明s的时候就有问题。
cosnt char* s="AAA";然后又因为是常量,所以对是s[0]的赋值操作是不合法的。
1、写一个“标准”宏,这个宏输入两个参数并返回较小的一个。
.#define Min(X, Y) ((X)>(Y)?(Y):(X))//结尾没有;2、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。
while(1){}或者for(;;)3、关键字static的作用是什么?定义静态变量4、关键字const有什么含意?表示常量不可以修改的变量。