第1题 编写程序,程序名称命名为homework4-1.c,程序要实现如下功能: 编写一个C程序,输出以下信息: ********************************************* Very good! ********************************************* 第2题 编写程序,程序名称命名为homework4-2.c,程序要实现如下功能: 输入一个C程序,要求从键盘输入a,b,c,3个值,输出其中最大值。 第3题 编写程序,程序名称命名为homework4-3.c,程序要实现如下功能: 编写一个C程序,在主函数中要求从键盘输入两个实数的值,然后调用自定义的求两个实数乘积的函数,求出两个实数的乘积并输出。注意需要自己定义一个求两个实数乘积的函数,注意函数的返回值类型,初步学习函数的定义和函数的调用的基本方法。 第4题 编写程序,程序名称命名为homework4-4.c,程序要实现如下功能: 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。编写一个程序,要求使用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。 第5题 编写程序,程序名称命名为homework4-5.c,程序要实现如下功能: 要求从键盘输入一个整数,请判断这个整数是奇数好还是偶数,并输出该结果,另外再判断该数大于0、等于0还是小于0,并输出实际的结果情况。(提示:判断奇数还是偶数可以让这个数和2取余,余数等于0就是偶数,否则就是奇数) 第6题 编写程序,程序名称命名为homework4-6.c,程序要实现如下功能: 要求从键盘输入一个不是a或者z的小写字母,求该字母的前导字母和后续字母,并输出该字母的前导字母,该字母和该字母的后续字母,并输出该字母前导字母的ASCII码,该字母的ASCII码及该字母的后续字母的ASCII码。
时间: 2025-05-20 10:25:29 浏览: 30
### C语言编程练习题实现方法
以下是针对 `homework4-1.c` 到 `homework4-6.c` 的六个典型 C 语言编程练习题及其解决方案:
---
#### **题目一:计算阶乘**
编写一个程序,输入一个正整数 `n` (假设不超过 12),输出其阶乘。
```c
#include <stdio.h>
int main() {
int n;
long factorial = 1;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (n < 0) {
printf("错误:负数没有阶乘。\n");
} else {
for (int i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d! = %ld\n", n, factorial);
}
return 0;
}
```
此代码通过循环逐步累乘得到最终结果[^1]。
---
#### **题目二:判断素数**
编写一个程序,输入一个正整数 `n`,判断它是否为素数并输出结果。
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int number) {
if (number <= 1) return false;
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) return false;
}
return true;
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (isPrime(n)) {
printf("%d 是素数。\n", n);
} else {
printf("%d 不是素数。\n", n);
}
return 0;
}
```
该算法利用试除法来验证给定数字是否能被小于它的任何自然数整除[^2]。
---
#### **题目三:打印九九乘法表**
编写一个程序,按如下格式打印九九乘法表:
```
1*1=1
1*2=2 ...
...
9*9=81
```
```c
#include <stdio.h>
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d*%d=%-2d ", j, i, i * j);
}
printf("\n");
}
return 0;
}
```
上述代码采用嵌套循环结构完成逐行输出的任务。
---
#### **题目四:统计字符数量**
编写一个程序,读取用户输入的一串字符串,统计其中字母、数字和其他字符的数量。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char ch;
int letters = 0, digits = 0, others = 0;
printf("请输入一段文字(以#结束):\n");
while ((ch = getchar()) != '#') {
if (isalpha(ch)) {
letters++;
} else if (isdigit(ch)) {
digits++;
} else {
others++;
}
}
printf("字母:%d 数字:%d 其他:%d\n", letters, digits, others);
return 0;
}
```
这里使用标准库函数 `isalpha()` 和 `isdigit()` 来区分不同类型的字符[^2]。
---
#### **题目五:求解斐波那契序列前 N 项**
编写一个程序,输入一个正整数 `N`,输出斐波那契序列的前 `N` 项。
```c
#include <stdio.h>
int main() {
int n, t1 = 0, t2 = 1, nextTerm;
printf("请输入要显示的斐波那契项数:");
scanf("%d", &n);
printf("斐波那契序列:%d, %d, ", t1, t2);
for (int i = 3; i <= n; ++i) {
nextTerm = t1 + t2;
printf("%d", nextTerm);
if (i != n) {
printf(", ");
}
t1 = t2;
t2 = nextTerm;
}
return 0;
}
```
这段代码展示了如何基于迭代逻辑生成斐波那契数列。
---
#### **题目六:寻找数组中的最大值和最小值**
编写一个程序,定义一个大小固定的整型数组,初始化若干数据后找出其中的最大值和最小值。
```c
#include <stdio.h>
#define SIZE 5
void findMinMax(int array[], int size, int *min, int *max) {
*min = *max = array[0];
for (int i = 1; i < size; i++) {
if (*min > array[i]) *min = array[i];
if (*max < array[i]) *max = array[i];
}
}
int main() {
int numbers[SIZE] = {7, 3, 15, 2, 1};
int min, max;
findMinMax(numbers, SIZE, &min, &max);
printf("最小值: %d\n", min);
printf("最大值: %d\n", max);
return 0;
}
```
本例中自定义了一个辅助函数用于简化主流程控制。
---
### 问题
阅读全文
相关推荐

















