題目 - 沈航817程序設計


2011 年 數據結構和程序設計

  1. 設線性表 L 以順序存儲結構存儲,請編程實現在表 L 中的第 i 個元素前插入一個新的數據元素 e。 (1 <= i <= n+1)(10分)

  2. 在存儲一組遞增的整形數的單鏈表中,要求刪除所有元素 x (min < x < max)。請編程實現。

  3. 編程實現,求二叉樹的葉節點個數。(10分)

  4. 設有一個帶頭節點的單鏈表,請編程實現,若表不為空,將一新的值為 K 的節點插入到該單鏈表結尾之前(作尾節點的直接前驅),否則,新街點做表尾節點。(15分)

  5. 設有兩個動態實現的順序表 L1, L2 各存儲遞增有序的一組整形數。現要求將 L2 合並到 L1 ,且合並后的 L1 仍然保持遞增有序。請編程實現。(15分)

2012 年

  1. 輸入一個合理的年、月、日,計算日期距離 1970.1.1 的天數(20分)

  2. 編寫程序實現大整數的加法和減法運算。(25分)(大整數為 40 到 100 位之間的十進制數)

  3. 輸出所有同時符合下列條件的整數(15分)

    • 該數是4位整數;
    • 該數是完全平方根;
    • 該數減去 1111 后,結果仍是一個完全平方數。
      (完全平方是一個整數,它數另一個數的平方,例如 15、36 等)
  4. 輸入 M 個字符串,輸出重復 1 到 M 次 的字符串的個數、(25分)
    例如:輸入 BBA BBA BEA DEC CCF
    輸出 1 3; 2 1; 3 0; 4 0; 5 0
    表示重復次數一次的字符串有 3 個,重復兩次的字符串有 1 個,重復三次、四次、五次的字符串有 0 個。

  5. 編寫程序求斐波那契額數列的前 40 項之和。要求用遞歸函數實現計算斐波那契額數列的第某項的值。(15分)
    (斐波那契額數列的第一項和第二項為 1,其余每項都等於前兩項之和)

  6. 編寫函數實現利用鏈表對 20 個單詞降序排列。(25分)

  7. 打開帶有注視的 C 語言源程序文件,顯示過濾掉注釋后的文件內容。(25分)
    注釋有兩種方式: ”//“ 和 “ /* ” 開始 “ */ ” 結束

2013 年

  1. 輸入一個字符串,分別統計並輸出其中大寫字母的個數、小寫字母的個數、數字字符的個數和其他字符的個數。(15分)

  2. 輸入 10 個整數,對這組數進行由小到大排序,輸出排序結果並統計其中交換的次數。(20分)

  3. 輸出 100 - 200 之內所有素數。要求:利用自定義函數識別一個數是否為素數(溫馨提示:素數是指能被 1 和自身整除的數)(20分)

  4. 已知有兩個整數鏈表(兩個鏈表都是無序鏈表),完成鏈表的合並,保證合並后的鏈表升序排列(25分)

  5. 從鍵盤輸入 20 個學生信息(學號、姓名、年齡、身高、體重),計算全部學生的平均身高和體重,並統計輸出平均體重以上的學生的人數,以及這些學生的學號、姓名、年齡、體重等信息。(25分)

  6. 實現兩個 5*5 矩陣的加分、減法和乘法。(25分)

  7. 實現從磁盤文件 “d:\stu.dat” 中讀出全部學生信息(學號、姓名、性別、成績),分別統計高於平均成績和低於平均成績的人數,並將結果寫入到 “d:\Result.dat” 文件中。(20分)

2014 年

  1. 利用遞歸算法求兩個整數的最小公倍數。(20分)

  2. 輸入一元二次方程的三個系數 a, b, c 輸出該方程的根。需要考慮 delta < 0 的情況。

  3. 用字符串數組(數組長度為20)表示大整數,完成兩個大整數的加、減法計算。(25分)

  4. 輸入 5*5 的矩陣 A, 並計算矩陣 A 的平方(25分)

  5. 從鍵盤輸入一組學生信息(學號、姓名、高考英語成績、高考數學成績、高考語文成績),計算每個學生 3 門 課程的平均成績,並按照平均成績由高到低排序。(輸入以 3 門成績都為 0 結束)(30分)

  6. 輸入 m,n 其中 n 表示有 n 個人,圍城一圈,順序排好(編號為 n 的人的下一個人編號為 1)。從第一個人開始循環報數(從 1 到 m 報數),凡報到 m 的人退出圈子,要求輸出所有人出圈的次序。(用鏈表方式實現)。

2015 年

1.輸入一元二次方程的三個系數,輸出該方程的根。(15分)

2.輸入20個數,將它們按照從小到大的次序輸出。(20分)

3.編程實現將9*9矩陣按照順時針方向旋轉90度,要求不允許使用臨時矩陣作為轉換的內存單元。(20分)

4.輸入一個正整數N,利用遞歸實現求N的階乘。(20分)

5.計算兩個整數的最大公約數。(20分)

6.現有兩個學生信息文件“studentA.dat”和“studentB.dat”,每個文件中各有10名學生信息(學號,姓名,性別,年齡,住址),將兩個文件中的學生信息按照學號由小到大順序合並,合並結果寫入到“studentC.dat”中。(30分)

7.定義一個函數實現兩個集合的相加運算。(用鏈表的方式實現) (25分)

2017 年

  1. 計算一百以內所有完數,輸出個數及累加和

  2. 給定任意正整數n,計算n以內素數個數

  3. 輸入十個數排序並輸出結果(選擇,起泡)

  4. 輸入年月日,計算是這一年的第幾天

  5. 鏈表操作,增刪改查與合並

  6. 輸入一個3×3矩陣,輸出最大值及其行列號

  7. 文件操作,從文件中讀取數據,處理過后再寫回文件

2020年

  1. 輸入正數 m 和 n,輸出 m 和 n 之間的所有素數(m < n,包括 m 和 n)。

  2. 自定義函數,判斷該數是否是完全數(如果一個數恰好等於它的因子之和,則稱該數為“完全數”)

  3. 數組元素去重。假設某數組有 10 個整數,要求對於相同的元素,僅保留第一次出的元素,刪除其余的重復元素。保持數組的整體順序不變。

  4. 給定同一年當中的任意兩個日期,計算間隔的天數(模塊接收 5 個參數:year-年、month1-月份1、day1-日期1、month2-月份2、day2-日期2)

  5. 輸入一個 3 x 3 的矩陣,將每行中最大的數字放到該行的第一的位置上,然后輸出該矩陣。

  6. 輸入 5 名學生的信息(學號、成績、年齡)、按照學生的成績進行排序,然后輸出這 5 名學生的信息(用結構體來存儲學生信息)。

  7. 在一個升序的鏈表中插入一個元素,要求插入任意元素后使得鏈表依然保存升序(假設鏈表有 5 個元素)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM