C语言面试宝典

本文整理了C语言面试中常见的问题与解答,包括基本概念、关键字作用、数据结构、算法等,帮助开发者复习和准备面试。

网上看到的高手总结的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.一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值