C语言语法基础考试.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言语法基础考试(第2轮) 学员姓名:????????? ? 试卷说明: 1)???? 本试卷共25题,部分来自Intel、微软、TI等公司的面试题,其余出自平时基础课程。 2)???? 本试卷主要目的是考查对C语言本身的理解程序,而非算法测试。 3)???? 所有题目均需相关说明,“yes/no”型回答均不得分。 4)???? 从实际项目开发的角度回答问题,切忌使用应试教育中的答题方式。必要时可自由发挥。 (一)?下面哪一题题目本身有误? ? (二)?我们常说C语言中的指针表示内存中的一个地址。那么,就目前的PC机而言,这个内存地址指的就是主板DIMM插槽上DDR3 SDRAM内存中的一个地址吗? ? (三)?函数指针与普通数据类型指针有什么区别? ? (四)?我们常说main()函数是C程序的入口,所以程序执行时的第一条机器指令位于main地址处,对吗?若不是,请解释main()函数之前还需执行什么? ? (五)?我们常说C语言是一种基于函数和栈的语言。那么,C语言函数中的栈与普通数据结构上提到的栈有什么区别?(至少回答两点) ? (六)?32位ARM Linux嵌入式系统,典型Memory空间划分为3G(user) + 1G (kernel)。基于这种划分,请画出Linux内核和用户进程的空间布局图,要求至少包括数据段、代码段、栈和堆四个基本段。 ? (七)?未初始化全局变量是怎样被初始成0的? ? (八)?你在什么情况下会使用预处理标识#error? ? (九)?如下定义数组是否合法?并说明理由。 int n = 1024; char a[n]; ? (十)?定义 Type *a[3][4],当Type为int *或char时数组a占据的内存空间大小分别为多少? ? (十一)???????? static、const两个常用关键字的作用? ? (十二)???????? volatile关键字和memory barrier的作用? ? (十三)???????? switch语句为什么比if语句效率高? ? (十四)???????? 写一个if语句判断一个32位整数能否表示为2的某次方(不能用循环)。 ? (十五)???????? 有一个32位变量a,将a的bit3~bit5置为2(即0b010),其它几位保持不变。 ? (十六)???????? 用C语言实现将内存地址从0开始的4个字节置为0x1234,并说明你的代码有何问题。 ? (十七)???????? 有如下变量定义,请依次写出后面四条赋值语句的左值: char cx = (char)0xff; unsigned char bx = (unsigned char)0xff; int ix; unsigned int ux; ? ix = cx; ix = bx; ux = cx; ux = bx; ? (十八)???????? 指出下面代码的错误之处: typedef struct SS { ?????? int x, y, z; } *p; p = malloc(sizeof(*p)); // TODO: add code here free(p-y); ? (十九)???????? 已知某一类型Type1,请分别使用#define和typedef语句把Type2定义为Type1,并说明你的代码有什么问题。 ? (二十)???????? 下面代码有什么问题? char *a = “abc”, b[] = “abc”; int main() { ?????? char *c = “abc”; ?????? char d[] = “123”; ?????? strncpy(c, d, 10); } ? (二十一)?下面代码中*p的值是多少?(用16进制表示) char a[] = {1, 2, 3, 4, 5, 6, 7, 8}, *b = a + 2; int *p = (int *)a + 1; // 此时*p = ? ?????? p = (int *)b; // 此时*p = ? ? (二十二)?已知struct SS中有一成员count,写一表达式求count在SS中的偏移。 ? (二十三)?写一段代码,验证栈往低地址方向增长。 ? (二十四)?Samsung S3C2440基于低端的ARMv4架构,虽已淘汰出主流市场,但功能简单、便于入门,为广大无基础的嵌入式爱好者自学时使用;目前业界ARMv5 及以上架构是主流,如ATMEL AT91SAM9263、Samsung S3C6410、Marvell PXA168均为ARMv5以上架构,我们日常教学及实践以ARMv5以上平台为主。现有一网友向我们report一个bug:开源项目g-bi

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档