全国青少年软件编程(C++)等级考试试卷(一级)模拟题(年12月)
01.
计算(a+b)/c的值
给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。
输入
输入仅一行,包括三个整数a、b、c,数与数之间以一个空格分开。(-10,a,b,c10,,c不等于0)
输出
输出一行,即表达式的值。
样例输入
样例输出
0
分析:此题是基础入门题,考察数据类型和整除运算。
代码如下:
#includebits/stdc++.h//万能头文件
usingnamespacestd;
intmain(){
inta,b,c;
cinabc;
cout(a+b)/c;
return0;
}
02.
反向输出一个三位数
将一个三位数反向输出。
输入
一个三位数n。
输出
反向输出n。
样例输入
样例输出
分析:此题考察学生利用取模(余)运算符实现数位分离的能力。
代码如下:
#includebits/stdc++.h//万能头文件
usingnamespacestd;
intmain(){
intn,ge,shi,bai;
cinn;
ge=n%10;
shi=(n/10)%10;
bai=n/;
coutgeshibai;
return0;
}
03.
打印字符
输入一个ASCII码,输出对应的字符。
输入
一个整数,即字符的ASCII码,保证存在对应的可见字符。
输出
一行,包含相应的字符。
样例输入
65
样例输出
A
分析:此题ASCII码和数据类型转换。
代码如下:
#includebits/stdc++.h//万能头文件
usingnamespacestd;
intmain(){
intn;
cinn;
cout(char)n;
return0;
}
04.
输出保留12位小数的浮点数
读入一个双精度浮点数,保留12位小数,输出这个浮点数。
输入
只有一行,一个双精度浮点数。
输出
也只有一行,保留12位小数的浮点数。
样例输入
3.
样例输出
3.
分析1:此题可以利用C++系统带的求精度函数setprecision()来做,fixed是从小数点后算。
代码如下:
#includebits/stdc++.h//万能头文件
usingnamespacestd;
intmain(){
doublex;
cinx;
coutfixedsetprecision(12)xendl;
return0;
}
分析2:此题还可以先将所求位数变成整数,然后用扩大后的数+0.5,然后取整来实现四舍五入,最后再将这个整数输出为指定小数位。
代码如下:
#includebits/stdc++.h
usingnamespacestd;
intmain(){
doublex;
longlongxx,n=1e12,i=12;
cinx;
xx=x*n+0.5;
coutxx/n".";
while(i!=0){
xx=xx%n;
n=n/10;
coutxx/n;
i--;
}
return0;
}
05.
判断能否被3,5,7整除
给定一个整数,判断它能否被3,5,7整除,并输出以下信息:1、能同时被3,5,7整除(直接输出,每个数中间一个空格);2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:35或者37或者57,中间用空格分隔);3、只能被其中一个数整除(输出这个除数);4、不能被任何数整除,输出小写字符‘n’,不包括单引号。
输入
输入一行,包括一个整数。
输出
输出一行,按照描述要求给出整数被3,5,7整除的情况。
样例输入
样例输出
分析:本题主要考察整除和选择分类
代码如下:
#includebits/stdc++.h
usingnamespacestd;
intmain(){
intn;
cinn;
if(n%3==0n%5==0n%7==0)cout"";
elseif(n%3==0n%5==0)cout"35";
elseif(n%3==0n%7==0)cout"37";
elseif(n%5==0n%7==0)cout"57";
elseif(n%3==0)cout"3";
elseif(n%5==0)cout"5";
elseif(n%7==0)cout"7";
elsecout"n";
return0;
}
06.
骑车与走路
在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。
输入
输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。
输出
输出一行,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
样例输入
样例输出
Bike
分析:对于输入的距离,分别计算出骑车需要的时间和走路需要的时间,让两者时间比较大小,小的就是快的。
代码如下:
#includebits/stdc++.h
usingnamespacestd;
intmain(){
ints;
doubletbike,twalk;
cins;
tbike=27+s/3.0+23;
twalk=s/1.2;
if(tbike==twalk)cout"All";
elseif(tbiketwalk)cout"Walk";
elsecout"Bike";
return0;
}
07.
画矩形
根据参数,画出矩形。
时间限制:1
内存限制:
输入
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
输出
输出画出的图形。
样例输入
77
0样例输出
分析:第一行和最后一行,第一列和最后一列都需要画图形,其他行列需要根据变量值判断实心空心,实心输入图形,空心输入空格。因为是矩形,需要使用两重循环,先行循环,再列循环。
代码如下:
#includebits/stdc++.h
usingnamespacestd;
intmain(){
inthigh,wide,f,i,j;
charc;
cinhighwidecf;
for(i=0;ihigh;i++){
for(j=0;jwide;j++)
if(i==0
i==high-1
j==0
j==wide-1
f==1)coutc;
elsecout"";
coutendl;
}
return0;
}
08.
含k个3的数
输入两个正整数m和k,其中1m,1k5,判断m能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。例如,输入:满足条件,输出YES。如果输入:尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
时间限制:1
内存限制:
输入
m和k的值,中间用单个空格间隔。
输出
满足条件时输出YES,不满足时输出NO。
样例输入
样例输出
YES
分析:能被19整除这一点比较容易,通过取模(余)是否为零即可判断。含有k个3,需要循环和数位分离来实现。
代码如下:
#includebits/stdc++.h
usingnamespacestd;
intmain(){
longlongm,k,c=0;//注意题目m范围是到,建议用longlong类型
cinmk;
if(m%19==0){
while(m!=0){
if(m%10==3)c++;
m=m/10;
}
if(c==k)cout"YES";
elsecout"NO";
}
elsecout"NO";
return0;
}
小码猫少儿编程
清华学霸创立,培养孩子未来核心竞争力。
电话(