网上看到的高手总结的C语言终极面试宝典,现在把问题贴过来,方便以后补漏!
链接:http://www.mianwww.com/html/2011/09/10378.html
第一部分:基本概念及其它问题
1.关键字static的作用是什么?
2.“引用”与指针的区别是什么?
3..h头文件中的ifndef/define/endif的作用?
4.#include <file.h>与#include "file.h"的区别?
5.描述实时系统的基本特性
6.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
7.什么是平衡二叉树?
8.堆栈溢出一般是由什么原因导致的?
9.冒泡排序算法的时间复杂度是什么?
10.什么函数不能声明为虚函数?
11.队列和栈有什么区别?
12.不能做switch()的参数类型
13.局部变量能否和全局变量重名?
14.如何引用一个已经定义过的全局变量?
15.全局变量可不可以定义在可被多个.C文件包含的头文件中?问什么?
16.语句for( ; 1 ; )有什么问题?它是什么意思?
17.do....while和while....do有什么区别?
18.static全局变量与普通全局变量有什么区别?static局部变量与普通局部变量有什么区别?static函数与普通函数有什么区别?
19.程序的内存分配
20.解释堆和栈的区别:1.申请方式2.申请后系统的响应3.申请大小的限制4.申请效率的比较5.堆和栈中的存储内容6.存取效率的比较
21.什么是预编译,何时需要预编译?
22.关键字const是什么含义?
23.关键字volatile有什么含义?并给出三个不同的例子
24.三种基本的数据模型
25.结构与联合区别?
26.描述内存分配方式以及它们的区别?
27.说出const和#define相比,有何优点?
28.简述数组与指针的区别?
29.分别写出BOOL,int,float,指针类型的变量a与零的比较语句
30.如何判断一段程序是由C编译程序还是由C++编译程序编译的?
31.论述含参数的宏与函数的优缺点
32.用两个栈实现一个队列的功能,要求给出算法和思路
33.嵌入式系统中经常要用到无限循环,怎样用C编写死循环?
34.位操作
35.访问固定的内存位置
36.请评论一下这段代码:
__interrupt double compute_area (double radius){
double area = PI * radius * radius;
printf("\nArea = %f", area);
return area;
}
37.动态内存分配
38.Typedef 思考一下下面的例子:#define dPS struct s *; typedef struct s * tPS;以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?
39.用变量a给出下面的定义:
a)一个整型数
b)一个指向整型数的指针
c)一个指向指针的指针,它指向的指针是指向一个整型数
d)一个有10个整型数的数组
e)一个有10个指针的数组,该指针指向整型数
f)一个指向有10个整型数数组的指针
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
40.局部变量,全局变量和静态变量的含义
41.写一个标准宏
42.A.c和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(堆还是栈或者其他的)?
43.一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
本文整理了C语言面试中常见的问题与解答,包括基本概念、关键字作用、数据结构、算法等,帮助开发者复习和准备面试。
1056

被折叠的 条评论
为什么被折叠?



