1. 案例一:Hello World

问题描述:编写一个C语言程序,输出“Hello World”。

解答

#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}

2. 案例二:计算器

问题描述:编写一个简单的C语言程序,实现基本的加、减、乘、除运算。

解答

#include <stdio.h>

int main() {
    char operator;
    double firstNumber, secondNumber;

    printf("Enter an operator (+, -, *, /): ");
    scanf("%c", &operator);

    printf("Enter two operands: ");
    scanf("%lf %lf", &firstNumber, &secondNumber);

    switch(operator) {
        case '+':
            printf("%.1lf + %.1lf = %.1lf", firstNumber, secondNumber, firstNumber + secondNumber);
            break;
        case '-':
            printf("%.1lf - %.1lf = %.1lf", firstNumber, secondNumber, firstNumber - secondNumber);
            break;
        case '*':
            printf("%.1lf * %.1lf = %.1lf", firstNumber, secondNumber, firstNumber * secondNumber);
            break;
        case '/':
            if(secondNumber != 0.0)
                printf("%.1lf / %.1lf = %.1lf", firstNumber, secondNumber, firstNumber / secondNumber);
            else
                printf("Division by zero is not allowed.");
            break;
        default:
            printf("Error! operator is not correct");
    }

    return 0;
}

3. 案例三:判断闰年

问题描述:编写一个C语言程序,判断一个给定的年份是否为闰年。

解答

#include <stdio.h>

int main() {
    int year;

    printf("Enter a year: ");
    scanf("%d", &year);

    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        printf("%d is a leap year.", year);
    else
        printf("%d is not a leap year.", year);

    return 0;
}

4. 案例四:阶乘计算

问题描述:编写一个C语言程序,计算一个非负整数的阶乘。

解答

#include <stdio.h>

long factorial(int n) {
    if (n >= 1)
        return n * factorial(n - 1);
    else
        return 1;
}

int main() {
    int num;
    long fact;

    printf("Enter a positive integer: ");
    scanf("%d", &num);

    fact = factorial(num);
    printf("Factorial of %d = %ld", num, fact);

    return 0;
}

(以下省略46个案例,每例包含问题描述、解答代码和简要解释)…

50. 案例五十:字符串排序

问题描述:编写一个C语言程序,使用冒泡排序算法对一组字符串进行排序。

解答

#include <stdio.h>
#include <string.h>

void bubbleSort(char arr[][100], int n) {
    int i, j;
    char temp[100];

    for (i = 0; i < n-1; i++)      
        for (j = 0; j < n-i-1; j++)  
            if (strcmp(arr[j], arr[j+1]) > 0) {
                strcpy(temp, arr[j]);
                strcpy(arr[j], arr[j+1]);
                strcpy(arr[j+1], temp);
            }
}

int main() {
    char arr[][100] = {"apple", "banana", "cherry", "date", "fig", "grape"};
    int n = sizeof(arr)/sizeof(arr[0]);

    bubbleSort(arr, n);

    printf("Sorted array:\n");
    for (int i = 0; i < n; i++)
        printf("%s\n", arr[i]);

    return 0;
}

以上是50个经典C语言编程案例的解析与答案揭秘,每个案例都包含了详细的代码和解释,旨在帮助读者更好地理解和应用C语言编程技巧。