嵌入式笔试题汇总1.docx

读程序段,回答问题 (a) int main(int argc,char *argv[]) { int c=9,d=0; c=c++%5; d=c; printf(d=%d\n,d); return 0; } 写出程序输出 在一个可移植的系统中这种表达式是否存在风险?why? 答案:5 存在风险,因为 c=c++%5;这个表达式对 c 有两次修改,行为未定义,c 的值不确定 (b) #include stdio.h int a=0; // data section int b; // data section static char c; // BSS int main(int argc,char *argv[]) { char d=4; // stack static short e; // BSS a++; b=100; c=(char)++a; e=(++d)++; printf(a=%d, b=%d, c=%d, d= %d, e=%d,a,b,c,d,e); return 0; } 写出程序输出 编译器如果安排各个变量(a,b,c,d)在内存中的布局(eg. stack,heap,data section,bss section), 最好用图形方式描述。 答案:a=2,b=100,c=2,d=6,e=5 中断是嵌入式系统中重要的组成部分,这导致了许多编译开发商提供一种扩展

文档评论(0)

1亿VIP精品文档

相关文档