中国电子学会等级考试c/c++2023年5月一级

文章讲述了五个编程题目,涉及整数输入、输出、计算表达式值、字符判断、数的累加以及模拟金币发放规律。展示了如何用C++代码解决这些基础的IT技术题目。
摘要由CSDN通过智能技术生成
题目一:输出第二个整数(20分)
描述

输入三个整数,把第二个输入的整数输出。

时间限制:1000

内存限制:65536

输入

只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。

输出

只有一行,一个整数,即输入的第二个整数。

样例输入

123 456 789

样例输出

456

思路分析

题目要求输入三个整数并将第二个整数输出,定义三个变量并输入,将第二个变量输出即可。

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main(){
	int a,b,c; //定义三个变量,a,b,c
	cin>>a>>b>>c; //输入三个整数
	cout<<b;  //输出第二个整数
	return 0;
}
题目二:计算表达式的值(20分)
描述

给定整数x,y的值,计算3*x+2*y的值。

时间限制:3000

内存限制:65536

输入

按照题目要求输出结果

输出
样例输入

2  3

样例输出

12

思路分析:

定义两个变量x,y并输入,输出表达式的值即可。

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main(){
	int x,y,sum; //定义三个变量  x,y为输入的两个整数,sum用来存储表达式的值 
	cin>>x>>y;  //输入两个整数 
	sum=3*x+2*y; //将表达式的值存储在变量sum中 
	cout<<sum;
	return 0;
}
题目三:大写字母的判断(20分)
描述

输入一个字符,判断是否是英文大写字母,即是否是A-Z中的一个。

时间限制:1000

内存限制:65536

输入

一个字符。

输出

如果是英文大写字母,则输出YES,否者输出NO。

样例输入

K

样例输出

YES

思路分析:

定义一个字符,判断输入的字符是否在大写字母A-Z当中,注意输出!

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main(){
	char ch; //使用char定义字符变量 
	cin>>ch; //输入字符 
	if(ch>='A'&&ch<='Z'){ //判断字符是否在A-Z中 
		cout<<"YES"<<endl;
	} 
	else{
		cout<<"NO"<<endl;
	}
	return 0;
}
题目四:满足条件的数的累加(20分)
描述

现有n个整数,将其中个位数为k的数进行累加求和。

时间限制:1000

内存限制:65536

输入

第一行两个整数n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n个非负整数,以空格分隔,每个数不大于100000。

输出

输出满足题目要求的累加和。

样例输入

10 7

2 5 7 17 11 18 4 27 1 7

样例输出

58

思路分析:

思路1:使用数组输入的方法,将每个数组中每个元素取个位进行判断

#include<bits/stdc++.h>
using namespace std;

int main(){
	int a[1000]; //定义一个a数组 
	int i,n,k,sum=0; //定义变量i(循环体)、n、k,sum(存储累加的和) 
	cin>>n>>k;  //输入两个整数 
	for(i=0;i<n;i++){ 
		cin>>a[i];  //循环输入数组 
	}
	for(i=0;i<n;i++){
		if(a[i]%10==k){ //判断数组中每个元素个位是否等于k值 
			sum=sum+a[i]; //累加 
		}
	}
	cout<<sum<<endl;
	return 0;
}

思路2:使用循环输入的方法,每输入一个数就进行判断累加

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i,n,k,x,sum=0; //定义变量i(循环体)、n、k,sum(存储累加的和),x(输入的数) 
	cin>>n>>k;  //输入两个整数 
	for(i=0;i<n;i++){ 
		cin>>x;  //循环输入x
		if(x%10==k){
			sum=sum+x;
		} 
	}
	cout<<sum<<endl;
	return 0;
}
题目五: 金币(20分)
描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

时间限制:10000

内存限制:65536

输入

一个整数(范围1到10000),表示天数。

输出

骑士获得的金币数。

样例输入

6

样例输出

14

思路分析:

循环n天,将每一天的金币进行累加。如果发放的金币数与发放该金币数的天数相等,则需要重新进行计数发放金币的天数同时金币加1。

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main(){
	//定义整数n代表天数,sum代表总金币,k代表每天发放的金币,c代表发放金币k的天数 
	int n,sum=0,c=0,k=1; 
	cin>>n;
	for(int i=1;i<=n;i++){ //循环n天 
		sum+=k; //总金币 
		c++; //发放k金币的天数
		if(c==k){ //当发放k金币的天数等于k时 
			c=0; //c要清0,重新开始计数
			k++; //发放的金币+1 
		} 
	}
	cout<<sum<<endl; 
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值