考题-软件工程师(嵌入式)考题-软件工程师(嵌入式).doc

考题-软件工程师(嵌入式)考题-软件工程师(嵌入式).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
考题-软件工程师(嵌入式)考题-软件工程师(嵌入式)

算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 答案:B C语言中,下列运算符优先级最高的是 A. ! B. % C. D. == 答案:A 数组定义为“ int a [ 4 ] ; ”,错误的表达式是 ( ) A. *a B. a [ 0 ] C. a D. a++ 答案:D 执行语句“ k=71; ”后,变量 k 的当前值是 A.15 B.31 C.3 D.1 答案:C 一个32位的机器,该机器的指针是多少位答案: const有什么主要的作用? 答案: const有什么主要的作用? 可以定义const常量,具有不可变性。 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患 例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改; (3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可! (4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错; 例如: void f(const int i) { i=10;//error! } (5) 为函数重载提供了一个参考。 class A { ...... void f(int i) {......} //一个函数 void f(int i) const {......} //上一个函数的重载 ...... }; (6) 可以节省空间,避免不必要的内存分配。 例如: #define PI 3.14159 //常量宏 const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ...... double i=Pi; //此时为Pi分配内存,以后不再分配! double I=PI; //编译期间进行宏替换,分配内存 double j=Pi; //没有内存分配 double J=PI; //再进行宏替换,又一次分配内存! const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。 (7) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。 关键字volatile有什么含意?并给出三个不同的例子。 答案: 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 例子1:并行设备的硬件寄存器(如:状态寄存器) 例子2:一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 例子3:多线程应用中被几个任务共享的变量 数组和链表的区别答案:数组:数据顺序存储,固定大小:数据可以随机存储,大小可动态改变 main() {? int a[5]={1,2,3,4,5};??? int *ptr=(int *)(a+1);??? printf(%d , %d,*(a+1),*(ptr-1)); } 答案:25 下面的代码片段的输出是什么 char *ptr; if ((ptr = (char *)malloc(0)) == NULL) puts(Got a null pointer); else puts(Got a valid pointer); 答案: 代码的输出是Got a valid pointer 写一个标准宏MIN ,这个宏输入两个参数并返回较小的一个。 答案: #define MIN(A,B) (((A)= (B)) ? (A) : (B)) 注意:不能缺少括号 请问以下代码有什么问题: int main() { char a; char *str=a; strcpy(str,hello); printf(str); return 0; } 答案: 没有为str分配内存空间,将会发生异常问题出在将一个

文档评论(0)

cduutang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档