這個作業屬於那個課程
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(intx,yx,y,zx)int
z;void
main( )
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,char2)流程圖z);int
main ()
void num(int m,char x,char y,char
z)
else
}
3)遇到的問題
問題:提交後老是顯示部分正確,檢查發現第19行的輸出變數寫反了
改正:將19行的x,y,z改為z,x,y
4)執行截圖
預習作業:對指標高階的理解
1)陣列指標,我認為指的是陣列名的指標,即陣列首元素位址的指標。即是指向陣列的指標。例:int (*p)[10]; p即為指向陣列的指標,又稱陣列指標
例項
#include "2)指標陣列:我認為陣列元素全為指標的陣列稱為指標陣列。stdio.h
"typedef
float(a)[10]; //
定義乙個字元型含有十個元素的陣列型別a
intmain()
for(i=0;i<10;i++)
}
例項
#include#include3)指標函式:我認為就是帶有指標的函式,例如int *max(int x, int y)#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)));
}
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片 圓盤,大梵天命令...