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

C 語言順序程式設計筆記:語句分類、輸入輸出、格式化、一元二次方程與兩位數倒序

     編輯:關於C語言

順序結構是程式最基礎的執行模式。本文系統整理 C 語言語句分類、標準輸入輸出庫函式、格式化控制、字元處理函式,並以一元二次方程求根、兩位數倒序為例示範完整程式結構。

1. 語句分類總覽

類別關鍵字/形式說明
表達式語句expr;表達式後加分號,有值但語句無值
流程控制if, switch, for, while, do-while分支與迴圈
跳轉語句break, continue, goto, return改變執行流向
複合語句{ stmt1; stmt2; ... }大括號包裹,形成區塊,可聲明區域變數
空語句;佔位,常用於迴圈體為空或預留代碼
聲明語句int a=10;變數定義與初始化
函式調用func();表達式語句的一種

2. 複合語句與變數作用域

複合語句內聲明的變數,作用域限於該區塊:


int a=11, b=21, c=31;
printf("外層: a=%d b=%d c=%d\n", a, b, c);  // 11 21 31
{
    int b=22;          // 遮蔽外層 b
    float c=3.3;       // 遮蔽外層 c
    printf("內層: a=%d b=%d c=%f\n", a, b, c);  // 11 22 3.3
    a = b;             // 修改外層 a
}
printf("外層: a=%d b=%d c=%d\n", a, b, c);  // 22 21 31 (a被改, b,c恢復)

若內層也聲明 int a=1,則外層 a 完全不受影響。

3. 標準輸入輸出庫函式

頭檔案


#include <stdio.h>   // printf, scanf, putchar, getchar, puts, gets...
#include <math.h>    // sin, cos, sqrt, pow...

格式化輸出 printf

printf("格式字串", 引數...)

格式對應型別範例
%d / %iint有號十進制
%uunsigned int無號十進制
%ounsigned int八進制
%x / %Xunsigned int十六進制
%ffloat/double定點小數
%e / %Efloat/double科學記號
%g / %Gfloat/double自動選擇 %f/%e
%cchar單一字元
%schar*字串
%pvoid*位址

寬度/精度:%10.2f(寬10、小數2位)、%-5d(左對齊)。

字元輸出 putchar


putchar('A'); putchar('\n'); putchar('\101');  // 八進位 ASCII

單字元輸出,效率高於 printf("%c")。

格式化輸入 scanf

scanf("格式字串", &var...) 需傳位址。

常見格式:%d %f %lf %c %s。%lf 對應 double。

字元輸入三函式比較

函式回顯緩衝換行處理標準
getchar()是行緩衝讀入 '\n'C 標準
getch()否無緩衝直接返回conio.h (非標準)
getche()是無緩衝直接返回conio.h (非標準)

4. 實作範例

範例一:一元二次方程求根


#include <stdio.h>
#include <math.h>

int main() {
    double a, b, c, disc, x1, x2;
    printf("輸入係數 a b c: ");
    scanf("%lf %lf %lf", &a, &b, &c);
    
    disc = b*b - 4*a*c;
    if (disc < 0) {
        printf("無實根\n");
    } else {
        x1 = (-b + sqrt(disc)) / (2*a);
        x2 = (-b - sqrt(disc)) / (2*a);
        printf("x1 = %.4f, x2 = %.4f\n", x1, x2);
    }
    return 0;
}

範例二:兩位數倒序(10~99)


#include <stdio.h>

int main() {
    int m, n;
    printf("輸入兩位數 (10-99): ");
    scanf("%d", &m);
    n = m % 10;          // 個位
    m = n * 10 + m / 10; // 十位移到個位,個位移到十位
    printf("倒序後: %d\n", m);
    return 0;
}

5. 程式結構最佳實務

  1. 模組化:每個邏輯單元寫成函式,main 僅負責流程協調
  2. 錯誤檢查:scanf 回傳值檢查、sqrt 定義域檢查、除零檢查
  3. 格式一致:縮排 4 空格、大括號風格統一、變數命名語意化
  4. 註解說明:關鍵演算法步驟、非顯而易見的技巧加註解

總結

順序程式雖簡單,但包含語句分類、作用域、I/O 格式化、數學庫等核心知識點。扎實掌握 printf/scanf 格式字串、理解複合語句建立新作用域、熟悉字元輸入函式差異,是進階學習分支、迴圈、函式、指標的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved