Bootstrap

2019年09月-电子学会等级考试C语言(一级)真题与解析

微信扫码关注公众号获取更多资讯
在这里插入图片描述
想当年,题目虽多,但是很简单~,发现电脑里还存有19年9月一级真题,那就发出来吧

2019年09月软件编程(C语言)等级考试(一级)
分数:100   题数:8
时间限制:1000 ms   内存限制:65536 kB

一、编程题(第1部分)(共4题,每题12分,共48分)

1、输出第二个整数

【题目描述】
  输入三个整数,把第二个输入的整数输出。
【输入】
  只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
【输出】
  只有一行,一个整数,即输入的第二个整数。
【样例输入】
  123  456  789
【样例输出】
  456

2、浮点数向零舍入

【题目描述】
  输入一个单精度浮点数,将其向零舍入到整数。
  说明:向零舍入的含义是,正数向下舍入,负数向上舍入。
  提示:可以使用强制类型转换来实现。
【输入】
  一个单精度浮点数。
【输出】
  一个整数,即向零舍入到整数的结果。
【样例输入】
  2.3
【样例输出】
  2

3、计算(a+b)*c的值

【题目描述】
  给定3个整数a、b、c,计算表达式(a+b)*c的值。
【输入】
  输入仅一行,包括三个整数a、b、c,数与数之间以一个空格分开。(-10000<a,b,c<10000)
【输出】
  输出一行,即表达式的值。
【样例输入】
  2   3   5
【样例输出】
  25

4、苹果和虫子

【题目描述】
  你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每X小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
【输入】
  输入仅一行,包括n,X和y(均为整数)。输入数据保证y<=n*X。
【输出】
  输出也仅一行,剩下的苹果个数。
【样例输入】
  10   4   9
【样例输出】
  7

二、编程题(第2部分)(共4题,每题13分,共52分)

5、输出绝对值

【题目描述】
  输入一个浮点数,输出这个浮点数的绝对值。
【输入】
  输入一个浮点数,其绝对值不超过10000。
【输出】
  输出这个浮点数的绝对值,保留到小数点后两位。
【样例输入】
  -3.14
【样例输出】
  3.14

6、计算邮资

【题目描述】
  根据邮资的重量和用户是否选择加急计算邮费。
  计算规则:
  重量在1000克以内(包括1000克),基本费8元。
  超过1000克的部分每500克加收超重费4元,不足500克部分按500克计算;
  如果用户选择加急,多收5元 。
【输入】
  输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。
  如果字符是y,说明选择加急;
  如果字符是n,说明不加急。
【输出】
  输出一行,包含一个整数,表示邮费。
【样例输入】
  1200   y
【样例输出】
  17

7、求整数的和与均值

【题目描述】
  求整数的和与均值。
【输入】
  输入第一行是一个整数n,表示有n个整数。
  第2~n+1行每行包含1个整数。 每个整数的绝对值均不超过10000。
【输出】
  输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数用单个空格分隔。
【样例输入】
  4
  344
  222
  343
  222
【样例输出】
  1131   282.75000

8、数1的个数

【题目描述】
  给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字1的个数。
  例如:
    当n=2时,写下1,2。这样只出现了1个1;
    当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个1。
【输入】
  正整数n。1<=n<=10000。
【输出】
  一个正整数,即1的个数。
【样例输入】
  12
【样例输出】
  5




2019年09月软件编程(C语言)等级考试(一级)- 题解

1、输出第二个整数

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int a, b, c;
	cin >> a >> b >> c;
	cout << b;
	return 0;
}

2、浮点数向零舍入

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	float a;
	cin >> a;
	cout << (int)a;
	return 0;
}

3、计算(a+b)*c的值

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int a, b, c;
	cin >> a >> b >> c;
	cout << (a + b)*c;
	return 0;
}

4、苹果和虫子

【分析】
  本题在 2021年03月C语言一级考题第3题 再次出现,但是没有限定y<=n*X,难度稍低。
【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,x,y,r;
	cin>>n>>x>>y;
	r=n-y/x-(y%x!=0);
	cout<<(r<0?0:r);
	return 0;
}

5、输出绝对值

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	double a;
	cin >> a;
	printf("%.2f", fabs(a));
	return 0;
}

6、计算邮资

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int weight, sum;
	char ch;
	cin >> m >> ch;
	if(m > 1000)
		sum = 8 + ceil((m - 1000) / 500.0) * 4;
	else
		sum = 8;
	if(ch == 'y')
		sum = sum + 5;
	cout << sum << endl;
	return 0;
}

7、求整数的和与均值

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n, a, s = 0;
	cin >> n;
	for(int i = 0; i < n; i++) {
		cin >> a;
		s += a;
	}
	printf("%d %.5f", s, s * 1.0 / n);
	return 0;
}

8、数1的个数

【参考程序】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n, a, s = 0, t;
	cin >> n;
	for(int i = 1; i <= n; i++) {
		t = i;
		while(t != 0) {
			a = t % 10;
			if(a == 1) {
				s++;
			}
			t /= 10;
		}
	}
	cout << s;
	return 0;
}
;