全国青少年软件编程C等级考试试卷

全国青少年软件编程(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;

}

小码猫少儿编程

清华学霸创立,培养孩子未来核心竞争力。

电话(


转载请注明:http://www.aierlanlan.com/rzdk/714.html