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

2021年9月青少年软件编程等级考试(C语言)一级试卷及C语言版答案
题目类型:编程题(共5题,共100分)
时间限制:1000
内存限制:65536

1. 交换输出
输入两个整数a、b,将他们交换输出。
输入
一行两个整数a、b,以空格分隔。 0 < a < 108, 0 < b < 1016
输出
一行两个整数b、a,以空格分隔。
样例输入
123 12345654321
样例输出
12345654321 123

参考范例

#include <stdio.h>
int main() 
{
    long long a,b;
    scanf("%d%d",&a,&b);
	printf("%ld %ld",b,a);
    return 0;
}

2. 计算乘积
一行两个整数a、b,以空格分隔。(0 < a,b < 108)
输入
一行两个整数a、b,以空格分隔。(0 < a,b < 108)
输出
输出一个整数,表示a、b的乘积。
样例输入
123456 123456
样例输出
15241383936

参考范例

#include <stdio.h>
int main() 
{
    long long a,b,s;
    scanf("%lld%lld",&a,&b);
    s=a*b;
	printf("%lld\n",s);
    return 0;
}

3. 数字判断
输入一个字符,如果输入的字符是数字,输出yes, 否则输出no
输入
一个字符
输出
如果输入的字符是数字,输出yes, 否则输出no
样例输入
样例1输入:
5
样例2输入:
A
样例输出
样例1输出:
yes
样例2输出:
no

参考范例

#include <stdio.h>
int main() 
{
    char ch;
    scanf("%c",&ch);
	if(ch>='0'&&ch<='9')
		printf("yes");
    else
    	printf("no");
	return 0;
}

4. 满足条件的数的累加
现有n个整数,将其中个位数为k的数进行累加求和。
输入
第一行两个整数n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n个非负整数,以空格分隔,每个数不大于100000。
输出
输出满足题目要求的累加和。
样例输入
10 7
2 5 7 17 11 18 4 27 1 7
样例输出
58

参考范例

#include <stdio.h>
int main() 
{
    int n,k,x,s=0;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
    	scanf("%d",&x);
    	if(x%10==k)
    		s=s+x;
	}
	printf("%d",s);
    return 0;
}

5. 比n小的最大质数
对于给定的n,求比n小的质数中最大的一个。
质数是指一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。
输入
一个整数n。(2 < n < 10000)
输出
一个整数,即题目要求的解。
样例输入
100
样例输出
97

参考范例
#include <stdio.h>
//此程序可输出比N小的所有质数

int main() 
{
    int N;
    int i, j;   
//    puts("请输入一个整数N(大于1):");
    scanf("%d", &N);
    for (i=N; i>=2; i--) 
	{
        int flag = 1;    //标记变量:1为质数、0不是质数 
        for  (j=2; j<=i-1; j++)//条件也可为(j=i/2; j>=2; j--)
		{
            if (i % j == 0) 
			{
                flag = 0;
                break;
            }
        }
        if (flag==1) 
		{
		printf("%d ", i);
		break;//如果把此条注释掉,即输出比N小的所有质数
		}
        
    }
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江湖之远izxg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值