2019年9月青少年软件编程等级考试(C语言)一级试卷及C语言版答案

该文提供了2019年9月青少年软件编程等级考试(C语言)一级的试卷内容,包括编程题目及示例答案。试题涵盖整数和浮点数处理、算术运算、条件判断等基础编程概念。
摘要由CSDN通过智能技术生成

2019年9月青少年软件编程等级考试(C语言)一级试卷及C语言版答案

一、编程题(第1部分) (共4题,每题12分,共48分)

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

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

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

样例输入
123 456 789

样例输出
456

程序范例
#include<stdio.h>
int main()
{
int a,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d”,b);
return 0;
}

2.浮点数向零舍入
输入一个单精度浮点数,将其向零舍入到整数。
说明:向零舍入的含义是,正数向下舍入,负数向上舍入。

提示:可以使用强制类型转换来实现。

输入
一个单精度浮点数。

输出
一个整数,即向零舍入到整数的结果。

样例输入
2.3

样例输出
2

程序范例
#include <stdio.h>
int main()
{
float a;
scanf(“%f”, &a);
printf(“%d”, (int)a);
return 0;
}

*3. 计算(a+b)c的值
给定3个整数a、b、C,计算表达式(a+b)*c的值。

输入
输入仅一行,包括三个整数a、b、C,数与数之间以一个空格分开。(-10000<a,b,c<10000)

输出
输出一行,即表达式的值。

样例输入
2 3 5

样例输出
25

程序范例
#include <stdio.h>
int main()
{
int a,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d”,(a+b)*c);
return 0;
}

4. 苹果和虫子
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每X小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

输入
输入仅一行,包括n,X和y(均为整数)。输入数据保证y<=n*X。

输出
输出也仅一行,剩下的苹果个数。

样例输入
10 4 9

样例输出
7

程序范例
#include <stdio.h>

int main()
{
int n,x,y,s;
scanf(“%d%d%d”,&n,&x,&y);
if (y%x==0)
s=n-y/x;
else
s=n-(y/x+1);
printf(“%d”,s);
return 0;
}

二、编程题(第2部分) (共4题,每题13分,共52分)

5. 输出绝对值
输入一个浮点数,输出这个浮点数的绝对值。

输入
输入一个浮点数,其绝对值不超过10000。

输出
输出这个浮点数的绝对值,保留到小数点后两位。

样例输入
-3.14

样例输出
3.14

程序范例
#include <stdio.h>

int main()
{
double a;
scanf(“%lf”,&a);
if (a<0)
a*=-1;
printf(“%.2lf”,a);
return 0;
}

6. 计算邮资
根据邮件的重量和用户是否选择加急计算邮费。
计算规则:
重量在1000克以内(包括1000克),基本费8元。
超过1000克的部分每500克加收超重费4元,不足500克部分按500克计算;
如果用户选择加急,多收5元。

输入
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。
如果字符是y,说明选择加急;
如果字符是n,说明不加急。

输出
输出一行,包含一个整数,表示邮费。

样例输入
1200 y

样例输出
17

程序范例
#include <stdio.h>
#include <math.h>

int main()
{
int a,v;
char j;
scanf(“%d %c”,&a,&j);
//这里注意,如果"%d%c"之间没有空格
//输入的时候,输入数字,加一个空格,再输入字母
//j会被写入为空隔而不是字母。因为空格也是字符。
if (a<=1000)
v=8;
else
{
int w=ceil((a-1000)/500.0);
// ceil(x) 取整函数
v=8+4*w;
}
if(j==‘y’)
v+=5;
printf(“%c”,j);
printf(“%d”,v);
return 0;
}

7. 求整数的和与均值
读入n(1<=n<=10000)个整数,求它们的和与均值。

输入
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。
每个整数的绝对值均不超过10000

输出
输出一行,先输出和,再输出平均值(保留到小数点后5位),
两个数用单个空格分隔。

样例输入
4
344
222
343
222

样例输出
1131 282.75000

程序范例
#include <stdio.h>
#include <math.h>

int main()
{
int n,x,s=0;
scanf(“%d”,&n);
for (int i=1;i<=n;i++)
{
scanf(“%d”,&x);
s+=x;
}
printf(“%d %.5f”,s,1.0*s/n);
return 0;
}

8. 数1的个数
给定一个十进制正整数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。

输入
正整数n。1<=n<=10000。

输出
一个正整数,即1的个数。

样例输入
12

样例输出
5

程序范例
#include <stdio.h>
int main()
{
int n, N, cnt = 0;//n用于循环,N统计目标,cnt统计结果
scanf(“%d”,&N);//输入N值。
for(n=1;n<=N;n++)//循环执行 从1到N遍历统计
{
int t = n;//t=当前数n,用于拆分每一位进行比对是否等于1
while(t)//循环取出每一位。即t为非0时执行
{
if(t%10 == 1) cnt++;//t跟10进行取余运算看是否余数1,是则统计加1
t/=10;//如果t<10,则到此之后结果退邮循环,否则依次统计十位、百位、千位,看t除以10之后比对是否是1
}
}
printf(“%d\n”, cnt);//输出结果
return 0;
}
printf(“%d”,s);
return 0;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖之远izxg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值