飞思卡尔的采访

关于飞思卡尔的采访

2008-03-18 18:16可能不是很正式。很多题目都用了贝尔的原题。

现在突然想起来,挑两段,不要出一个你看过还不会做的题~

C++/C测试问题

这个问题只是用来考察C++/C程序员的编程基本功。内容仅限于C++/C的常用语法,不涉及数据结。

结构,算法和深奥的语法。考试成绩可以反映考生的编程素质和对C++/C的理解程度,但是

不能体现考生的智力和软件开发能力。

笔试时间90分钟。请认真回答问题,不要小看。

1.请填写BOOL、float和pointer变量与“零值”比较的if语句。(10分)

提示:这里的“零值”可以是0、0.0、FALSE或“空指针”。比如int变量n和“零值”

比较的if语句是:

如果(n == 0)

如果(n!= 0 )

诸如此类。

请写一个比较BOOL标志和“零值”的if语句:

请写一个if语句,比较浮点x和“零值”:

请写一个比较char *p和“零值”的if语句:

二、下面是一个Windows NT下的32位C++程序。请计算sizeof的值(10点)。

char str[]= " Hello ";char * p = strint n = 10;请计算sizeof (str)

= sizeof ( p ) = sizeof ( n ) = void Func(

Char str[100]){请计算sizeof( str) =}

void * p = malloc(100);请计算sizeof (p) =

三、简答题(25分)

1.头文件中的ifndef/define/endif有什么用?

2.#include和# include“filename . h”有什么区别?

3.const有什么用?(请指定至少两个)

4.为什么在C++程序中调用C编译器编译的函数时要加上“C”的声明?

5.请简述以下两种for循环的优缺点。

//第一个for(I = 0;I ing();}//第二个if(条件){ for(I = 0;I for(I = 0;一、优点:缺点:优点:缺点:

四、关于记忆的思考问题(20分)

void get memory(char * p){ p =(char *)malloc(100);}void Test(void) {char *str =

NULLGetMemory(str);strcpy(str,“hello world”);printf(str);}请问,运行测试功能会

结果如何?a:char * get memory(void){ char p[]= " hello world ";返回p;

} void Test(void){ char * str = NULL;str = GetMemory();printf(str);}请运行测试。

函数的结果会是什么?答:

Void GetMemory2(char **p,int num){ * p =(char *)malloc(num);}无效测试(void){c

har * str = NULLGetMemory(& amp;str,100);strcpy(str,“hello”);printf(str);}不好意思。

测试函数的结果会是什么?答:Void test(Void){ char * str =(char *)malloc(1

00);strcpy(str,“hello”);免费(str);if(str!= NULL) { strcpy(str,"

世界”);printf(str);}}如果运行测试函数会怎么样?答:

五、编写strcpy函数(10分)

已知strcpy函数的原型是

char *strcpy(char *strDest,const char * str src);

其中strDest是目标字符串,strSrc是源字符串。

(1)不要调用C++/C的字符串库函数,请编写函数strcpy。

(2)strcpy可以将strSrc的内容复制到strDest,那么为什么需要char *类型的返回值呢?

六、写出字符串的构造函数、析构函数和赋值函数(25分)

已知类字符串的原型是:

类别字符串

{

公共:

string(const char * str = NULL);//普通构造函数

字符串(常量字符串& amp其他);//复制构造函数

~ String(void);//析构函数

弦与弦。operate =(常量字符串& amp其他);//赋值函数

私人:

char * m _ data//用于保存字符串。

};

请写出String的上述四个函数。