IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 單片機學習 > 單片機編程入門 > 單片機編程面試題 常見問題及答案

單片機編程面試題 常見問題及答案 時間:2018-01-24      來源:未知

2018年新的一年,新的開始,相信有很多人都在備戰找新的工作了。那么不妨來了解一些單片機編程面試題,做好萬全的準備,才可能百發百中嘛。下面分享三個單片機編程面試題,都是很常見的問題,附帶答案。

問題一:char *p="abc" 與 char p[]="abc" 的區別

答案:

1.以字符串形式出現的,編譯器都會為該字符串自動添加一個0作為結束符,如在代碼中寫"abc",那么編譯器幫你存儲的是"abc\0"

2."abc"是常量嗎?

答案:有時是,有時不是

不是常量的情況:

"abc"作為字符數組初始值的時候就不是,如

char str[] = "abc";

因為定義的是一個字符數組,所以就相當于定義了一些空間來存放"abc",而又因為字符數組就是把字符一個一個地存放的,所以編譯器把這個語句解析為

char str[3] = {'a','b','c'};

又根據上面的總結1,所以char str[] = "abc";的終結果是

char str[4] = {'a','b','c','\0'};

做一下擴展,如果char str[] = "abc";是在函數內部寫的話,那么這里的"abc\0"因為不是常量,所以應該被放在棧上。

是常量的情況:

把"abc"賦給一個字符指針變量時,如

char* ptr = "abc";

因 為定義的是一個普通指針,并沒有定義空間來存放"abc",所以編譯器得幫我們找地方來放"abc",顯然,把這里的"abc"當成常量并把它放到程序的 常量區是編譯器合適的選擇。所以盡管ptr的類型不是const char*,并且ptr[0] = 'x';也能編譯通過,但是執行ptr[0] = 'x';就會發生運行時異常,因為這個語句試圖去修改程序常量區中的東西。

記得哪本書中曾經說過char* ptr = "abc";這種寫法原來在c++標準中是不允許的,但是因為這種寫法在c中實在是太多了,為了兼容c,不允許也得允許。雖然允許,但是建議的寫法應該是 const char* ptr = "abc";這樣如果后面寫ptr[0] = 'x'的話編譯器就不會讓它編譯通過,也就避免了上面說的運行時異常。

又擴展一下,如果char* ptr = "abc";寫在函數體內,那么雖然這里的"abc\0"被放在常量區中,但是ptr本身只是一個普通的指針變量,所以ptr是被放在棧上的,只不過是它所指向的東西被放在常量區罷了。

3.字符串常量的類型可以理解為相應字符常量數組的類型,如"abcdef"的類型就可以看成是const char[7]

4. 如果真的需要使用"abcd"作為指針,建議寫為const char * p="abcd";

如果是初始化字符串數組,建議寫為char p[]="abcd";

如果p為指針,需要初始化,應該是char *p;p=malloc(STR_SIZE);strcpy(p,"abcd");

問題二:單片機實現軟件復位(軟復位)的方法及討論

1、放狗;2、((void(code *)(void))0x0000)();3、用單片機一個引腳控制點一下RSTRST;4、用單片機一個引腳控制重新加電;5、用單片機自帶的軟件復位指令或內狗指令;6、goto大法

方法1:“放狗”是單片機軟復位的好辦法,也基本上是唯一的一個辦法。但并不是所有單片機都具備看門狗的功能,也不是一個萬全之策。

辦法2:這不是復位,只是把程序轉到地址0去執行,不如用一個JMP更直接。目前可能極少數單片機或者用戶已經自行添加Boot load時用戶程序的程序開始地址并不為0x0000,所以需要查找這些特定單片機的啟動地址。在keil C51下面可以這樣實現:void soft_reset(void){ ((void (code *) (void)) 0x0000) ();}或者void (*reset)()=0x0000;在需要軟件復位的地方使用語句:soft_reset(); 一般可實現軟件復位。

辦法3:用軟件實現的硬復位。需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可取。

辦法4:類似辦法3,同樣需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可取。但不能把它單單地當成是復位,應該叫上電復位。

辦法5:Atmel 89C不帶內狗,S的有內狗,只是一條指令就行。如STC的單片機有軟件復位指令,即ISP_CONTR,地址在0E7H 單元(即str ISP_CONTR=0xE7),MOV ISP_CONTR,#00100000B(C語言為ISP_CONTR=0x20),內狗也是一條指令MOV WDT_CONTR,#00111100B!STC 51系列單片機Datasheet中指出:傳統的8051 單片機由于硬件上未支持此功能,用戶必須用軟件模擬實現,實現起來較麻煩。現STC 新推出的增強型8051 根據客戶要求增加了ISP_CONTR 特殊功能寄存器,實現了此功能。用戶只需簡單的控制ISP_CONTR 特殊功能寄存器的其中兩位 SWBS / SWRST 就可以系統復位了。

辦法6:程序從頭(上電復位處)開始運行,且只有一個循環這種情況,當然可以用goto,如在main()的開頭設一個start:,在程序的唯一循環中設定一個條件,然后goto命令。但需要注意,如果是在中斷例程里,那么中斷掛號寄存器仍置位,同級中斷不能執行。所以必須先使中斷掛號寄存器清零,EA = 0。只有RETI指令可以使中斷掛號寄存器清零。51單片機有兩級中斷優先級,所以需要執行兩次RETI指令。這用匯編是很簡單的事,而C則比較難以實現。但是,goto命令盡量不要用,因為goto會到處亂竄,而且goto不能跑到函數外面去執行一個命令。

后總結如下:好使用辦法5為簡潔方便,使用辦法2實現也不失為一種好方法

問題三:

int main()

{ int a=5;

int*q;

q=(int*)&a;

printf("%d\n",*q);

}

代碼沒有問題,面試中可能會把q=(int *)&a;中的強制轉換去掉問你會出什么問題

以上內容總結的三個單片機編程面試常見問題,你都會了嗎?如果還不會,再仔細看看答案哦。

上一篇:單片機編程入門學習路線

下一篇:單片機編程用什么語言 哪個適合新手

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 河南反渗透设备-河南EDI超纯水设备-郑州纯净水设备-郑州友邦水处理设备有限公司 | 宜宾三江人才网_三江人才网_宜宾三江人才网_三江人才直聘网是本地颇具规模的网上人才市场 | 郑州空气能热水器,郑州空气能热水器经销商,郑州空气能热水器维修,郑州空气能热水器安装 | 真空上料机_加料机_天津自动上料机_投料站_包装机加料_吸料机_粉体称重-天津市飞云粉体设备有限公司 | 真石漆设备-干粉砂浆生产线-保温砂浆机械-郑州屹成机械设备 | 网络广播_公共广播系统_校园,学校数字ip,itc智能广播系统方案 | 耐磨陶瓷涂料_耐磨防腐涂料_KNM防腐陶瓷涂料-北京耐默 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 泰安铭德机械有限公司,有机肥设备,山东有机肥设备厂家,铭德机械 泰安华特玻璃钢有限公司|泰安玻璃钢|泰安华特玻璃钢 | 深圳专卖店设计,餐饮空间设计,酒店空间策划设计【左右高端人文空间设计公司】 | 真空上料机_加料机_天津自动上料机_投料站_包装机加料_吸料机_粉体称重-天津市飞云粉体设备有限公司 | 厦门,泉州自助餐上门|生日自助餐|婚礼自助餐|公司聚会自助餐|户外烧烤|冷餐|茶歇外卖配送-福建非选餐饮公司 | 张家港起重搬运吊装,工厂设备搬运服务-张家港易源起重搬运有限公司 | 美缝剂_美缝剂加盟_瓷砖美缝剂_美缝剂厂家_填缝剂_领翔美缝剂-【官网】 | 孝感东方妇科医院_孝感妇科医院哪家好_孝感人流多少钱 | 卡压式管件_不锈钢卡压式管件_双卡压管件_不锈钢沟槽管件_承插焊管件_温州市中达阀门管件有限公司 | 太阳能杀虫灯-农业用杀虫灯-果园灭虫灯厂家「尚科杀虫灯| | 乌海市腐植酸盐加工,内蒙古腐植酸钠,内蒙古型煤粘合剂生产厂家|创联腐植酸盐加工有限公司 | 环链电动葫芦-群吊电动葫芦-链条电动葫芦-环链葫芦-河北大力起重官方网站 | 瑞安网站建设_网站制作_做网站找瑞安联创网络:专业网页制作、手机网站、SEO百度网站关键字优化 软文营销推广-新闻稿发布-软文撰写-百科词条编辑-品牌全案策划推广网络营销传播-喜尚传媒 | 室内门十大品牌-生态木门厂家-室内门厂家 - 浙江威威工贸有限公司 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 合肥固化地坪-安徽耐磨地坪-合肥环氧地坪厂家-安徽玉平地坪工程有限公司 | 郑州井盖雨水篦子厂家-建联建材 郑州建网站,郑州做网站,郑州网站建设,郑州网站制作,郑州高端定制网站,郑州APP开发 | 售后服务认证-五星级物业售后服务体系认证证书-ISO27001信息安全管理体系认证证书查询认E云-湖北省贯标企业管理咨询有限公司 | 湖北高新技术企业认定申报|武汉高企认定代办|武汉项目申报首选 - 湖北创优企科技服务有限公司 | 凿岩机|操车设备|爬车机|三环链|伞钻|伞型钻机|中心回转抓岩机|往复式给煤机|滚轮罐耳|吊桶|钩头-济宁卓力工矿设备有限公司 | 手术无影灯生产厂家-提供电动手术台,电动产床定制与批发-山东华辰医疗设备有限公司 | 深圳奥力特化工产品有限公司企业网站 | 食用油灌装机-油类食用油灌装设备-液体灌装机_青州市惠联灌装机械 | 数控机床市场网-专业的数控机床网站| 江阴市卡泰机械设备有限公司 | 液压万能试验机价格_电子万能试验机|摩擦磨损试验机厂家-济南辰达试验机制造有限公司 | 山东万通液压股份有限公司-自卸车专用油缸,能源采掘设备油缸,机械装备用油缸,油气弹簧,工程机械油缸,液压元件 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 网站客服系统_在线客服系统【莺语客服】 | 吉林省创智汇成包装有限公司,长春高档礼盒,长春包装盒厂家,长春精品包装盒 | 铁行火车票_铁行火车票网上订票_铁行火车票客户端【铁行官网】 | 商用厨具|商用厨房设备|商用电磁灶-鲁宝厨业官方网站 | 指挥调度|调度系统|应急指挥调度|应急指挥|可视化调度|多媒体指挥调度|融合通信|综合调度|应急指挥系统|IP调度系统-北京瑞光极远数码科技有限公司 | 欧美日韩人妻精品一区二区三区_欧美成人精品欧美一级乱黄_亚洲欧美日韩高清一区二区三区_国产一级做a爰片久久毛片_日韩一级视频在线观看播放_精品一区二区三区免费毛片爱_完整观看高清秒播国内外精品资源 |