當前位置:學識都>好好學習>考研>

有心情的試一試,考查C++/C程序員的基本編程技能

學識都 人氣:2.7W

本試題僅用於考查C++/C程序員的基本編程技能。

有心情的試一試,考查C++/C程序員的基本編程技能

內容限於C++/C常用語法,不涉及數據結構、算法以及深奧的語法。

考試成績能反映出考生的編程質量以及對C++/C的理解程度,

但不能反映考生的智力和軟件開發能力。

筆試時間90分鐘。請考生認真答題,切勿輕視。

一、請填寫BOOL , float, 指針變量 與"零值"比較的 if 語句。

(10分)

提示:這裏"零值"可以是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的值(10分)

char str[] = "Hello" ;

char *p = str ;int

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編譯器編譯後的函數,

爲什麼要加 extern "C"聲明?

5、請簡述以下兩個for循環的優缺點

// 第一個for (i=0; i

{if (condition)

DoSomething();

else

DoOtherthing();}

優點:缺點:

// 第二個if (condition)

{for (i=0; i

DoSomething();}

else{

for (i=0; i

優點:缺點:

四、有關內存的思考題(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);

}

}

請問運行Test函數會有什麼樣的結果?答:

五、編寫strcpy函數(10分)

已知strcpy函數的原型是

char *strcpy(char *strDest, const char *strSrc);

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

(1)不調用C++/C的字符串庫函數,請編寫函數 strcpy

(2)strcpy能把strSrc的內容複製到strDest,爲什麼還要char * 類型的返回值?

六、編寫類String的構造函數、析構函數和賦值函數(25分)

已知類String的原型爲:

class String

{

public:

String(const char *str = NULL); // 普通構造函數

String(const String &other); // 拷貝構造函數

~ String(void); // 析構函數

String & operate =(const String &other); // 賦值函數

private:

char *m_data; // 用於保存字符串

};

請編寫String的上述4個函數。