mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
212 字
1 分钟
一维数组 - 理论课练习
2026-05-28

1. 课前测 - 计算平均值#

编写一个C语言程序,要求用户反复输入整数,直到输入-1为止,程序需要计算用户输入的所有数字(不包括结束标志-1)的平均值。

#include<stdio.h>
int main() {
int n = 0, sum = 0, count = 0;
float avg = 0.0;
while (n != -1)
{
scanf("%d", &n);
sum += n;
count++;
}
sum = sum + 1;
count = count - 1;
if (sum == 0)
return 0;
else
{
avg = (float)sum / count;
printf("%.2f", avg);
}
return 0;
}

2. 课堂练习 - 内存图分析#

请画出内存图,并解释为什么输出c=5,a=6,i=9。

#include <stdio.h>
int main()
{
int a = 1, c = 2, b[5], i;
printf("%p, %p, %p\n", b, &a, &c);
for (i = 0; i <= 4; i++)
{
b[i] = i;
printf("%p %d\n", &b[i], b[i]);
}
printf("\nc=%d, a=%d, i=%d\n", c, a, i);
return 0;
}

3. 统计数字的数量#

写一个程序,输入数量不确定的[0,9]内的整数,统计每个数出现的次数,输入-1表示结束。

#include<stdio.h>
int main()
{
int sum[10] = { 0 };
int n = 0;
while (n != -1)
{
scanf("%d", &n);
if (n >= 0 && n <= 9)
{
sum[n]++;
}
}
for (int i = 0;i <= 9;i++)
{
int x = sum[i];
printf("%d出现了%d\n", i, x);
}
return 0;
}

4. 军事训练等级考评#

录入10名评委的打分,去掉一个最高分,去掉一个最低分,求出参考人员的平均得分。

#include<stdio.h>
int main()
{
int score[10] = { 0 }, sign, sum = 0;
float avg = 0.0;
for (int i = 0;i <= 9;i++)
{
scanf("%d", &score[i]);
}
int max = score[0], min = score[0];
for (int i = 0;i <= 9;i++)
{
if (score[i] > max)
{
max = score[i];
}
if (score[i] < min)
{
min = score[i];
}
}
for (int i = 0;i <= 9;i++)
{
if (score[i] != max && score[i] != min)
{
sum += score[i];
}
}
avg = (float)sum / 8;
printf("平均分为%.2f", avg);
}

5. 选择排序#

使用选择排序对数组进行降序排序。

#include <stdio.h>
#define MAXN 10
int main()
{
int i, k, n, a[MAXN] = { 9,7,6,6,3,2,8,1,8,4 };
for (int j = 0; j < 9; j++) {
for (int i = 0; i < 9 - j; i++) {
if (a[i] < a[i + 1]) {
int sign = a[i];
a[i] = a[i + 1];
a[i + 1] = sign;
}
}
}
for (i = 0; i < MAXN; i++)
printf("%d ", a[i]);
return 0;
}
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

一维数组 - 理论课练习
https://blog.sherry.qzz.io/posts/c/一维数组-理论课/
作者
Sherry
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录