引言

C语言作为一种历史悠久且应用广泛的编程语言,以其简洁、高效和可移植性而著称。通过实验,我们可以将理论知识与实践相结合,加深对C语言编程的理解。本文将带领读者通过实验11深入了解C语言编程,通过具体实例学习如何将所学知识应用于实际问题。

实验目的

  1. 理解C语言中函数的概念和用法。
  2. 掌握指针在函数中的应用。
  3. 学习使用动态内存分配。
  4. 熟悉文件操作的基本方法。

实验环境

  1. 编译器:推荐使用GCC或Clang。
  2. 操作系统:Windows、Linux或macOS。
  3. 环境配置:根据编译器文档配置开发环境。

实验内容

一、函数的概念和应用

1.1 函数的定义与调用

#include <stdio.h>

// 函数声明
void printHello();

int main() {
    printHello(); // 函数调用
    return 0;
}

// 函数定义
void printHello() {
    printf("Hello, World!\n");
}

1.2 函数参数传递

#include <stdio.h>

// 函数声明
void add(int a, int b);

int main() {
    int num1 = 5, num2 = 10;
    add(num1, num2); // 函数调用,参数传递
    return 0;
}

// 函数定义
void add(int a, int b) {
    printf("Sum: %d\n", a + b);
}

二、指针在函数中的应用

2.1 指针与函数参数

#include <stdio.h>

// 函数声明
void swap(int *a, int *b);

int main() {
    int x = 10, y = 20;
    swap(&x, &y); // 使用指针传递地址
    printf("x: %d, y: %d\n", x, y);
    return 0;
}

// 函数定义
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

2.2 指针与动态内存分配

#include <stdio.h>
#include <stdlib.h>

// 函数声明
int* createArray(int size);

int main() {
    int* arr = createArray(5);
    for (int i = 0; i < 5; i++) {
        arr[i] = i * i;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", arr[i]);
    }
    free(arr); // 释放动态分配的内存
    return 0;
}

// 函数定义
int* createArray(int size) {
    int* arr = (int*)malloc(size * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        exit(1);
    }
    return arr;
}

三、文件操作

3.1 打开文件

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r"); // 以只读模式打开文件
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }
    char ch;
    while ((ch = fgetc(file)) != EOF) { // 读取文件内容
        putchar(ch);
    }
    fclose(file); // 关闭文件
    return 0;
}

3.2 写入文件

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w"); // 以写入模式打开文件
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }
    fprintf(file, "Hello, World!\n"); // 写入文件内容
    fclose(file); // 关闭文件
    return 0;
}

总结

通过实验11的学习,我们不仅掌握了C语言中函数、指针、动态内存分配和文件操作等基本技能,还加深了对C语言编程的理解。在今后的编程实践中,这些技能将帮助我们更好地解决问题,提高编程水平。