C语言的笔试面试题(题目)

来源:互联网 发布:统计报表软件 编辑:程序博客网 时间:2024/04/29 03:54

C语言笔试面试题

一、基础知识及概念题:

1、局部变量能否和全局变量重名?(华为C笔试)

类似题1:全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

2、关键字const什么含义?

3、static 关键字的作用?

类似题1:static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?(华为C笔试题)

4、extern “C”的作用?

类似题1:如何引用一个已经定义过的全局变量?

5、do-while和while的区别?

5、new、delete、malloc、free关系(*)

6、sprintf,strcpy,memcpy的功能,在使用上有哪些要注意的地方。(*)

二、指针

1、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

2、怎样防止指针的越界使用问题

相关题1:指针与数组名的关系?

相关题2:指针与地址的区别?

相关题3:什么是指针的释放

3、引用与指针有什么区别?

三、宏

1、#define DOUBLE(x)x+x,i=5*DOUBLE(5); i是多少?(*)

2、写一个宏MIN,这个宏输入两个参数并返回较小的一个

3、用预处理指令#define声明一个常数,表示1年中有多少秒(忽略闰年)

4、用宏定义交换两个数

四、分支、循环、数组、函数

1、一个猴子吃桃一天吃桃子剩余数量的一半,感觉不够,再吃一个,共10天吃完,问一共吃了多少桃子,写出你的代码。

2、数组有1000个元素,设为数组a[1000],存放1-1000的数值,但是现在有一个数值重复了,只扫描一遍数组,找出那个重复的数

类似题1:设计一个算法,要求在20个数字中(0到19)随机选取十个数字,但是这十个数字不能重复(用C语言或者OC实现)

3、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh”

4、证明是不是回文数 ("回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数)

5、大概是一百个数,按123123循环,将23去掉,循环。最后胜的那个数,编号多少。二十分钟。

6、编写一个标准strcpy函数(*)

7、用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出,写出C程序

8、写个冒泡排序或插入排序;

9、写一个函数,输出一个给定的字符数组可能输出的所有独特(非重复)组合。

例子:输入array = (s,a,n,t,a)输出应该是:

   s,t,n,a

   sa,an,at,as,an,at,aa,ns,na,nt,...

   san,sat,saa,snt,...

10、写出几个死循环?

五、C语言综合评估题(自由发挥)

1、现在有m个人,每个房间可以住n个人,请问一共需要多少房间?(请用一行代码写出结果,不要用if等条件判断和三目运算符)

 

2、现在有50阶楼梯,你可以一步一阶,也可以一步两阶,请问走完这50阶可以有多少种走法?写出你的思路和算法。

 

3、现在有两个矩形A,B 。A的左上角的坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),B的左上角坐标为(Xb1,Yb1),右下角坐标为(Xb2,Yb2),此坐标系为平面直角坐标系,x轴向右,y轴向上,如何判断这两个矩形没有交叉重叠,写出你的思路和算法。

 

4、有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里请找出丢失的数字,最好算法比较快假设n=10000

5、用递归算法判断数组a[N]是否为一个递增

0 0
原创粉丝点击