二级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;
}