【二级C语言真题】003、从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值,输入两个正整数m和n,求其最大公约数和最小公倍数
文章目录
- 二级C语言真题解析
-
- 1、二级C语言-计负均正
- 2、 二级C语言-公约公倍
- 3、 二级C语言-阶乘数列
- 4、二级C语言-最小绝对值
二级C语言真题解析
1、二级C语言-计负均正
题目描述
从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。
保留两位小数
输入格式
无
输出格式
无
样例输入
1 2 3 4 5 6 7 8 9 10
-1 -2 -3 -4 -5 -6 -7 -8 -9 -10
样例输出
10
5.50
AC代码(C语言)
#include <stdio.h>int main()
{int num;int count=0;int PostiveCount=0;double average=0;double sum=0;for(int i=0;i<20;i++){scanf("%d",&num);if(num<0) count++;else{sum+=num;PostiveCount++;}}printf("%d\\n",count);printf("%.2lf\\n",sum/PostiveCount);return 0;
}
2、 二级C语言-公约公倍
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入格式
无
输出格式
无
样例输入
2 3
样例输出
1
6
AC代码(C语言)
#include <stdio.h>
int gcd(int m,int n){if(m%n==0) return n;return gcd(n,m%n);}
int main()
{int m,n;scanf("%d%d",&m,&n);int commonFactor=gcd(m,n);int commonBei=m*n/commonFactor;printf("%d\\n%d\\n",commonFactor,commonBei);return 0;
}
3、 二级C语言-阶乘数列
题目描述
求1+2!+3!+4!+…+30!。科学计数法,保留两位小数。
输入格式
无
输出格式
无
样例输入
无
样例输出
无
AC代码(C语言)
#include<stdio.h>
int main() {double sum = 0;double temp = 1;for (int i = 1; i <= 30; i++) {temp = temp * i;sum += temp;}printf("%.2e\\n", sum);return 0;
}
4、二级C语言-最小绝对值
题目描述
输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
输入格式
十个数
输出格式
交换后的十个数
样例输入
10 2 30 40 50 60 70 80 90 100
样例输出
10 100 30 40 50 60 70 80 90 2
AC代码
#include<stdio.h>
#include<math.h>
#include<limits.h>
int main() {int num[12];int min = INT_MAX;int index;for (int i = 0; i < 10; i++) {scanf("%d", &num[i]);if (abs(num[i]) < min) {index = i;min = abs(num[i]);}}int temp = num[index];num[index] = num[9];num[9] = temp;for (int i = 0; i < 10; i++) {printf("%d ", num[i]);}return 0;
}