中国电子学会(CEIT)2022年09月真题C语言软件编程等级考试一级(含解析答案)

本文提供了中国电子学会C语言软件编程一级2022年9月考试的五道题目,包括顺序输出、成绩判定、简单排序、数字求和和数1个数问题,附有C++和C语言的代码实现及样例输入输出
摘要由CSDN通过智能技术生成

中国电子学会(CEIT)考评中心历届真题(含解析答案)

C语言软件编程等级考试一级 2022年09月

编程题五道							总分:100分

一、指定顺序输出(20分)
依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。
时间限制: 1000
内存限制: 65536
输入
一行3个整数a、b、c,以空格分隔。0 <a,b,c < 108
输出
—行3个整数c、a、b,整数之间以—个空格分隔。
样例输入

1 2 3

样例输出

3 1 2
#include <iostream>
using namespace std;
int main(){
	int a, b, c;
	//输入三个数
	cin >> a >> b >> c;
	//按照c, b, a顺序打印
	cout << c <<" "<< b << " "<<a;
	return 0;
}

#include <stdio.h>
int main(){
	int a,b,c;
	//输入三个数
	scanf("%d %d %d",&a,&b,&c);
	//按照c,b,a顺序打印
	printf("%d %d %d",c,b,a);
	return 0;
}

二、成绩判定(20分)
给定一门课的考试分数,如果分数大于等于60,则该门课成绩合格,记为"P",否者成绩不合格,记为"F"。
时间限制: 1000
内存限制: 65536
输入
—个整数s,表示这门课的分数。(0 ≤ s ≤100)
输出
如果成绩合格,输出字母P,否者输出字母F。
样例输入

59

样例输出

F
#include <iostream>
using namespace std;
int main() {
	int s;
	//输入成绩
	cin >> s;
	//判断是否合格
	if (s >= 60)
		cout <<"P";
	else
		cout << "F";
	return 0;
}

#include <stdio.h>
int main() {
	int s;
	//输入成绩
	scanf("%d",&s);
	//判断是否合格
	if(s>=60)
		printf("P");
	else
		printf("F");
	return 0;
}

三、简单排序(20分)
依次输入3个整数a、b、c,将他们从小到大的顺序输出。
时间限制: 1000
内存限制: 65536
输入
一行3个整数a、b、c,以空格分隔。0 <a,b,c < 108
输出
一行3个整数,即将a、b、c从小到大排序的3个整数,整数之间以一个空格分隔。
样例输入

10 5 20

样例输出

5 10 20
#include <iostream>
using namespace std;
int main(){
	int a, b, c;int t;
	//输入三个数
	cin >> a >> b >> c;
	//两两交换排序
	if (a > b){
		t = a;
		a = b;
		b = t;
	}
	if (a > c){
		t = a;
		a = c;
		c = t;
	}
	if (b > c){
		t = b;
		b = c;
		c = t;
	}
	cout << a <<" "<< b <<" "<<c;
	return 0;
}

#include <stdio.h>
int main() {
	int a,b,c;int t;
	//输入三个数
	scanf("%d %d %d",&a,&b,&c);
	//两两交换排序
	if(a>b){
		t=a;
		a=b;
		b=t;
	}
	if(a>c){
		t=a;
		a=c;
		c=t;
	}
	if(b>c){
		t=b;
		b=c;
		c=t;
	}
	printf("%d %d %d",a,b,c);
	return 0;
}


四、数字求和(20分)
给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?
时间限制: 3000
内存限制: 65536
输入
输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出
输出一行,给出一个正整数,是5个数中小于a的数的和。
样例输入

10 1 2 3 4 11

样例输出

10
#include <iostream>
using namespace std;
int main() {
	int i, a, b;
	int sum = 0;
	//输入第一个数a
	cin >> a;
	//输入其余5个数
	for (i = 0;i < 5; i++){
		cin >> b;
		//计算小于a的数的和
		if (b <a)
			sum += b;
	}
	cout << sum;
	return 0;
}

#include <stdio.h>
int main() {
	int i,a,b;
	int sum=0;
	//输入第一个数a
	scanf("%d",&a);
	//输入其余5个数
	for(i=0; i<5; i++){
		scanf("%d",&b);
		//计算小于a的数的和
		if(b<a)
			sum+=b;
	}
	printf("%d",sum);
	return 0;
}

五、数1的个数(20分)
给定一个十进制正整数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”。
时间限制: 1000
内存限制: 65536
输入
正整数n。1 <= n<= 10000。
输出
一个正整数,即“1”的个数。
样例输入

12

样例输出

5
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
	int i, j, n;
	char s[40];
	int sum = 0;
	//输入n
	cin >> n;
	//遍历所有1-n的数
	for(i = 1; i<= n; i++){
		//把i转换成字符串
		sprintf(s,"%d" , i);
		//统计字符串中1的个数
		for (j = 0; j < strlen(s); j++){
			if (s[j] == '1')
				sum++;
		}
	}
	cout << sum;
	return 0;
}

#include <stdio.h>
#include <string.h>
int main() {
	int i,j,n;
	char s[40];
	int sum=0;
	//输入n
	scanf("%d",&n);
	//遍历所有1-n的数
	for(i=1; i<=n; i++){
		//把i转换成字符串
		sprintf(s,"%d" ,i);
		//统计字符串中1的个数
		for(j=0; j<strlen(s); j++) {
			if(s[j]=='1')
			sum++;
		}
	}
	printf("%d",sum);
	return 0;
}

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值