嵌入式面试题-C&C++-呼吸
嵌入式试题面
网在看到了上篇一入嵌的面式题,忽试觉然自得己很小渺…在未…来一段时内我间会续陆上我贴答的案,然可当能有我些不做来出,做出来的不也定准确,一检验在和提自己高同的,希时望有走过过路人指点一二高。
下
的面题目必须部答对才全给分:
1、
如 何在C中始初一个化符数组。字
2 如何在、C中为个数一组配分间空。
3、 如何
初化始一个指数针组。
、如4定义何一有10个个素的元整数指针数组。
型
、5 s[1]0另外一的表种方达式是什。么
6、GC 3C.2.2版本中支持几种哪程编言。
语7 要使、CHAR_用IT需B要包哪含个头文。件
8 、对-1(.234)取5是整多?少
9
、如何让局部变具有全量生局期。
10、C命中的常量字串应符何时定义在
?1、如何1在个两c.件中文用对方的变量引
。1、2用m使lloa之前需要c什么准备工作做。
13、erlaol函数c在使上要注意用么问什。
题4、1sttok函r在使用上数要意什么问题。
15注、gtes数在函用上使注要意什问么。题
16、C
语言的词分法析长在规则方面度采用是什的策么?
略17、a
++++b所+表的示是么什思意有?什么问?
题18、如
何定Boo义变l的T量UR和EFASE的值。
1L9C语言、的oncs的含义t什么。在定是常量时,为什么义推荐用con使t,s不而#是edifn。
20、C语e言的olavtlie含的是义什么使。时用会编对译有器什么示暗
。
这
分部ANSI是
的一C些问,题题目前的是提必都须答,对看似变很态但是细想,下一这些都,最是基础,的虽然们在使用他们的时候会我这样那样的犯错,误但是最目的终不是错犯,误是不,那么好,从最基么础开始。
的
1
、 何在C如初中化始个字符数一组
。个这题问似看简单很,是但我要们最将简的单问题用严谨最的态度对来。关待键地方的初始:化、字符型、组。数简单最的法是方hcar
arry[a];。这问个看题解决似,了但是在初化上好始像还缺点欠么什,人个认
为:
carh
rray[a]5{=#3&9;1&3#;,9#&392;#&39;&,#3;3&9#39,&#;9;4&3#93,&#;3;59#39;}&或;c者ha r
a
rra[y5]{&q=ot;u21354quot&;;}者或chra
a rray[][210=]{&uqo;Cthniaqu&o;,tq&out;Bijeig&quno;}t也;更符合“许初始化的意”思。
、 2何在C中为如一个组数配分间。空
最
简单的方是:cha法r
array5][意;思分是配数给a组rray个一5字个的空间。节是但我要知道在C们中数其组实就是一名个,字其质实含义是指针,比就c如hr a
aray[r;]到底是配分多的少空?间以我们所将其要分为成种不同的形两给出式案答:
一是种的形栈:c式hr aarayr5[];
一
是堆的形式:ch种a *arrra; yarary(=hca r
*)
mlloca5);/(C/+: array+n=w e
chr[5];a
堆栈和含义其的实我也弄没透太,彻天改明白了再一篇。发
我
要明们白是的,一种形式空第间分配大小的能可会操受系作统限制,的比如inwowd会s限制2在;M二种第式成空间分形配很灵,想分活配多少配分少多只,要RAM大够。
、3如何 初始一化个针数指。组
首
明先确个一概念就,指是向组的指针,数存放指和的针组。
数向指组的指针数c:ah r*ar(ry)a[5]含义是一个指;存向5放个符的字组数的针指
。存指针的放数组:cha r*rray[5a;含]是义个一数中存组放5了指向字符型数个的据指针
。照按意题,理我解初为始化一存放指个的针组数,har
c*
raar[y2=]{&uoq;Chitnaq&out,&;qut;oBeijng&iuqot};其;义含初始是了化个有两一个向字指型数据符指针的数的,组两个这指分针别向字指符串&qout;hina&Cquto和&;qot;Beuiing"j。
;
4如、何定一义有1个个元0的整数素型针指组数。
既然
只是定而不义是始初化,那很简就单没有争议且了:int *arrya10];。
[
5
s、1[0的]外另种表一方达是什么式。
面说前过了,组和指数其实针数据存在是形态的两种表形现式,如果说对数组于[]s我,知们道s=s[0*,]那s么10]的另[种一表方式达就:*(是s+10。)
6
、 GCC3..22版本中持支哪几种程编言语
。这
问题个在实态,变就像你#error问作用是什么的样。不可一认,g否ccli是un下一个亮x,是一个点受备无程序员推崇的编译数器其优点省,
1略000,有字趣兴可以自查
己
我翻了,翻书,书上:支曰持CC++,,aJva,Ob-jC,Aad,Fotranr,asPcal,odMua-l等3言,这语“等个比”较要,不过我命为认经已全很,了果认如为还是全,不干把A脆S也M加上了,算过不已经那算不是编了译
。
7
、要使 CHAR_B用IT需要含哪个包文件。
头如
果结合上的问题面,题的人答计会认为自估撞鬼了,这个己题问实在是…搜索了…下,一该应是imilts.。h
8、 对
(1-.3452)整取多是少?
其实不
同取的整数函能有可同的不结果不过,这个数没太大的有争议答案,是1-。
9、 如何让
局变部量具有局生全命期。
体的具命期的生概我念得觉还要我好深好入的习一学下,是这但题个还算比目较简单,即st用aict饰就可修了以但,只是是生期命延长范围并没有扩,大除非,这把个变量定在义函体数的外态区,静过那样就不变全成变量局了仿佛,不合符题目要。求
1
、C0的常量字符串中应在时何义?
这个问题说定实话是很不解理干题的思意据我理,,解两种情有况,一是种预理处阶段用#defin,e定义还有;就使是用cnso修饰t词不,c过onst饰的是修个变量一其含,义是“只读,称之为常”并不量准,但
确是确实以可用操变作的方量法常当量。用所以是还第一比较靠谱种
。
11如何、在个.c两件中引文用方的变量对。
个这问题也的挺问糊的含怎,说么,呢简最最单接的直方是为变法添加e量xetr修饰n词,然,这个当量必须是全变变局量。有还种就一利是用函数用调来行变进的量间引接,用比这如个C文中的一个函数件引用外另个一中的函C数将,变量过通实的形参式传递去。过过题不既然目说是用,那么还是用引一个第答好案了
。
1
2使用、mlaocl之前要需做什准备么作。
其实工备准作工多啊很,比如你要需一计算台机类之。的笑玩话我们,首先要道ma知loc的l用,简途的说就单是态的动分一配段空间返,回段这空的头间针指实际。准备工作可的以么分:需这要段空间的这指针否是存,在不若在,存定义则个一针用来指赋被值还要,清要返回一楚什个类么型指针,的配的空间分是否合;如理果针指已存在,那经在么新将重新空间头地址的值给赋个这针指之前,先要断指针判否为是ULNL如,果是不fre要e下一否,则来的空原就间会浪被费,者出或错f,ee之后就r按照一种前形情虑考可就了以。
1、real3oc函数在使用l要上意什么问注题
。
个这数我也才知函的,汗一个。据道的我初步解,理个这数的作函是重用新分空间配小大返回,头的指针不,变是只改变空间小。既大是改变,就然变有大变小、和什么改变为的题问变大,要注意不。大到能内存出;溢小变那,小的那部分变空会间征被,用有数原不据再存在;为什么改,如果是变想重挪作他用新还是先
,
fre了吧e
。
1
4、tsrokt函在数使用要注上什么问题。意
这
问题个我知不能不道回答能全面,为因在是用实的少。很个函这的数用作是割字符分串但是要分割,字的符串能不是量,常这要注意是。的如比先义一定个字串:c符har
arayr][&q=outp;art,p1art&quo2t;;,tsrtok的原形是hcra* tsrto(chkar
s*ringt ,hca r
*
elimd),;我将们q&uo;,t&uoqt作;为隔分,符先pt=用tsrtko(raray,"&qu,to);,;得到的果结prin出来就是t&quo;partt&qu1o;,t那后面呢,的写要成t=ptstrok(NLL,&Uquo;,&tqot;u;,注),要意N用LUL,如果分割的被字串会符分成被段,那N从第二开始就次一要用直NLU。L总结来起需要,意注的是:分被割字符串和的分符都隔要用使变;除量一第次使指用字符向的串针外指之后的,都要用N使UL;L意使注用个这数函的候千时万把指针别丢跟,不然就了乱了全
。
1、5egt函s在使用上数要意注什问么题
。这是
一键盘输个入数,将函入字输符的头串址地返回说到。注意的要题,问还是我查了先
一下网上的一情况,些要注需的就意是egs以t输入车回束,这结个球地人都道,但知是很多人不知的是道当,你入完输一个字串符后,这字个串符可能依存在然这于标准输个流之中入,当再次用g使ts的e候时,许也把上次会输入的东西读来出,所以该应使用之在后用ffusl(htsdi);处n一理下将,入流清输。空最也后还是注意溢要的问题出关于这。答个案我比含较,糊知不有没道高有高人见?
1
6C语言、的词法分在长度析规方则面用采的是么策略什?
我语无…闻…所未闻啊……还是搜索了下,一一篇文有章地址,:是tht://20p2.11780../9p20j5020/kc/z/wlkc/wwkc/l033/_5_.2htm,是于关法词分器析。其的中到提了两策点:略
1()按最长匹配原则 定确被的选词型(;2
如)果一个字串能符若干个为型匹词配则排列,在前最的面型被词选中不。知道不是题干的要求,是还其是什么
他。我乃
一介民草,望达人点迷指!津
1、a+++++7所表示的是什b么意?有思什问题?
这个么东(西之为东称一西都点不过分)其实并没有语错法误,按C对照算运符等级的划分++的,优先大于级,那么这句+会话被译器编做:(a看+++)+(+
b) ,这回明白了吧。什有么题问语,法上没有问,题有的是德上的道题问作!为个一优的程秀序员我,要力们语求的合法句性可和读,性果写如这的人句是一在
个tea
里m,么那他基本会被的半打死…最…后论讨下结一:假果设a前之值的是,b是34,那么行完这运个变语态句,a的值是后,b是4,语句5结的是
果8。
18、如定何Bo义ol量变T的RE和FALSE的U值
。不
知道个这题什么有陷,写到现在阱神经已经大,一了来说般要把先URET和ALSEF给义了,使用定d#eifn就e以可
#:efine TUdE R1
#
edfine ALFSE 0
如果
一个变有需量定义成要bool的,型个举子:boo例 l=TaRUE就;以可。了
1
9C语言的const的、含是义什么。在义定量时常,什为么推荐用使cnots而不是#,dfiene
。
先,这个首题干了抽10回答的一题个嘴大巴关于。量的常念概来看我好要看好看书了……说我过了,cnost修词饰可将以个一变修饰为量只“读”这个就,称为能常么?量且认姑为以。回可题到中,c目osn是t读的意只,它限定一个变量不思允被改许,谁都不变改!既能然修是饰量,变么那变的量型类可以就富丰多,彩nit啊ch,a啊r,只C认识要的可都以;但#defi是en就可以不了,在预处理阶缺段乏类检测机制,有可能型会错。出有就还是变可量 以
ex
tern,但是defi#e就不可以。n似貌cont还s可以省节AM,R这个我倒没是考有过。证至c于nost用法和的用,有很作多我会总结,发后来。上
2
0
、C语言的vlatolei含义的是么什使用。时会编对器有什译么示暗。
终于最
后一题了,容么…易如…果个测这试是一关个于嵌入的式那,么这道非常题要重!从词!上讲,面volailt的意思e易是变,的就是说也,在程序运行程过中,有些一量可能变会被莫名妙的其变改而,优化为了节器时约间有,候不会时读重这变个量的实值,真是去读而寄存器在备的份,这的样,话个这量的变实真反值而被化优给器优“”掉化了用时髦,的词说就被“和是谐了”。果如使用这
了个修饰词就,通知是编译器别犯懒,老老实实重新去一遍!读可我说能太的通“俗了,那么我”引用下一“师”的大准标释:
解v
latilo的本e是“易变意的 。
”
由访于问寄存的器速度要快过AR,M所编以器一译般会都作减存少外取部RA的M优,但有可能会读化数脏据当。要求用使vlatiole
声明
变量的的的时值候系统总,是新重它从在的所内存取读数据即使它前面的指令,刚从刚处读取该数据。过而且取读的数据立被保刻。存
精确地
就是说,化器在用到这个优量时必须每次变都小地重心新取这个变量的值读,不而使用保是在存存寄器里的备份。
下面v是olailt变e量的几个例子
1:).并行 备的硬件寄设器存(:状如寄存器)态
)2 .一中断服务个子程序中会访问到非的自变动(量Non-atuomaic taviralbe)
s
3.)多线 应程中被几用个务任共的享量
变
入式嵌系程统员经序同硬件常中、断R、TOS等等交道打,所这用些要都vo求atlil变e。量不得vo懂latie内容l将会来带灾。
难