c语言语法基础考试++++

c语言语法基础考试++++

ID:32280868

大小:39.50 KB

页数:5页

时间:2019-02-02

c语言语法基础考试++++_第1页
c语言语法基础考试++++_第2页
c语言语法基础考试++++_第3页
c语言语法基础考试++++_第4页
c语言语法基础考试++++_第5页
资源描述:

《c语言语法基础考试++++》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MaxWit嵌入式Linux魔鬼训练营阶段性测试—— C语言语法基础考试(第2轮)学员姓名:          试卷说明:1)    本试卷共25题,部分来自Intel、微软、TI等公司的面试题,其余出自平时基础课程。2)    本试卷主要目的是考查对C语言本身的理解程序,而非算法测试。3)    所有题目均需相关说明,“yes/no”型回答均不得分。4)    从实际项目开发的角度回答问题,切忌使用应试教育中的答题方式。必要时可自由发挥。  (一) 下面哪一题题目本身有误? (二) 我们常说C语言中的指针表示内存中的一个地址。那么,就目前的PC机而言,这个内存地址指的就是主板DIMM插槽上

2、DDR3SDRAM内存中的一个地址吗? (三) 函数指针与普通数据类型指针有什么区别? (四) 我们常说main()函数是C程序的入口,所以程序执行时的第一条机器指令位于main地址处,对吗?若不是,请解释main()函数之前还需执行什么? (五) 我们常说C语言是一种基于函数和栈的语言。那么,C语言函数中的栈与普通数据结构上提到的栈有什么区别?(至少回答两点) (六) 32位ARMLinux嵌入式系统,典型Memory空间划分为3G(user)+1G(kernel)。基于这种划分,请画出Linux内核和用户进程的空间布局图,要求至少包括数据段、代码段、栈和堆四个基本段。 (七) 未初始化全

3、局变量是怎样被初始成0的? (八) 你在什么情况下会使用预处理标识#error? (九) 如下定义数组是否合法?并说明理由。intn=1024;chara[n]; (十) 定义Type*a[3][4],当Type为int*或char时数组a占据的内存空间大小分别为多少? (十一)        static、const两个常用关键字的作用? (十二)        volatile关键字和memorybarrier的作用? (十三)        switch语句为什么比if语句效率高? (十四)        写一个if语句判断一个32位整数能否表示为2的某次方(不能用循环)。 (十五) 

4、       有一个32位变量a,将a的bit3~bit5置为2(即0b010),其它几位保持不变。 (十六)        用C语言实现将内存地址从0x87654321的开始的4个字节置为0x1234,并说明你的代码有何问题。 (十七)        有如下变量定义,请依次写出后面四条赋值语句的左值:charcx=(char)0xff;unsignedcharbx=(unsignedchar)0xff;intix;unsignedintux; ix=cx;ix=bx;ux=cx;ux=bx; (十八)        指出下面代码的错误之处:typedefstructSS{      int

5、x,y,z;}*p;p=malloc(sizeof(*p));//TODO:addcodeherefree(&p->y); (十九)        已知某一类型Type1,请分别使用#define和typedef语句把Type2定义为Type1,并说明你的代码有什么问题。 (二十)        下面代码有什么问题?char*a=“abc”,b[]=“abc”;intmain(){      char*c=“abc”;      chard[]=“123”;      strncpy(c,d,10);} (二十一) 下面代码中*p的值是多少?(用16进制表示)chara[]={1,2,3,4

6、,5,6,7,8},*b=a+2;int*p=(int*)a+1;//此时*p=?      p=(int*)b;//此时*p=? (二十二) 已知structSS中有一成员count,写一表达式求count在SS中的偏移。 (二十三) 写一段代码,验证栈往低地址方向增长。 (二十四) SamsungS3C2440基于低端的ARMv4架构,虽已淘汰出主流市场,但功能简单、便于入门,为广大无基础的嵌入式爱好者自学时使用;目前业界ARMv5及以上架构是主流,如ATMELAT91SAM9263、SamsungS3C6410、MarvellPXA168均为ARMv5以上架构,我们日常教学及实践以AR

7、Mv5以上平台为主。现有一网友向我们report一个bug:开源项目g-bios中的一段代码在他的S3C2440上运行失败,而同样的代码在我们的AT91SAM9263和S3C6410上却能正常运行。经初步分析,怀疑问题出在函数指针上。请结合ARM体系结构及C语言编译器回答下面问题:1)       函数和函数指针的本质分别是?2)       S3C2440与AT91SAM9263上C语言函数指针的实现有何不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。