上海贝尔试题1.doc
文本预览下载声明
//上海贝尔的面试题43分即可进入复试一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:??? if ( n == 0 )??? if ( n != 0 )以此类推。请写出 BOOL flag 与“零值”比较的 if 语句:
if(flag)
if(!flag) 请写出 float x 与“零值”比较的 if 语句:
#define precision 1e-6
if(abs(x)precision)
if(abs(x)precision)请写出 char *p 与“零值”比较的 if 语句:
if(p==NULL)
if(p!=NULL)二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)char str[] = “Hello” ;char?? *p = str ;int???? n = 10;请计算sizeof (str ) =?6??????????????? sizeof ( p ) =?4?????????????? sizeof ( n ) = 4
void Func ( char str[100]){请计算sizeof( str ) =??4 } void *p = malloc( 100 );请计算sizeof ( p ) = 4、简答题(25分)1、头文件中的 ifndef/define/endif 干什么用?
防止头文件被重复引用;2、#include filename.h和 #include “filename.h” 有什么区别?
》》#include filename.h为标准方式,系统到存放C库函数所在的目录中寻找要包含的头文件;适用与调用库函数的情况。
#include “filename.h”系统现在当前工作目录中寻找包含文件,当找不到时再按标准方式查找,适用于用户自己编写的头文件。3、const 有什么用途?(请至少说明两种)
可以定义const常量;
用const修饰函数参数、返回值、及函数定义体,被const修饰的东西收到强制保护,防止意外修改,提高程序的健壮性。
4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?5、请简述以下两个for循环的优缺点 // 第一个for (i=0; iN; i++){if (condition)??? DoSomething();else??? DoOtherthing();}
// 第二个if (condition){for (i=0; iN; i++)??? DoSomething();}else{??? for (i=0; iN; i++)??? DoOtherthing();优点:N次中,每次都要对condition进行判断 缺点: 优点:一次判断condition后,对something或Otherthing执行N次 缺点:四、有关内存的思考题(20分)void GetMemory(char *p){p = (char *)malloc(100);}void Test(void) {char *str = NULL;GetMemory(str);strcpy(str, hello world);printf(str);}请问运行Test函数会有什么样的结果?
char *GetMemory(void){char p[] = hello world;return p;}void Test(void){char *str = NULL;str = GetMemory();printf(str);}请问运行Test函数会有什么样的结果?
Void GetMemory2(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);}}请
显示全部