四,编写程序题。
- 编写程序,根据用户输入的长方形的长和宽,编写程序求长方形面积并输出。
- 编写程序,按照百分制成绩评定学生的等级,90-100分为A,75-89分为B,60-74分为C,60分以下为D,实现输入学生的百分制成绩,输出其对应的等级。
- 编写程序,判断一个数是否为素数。
- 用结构体数组存储职员信息,每个职员的数据项包含工号、姓名和电话。编写一个程序,输入每个职员的信息,按工号升序排序后,输出职员的全部信息。
(1) 程序源码:
#include <stdio.h>
int main() {
double length, width, area;
// 请求用户输入长方形的长和宽
printf("请输入长方形的长: ");
scanf("%lf", &length);
printf("请输入长方形的宽: ");
scanf("%lf", &width);
// 计算面积
area = length * width;
// 输出面积
printf("长方形的面积是: %.2f\n", area);
return 0;
}
运行结果:
(2)程序源码:
#include <stdio.h>
int main() {
int score;
char grade;
// 请求用户输入学生的百分制成绩
printf("请输入学生的百分制成绩: ");
scanf("%d", &score);
// 根据成绩评定等级
if (score >= 90 && score <= 100) {
grade = 'A';
} else if (score >= 75 && score <= 89) {
grade = 'B';
} else if (score >= 60 && score <= 74) {
grade = 'C';
} else if (score < 60) {
grade = 'D';
} else {
// 输入的成绩不在合法范围内
printf("输入的成绩不合法,请输入0到100之间的成绩。\n");
return 1; // 使用非零值退出表示程序异常结束
}
// 输出学生的等级
printf("学生的等级是: %c\n", grade);
return 0;
}
运行结果:
(3)程序源码:
#include <stdio.h>
#include <math.h>
int main() {
int num, i;
int isPrime = 1; // 假设num是素数,isPrime为1表示素数,0表示非素数
// 请求用户输入一个数
printf("请输入一个整数: ");
scanf("%d", &num);
// 负数、0和1不是素数
if (num <= 1) {
isPrime = 0;
} else {
for (i = 2; i <= sqrt(num); ++i) {
if (num % i == 0) {
isPrime = 0;
break; // 一旦发现能被整除,则不是素数,跳出循环
}
}
}
// 根据isPrime的值判断num是否为素数
if (isPrime == 1) {
printf("%d 是素数。\n", num);
} else {
printf("%d 不是素数。\n", num);
}
return 0;
}
运行结果:
(4)程序源码
#include <stdio.h>
#include <stdlib.h> // 引入头文件以使用malloc和free
#include <string.h>
typedef struct {
int id;
char name[50];
char phone[20];
} Employee;
void sortEmployees(Employee *employees, int size);
int main() {
int n, i;
printf("请输入职员的数量: ");
scanf("%d", &n);
Employee *employees = (Employee *)malloc(n * sizeof(Employee)); // 动态分配内存
if (employees == NULL) {
printf("内存分配失败\n");
return 1;
}
for (i = 0; i < n; i++) {
printf("输入职员 #%d 的信息\n", i + 1);
printf("工号: ");
scanf("%d", &employees[i].id);
printf("姓名: ");
scanf("%s", employees[i].name);
printf("电话: ");
scanf("%s", employees[i].phone);
}
sortEmployees(employees, n);
printf("\n职员信息(按工号升序):\n");
for (i = 0; i < n; i++) {
printf("工号: %d, 姓名: %s, 电话: %s\n", employees[i].id, employees[i].name, employees[i].phone);
}
free(employees); // 释放动态分配的内存
return 0;
}
void sortEmployees(Employee *employees, int size) {
int i, j;
Employee temp;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - 1 - i; j++) {
if (employees[j].id > employees[j + 1].id) {
temp = employees[j];
employees[j] = employees[j + 1];
employees[j + 1] = temp;
}
}
}
}
运行结果: