中国电子学会(CIE)2021.6 c++一级考级真题
#数的输入和输出 (a/b)*c的值 大写字母的判断 特殊求和 硬币翻转
一、数的输入和输出
题目描述
输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。
输入格式
一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。
输出格式
一行两个数,分别为保留2位小数输出的F,以及整数N,以一个空格分开。
输入输出样例
输入#1
100 123.456789
输出#1
123.46 100
代码样例
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
double w;
cin >> n >> w;
cout << fixed << setprecision(2)<<w<<" "<<n;
return 0;
}
二、(a/b)*c的值
题目描述
给定整数a、b、c,计算(a / b)*c的值,这里的除法为实数除法。
输入格式
一行,三个整数a、b、c,整数间以空格分隔。(1 ≤ a,b,c ≤ 1000)
输出格式
将计算结果保留6位小数输出。
输入输出样例
输入#1
1 3 3
输出#1
1.000000
代码样例
#include <bits/stdc++.h>
using namespace std;
int main () {
int a , b , c;
cin >> a >> b >> c;
cout << fixed << setprecision(6) << (a/b)*c;
}
三、大写字母的判断
题目描述
输入一个字符,判断是否是英文大写字母,即是否是A-Z中的一个。
输入格式
一个字符。
输出格式
如果是英文大写字母,则输出YES,否者输出NO。
输入输出样例
输入#1
K
输出#1
YES
代码样例
#include <bits/stdc++.h>
using namespace std;
int main () {
char a;
cin >> a;
if(a <= 'A'&& a<= 'Z'){
cout << "YES";
}
else{
cout << "NO";
}
}
四、特殊求和
题目描述
如果一个数能够被7整除或者十进制表示中含有数字7,那么我们称这个数为幻数,比如17,21,73是幻数,而6,59不是。
对于给定的N,求出1~N中所有幻数的和。
输入格式
一个整数N(1 < N < 10000)。
输出格式
一个整数,表示1~N中所有幻数的和。
输入输出样例
输入#1
14
输出#1
21
代码样例
#include <iostream>
using namespace std;
int main () {
int n;
cin >> n;
int sum;
for(int a = 1; a < n;a++){
if(a%7 == 0||a/10%10 == 7||a/100%10 == 7||a/1000%10 == 7){
sum += a;
}
}
cout << sum;
}
五、 硬币翻转
题目描述
假设有N个硬币(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于正面向上的状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将硬币全部翻转一次,第二个人(2号)将编号为2的倍数的硬币翻转一次,第三个人(3号)将编号为3的倍数的硬币翻转一次。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的硬币翻转一次。
请问:当第M个人操作之后,哪些硬币是正面向上的,按从小到大输出其编号,以空格分开。
输入格式
输入正整数N和M,以单个空格隔开。
输出格式
顺次输出正面向上的硬币的编号,其间用空格间隔。
输入输出样例
输入#1
10 10
输出#1
2 3 5 6 7 8 10
代码样例
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
bool a[1000];
cout<<n<<endl;
for (int i=1;i<=n;i++)//n个硬币
{
for (int j=1;j<=n;j++)//其他几个硬币
{
if (i==j)
a[j]=a[j];//除了自己其他都翻
else
a[j]=not a[j];//翻
if (a[j]==true)
cout<<1;
else
cout<<0;
}
cout<<endl;
}
}
更多推荐


所有评论(0)