日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第十一周编程总结

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十一周编程总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個作業屬于哪個課程C語言程序設計II
這個作業要求在哪https://edu.cnblogs.com/campus/zswxy/MS/homework/3206
我在這個課程的目標是能夠使用遞歸函數進行編程;掌握宏的基本用法;掌握編譯預處理的概念
這個作業在哪個具體方面幫助我實現目標通過PTA作業實踐編程學習
參考文獻C語言程序設計

選擇題

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

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

輸入格式
圓盤數 起始柱 目的柱 過度柱
輸出格式
移動漢諾塔的步驟
每行顯示一步操作,具體格式為:
盤片號: 起始柱 -> 目的柱
其中盤片號從 1 開始由小到大順序編號。
輸入樣例
3
a c b
輸出樣例
1: a -> c
2: a -> b
1: c -> b
3: a -> c
1: b -> a
2: b -> c
1: a -> c
1.代碼

#include<stdio.h> void hanio(int a,char w,char n,char m); int main(void) {int a;char k,n,m;scanf("%d\n",&a);scanf("%c %c %c",&k,&n,&m);hanio(a,k,n,m);return 0; } void hanio(int a,char k,char n,char m) {if(a==1)printf("%d: %c -> %c\n",a,k,n);else{hanio(a-1,k,m,n);printf("%d: %c -> %c\n",a,k,n);hanio(a-1,m,n,k);} }

2.設計思路

3.本題遇到的問題及解決辦法
問題:模仿書上245頁的漢諾塔代碼,但代碼運行時出現答案錯誤
解決辦法:重新檢查代碼,發現自己給定義的變量多加了‘ ’符號,改正后答案正確

4.運行結果

預習題
請大家查閱資料,思考如下問題:
請舉實例解釋以下幾個概念:數組指針,指針數組,指針函數,函數指針,二級指針,單向鏈表。(無實例不給分)

請用自己的理解回答。如果有引用他人的文字,請一定要標出出處(使用Markdown的鏈接方式)。

1.數組指針
首先“數組指針”本質是指針,是指向一維數組的指針,定義方法,如:int (p)[n];()的優先級更高,表示一個名為p的指針,指向一個整型的、長度為n的數組。如果要把一個二維數組賦給這樣的指針,可以這樣,如:int b[2][4]; int (p)[4]; (因為要將二維數組b賦給p,而二維數組b的有2行,每一行的長度是4,所以數組指針p的長度定為4)定義完之后賦值方法為 p=b; (將數組b的首地址b[0]或者b[0][0]賦給p),此時p指向b[0][0],若執行p++; 則p指向b[1][0]。

2.指針數組
指針數組的本質是數組,這個數組的元素全都是指針。定義方式如:int p[n]; p是數組名,int是數組的類型,n是數組長度,則p[0]、p[1]、p[2]等都表示這個數組的一個指針,p++; 表示p數組指向下一個數組元素。如果a是個一維數組,要將a首地址賦給p,則p=a是錯誤的方式,可以寫成p=a; 此時p表示指針數組第一個元素的值,a的首地址的值。如果要把二維數組賦給一個指針數組,則在定義之后如int c[3][5]; int p[3]; for(i=0;i<3;i++) p[i]=c[i]; 二維指針數組的各個元素的表示方法:((p+i))和**(p+i)表示第‘i+1’行的第一個元素,(p[i]+j)、((p+i)+j)、((p+i))[j]和p[i][j]都表示第i行的第j個元素。

3.指針函數
指針函數本質是函數,它的返回值是個指針。它的聲明形式:類型名 函數名(參數表),如,int fact(cahr c,char op);會返回一個類型為int的指針(地址值),而在主函數中用來接收該返回值的也必須是相同類型的指針變量。
4.函數指針
指向函數的指針包含了函數的地址,可以通過它來調用函數。聲明格式如下:

類型說明符 (*函數名)(參數)

其實這里不能稱為函數名,應該叫做指針的變量名。這個特殊的指針指向一個返回整型值的函數。指針的聲明筆削和它指向函數的聲明保持一致。

指針名和指針運算符外面的括號改變了默認的運算符優先級。如果沒有圓括號,就變成了一個返回整型指針的函數的原型聲明。
5.二級指針:指向指針的指針
int c=2,d=3; int *pc=&c;

pc是指針變量的存儲內容,也就是c的地址

*pc就是對指針的解引用,取出這個c這個地址里面的值

6.單向鏈表:單向鏈表是鏈表的一種,其特點是鏈表的鏈接方向是單向的,對鏈表的訪問要通過順序讀取從頭部開始。鏈表是使用指針進行構造的列表,并且是由一個個結點組裝起來的,因此又稱為結點列表。其中每個結點都有指針成員變量指向列表中的下一個結點,head指針指向第一個結點稱為表頭,而終止于最后一個指向nuLL的指針。

學習感悟
本周學習了遞歸函數并用其進行編程;學習了宏的基本用法;理解編譯預處理的概念。以前總是見到使用宏的情況,但是沒去正式了解,這次真正知道了宏的概念,還有編譯預處理也經常聽到但沒沒去查過,這周也知道了,真正感覺到對這門課的知識越學越深了,也越來越難了。

結對編程感想
本周作業太難了,和小伙伴只討論了前面的題目,后面的只能啞口無言,看不懂,只能借看大佬的瞎扯幾句話,我們還需要加把勁。

學習進度條

轉載于:https://www.cnblogs.com/ZJ999999/p/10846933.html

總結

以上是生活随笔為你收集整理的第十一周编程总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。