首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言數組經典練習題精選:翻轉、排序、對稱、統計全覆蓋

     編輯:關於C語言

C 語言數組經典練習題精選:翻轉、排序、對稱、統計全覆蓋

數組是 C 語言最基礎的聚合數據類型,掌握其操作模式是進階編程的前提。本文精選 20 道經典練習,涵蓋遍歷、翻轉、排序、查找、統計、矩陣運算等核心場景,附帶註釋版參考代碼與算法解析。

練習題分類索引

  1. 基礎遍歷與輸出:正序/逆序輸出、特定格式打印
  2. 排序算法:冒泡排序、選擇排序實現升序/降序
  3. 數組翻轉與移動:整體翻轉、區間交換、刪除元素前移
  4. 查找與統計:最大值/第二大值、對稱判斷、平均值統計、最小值交換
  5. 字符數組處理:數字字符串轉整數、字符統計
  6. 二維數組與矩陣:轉置、對角線求和、杨輝三角、特定賦值規律

核心題目詳解與代碼

1. 數組逆序輸出

for (int i = 9; i >= 0; i--) {
    printf("%d ", arr[i]);
}

2. 冒泡排序(升序)

for (int i = 0; i < n-1; i++) {
    for (int j = 0; j < n-i-1; j++) {
        if (arr[j] > arr[j+1]) {
            int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp;
        }
    }
}

3. 判斷對稱數組

bool isSymmetry(int a[], int len) {
    for (int i = 0; i < len/2; i++) {
        if (a[i] != a[len-1-i]) return false;
    }
    return true;
}

4. 刪除指定下標元素(前移覆蓋)

// 刪除下標 1 元素
for (int i = 1; i < 9; i++) a[i] = a[i+1];

5. 尋找第二大值下標

int maxIdx = 0, secIdx = -1;
for (int i = 1; i < n; i++) {
    if (a[i] > a[maxIdx]) { secIdx = maxIdx; maxIdx = i; }
    else if (secIdx == -1 || a[i] > a[secIdx]) secIdx = i;
}

6. 統計大於平均值的元素個數

double sum = 0; for (int i=0;i avg) cnt++;

7. 最小值與首元素交換

int minIdx = 0;
for (int i=1;i

8. 二維數組轉置(方陣)

for (int i=0;i

9. 杨輝三角生成

for (int i=0;i

10. 特殊規律賦值:下標能被 3/5/7 整除

for (int i=0;i

進階建議

  • 所有下標操作務必加邊界檢查,防止緩衝區溢出。
  • 排序、查找等通用邏輯封裝為函數,傳入數組指針與長度,提高復用性。
  • 二維數組傳參時第二維度必須固定,或使用一維數組模擬 a[i*cols + j]。
  • 大規模數據統計考慮使用 long long 避免溢出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved