- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式linux 工程师面试题目C语言基础部分(面试必须掌握)
在网上看到了一篇嵌入式的面试题,忽然觉得自己很渺小……在未来一段时间内我会陆续贴
上我的答案,当然可能有些我做不出来,做出来的也不一定准确,在检验和提高自己的同时,
希望有走过路过高人指点一二。
下面的题目必须全部答对才给分:
1、 如何在C 中初始化一个字符数组。
2、 如何在C 中为一个数组分配空间。
3、 如何初始化一个指针数组。
4、如何定义一个有10 个元素的整数型指针数组。
5、 s[10]的另外一种表达方式是什么。
6、 GCC3.2.2 版本中支持哪几种编程语言。
7、 要使用CHAR_BIT 需要包含哪个头文件。
8、 对(-1.2345)取整是多少?
9、 如何让局部变量具有全局生命期。
10、C 中的常量字符串应在何时定义?
11、如何在两个.c 文件中引用对方的变量。
12、使用malloc 之前需要做什么准备工作。
13、realloc 函数在使用上要注意什么问题。
14、strtok 函数在使用上要注意什么问题。
15、gets 函数在使用上要注意什么问题。
16、C语言的词法分析在长度规则方面采用的是什么策略?
17、a+++++b 所表示的是什么意思?有什么问题?
18、如何定义Bool 变量的TRUE 和FALSE 的值。
19、C语言的const 的含义是什么。在定义常量时,为什么推荐使用const,而不是#define。
20、C语言的volatile 的含义是什么。使用时会对编译器有什么暗示。
这部分是ANSI C 的一些问题,题目的前提是必须都答对,看似很变态,但是细想一下,这
些都是最基础的,虽然我们在使用他们的时候会犯这样那样的错误,但是最终目的是不犯错
误,不是么,那么好,从最基础的开始。
1、 如何在C 中初始化一个字符数组。
这个问题看似很简单,但是我们要将最简单的问题用最严谨的态度来对待。关键的地方:初
始化、字符型、数组。最简单的方法是char array[];。这个问题看似解决了,但是在初始化
上好像还欠缺点什么,个人认为:char array[5] {1,2,3,4,5};或者char array[5] {12345};
或者char array[2][10] {China,Beijing};也许更符合“初始化”的意思。
2、 如何在C 中为一个数组分配空间。
最简单的方法是:char array[5];意思是分配给数组array 一个5个字节的空间。但是我们要
知道在C 中数组其实就是一个名字,其实质含义就是指针,比如char array[];是到底分配
的多少空间?所以我们要将其分成为两种不同的形式给出答案:
一种是栈的形式:char array[5];
一种是堆的形式:char *array;array (char *)malloc(5);//C++:array new char[5];
堆和栈的含义其实我也没弄太透彻,改天明白了再发一篇。
我们要明白的是,第一种形式空间分配的大小可能会受操作系统的限制,比如windows会限
制在2M;第二种形式成空间分配很灵活,想分配多少分配多少,只要RAM 够大。
3、 如何初始化一个指针数组。
首先明确一个概念,就是指向数组的指针,和存放指针的数组。
指向数组的指针:char (*array)[5];含义是一个指向存放5个字符的数组的指针。
存放指针的数组:char *array[5];含义是一个数组中存放了5个指向字符型数据的指针。
按照题意,我理解为初始化一个存放指针的数组,char *array[2] {China,Beijing};其含
义是初始化了一个有两个指向字符型数据的指针的数组,这两个指针分别指向字符串
China和Beijing。
4、如何定义一个有10 个元素的整数型指针数组。
既然只是定义而不是初始化,那就很简单且没有争议了:int *array[10];。
5、 s[10]的另外一种表达方式是什么。
前面说过了,数组和指针其实是数据存在形态的两种表现形式,如果说对于数组s[],我们
知道*s s[0],那么s[10]的另一种表达方式就是:*(s+10)。
6、 GCC3.2.2 版本中支持哪几种编程语言。
这个问题实在变态,就像问你#error 的作用是什么一样。不可否认,gcc 是linux 下一个亮点,
是一个备受无数程序员推崇的编译器,其优点省略1000 字,有兴趣可以自己查,我翻了翻
书,书上曰:支持C,C++,Java,Obj-C,Ada,Fortran,Pascal,Modula-3 等语言,这个“等”比较要
原创力文档


文档评论(0)