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

C語言填空題解析:輸入以 -111 結束的整數序列求最小值

     編輯:C 語言問答

填空題邏輯推導與標準答案

題目代碼框架

#include <stdio.h>

void main() {
    int min, x;
    scanf("%d", &x);
    (1) ;                    // 初始化 min
    while ((2)) {            // 循環條件
        if (min < x) (3);    // 更新 min
        scanf("%d", &x);
    }
    printf("min=%d\n", min);
}

選項

(1) A. min=0  B. min=x  C. min=1  D. x=min
(2) A. x=-1    B. x=-111  C. x!=-111  D. x<>-111
(3) A. min=x  B. x=min  C. t=min  D. min=t

邏輯分析

  1. 第一個輸入值既是候選值,也是初始最小值 → min = x → 選 B。
  2. 以 -111 為結束標誌,循環繼續條件為「x 不等於 -111」 → x != -111 → 選 C (或 D,視編譯器支援 != 或 <>,標準 C 用 !=)。
  3. 當發現更小值 x 時,更新 min → min = x → 選 A。

標準答案

(1) B (2) C (3) A

完整可運行程序

#include <stdio.h>

int main() {
    int min, x;
    printf("輸入整數序列,以 -111 結束:\n");
    if (scanf("%d", &x) != 1) return 0;
    min = x;                           // (1) B
    while (x != -111) {                // (2) C
        if (min > x) min = x;          // (3) A  注意題目寫 minx
        scanf("%d", &x);
    }
    printf("min=%d\n", min);
    return 0;
}

題目陷阱提示

  • 原題 if (min < x) 邏輯反了,應為 if (min > x) 或 if (x < min)。
  • void main() 非標準,應用 int main() 並 return 0。
  • 輸入首值若直接是 -111,min 會被設為 -111 並直接退出,符合「空序列無最小值」語義邊界。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved