1. 习题概述
第五章是何钦铭的《C语言程序设计》第三版中关于指针内容的重要章节。本章主要介绍了指针的基本概念、指针的运算、指针与数组、指针与函数、指针与结构体等内容。为了帮助读者更好地理解这些知识点,下面将对第五章中的习题进行详细解答。
2. 习题解答
2.1 习题一:指针的定义和初始化
题目描述:定义一个整型指针变量,并给它赋值为NULL。
解答:
#include <stdio.h>
int main() {
int *p;
p = NULL;
return 0;
}
2.2 习题二:指针的运算
题目描述:编写一个函数,交换两个整数的值。
解答:
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10, y = 20;
swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
2.3 习题三:指针与数组
题目描述:编写一个函数,计算一个整型数组的平均值。
解答:
#include <stdio.h>
double average(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return (double)sum / size;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Average = %.2f\n", average(arr, size));
return 0;
}
2.4 习题四:指针与函数
题目描述:编写一个函数,判断一个整数是否为素数。
解答:
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
2.5 习题五:指针与结构体
题目描述:定义一个学生结构体,包含姓名、年龄和成绩。编写一个函数,用于打印学生的信息。
解答:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float score;
} Student;
void print_student(Student *s) {
printf("Name: %s\n", s->name);
printf("Age: %d\n", s->age);
printf("Score: %.2f\n", s->score);
}
int main() {
Student s1 = {"Alice", 20, 90.5};
print_student(&s1);
return 0;
}
3. 总结
以上是何钦铭《C语言程序设计》第三版第五章习题的解答。通过对这些习题的解答,相信读者已经对指针有了更深入的理解。在学习和编程的过程中,不断练习是提高自己技能的最好方法。希望这些解答能够对读者有所帮助。
