面试题第二弹
题目1:bool、int、float定义的变量和0值的比较?
(1)bool类型
if(flag) if(!flag)
(2)int类型
if(flag==0) if(flag!=0)
(3)float类型
if(flag >= -EPSILON && flag <= EPSILON)
注意float类型是一个浮点型,所以不可以直接用flag == 0这种形式比较0值。
题外话:float类型是小数点后5位有效,double类型是小数点后13位有效。
题目二:不调用库函数实现字符串的拷贝
#include <stdio.h> #include <stdlib.h> #include <string.h> char *copy_string(char *strDes,char *strSou) { int i=0; while(*strSou) { strDes[i++] = *strSou; strSou++; } strDes[i] = '\0'; } int main(int argc,char *argv[]) { char *sou="hello world"; //char des[100]={0}; char *des = (char*)malloc(strlen(sou)+1); //如果写成指针的形式记得为它分配内存 copy_string(des,sou); printf("des:%s\n",des); return 0; }
鉴于本人才疏学浅,所以其中不免有遗漏或者错误,恳请各位博友批评指正。