根据题目要求,以下是从给定文件的信息中提取并解析的关键知识点: ### 1. 计算数组中小于平均值的元素个数 **题目描述**: 编写一个函数`int fun(int a[], int n, int b[])`,该函数接收一个整型数组`a[]`及其长度`n`作为参数,并返回小于平均值的元素个数。同时,将这些元素存储到另一个数组`b[]`中。 **解题思路**: - 首先计算所有元素的总和。 - 求出平均值。 - 遍历数组,将小于平均值的元素存储到`b[]`数组中,并统计这些元素的个数。 **代码示例**: ```c int fun(int a[], int n, int b[]) { int i, m = 0, aver = 0; for (i = 0; i < n; i++) { aver += a[i]; } aver /= n; for (i = 0; i < n; i++) { if (a[i] < aver) { b[m++] = a[i]; } } return m; } ``` ### 2. 找出1000以内既是7的倍数但不是11的倍数或反之的整数 **题目描述**: 编写一个函数`int fun(int a[])`,该函数接收一个整型数组`a[]`作为参数,并返回满足条件的元素个数。即找出1000以内既是7的倍数但不是11的倍数,或不是7的倍数但却是11的倍数的所有整数,并将它们存入`a[]`数组中。 **解题思路**: - 遍历1到999之间的所有整数。 - 判断每个数是否符合条件。 - 如果符合条件,则将其添加到数组`a[]`中。 **代码示例**: ```c int fun(int a[]) { int i, n = 0; for (i = 1; i < 1000; i++) { if ((i % 7 == 0 && i % 11 != 0) || (i % 7 != 0 && i % 11 == 0)) { a[n++] = i; } } return n; } ``` ### 3. 生成指定数量的素数 **题目描述**: 编写一个函数`void fun(int m, int k, int a[])`,该函数接收两个整型变量`m`和`k`以及一个整型数组`a[]`作为参数。该函数从`m + 1`开始生成`k`个素数,并将这些素数存入数组`a[]`中。 **解题思路**: - 使用`m + 1`作为起始点。 - 对每个数进行素性检测。 - 将素数添加到数组`a[]`中,直到满足数量要求。 **代码示例**: ```c void fun(int m, int k, int a[]) { int i, n, data, flag; data = m + 1; n = 0; while (n < k) { flag = 1; for (i = 2; i <= data / 2; i++) { if (data % i == 0) { flag = 0; break; } } if (flag) { a[n++] = data; } data++; } } ``` ### 4. 数组旋转 **题目描述**: 编写一个函数`void fun(int a[], int n, int p)`,该函数接收一个整型数组`a[]`、其长度`n`和一个整型变量`p`作为参数。该函数将数组`a[]`向右旋转`p`次。 **解题思路**: - 使用临时变量`t`来保存第一个元素。 - 循环移动每个元素的位置。 - 直到完成所有旋转。 **代码示例**: ```c void fun(int a[], int n, int p) { int i, j, t; for (i = 0; i <= p; i++) { t = a[0]; for (j = 1; j < n; j++) { a[j - 1] = a[j]; } a[n - 1] = t; } } ``` ### 5. 寻找次大值和第二大值 **题目描述**: 编写一个函数`int fun(int a[], int n)`,该函数接收一个整型数组`a[]`及其长度`n`作为参数。该函数返回数组中的第二大值的位置。 **解题思路**: - 初始化最大值和次大值的位置。 - 遍历数组,更新最大值和次大值的位置。 **代码示例**: ```c int fun(int a[], int n) { int i, j, max, may; if (a[0] > a[1]) { max = 0; may = 1; } else { max = 1; may = 0; } for (i = 2; i < n; i++) { if (a[i] > a[max]) { may = max; max = i; } else if (a[i] > a[may]) { may = i; } } return may; } ``` ### 6. 按特定规则排序 **题目描述**: 编写一个函数`int fun(int a[], int n, int b[])`,该函数接收一个整型数组`a[]`、其长度`n`和另一个整型数组`b[]`作为参数。该函数按照元素最后三位数字的大小进行排序,并且当最后三位相同的情况下按元素本身的大小进行排序。排序完成后,取前10个元素存入`b[]`数组中,并返回10。 **解题思路**: - 使用选择排序算法进行排序。 - 定义比较逻辑:先比较最后三位,再比较整体大小。 - 取前10个元素存入`b[]`数组。 **代码示例**: ```c int fun(int a[], int n, int b[]) { int i, j, k, t, m = 10; for (i = 0; i < n - 1; i++) { k = i; for (j = i + 1; j < n; j++) { if (a[j] % 1000 < a[k] % 1000) { k = j; } else if (a[j] % 1000 == a[k] % 1000 && a[j] > a[k]) { k = j; } } if (k != i) { t = a[i]; a[i] = a[k]; a[k] = t; } } for (i = 0; i < m; i++) { b[i] = a[i]; } return m; } ``` ### 7. 生成回文数 **题目描述**: 编写一个函数`int fun(int a[])`,该函数接收一个整型数组`a[]`作为参数。该函数生成100到320之间所有三位数的平方中,满足回文数条件的数,并将这些数存入数组`a[]`中,返回符合条件的元素个数。 **解题思路**: - 遍历10到32之间的所有整数。 - 计算每个整数的平方。 - 判断平方数是否为回文数。 - 如果是回文数则存入数组`a[]`。 **代码示例**: ```c int fun(int a[]) { int i, j, hun, ten, data, n = 0; for (i = 10; i < 32; i++) { j = i * i; if (j >= 100 && j <= 999) { hun = j / 100; ten = j % 100 / 10; data = j % 10; if (hun == ten || ten == data || data == hun) { a[n++] = j; } } } return n; } ``` ### 8. 判断一个数是否为回文数 **题目描述**: 编写一个函数`int fun(long m)`,该函数接收一个长整型变量`m`作为参数。该函数判断`m`是否为回文数,如果是回文数返回1,否则返回0。 **解题思路**: - 将输入的数逐位分解并存储。 - 判断分解后的数是否对称。 **代码示例**: ```c int fun(long m) { int i = 0, n = 0, flag = 1, a[20]; while (m) { a[n] = m % 10; m /= 10; n++; } while (i <= n / 2 && flag) { if (a[i] != a[--n]) { flag = 0; } else { i++; } } return flag; } ``` ### 9. 选取连续五个元素均为奇数的最小元素 **题目描述**: 编写一个函数`int fun(int a[], int n, int b[])`,该函数接收一个整型数组`a[]`、其长度`n`和另一个整型数组`b[]`作为参数。该函数在数组`a[]`中查找连续五个元素均为奇数的情况,如果找到则选取其中最小的元素,并将这些最小元素存入`b[]`数组中,然后对该数组进行升序排序。 **解题思路**: - 遍历数组,检查每五个元素是否都是奇数。 - 如果是,则记录其中的最小奇数。 - 最后对`b[]`数组进行排序。 **代码示例**: ```c int fun(int a[], int n, int b[]) { int i, j, flag, m = 0; for (i = 0; i < n - 5; i++) { for (j = i + 1; j <= i + 5; j++) { if (a[i] > a[j]) { flag = 1; } else { flag = 0; break; } } if (flag == 1 && a[i] % 2 == 1) { b[m++] = a[i]; } } for (i = 0; i < m - 1; i++) { for (j = 0; j < m - 1 - i; j++) { if (b[j] > b[j + 1]) { flag = b[j]; b[j] = b[j + 1]; b[j + 1] = flag; } } } return m; } ``` ### 10. 按特定规则排序千位、百位、十位和个位 **题目描述**: 编写一个函数`int fun(int a[], int n, int b[])`,该函数接收一个整型数组`a[]`、其长度`n`和另一个整型数组`b[]`作为参数。该函数按照千位、百位、十位和个位的顺序进行排序,将排序后的前10个元素存入`b[]`数组中,并返回10。 **解题思路**: - 使用选择排序算法进行排序。 - 定义比较逻辑:先比较千位,再依次比较百位、十位和个位。 - 取前10个元素存入`b[]`数组。 **代码示例**: ```c int fun(int a[], int n, int b[]) { int i, j, m, thou, hun, ten, data; // 实现排序逻辑 // ... // 将排序后的前10个元素存入b[] for (i = 0; i < 10; i++) { b[i] = a[i]; } return 10; } ``` 以上为文件中描述的C语言数组练习题及其对应的解答思路与代码实现。这些题目涵盖了数组的基本操作、排序、查找等常见应用场景,有助于提高学习者在C语言方面的实践能力。
人数m由函数值返回,将低于平均分的分数由数组b带回.
int fun(int a[],int n,int b[])
{
int i,m=0,aver=0;
for(i=0;i<n;i++) aver+=a[i];
aver/=n;
for(i=0;i<n;i++)
if(a[i]<aver) b[m++]=a[i];
return m;
}
第二题:试编一函数:求出1000之间能被7或11整除,但不能同时被7或11整除的
所有整数的个数n由函数值返回,并将符合条件的数放在数组a中带回.
int fun(int a[])
{
int i,n=0;
for(i=1;i<1000;i++)
if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0)) a[n++]=i;
return n;
}
第三题:试编一函数:将大于整数m且紧靠m的k个素数存入数组a中.
void fun(int m,int k,int a[])
{
int i,n,data,flag;
data=m+1; n=0;
while(n<k)
{
flag=1;
if(data%i==0)
{
flag=0; break;
}
if(flag) a[n++]=data;
data++;
}
}
第四题:试编一函数:在数组a中有n个整数,要求把下标从0到p(p小于等于n-1)的数
平移到数组的最后.
如:原始内容: 1,2,3,4,5,6,7,8,9,10; 当p=4时:
移后内容: 6,7,8,9,10,1,2,3,4,5
void fun(int a[],int n,int p)
{
int i,j,t;
for(i=0;i<=p;i++)
{
t=a[0];
for(j=1;j<n;j++) a[j-1]=a[j];
a[n-1]=t;
}
}
第五题:试编一函数:在具有n个数据的数组a中,求出次最大值的下标并由函数值返回.
int fun(int a[],int n)
{
int i,j,max,may;
if(a[0]>a[1])
剩余7页未读,继续阅读
- Always_On_Way2014-02-14题目还是有正对性的!
- qq_316017812015-11-08这个是讲数组的,感觉一般
- maitianfengbao2013-01-15太少了,不好
- lzhy00092016-09-15题目有点老,有待改进!
- 祁名难2013-01-19例子不是很多!
- 粉丝: 4
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- QxOrm 是一个 C++ 库
- springboot智能排课系统 演示录像.mp4
- Springboot 癌症患者交流平台 演示录像.mp4
- springboot 普拉提会馆管理系统 演示录像.mp4
- springboot 兔宠管理系统 演示录像.mp4
- kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
- 巡线鹰Tovos DroneScan-轻便高效的无人机激光雷达巡检系统
- 数据库项目设计是软件开发中的核心部分,涉及从需求分析、数据库模式设计、关系建模到优化性能的整个过程
- 基于MSP430设计的12V和24V太阳能面板专用-20A太阳能MPPT充电控制器设计(原理图、PCB、GUI源码)
- 无人机系统在电力勘测与巡检的应用