1. 题目一:编写一个C程序,计算两个整数的最大公约数。
解析
最大公约数(Greatest Common Divisor,GCD)是指两个或多个整数共有约数中最大的一个。计算两个整数的最大公约数可以使用辗转相除法(也称欧几里得算法)。
代码示例
#include <stdio.h>
// 函数声明
int gcd(int a, int b);
int main() {
int num1, num2, result;
// 输入两个整数
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 调用函数计算最大公约数
result = gcd(num1, num2);
// 输出结果
printf("最大公约数为:%d\n", result);
return 0;
}
// 辗转相除法计算最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
2. 题目二:编写一个C程序,实现一个简单的计算器。
解析
计算器可以支持加、减、乘、除四种基本运算。为了实现计算器,我们需要定义一个函数,根据用户输入的运算符和两个操作数来计算结果。
代码示例
#include <stdio.h>
// 函数声明
double calculate(double a, double b, char op);
int main() {
double num1, num2, result;
char op;
// 输入两个操作数和运算符
printf("请输入两个操作数和运算符(+,-,*,/):");
scanf("%lf %lf %c", &num1, &num2, &op);
// 调用函数计算结果
result = calculate(num1, num2, op);
// 输出结果
printf("结果为:%lf\n", result);
return 0;
}
// 计算器函数
double calculate(double a, double b, char op) {
switch (op) {
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
if (b != 0) {
return a / b;
} else {
printf("除数不能为0!\n");
return 0;
}
default:
printf("无效的运算符!\n");
return 0;
}
}
3. 题目三:编写一个C程序,实现一个学生信息管理系统。
解析
学生信息管理系统可以包含学生的姓名、学号、年龄、成绩等信息。为了实现该系统,我们需要定义一个结构体来存储学生信息,并实现增删改查等功能。
代码示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
char name[50];
int id;
int age;
float score;
} Student;
// 函数声明
void addStudent(Student *students, int *count);
void deleteStudent(Student *students, int *count);
void updateStudent(Student *students, int *count);
void queryStudent(Student *students, int count);
void displayStudents(Student *students, int count);
int main() {
Student students[100]; // 假设最多存储100名学生信息
int count = 0; // 当前存储的学生数量
// 实现学生信息管理系统的各种功能
// ...
return 0;
}
// 添加学生信息
void addStudent(Student *students, int *count) {
// 实现添加学生信息的逻辑
// ...
}
// 删除学生信息
void deleteStudent(Student *students, int *count) {
// 实现删除学生信息的逻辑
// ...
}
// 更新学生信息
void updateStudent(Student *students, int *count) {
// 实现更新学生信息的逻辑
// ...
}
// 查询学生信息
void queryStudent(Student *students, int count) {
// 实现查询学生信息的逻辑
// ...
}
// 显示所有学生信息
void displayStudents(Student *students, int count) {
// 实现显示所有学生信息的逻辑
// ...
}
以上是C语言翁恺第七周习题的解析和代码示例。这些示例代码可以帮助你更好地理解题目要求和实现思路。在实际编写代码时,你需要根据具体需求进一步完善和优化代码。