C语言编程题指针

指针是C语言中一个非常重要的概念,指针的使用可以提高程序的效率和灵活性。指针在C语言中的基本使用,包括变量交换、数组操作、字符串处理、动态内存分配等。C语言指针编程题对理解和掌握指针的使用有所帮助。

1、交换两个整数的值

编写一个函数,使用指针交换两个整数的值。

#include <stdio.h>

// 交换两个整数的值的函数
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int x = 5, y = 10;
    printf("Before swap: x = %d, y = %d\n", x, y);
    
    // 调用交换函数
    swap(&x, &y);
    
    printf("After swap: x = %d, y = %d\n", x, y);
    return 0;
}

2、数组元素求和

编写一个函数,使用指针计算一个整数数组的所有元素的和。

#include <stdio.h>

// 计算数组元素和的函数
int array_sum(int *arr, int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += *(arr + i);
    }
    return sum;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    int sum = array_sum(arr, size);
    printf("Sum of array elements: %d\n", sum);
    return 0;
}

3、字符串长度计算

编写一个函数,使用指针计算给定字符串的长度,不使用标准库函数 strlen

#include <stdio.h>

// 计算字符串长度的函数
int string_length(char *str) {
    int length = 0;
    while (*str != '\0') {
        length++;
        str++;
    }
    return length;
}

int main() {
    char str[] = "Hello, World!";
    
    int length = string_length(str);
    printf("Length of the string: %d\n", length);
    return 0;
}

4、动态内存分配与释放

编写一个程序,使用指针动态分配内存存储一个整数数组,并释放内存。

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

int main() {
    int n;
    printf("Enter the number of elements: ");
    scanf("%d", &n);

    // 动态分配内存
    int *arr = (int *)malloc(n * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // 输入数组元素
    printf("Enter %d integers:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    // 输出数组元素
    printf("Array elements are:\n");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 释放内存
    free(arr);

    return 0;
}

5、字符串复制

编写一个函数,使用指针复制一个字符串到另一个字符串,不使用标准库函数 strcpy

#include <stdio.h>

// 字符串复制函数
void string_copy(char *dest, const char *src) {
    while (*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
}

int main() {
    char src[] = "Hello, World!";
    char dest[50];

    // 调用字符串复制函数
    string_copy(dest, src);
    
    printf("Source string: %s\n", src);
    printf("Destination string: %s\n", dest);
    return 0;
}

推荐阅读
cjavapy编程之路首页