
软件公司c笔试题.pdf
4页多练出技巧巧思出硕果C+笔试题一、请填写BOOL ,float,指针变量与“ 零值” 比较的if 语句提示:这里 “ 零值 ” 可以是0,0,0,FALSE 或者“ 空指针 ” 例如int 变量n 与“ 零值”比较的if 语句为:if(n=0) if(n!=0) 以此类推请写出BOOL flag 与“ 零值 ” 比较的if 语句: _ 请写出float x 与“ 零值 ” 表较的if 语句:_ 请写出char *p 与“ 零值 ” 比较的if 语句:_ 二、以下为Windows NT 下的32 位C+ 程序,请计算sizeof 的值char str=Hello char *p=str int n=10; 请计算:sizeof(str)=_ sizeof( p )=_ sizeof( n )=_ void func (char str100) 请计算sizeof(str)=_ void *p=malloc(100) 请计算sizeof( p )=_ 三、简答题1、头文件的ifndef / define / endif 干什么用?2、#include 和#includefilename.h 有什么区别 ? 多练出技巧巧思出硕果3、const 有什么用途?(请至少说明两种)4、在C+ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”申明?四、有关内存的思考题void GetMemory(char *p) p=(char *)malloc(100); void Test(void) char *str=null; GetMemory(str); strcpy(str,hello world); printf(str); 请问运行Test 函数会有什么结果?答: _ void GetMemory(char *p,int num) *p=(char *)malloc(num); void Test(void) char *str=NULL; GetMemory(&str,100);strcpy(str,hello) printf(str); 请问运行Test 函数会有什么样的结果?答:_ void Test(void) 多练出技巧巧思出硕果 char *str=(char *)malloc(100); strcpy(str,hello); free(str); if(str != NULL) strcpy(str,world); printf(str); 请问运行Test 函数会有什么样的结果?答:_ 五、编写strcpy 函数已知strcpy 函数的原形是: char *strcpy(char *strDest,const char *strSrc); 其中strDest 是目的字符串, strSrc 是源字符串。
1)不调用C+/C 的字符串库函数,请编写汉书strcpy (2)strcpy 能把strSrc 的内容复制到strDest ,为什么还要char * 类型的返回值?六、编写类String 的构造函数、析构函数和赋值函数已知类String 的原形为:class String public: string(const char *str=NULL); /普通构造函数string(const String &other); /拷贝构造函数String(void); /析构函数String & operate=(const String &other); /赋值函数pravite: char *m_data; /用于保存字符串多练出技巧巧思出硕果; 请编写String 的上述4 个函数。
