全国青少年软件编程等级考试C语言练习题(课堂PPT)
青少年软件编程(C语言)等级考试试卷(二级)202012
青少年软件编程(C语言)等级考试试卷(二级)
分数:100 题数:5
一、编程题(共5题,共100分)
1.数组指定部分逆序重放
试题编号:-006
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k,m[101] = {0,};
cin >> n >> k;
for(int i = 1;i <= n;i++)
{
cin >> m[i];
}
int i = 1,j = k;
while(i < j)
{
swap(m[i],m[j]);
i++;
j--;
}
for(int i = 1;i <= n;i++)
{
cout << m[i] << " ";
}
return 0;
}
2.简单密码
试题编号:-007
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[101][101],x[101],y[101],r,c,n,i,j,rs=0,cs=0;
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
if(a[i][j]==1) x[i]++;
青少年软件编程(C语言)等级考试试卷(一级)-20201021145921725
青少年软件编程(C语言)等级考试试卷(一级)
分数:100.00 题数:5
一、编程题(共5题,共100分)
1. 输出整数
试题编号:0913-01
题型:编程题
答案:
难度:一般
试题解析:
2. 新冠疫情死亡率
试题编号:0913-02
题型:编程题
答案:
难度:一般
试题解析:
3. 有一门课不及格的学生
试题编号:0912-03
题型:编程题
答案:
难度:一般
试题解析:
4. 整数的个数
试题编号:0913-04
题型:编程题
答案:
难度:一般
试题解析:
5. 金币
试题编号:0913-05
题型:编程题
答案:
难度:一般
试题解析:
青少年软件编程(C语言)等级考试试卷(4级)202106
青少年软件编程(C语言)等级考试试卷(四级)
分数:100 题数:4
一、编程题(共4题,每题25分,共100分)
1.数字三角形问题
数字三角形问题
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(图1)
图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。
时间限制:1000
内存限制:65536
输入
输入的是一行是一个整数N (1 < N <= 100),给出三角形的行数。下面的N行给出数字三角形。数字三角形上的数的范围都在0和100之间。
输出
输出最大的和。
样例输入
样例输出
试题编号:
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include <bits/stdc++.h>
using namespace std;
int n;
int a[110][110];
int main(){
cin >> n;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= i;j++)
cin >> a[i][j];
for(int i = n - 1;i >= 1;i--)
for(int j = 1;j <= i;j++)
a[i][j] = max(a[i + 1][j], a[i + 1][j + 1]) + a[i][j];
2022.12全国青少年软件编程(C语言)等级考试试卷(一级)
2022.12青少年软件编程(C语言)等级考试试卷(一级)加一
输入一个整数x,输出这个整数加1后的值,即x+1的值。
时间限制:1000
内存限制:65536
输入
一个整数x(0 ≤ x ≤ 1000)。
输出
按题目要求输出一个整数。
样例输入
样例输出
(a/b)*c的值
给定整数a、b、c,计算(a / b)*c的值,这里的除法为实数除法。
时间限制:1000
内存限制:65536
输入
一行,三个整数a、b、c,整数间以空格分隔。(1 ≤ a,b,c ≤ 1000)
输出
将计算结果保留6位小数输出。
样例输入
判断是否存在重复的数
给定3个数,判断是否存在2个数相等,如果存在输出"YES", 否者输出"NO"。
时间限制:5000
内存限制:65536
输入
1行,包含3个整数,以空格分隔。
输出
按照题目要求输出结果
样例输入
样例输出
整数的立方和
给定一个正整数k(1<k<10),求1到k的立方和m。即m=1+2*2*2+…+k*k*k。时间限制:1000
内存限制:65536
输入
输入只有一行,该行包含一个正整数k。
输出
输出只有一行,该行包含1到k的立方和。
样例输入
样例输出
自整除数
对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数.例如21,21%(2+1)==0,所以21是自整除数.现求出从10到n(n < 100)之间的所有自整除数.
时间限制:1000
内存限制:65536
输入
有一行,整数n,(10 <= n < 100)
输出
有多行.按从小到大的顺序输出所有大于等于10,小于等于n的自整除数,每行一个自整除数.
青少年软件编程(C语言)等级考试试卷(三级)
青少年软件编程(C语⾔)等级考试试卷(三级)1.因⼦问题
因⼦问题
任给两个正整数N、M,求⼀个最⼩的正整数a,使得a和(M-a)都是N的因⼦。
时间限制:10000
内存限制:65536
输⼊
包括两个整数N、M。N不超过1,000,000。
输出
输出⼀个整数a,表⽰结果。如果某个案例中满⾜条件的正整数不存在,则在对应⾏输出-1
样例输⼊
35 10
样例输出
5
#include <stdio.h>
int main(int argc, char *argv[])
{
int N,M,a=0,t;
scanf("%d%d",&N,&M);
t=M/2;
for(a=1;a<=t;a++)
{
if( N%a==0 && (N%(M-a)==0) ) { t=-1; break; }
}
if(t!=-1) printf("-1\n");
else printf("%d\n",a);
return0;
}
2.质数的和与积
质数的和与积
两个质数的和是S,它们的积最⼤是多少?
时间限制:10000
内存限制:65536
输⼊
⼀个不⼤于10000的正整数S,为两个质数的和。
输出
⼀个整数,为两个质数的最⼤乘积。数据保证有解。
样例输⼊
50
样例输出
589
#include <bits/stdc++.h>
int prime(int h)
{
if(h < 2)
{
return0;
}
for(int i=2;i<=h/2;++i)
{
if(!(h%i))return0;
}
return1;
}
int main( )
{
int n;
2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷二级(含答案)
分数:100题数:5
一、编程题(共5题,共100分)
第1题.数组指定部分逆序重放
将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。
时间限制:1000
内存限制:65536
输入:
有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。第二行是n个整数,每两个整数之间用空格分隔。输出:
只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。样例输入:
53
86541
样例输出:
56841
参考答案:
#include<bits/stdc++.h>
using namespace std;
int a[1000],b[1000];
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
b[i]=a[i];
}
for(int i=k-1;i>=0;i--)
{
cout<<b[i]<<';';
}
for(int i=k;i<n;i++)
{
cout<<a[i]<<';';
}
}
第2题.谁考了第k名
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,
求考第k名学生的学.号和成绩。
时间限制:1000
内存限制:65536
输入:
第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。
青少年软件编程(C语言)等级考试试卷(七级)202206
青少年软件编程(C语言)等级考试试卷(七级)
分数:100 题数:4
一、编程题(共4题,共100分)
1. 重建二叉树
给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。
时间限制:1000
内存限制:65536
输入
输入可能有多组,以EOF结束。每组输入包含两个字符串,分别为树的前序遍历和中序遍历。每个字符串中只包含大写字母且互不重复。
输出
对于每组输入,用一行来输出它后序遍历结果。
样例输入
样例输出
试题编号:_7_01
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
struct Node{
char c;
Node *lchild;
Node *rchild;
int loc;
char str1[100],str2[100];
Node *create(){
tree[loc].lchild=tree[loc].rchild=NULL;
return &tree[loc++];
}
Node *build(Node *root,int q1,int q2,int z1,int z2){
root=create();
char cr=str1[q1];
root->c=cr;
int idx=z1;
for(;idx<=z2;idx++){
if(str2[idx]==cr)
break;
}
if(idx!=z1){
root->lchild=build(root->lchild,q1+1,q1+(idx-z1),z1,idx-1);
中国电子学会青少年软件编程(C语言)等级考试试卷(一级)
青少年软件编程(C语言)等级考试试卷(一级)
分数:100 题数:5
一、编程题(共5题,共100分)
1.字符三角形
试题编号:-001
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<" "<<a<<" "<<endl;
cout<<" "<<a<<a<<a<<" "<<endl;
cout<<a<<a<<a<<a<<a<<endl;
}
2.计算(a+b)*(c-b)的值
试题编号:-002
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<(a+b)*(c-b);
}
3.晶晶赴约会
试题编号:-003
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
if(a==1||a==3||a==5) cout<<"NO";
2023年9月青少年软件编程C语言等级考试试卷四级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷四级(含答案)
分数:100题数:4
一、编程题(共4题,共100分)
第1题.酒鬼
Santo刚刚与房东打赌赢得了一间在New Clondike的大客厅。今天,他来到这个大客厅欣赏他的奖品。房东摆出了一行瓶子在酒吧上。瓶子里都装有不同体积的酒。令Santo高兴的是,瓶子中的酒都有不同的味道。房东说道:“你可以喝尽可能多的酒,但是一旦打开酒盖你就必须把它喝完,喝完一瓶后把它放回原处。还有一件最重要的事,你必须从左至右依次喝,并且不能连续超过三瓶,不然会给你带来坏运气。”现在可怜的Santo站在酒吧前努力的想着,他到底应该喝哪几瓶才能使喝的酒最多呢?请帮助他找出他应该喝的酒瓶号,因为思考让他感到不安。
时间限制:2000
内存限制:131072
输入:
第一行一个整数N,有N个酒瓶,N<=700接下有N行,第I+1行的数字代表酒瓶I中酒的体积。
输出:
一个数字,喝的酒的最大总体积,遵守以上规则,使得三个连续瓶子中至少一个瓶子是满的。
样例输入:
6
6
10
13
9
8
1
样例输出:
33
参考答案:
#include<bits/stdc++.h>
using namespace std;
int f[701][5];
int main(){
int n;
int a[1000];
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
f[i][0]=f[i-1][3];
青少年软件编程(C语言)等级考试试卷(二级)202312
青少年软件编程(C语言)等级考试试卷(四级)2023-12
202312C语言四级真题
编程题
1.
移动路线
桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。
对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:
-------------------
|(2,1)|(2,2)|(2,3)|
-------------------
|(1,1)|(1,2)|(1,3)|
-------------------
蚂蚁共有3种移动路线:
路线1:(1,1) → (1,2) → (1,3) → (2,3)
路线2:(1,1) → (1,2) → (2,2) → (2,3)
路线3:(1,1) → (2,1) → (2,2) → (2,3)
时间限制:1000
内存限制:65536
输入
输入只有一行,包括两个整数m和n(0
输出
输出只有一行,为不同的移动路线的数目。
样例输入
2 3
样例输出
3
2.
公共子序列
我们称序列Z = < z1, z2, ..., zk >是序列X = < x1, x2, ..., xm >的子序列当且仅当存在严格上升的序列< i1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。
2023年9月青少年软件编程C语言等级考试试卷三级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷三级(含答案)
分数:100题数:5
一、编程题(共5题,共100分)
第1题.谁是你的潜在朋友
“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
时间限制:1000
内存限制:65536
输入
第一行两个整数N,M,2<=N,M<=200。接下来有N行,第i(i=1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)
输出
包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^^)
样例输入
45
2
3
2
1
样例输出
1
BeiJu
1
BeiJu
参考答案:
#include<iostream>
using namespace std;
int a[10000],ans,c;
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
2022.06全国青少年软件编程(C语言)等级考试试卷(一级)
青少年软件编程(C语言)等级考试试卷(一级)
一、倒序输出
依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
时间限制:1000
内存限制:65536
输入
一行4个整数a、b、c、d,以空格分隔。0<a,b,c,d<108
输出
一行4个整数d、c、b、a,整数之间以一个空格分隔。
样例输入
样例输出
二、平方差计算
给定的两个整数a,b,他们的平方差结果为a2-b2,可以化简为(a+b)(a-b)。例如5和4的平方差为52-42=(5+4)(5-4)=9。现给定两个整数,求他们的平方差。
时间限制:1000
内存限制:65536
输入
一行两个整数a、b,以空格分隔。0<b<a<104
输出
输出a和b的平方差
样例输入
样例输出
三、最小的数
依次输入3个整数a、b、c,将a、b、c中的最小值输出。
时间限制:1000
内存限制:65536
输入
一行3个整数a、b、c,以空格分隔。0<a,b,c<108
输出
1个整数,即3个整数的最小值。
样例输入
样例输出
四、计算成绩优秀的人数
现有一个班一门课程考试的分数,请统计其中成绩为优秀的人数。成绩为优秀的要求是分数大于等于85。
时间限制:1000
内存限制:65536
输入
第一行1个整数n,表示分数的个数。(0<n≤100,)第二行n个正整数,表示每一个分数,每个分数小于等于100。输出
输出一个整数,表示成绩为优秀的人数。
样例输入
样例输出
假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
全国青少年软件编程等级考试C语言练习题(课堂PPT)
2
2.完全数
• 输出1000以内所有的完全数 • 如果一个数恰好等于它的因子之和,则称该数为“完全数”[1] 。
各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩 下的就是它的真约数)的和等于它本身的自然数叫做完全数 (Perfect number),又称完美数或完备数。
全国青少年软件编程等级考试 C语言练习题
由于部分习题难度很大,所以量少一点。做完的同学给 我检查之后可要求我多布置给你们。但是,我不可能一直 在线等待,回复你们了。所以,有问题可以在群里问。当 然,我在的时候尽可能会回复的
1
1.评分
• 你现在要为某节目设置一个评分软件。 • 一共有十名评委,去掉一个最高分,去掉一个最低分。求出选手
7
7.母牛的故事
• 有一头母牛,它每年年初生一头小母牛,每头小母牛从第四个年 头开始,每年年初也生一头小母牛。请编程实现在第n年的时候, 共有多少头母牛?
8
• 如:1+2+4+8+16+31+62+124+248=496
3
3.求两点间距离
• 输入两点坐标,输出两点距离
4Biblioteka Baidu
4.求绝对值
• 求实数的绝对值
5
5.第几天
• 给定一个日期,输出这个日期是该年的第几天
青少年软件编程(C语言)等级考试试卷(三级)-20201021145941145
青少年软件编程(C语言)等级考试试卷(三级)
分数:100.00 题数:5
一、编程题(共5题,共100分)
1. 因子问题
任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。
输入格式:
包括两个整数N、M。N不超过1,000,000。
输出格式:
输出一个整数a,表示结果。如果某个案例中满足条件的正整数不存在,则在对应行输出-1 样例:
inputCopy
35 10
outputCopy
5
2. 质数的和与积
两个质数的和是S,它们的积最大是多少?
【输入】
一个不大于10000的正整数S,为两个质数的和。
【输出】
一个整数,为两个质数的最大乘积。数据保证有解。
【输入样例】 50
【输出样例】 589
#include<iostream>
#include<cmath>
int prime(int n) {
int i;
for(i=2; i<n; i++) {
if(n%i==0) break;
}
if(i==n) return 1;
else return 0;
}
using namespace std;
int main () {
int n,i,j,max=0;
cin >>n;
for(i=2; i<int(n/2); i++) {
j=n-i;
if(prime(i)&&prime(j))
if(i*j>max) max=i*j;
}
cout<<max;
return 0;
}
3. 扩号匹配问题
试题编号:0913-13
题型:编程题
答案:
难度:一般
青少年软件编程(C语言)等级考试试卷(五级)202012
青少年软件编程(C语言)等级考试试卷(五级)
分数:100 题数:4
一、编程题(共4题,共100分)
1.漫漫回国路
试题编号:-020
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include <bits/stdc++.h>
using namespace std;
int a[12][12];
int n,b[12];
int main()
{
int i,j,k,l;
scanf("%d",&k);
for(l=0;l<k;l++)
{
scanf("%d",&n);
for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]);
for(i=1;i<=n;i++) b[i]=0;
b[1]=1;
for(i=1;i<=n;i++) if(b[i]==1)
{
for(j=1;j<=n;j++)
{
if(a[i][j]>0) b[j]=1;
}
}
if(b[n]==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
2.装箱问题
试题编号:-021
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<cstdio>
#include<cstring>
using namespace std;
int a[7];
int main()
{
int x,xx,i,ans;
while(1)
{
for(i=1;i<=6;i++)
{
scanf("%d",&a[i]);
(可修改)全国青少年软件编程等级考试C语言练习题(基础篇).ppt
最新课件
最新课件
知识回顾 Knowledge Review
最新课件
放映结束 感谢各位的批评指导!
谢 谢!
让我们共同进步
11
这里的计算可以用下面的表格来表示:
按照二进制位值将1的位的位值加起来就得到了结果13。
数字特征值
你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上 述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。
提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。 输入格式:一个非负整数,整数的范围是[0,100000]。 输出格式:一个整数,表示计算结果。 输入样例:342315 输出样例:13
示例
如: 3天里骑士收到的金币数量为:1 + 2 + 2 = 5 4天里骑士收到的金币数量为:1 + 2 + 2 + 3 = 8 5天里骑士收到的金币数量为:1 + 2 + 2 + 3 + 3 = 11 6天里骑士收到的金币数量为:1 + 2 + 2 + 3 + 3 + 3= 14 7天里骑士收到的金币数量为:1 + 2 + 2 + 3 + 3 + 3 + 4 = 18
最新课件
求金币
国王将金币作为工资,发放给忠诚的骑士。 第一天,骑士收到一枚金币;之后两天(第 二天和第三天),每天收
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
3.求两点间距离
• 输入两点坐标,输出两点距离
4
4.求绝对值
• 求实数的绝对值
5
5.第几天
• 给定一个日期,输出这个日期是该年的第几天
6
6.蟠桃记
• 猴子又来偷桃子吃啦!!第一天,它吃掉了桃子总数一半多一个, 第二天,又吃掉了剩下桃子的一半多一个。以后每天都吃掉前一 天剩下的一半多一个,到第n天准备吃的时候只剩下了一个桃子, 请帮猴子算一下,它第一天开始吃之前,桃子一共有多少个?
7
7.母牛的故事
• 有一头母牛,它每年年初生一头小母牛,每头小母牛从第四个年 头开始,每年年初也生一头小母牛。请编程实现在第n年的时候, 共有多少头母牛?
8
全国青少年软件编程等级考试 C语言练习题
由于部分习题难度很大,所以量少一点。做完的同学给 我检查之后可要求我多布置给你们。但是,我不可能一直 在线等待,回复你们了。所以,有问题可以在群里问。当 然,我在的时候尽可能会回复的
1
1.评分
• 你现在要为某节目设置一个评分软件。 • 一共有十名评委,去掉一个最高分,去掉一个最低分。求出选手
的平均得分(最后是除以8)
2
Fra Baidu bibliotek
2.完全数
• 输出1000以内所有的完全数 • 如果一个数恰好等于它的因子之和,则称该数为“完全数”[1] 。
各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩 下的就是它的真约数)的和等于它本身的自然数叫做完全数 (Perfect number),又称完美数或完备数。