2009藝龍筆試

1、在windows NT下,程序運行結果爲?

#include <iostream>
using namespace std;
int main()
{
    char a[100];
    cout<<func(a)<<endl;    //4,因爲a是指針
    cout<<sizeof(char[100])<<endl;   //100,char是1字節。
    void *p=malloc(100);
    cout<<sizeof(p)<<endl;   //4
    return 0;
}

解析:windows NT(new technology的縮寫)是純32位操作系統。malloc(100)的含義是分配100個字節的內存。

2、C語言中全局變量和局部變量是否可以重名?

答:可以重名。它們的作用域不同,被儲存的內存單元也不同。如果函數內的局部變量和函數外的全局變量相同,則函數內的局部變量有效。

4、程序運行結果爲:

#include <iostream>
using namespace std;
int main()
{
   int a,b,c,d;
   a=10;
   b=a++;
   c=++a;
   d=10*a++;//++的優先級高於*
   printf("%d,%d,%d",b,c,d);   //10,12,120
}

5、用兩個棧實現隊列的功能。要求寫出算法和思路。

6、用a表示以下類型:

(5)一個有10個指針的數組,該指針指向整型。

 答: int* a[10]

 (6)一個指向有10個整型數數組的指針。

答: int (*a)[4],元素表示爲(*a)[i]

(7)一個指向函數的指針,該函數有一個整型數參數且返回值爲整型數。

答:int (*p) (int)

(8)一個有10個指針的數組,該指針指向一個函數,函數與(7)相同。

答: int (*p) (int)  a[10]


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章