2018第三次作業。

2022-06-02 17:51:08 字數 4136 閱讀 6172

命令列引數

指標作為函式的返回值

鍊錶完成下列程式設計題目,每次上完課都會增加2-3道題目,並將程式設計過程記錄在部落格裡,一次pta作業任選一道題目給出設計思路、流程圖、源**和錯誤記錄,其他題目可只給出設計思路、源**和錯誤記錄。另外將每次pta作業的提交列表貼在部落格裡,每次5分。

1)c高階第三次pta作業(1)

6-1 輸出月份英文名

實驗**

char *getmonth( int

n );

month =null;

if(n <= 0 || n > 12

)

return

month;

month = mon[n - 1

];

return

month;

}

設計思路

第一步:將十二個月的名稱分別賦值給一維陣列指標,定義用於返回的資料型別。

第二步:遍歷陣列,滿足若n在(1-12)範圍則將month第n-1行的首元素的位址賦給一開始定義的資料。

第三步:返回變數的位址值。

流程圖

6-2 查詢星期

實驗**

int getindex( char *s )

;

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

if (i == 7

) i = -1

;

return

i;

}

設計思路

第一步:將乙個星期每天的英文分別賦值給一維陣列指標,定義乙個整型變數,賦初值為0。

第二步:遍歷一維陣列,用strmcp函式比較陣列中每行元素與輸入的字串是否相同,若相同,則令此時的行數等於一開始定義的整型變數,且跳出迴圈。

第三步:返回整型變數值。

6-3 計算最長的字串長度

實驗**

int max_len( char *s, int

n ) }

if(a[max]

max =i;

} return

a[max];

}

設計思路

第一步:s陣列,計算出每行元素的長度。

第二步:在for迴圈中進行比較,定義int型max,賦初值為0,當行元素的長度大於max,則將長度的值賦給max。

第三步:返回max的值。

6-4 指定位置輸出字串

實驗**

char *match( char *s, char ch1, char

ch2 )

printf("\n

");return s+i;}}

printf("\n

");*s = '\0'

; return

s;}

設計思路

第一步:先遍歷s字元陣列,找到與ch1相同時s的下標,並將下標值賦給乙個整型變數,定義為j。

第二步:在確定下標後,定義乙個指標字元s,將&s[i]賦給s,後跳出迴圈。

第三步:從上面的j開始,迴圈字元陣列s,在迴圈中分情況,若s[i] != ch2,則輸出s[i],反之則輸出s[i]加換行,且返回temp。

第四步:迴圈結束後,輸出換行及返回s。

2)一道程式設計題:

有乙個axb的陣列,該陣列裡面順序存放了從1到a*b的數字。其中a是你大學號的前三位數字,b是你大學號的後四位數字,比如你的學號是2017023936,那麼陣列大小是201 x 3936,陣列中順序存放了1到791136(201和3936的積)的整數. 要求用篩選法,把該陣列裡的質數找出並列印出來,列印格式為5個質數一行,數字間用空格隔開。

篩選法具體做法是:先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這樣一直做下去,就會把不超過n的全部合數都篩掉,留下的就是不超過n的全部質數。

3)c高階第三次pta作業(2)

6-1 奇數值結點鍊錶

實驗**

struct listnode *readlist()

n->next=null;

return head->next;

}struct listnode *getodd( struct listnode **l )

else

} j->next=null;

k->next=null;

*l=h2->next;

return h1->next;

}

設計思路

第一步:分別建立2個新的鍊錶。

第二步:通過識別所給鍊錶各數值的奇偶性,將其給至不同的鍊錶。

第三步:返回2個鍊錶的頭結點。

6-2 學生成績煉表處理

實驗**

struct stud_node *createlist()

n->next=null;

return head->next;

}struct stud_node *deletelist( struct stud_node *head, int

min_score )

}k->next=null;

return p->next;

}

設計思路

第一步:建立鍊錶,通過迴圈進行賦值。若序號為0時,使鍊錶最後乙個節點指向空。

第二步:輸入條件值,在鍊錶中,對每個低於條件值的節點進行刪除。

第三步:返回刪除操作後的煉表頭結點。

6-3 鍊錶拼接

實驗**

struct listnode *mergelists(struct listnode *list1, struct listnode *list2)

else

p=p->next;

}while

(i)

while

(k)

p->next=null;

return h->next;

}

設計思路

第一步:將鍊錶1,2各值分別賦值給一陣列。

第二步:通過對陣列排序得到的有序陣列,將陣列各元素賦值回乙個新鍊錶。

第三步:返回煉表頭結點。

要求三、學習總結和進度(15分)

1、總結兩周裡所學的知識點,回答下列問題?

(1)如何理解指標陣列,它與指標、陣列有何關係?為何可以用二級指針對指標陣列進行操作?

(2)將c高階第三次pta作業(1)任何乙個題目改為使用二級指針對指標陣列進行操作。

(3)用指標陣列處理多個字串有何優勢?可以直接輸入多個字串給未初始化的指標陣列嗎?為什麼?

2、將pta作業的源**使用git提交到託管平台上,要求給出上傳成功截圖和你的git位址。

3、點評3個同學的本週作業(在作業中給出被點評同學部落格的鏈結),並邀請3名同學點評你的作業,無點評作業(你的作業未被3人點評)/或者沒有回覆同學或老師的點評都倒扣該題分數。

董雅潔 

莯煙 揆空 

4、請用**和折線圖呈現你本週(4/9 8:00~4/23 8:00)的**行數和所用時間、部落格字數和所用時間

第三次作業

2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...

第三次作業

1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...

第三次作業

p67 2 12 有600mb的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率是2.4kbps 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kbps,其結果又如何?解 1 t 600 1024...