根据提供的文档信息,我们可以归纳总结出以下C语言编程的相关知识点:
### 1. 多分支选择结构
在C语言中,多分支选择结构通常通过`if-else if-else`语句来实现。例如,题目中提到的第一个练习题就涉及到了这种结构:
```c
#include <stdio.h>
int main() {
double x, y;
printf("请输入x的值:");
scanf("%lf", &x);
if (x < -10) {
y = 11 * x + 21;
} else if (x <= 10) {
y = 11;
} else {
y = 21 - x;
}
printf("当x = %.2f时, y = %.2f\n", x, y);
return 0;
}
```
### 2. 循环结构
循环结构是C语言编程中非常重要的组成部分,主要包括`for`、`while`和`do-while`三种。题目中第二个练习题使用了循环来找出所有的水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, temp, sum, digit;
for (i = 100; i <= 999; i++) {
temp = i;
sum = 0;
while (temp != 0) {
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == i) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
### 3. 函数与文件结合编程
题目中的第三个练习题涉及到函数与文件操作。这里可以通过定义一个判断素数的函数,并利用文件操作将结果输出到指定文件中:
```c
#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;
}
void write_primes_to_file() {
FILE *fp;
fp = fopen("C:\\prime.dat", "w");
for (int i = 1; i <= 100; i++) {
if (is_prime(i)) {
fprintf(fp, "%d ", i);
if ((i - 1) % 5 == 0 && i != 100) fprintf(fp, "\n");
}
}
fclose(fp);
}
int main() {
write_primes_to_file();
return 0;
}
```
### 4. 数组与文件结合编程
第四个练习题涉及到了数组和文件的综合应用,可以使用数组存储字母出现的次数,并最终将结果输出到文件中:
```c
#include <stdio.h>
int main() {
char str[100];
int freq[26] = {0};
printf("请输入一段英文:");
fgets(str, 100, stdin);
for (int i = 0; str[i]; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
freq[str[i] - 'a']++;
} else if (str[i] >= 'A' && str[i] <= 'Z') {
freq[str[i] - 'A']++;
}
}
FILE *fp;
fp = fopen("C:\\prime.dat", "w");
fprintf(fp, "a: %d\ne: %d\n", freq['a' - 'a'], freq['e' - 'a']);
fclose(fp);
return 0;
}
```
### 5. 指针
第五个练习题涉及到了指针的应用。使用指针对数组进行排序和输出:
```c
#include <stdio.h>
void sort_descending(int arr[], int n) {
int temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[20], n = 20;
FILE *fp;
fp = fopen("C:\\prime.dat", "w");
for (int i = 0; i < n; i++) {
printf("请输入第%d个整数:", i + 1);
scanf("%d", &arr[i]);
}
sort_descending(arr, n);
for (int i = 0; i < 15; i++) {
fprintf(fp, "%d ", arr[i]);
if ((i + 1) % 5 == 0) fprintf(fp, "\n");
}
fclose(fp);
return 0;
}
```
以上仅列举了部分练习题所涉及的知识点。这些示例涵盖了C语言中的基本语法和一些进阶概念,包括条件语句、循环控制、函数定义、文件操作等。通过这些练习题,读者可以更好地理解和掌握C语言的基础知识及其实际应用。