当前位置:实例文章 » 其他实例» [文章]C语言非常道 6.4习题解答

C语言非常道 6.4习题解答

发布人:shili8 发布时间:2025-03-13 19:15 阅读次数:0

**C语言非常道6.4习题解答**

###习题1#### 题目编写一个函数 `int max(int a, int b)`,返回两个整数中较大的那个。

#### 解答

c// max.c#include <stdio.h>

/**
 * @brief 返回两个整数中较大的那个。
 *
 * @param a 第一个整数。
 * @param b 第二个整数。
 * @return两个整数中较大的那个。
 */
int max(int a, int b) {
 // 如果a大于b,则返回a if (a > b) {
 return a;
 }
 // 否则,返回b else {
 return b;
 }
}

// main.c#include <stdio.h>
#include "max.h"

int main() {
 int num1 =10, num2 =20;

 printf("较大数是:%d
", max(num1, num2));

 return0;
}


###习题2#### 题目编写一个函数 `void swap(int *a, int *b)`,交换两个整数的值。

#### 解答
c// swap.c#include <stdio.h>

/**
 * @brief 交换两个整数的值。
 *
 * @param a 第一个整数的地址。
 * @param b 第二个整数的地址。
 */
void swap(int *a, int *b) {
 // 使用临时变量交换两个整数 int temp = *a;
 *a = *b;
 *b = temp;
}

// main.c#include <stdio.h>
#include "swap.h"

int main() {
 int num1 =10, num2 =20;

 printf("交换前:num1=%d,num2=%d
", num1, num2);
 swap(&num1, &num2);
 printf("交换后:num1=%d,num2=%d
", num1, num2);

 return0;
}


###习题3#### 题目编写一个函数 `int sum(int a, int b)`,返回两个整数的和。

#### 解答
c// sum.c#include <stdio.h>

/**
 * @brief 返回两个整数的和。
 *
 * @param a 第一个整数。
 * @param b 第二个整数。
 * @return两个整数的和。
 */
int sum(int a, int b) {
 // 直接返回a+b return a + b;
}

// main.c#include <stdio.h>
#include "sum.h"

int main() {
 int num1 =10, num2 =20;

 printf("两个整数的和是:%d
", sum(num1, num2));

 return0;
}


###习题4#### 题目编写一个函数 `void print(int a)`,打印一个整数。

#### 解答
c// print.c#include <stdio.h>

/**
 * @brief 打印一个整数。
 *
 * @param a 整数。
 */
void print(int a) {
 // 直接使用printf打印a printf("%d
", a);
}

// main.c#include <stdio.h>
#include "print.h"

int main() {
 int num =10;

 print(num);

 return0;
}


###习题5#### 题目编写一个函数 `void swap2(int *a, int *b)`,交换两个整数的值。

#### 解答
c// swap2.c#include <stdio.h>

/**
 * @brief 交换两个整数的值。
 *
 * @param a 第一个整数的地址。
 * @param b 第二个整数的地址。
 */
void swap2(int *a, int *b) {
 // 使用^运算符交换两个整数 *a = *a ^ *b;
 *b = *a ^ *b;
 *a = *a ^ *b;
}

// main.c#include <stdio.h>
#include "swap2.h"

int main() {
 int num1 =10, num2 =20;

 printf("交换前:num1=%d,num2=%d
", num1, num2);
 swap2(&num1, &num2);
 printf("交换后:num1=%d,num2=%d
", num1, num2);

 return0;
}


###习题6#### 题目编写一个函数 `int min(int a, int b)`,返回两个整数中较小的那个。

#### 解答
c// min.c#include <stdio.h>

/**
 * @brief 返回两个整数中较小的那个。
 *
 * @param a 第一个整数。
 * @param b 第二个整数。
 * @return两个整数中较小的那个。
 */
int min(int a, int b) {
 // 如果a小于b,则返回a if (a < b) {
 return a;
 }
 // 否则,返回b else {
 return b;
 }
}

// main.c#include <stdio.h>
#include "min.h"

int main() {
 int num1 =10, num2 =20;

 printf("较小数是:%d
", min(num1, num2));

 return0;
}


###习题7#### 题目编写一个函数 `void print_array(int *arr, int len)`,打印一个整数数组。

#### 解答
c// print_array.c#include <stdio.h>

/**
 * @brief 打印一个整数数组。
 *
 * @param arr 整数数组的地址。
 * @param len 数组长度。
 */
void print_array(int *arr, int len) {
 // 遍历打印每个元素 for (int i =0; i < len; i++) {
 printf("%d ", arr[i]);
 }
 printf("
");
}

// main.c#include <stdio.h>
#include "print_array.h"

int main() {
 int arr[] = {1,2,3,4,5};
 int len = sizeof(arr) / sizeof(arr[0]);

 print_array(arr, len);

 return0;
}


###习题8#### 题目编写一个函数 `int max_array(int *arr, int len)`,返回一个整数数组中最大元素。

#### 解答
c// max_array.c#include <stdio.h>

/**
 * @brief 返回一个整数数组中最大元素。
 *
 * @param arr 整数数组的地址。
 * @param len 数组长度。
 * @return 数组中最大元素。
 */
int max_array(int *arr, int len) {
 // 初始化最大值为负无穷 int max = -2147483648;
 // 遍历找出最大值 for (int i =0; i < len; i++) {
 if (arr[i] > max) {
 max = arr[i];
 }
 }
 return max;
}

// main.c#include <stdio.h>
#include "max_array.h"

int main() {
 int arr[] = {1,2,3,4,5};
 int len = sizeof(arr) / sizeof(arr[0]);

 printf("数组中最大元素是:%d
", max_array(arr, len));

 return0;
}


###习题9#### 题目编写一个函数 `int min_array(int *arr, int len)`,返回一个整数数组中最小元素。

#### 解答
c// min_array.c#include <stdio.h>

/**
 * @brief 返回一个整数数组中最小元素。
 *
 * @param arr 整数数组的地址。
 * @param len 数组长度。
 * @return 数组中最小元素。
 */
int min_array(int *arr, int len) {
 // 初始化最小值为正无穷 int min =2147483647;
 // 遍历找出最小值 for (int i =0; i < len; i++) {
 if (arr[i] < min) {
 min = arr[i];
 }
 }
 return min;
}

// main.c#include <stdio.h>
#include "min_array.h"

int main() {
 int arr[] = {1,2,3,4,5};
 int len = sizeof(arr) / sizeof(arr[0]);

 printf("数组中最小元素是:%d
", min_array(arr, len));

 return0;
}


###习题10#### 题目编写一个函数 `void swap3(int *a, int *b)`,交换两个整数的值。

#### 解答
c// swap3.c#include <stdio.h>

/**
 * @brief 交换两个整数的值。
 *
 * @param a 第一个整

相关标签:算法c语言开发语言
其他信息

其他资源

Top