C语言面试题
来源:互联网 发布:数控5轴编程招聘 编辑:程序博客网 时间:2024/06/05 13:21
基础篇
1、局部变量能否和全局变量重名?
可以
2、如何引用一个已经定义过的全局变量?
直接调用并初始化
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
可以,
4、static const volatile register 关键词的作用
static:定义变量时是静态变量,限制变量的使用范围,只需要初始化一次。修饰函数时是限制函数的使用范围
const:
5、程序的局部变量存在于(堆栈)中,全局变量存在于(bss/data)中,动态申请数据存在于(堆)中。
6、堆和栈有什么区别?
7、什么是预编译,何时需要预编译:
8、c和c++中的struct有什么不同?
9、memset ,memcpy 和strcpy 的根本区别?
10、assert()是干什么用的
11、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)
12.如果内存中有这样两个数:1000 0000 0000 0000 和 1111 1111 1111 1111,那么他们对应的10进制数字分别是多少?
大小端:
有无符号:
进制:
13.用最有效率的方法算出2乘以8等于几
n << 3 + n
14.x=x+1, x+=1, x++, ++x 哪个效率最高?为什么?
15.如果有“int a=5, b=3”,则在执行“!a&&b++”后,a和b的值分别是多少?
################################
二、看代码写运行结果
1.#请写出下列代码的输出内容
#include <stdio.h>
int main(void)
{
int a,b,c,d;
a= 10;
b= a++;
c= ++a;
d= 10 * a++ + ++a;
printf("a, b,c,d:%d %d,%d,%d\n",a ,b,c,d);
return 0;
}
2.设有以下说明和定义:
typedef union
{
long i;
int k;
char c[6];
} DATE;
struct data
{
int cat;
DATE cow;
double dog;
} too;
DATE max;
printf("%d",sizeof(struct data)+sizeof(max));的执行结果是:_______
3.某32位系统下, C程序,请计算sizeof 的值。
char str[10] = “hello.c/”;
char (*p)[10] = str ;
int n = 10;
请计算
sizeof (str ) = ?
strlen(str) ?
sizeof ("abcdef") = ?
sizeof ("abcdef" + 1) = ?
sizeof ( p ) = ?
sizeof ( n ) = ?
void Foo ( char str[100]){
sizeof( str ) = ?
}
void *p = malloc( 100 );
sizeof ( p ) = ?;
4.下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
signed int b = -20;
(a+b > 6) ? printf("> 6") : printf("<= 6");
}
三、编码题
1.模仿字符处理函数库,写出strcpy函数
s
2.写一个函数返回1+2+3+…+n的值?
3.编写下列宏:
1)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
2)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
3)用宏定义写出swap(x,y)
4)一语句实现x是否为2的若干次幂的判断
4.写一个递归函数实现斐波拉契数列?
鉴于该问题使用递归解决,实在无效率可言。请问,如何不使用递归,来实现上述函数?
5.编写出一个从字符串到长整形的转换函数?
- C语言面试题
- C语言面试题
- C语言面试题
- C语言面试题
- c语言面试题
- c语言面试题
- C语言面试题
- c语言面试题
- C语言面试题
- C语言面试题
- c语言面试题
- C语言面试题
- C语言面试题
- C语言面试题
- c语言面试题
- C语言面试题
- C语言面试题
- C语言面试题
- 8月16日
- java中线程同步
- hdu2795Billboard(线段树)
- 如何优化404错误页面
- 1_02第一个小程序Hello Word
- C语言面试题
- 程序员面试宝典部分面试题
- firefly框架分析之netconnect package(三)
- 苹果公司与分工原理
- 多层根号
- 得到上个月的字符串varchar(6)
- Linux 修改SSH密码
- before-init加载配置文件
- 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结