第十一周作業

2022-05-18 14:05:31 字數 3603 閱讀 2023

這個作業屬於那個課程

c語言程式設計ii

這個作業要求在**

我在這個課程的目標是

學習並熟練運用遞迴函式

這個作業在那個具體方面幫助我實現目標

完成漢諾塔問題

參考文獻

c語言程式設計ii

基礎作業:單選題

2-1巨集定義「#define div(a, b) a/b」,經div(x + 5, y - 5) 引用,替換展開後是()。 (1分)

x + 5 / y - 5

(x + 5 / y – 5)

(x + 5) / (y - 5)

(x + 5) / (y - 5);

單位: 浙江大學城市學院

2-2定義帶引數的巨集「#define jh(a,b,t) t = a; a = b; b = t」,對兩個引數a、b的值進行交換,下列表述中正確的是()。 (1分)

不定義引數a和b將導致編譯錯誤

不定義引數a、b、t將導致編譯錯誤

不定義引數t將導致執行錯誤

不需要定義引數a、b、t型別

單位: 浙江大學城市學院

2-3如果所有的變數按照下面的程式進行定義和宣告,那麼在main()函式中所有可用的變數為 ()。 (2分)

void fun(int

x)int

z;void

main( )

x,yx,y,z

a,b,z

a,b,x,y,z

單位: 山東交通學院

2-4如果乙個變數在整個程式執行期間都存在,但是僅在說明它的函式內是可見的,這個變數的儲存型別應該被說明為( )。 (1分)

靜態變數

動態變數

外部變數

內部變數

單位: 吉首大學

2-5下面說法中正確的是()。 (1分)

若全域性變數僅在單個c檔案中訪問,則可以將這個變數修改為靜態全域性變數,以降低模組間的耦合度

若全域性變數僅由單個函式訪問,則可以將這個變數改為該函式的靜態區域性變數,以降低模組間的耦合度

設計和使用訪問動態全域性變數、靜態全域性變數、靜態區域性變數的函式時,需要考慮變數生命週期問題

靜態全域性變數使用過多,可那會導致動態儲存區(堆疊)溢位

單位: 浙江大學城市學院

2-6凡是函式中未指定儲存類別的區域性變數,其隱含的儲存型別為( )。 (1分)

自動(auto)

靜態(static)

外部(extern)

暫存器(register)

單位: 浙江大學城市學院

2-7在乙個c源程式檔案中,若要定義乙個只允許本原始檔中所有函式使用的全域性變數,則該變數需要使用的儲存類別是。 (1分)

extern

register

auto

static

單位: 浙江大學城市學院

2-8將乙個函式說明為static後,該函式將 ( )。(1分)

既能被同一原始檔中的函式呼叫,也能被其他原始檔中的函式呼叫

只能被同一原始檔中的函式呼叫,不能被其他原始檔中的函式呼叫

只能被其他原始檔中的函式呼叫,不能被同一原始檔中的函式呼叫

既不能被同一原始檔中的函式呼叫,也不能被其他原始檔中的函式呼叫

基礎作業:程式設計題

1)漢諾塔問題

7-1 漢諾塔問題* (10 分)

漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,並且規定:在小圓盤上不能放大圓盤,每次只能移動乙個圓盤。當所有圓盤都移到另一根柱子上時,世界就會毀滅。

請編寫程式,輸入漢諾塔圓片的數量,輸出移動漢諾塔的步驟。

輸入格式:

圓盤數 起始柱 目的柱 過度柱
輸出格式

移動漢諾塔的步驟

每行顯示一步操作,具體格式為:

碟片號: 起始柱 ->目的柱

其中碟片號從

1 開始由小到大順序編號。

1)實驗**

#includevoid num(int m,char x,char y,char

z);int

main ()

void num(int m,char x,char y,char

z)

else

}

2)流程圖

3)遇到的問題

問題:提交後老是顯示部分正確,檢查發現第19行的輸出變數寫反了

改正:將19行的x,y,z改為z,x,y

4)執行截圖

預習作業:對指標高階的理解

1)陣列指標,我認為指的是陣列名的指標,即陣列首元素位址的指標。即是指向陣列的指標。例:int (*p)[10]; p即為指向陣列的指標,又稱陣列指標

例項

#include "

stdio.h

"typedef  

float(a)[10];         //

定義乙個字元型含有十個元素的陣列型別a

intmain()

for(i=0;i<10;i++)

}

2)指標陣列:我認為陣列元素全為指標的陣列稱為指標陣列。

例項

#include#include

#define  dim(a)    (sizeof(a)/sizeof(*a))

//key為傳入的字串位址,table為傳入的陣列位址,size為傳入的陣列大小元素的個數

int lookup_keyword(const

char*  key,const

char*   table[ ],const

intsize)    

}return

ret;

}int

main()

;           

printf(

"%d\n

",lookup_keyword("

return

",keyword,dim(keyword)));

printf(

"%d\n

",lookup_keyword("

return

",keyword,dim(keyword)));

}

3)指標函式:我認為就是帶有指標的函式,例如int  *max(int x, int y)

4)  函式指標:我認為就是指向函式的指標變數,本質上是乙個指標變數,例如type (*func)(type , type )

5)二級指標:我覺得二級指標就是指向指標的指標,例如

int fun(void

)

第十一周作業

1 tabcontrol imagelist panel功能演示 2 timer picturebox splitcontainer contextmenustrip控制項功能演示 設定三個控制項的以下屬性和事件 a.picturebox控制項的三個屬性 picture.image 匯入資源 pic...

第十一周作業

漢諾塔問題 10 分 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,並且規定 在小圓盤上不能放大圓盤,每次 只能移動乙個圓盤。當所有圓盤都移到另一根柱子上時,世界就會毀滅。請...

第十一周作業

問題 回答這個作業屬於那個課程 c語言程式設計ii 這個作業要求在哪 我在這個課程的目標 學習遞迴的一些用法 這個作業在那個具體方面幫助我實現目標 做作業 漢諾塔是乙個源於印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤,大梵天命令...