
面试题
看个人资料
毕业于哥伦比亚大学
展开
-
无符号数与有符号数相加的结果
char foo(void) { unsigned int a =6; int b = -20; char c; return (b+a >6)?(c=1):(c=0); }b+a默认是一个无符号数,这里相加会溢出b+a = 65536 -14 > 0 返回 c = 0 ,即ASCII码为0 的字符。原创 2017-01-13 17:57:39 · 2464 阅读 · 0 评论 -
题目集合4
1.“栈 stack”和“堆 heap”有什么区别,写两个函数分别在栈上和堆上分配内存,在堆上分配内存应注意哪些问题? 堆由程序员手动分配内存和释放,栈由系统自动分配和释放, void fun1() { int p =(int ) malloc(3*sizeof(int)); free(p); } void fun1() { int p; } 在堆上分配内存有可能失败,需要检原创 2017-01-16 13:08:45 · 768 阅读 · 0 评论 -
题目集合3
1、写出你所知道的C关键字auto, break,case,switch,for,while,struct,do,union,typedef,enum,unsigned,int,float,long,short,continue,double,char,volotile,register,return,if,else,static,goto,signed,const,default,extern.2原创 2017-03-06 11:10:10 · 268 阅读 · 0 评论 -
题目集合2
1、10、10、4、4四个数,怎么算出24点? (10*10-4)/4=24 2、下列表达式在32位机器编译环境下的值()class A { }; class B { public: B(); virtual ~B(); }; class C { private: #pragma pack(4) int i; s原创 2017-03-05 17:08:36 · 531 阅读 · 0 评论 -
面试题3
一、 填空题:一些Linux命令,显示文件,拷贝,删除 ls ,cp,rmdo……while和while……do有什么区别?先执行,后判断。 先判断后执行Linux系统下.ko文件是什么文件?.so文件是什么文件?一个是内核模块文件,另一个是库文件。二维数组AA [ 3 ][ 7 ]的另外一种表示方法:((AA+3)+7)请写出下列代码的输出内容 #include “stdio原创 2017-01-17 17:44:13 · 407 阅读 · 0 评论 -
两个指针相减
int a[]={6,7,8,9};int *b;b = a;b++;printf("%d,%d,%d",b-a,*b,((int)b-(int)a));b-a两个指针相减,表示b指向的地址与a地址之间能够存储多少个int变量,b++默认是b指向的地址加4,4/sizeof(int)=1,能够存储一个 整型变量; 所以答案是1,7,4.原创 2016-12-17 12:43:43 · 1266 阅读 · 0 评论 -
该宏#define min(x,y) ((x) < (y) ? (x) : (y))会产生什么副作用?
这在标准c中,我们常用来求最小值,它有如下副作用,举例: 代码min(ia++,ib++) 用宏替代 ((ia++) 在linux系统中使用的是GNU c,是标准c的扩展,可以用宏就实现,#define min_t(type,x,y) \({ type _ _x = (x); type _ _y = (y); _ _x原创 2017-01-12 19:29:44 · 4283 阅读 · 0 评论 -
有如下CAT_s结构体定义,回答: 1) 在一台64位的机器上,使用32位编译,Garfield变量占用多少内存空间?64位编译又是如何?
注意:字节对齐struct CAT_s{int ld;char Color;unsigned short Age;char *Name;void(*Jump)(void);}Garfield;使用32位编译,int占4, char 占1, unsigned short int占2,char*占4,函数指针占4个,由于是32位编译是4字节原创 2017-01-12 15:35:54 · 2826 阅读 · 0 评论 -
写出前序,中序,后序遍历
先序遍历:ABCDEFG 中序遍历:CBDAFEG后序遍历, CDBFGEA原创 2017-02-05 16:19:41 · 468 阅读 · 0 评论