当前位置 : 主页 > 网络编程 > 其它编程 >

联想笔试题(附简单答案)

来源:互联网 收集:自由互联 发布时间:2023-07-02
(1)设计函数intatoi(char*s)。(2)inti(j4,k8,l16,m32);printf(“%d”,i);输出是多少?(3)解释局部变量、全局变量 (1)设计函数 int atoi(char *s)。 (2)int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少? (3)解释局
(1)设计函数intatoi(char*s)。(2)inti(j4,k8,l16,m32);printf(“%d”,i);输出是多少?(3)解释局部变量、全局变量

(1)设计函数 int atoi(char *s)。

(2)int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少?

(3)解释局部变量、全局变量和静态变量的含义。

(4)解释堆和栈的区别。

解答:(1)

(2)逗号表达式,i=32;

(3)定义在函数里的就是内部变量,其作用域就是本函数范围,又被称为局部变量。局部变量被存储在栈区;定义在函数外的是外部变量,作用域从定义时刻开始到程序运行结束。如果外部变量在程序一开始就被定义,一直作用到程序结束。外部变量又被称为全局变量,被存储在内存的全局数据区里。给变量冠以static,变量就是静态变量。静态变量采用静态存储方式,在定义时就已分配好内存,程序运行过程中不会改变。静态变量只在本源文件内有效。

(4)堆(Heap)、栈(Stack)

堆由程序员分配,C语言中用malloc函数,C++中用new函数,堆区在内存区,而内存区是向高地址位扩展的不连续区域。如果程序员在程序结束时没有人工释放内存,OS会自动会回收内存。

栈由编译器分配,栈是向低地址位扩展的连续内存区域。先入栈的是待执行的下一条指令,接着是参数(从右往左依次),最后是局部变量。栈的分配速度较快。

上一篇:2020ICDM知识图谱竞赛获奖技术方案
下一篇:没有了
网友评论