admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:mvc模式主要包含)

青少年软件编程(C语言)等级考试试卷(三级)

一、编程题(共5题,共100分)

1. 我家的门牌号

我家的门牌号

我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。

数据保证有唯一解。

时间限制:1000

内存限制:65536

输入

一个正整数n。n < 100000。

输出

一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

样例输入

100

样例输出

10 15

试题编号:20211205_3_01

试题类型:编程题

试题难度:一般

试题解析:

#include

using namespace std;

int plass(int n)

{

return (1 + n) * n / 2;

}

int main()

{

int n;

int sum, my;

cin >> n;

for(sum = 1; sum > 0; sum ++ )

{

for(my = 1; my <= sum; my ++ )

{

if(plass(sum) - (2 * my) == n)

{

cout << my << " " << sum;

return 0;

}

}

}

}

2. 子串计算

子串计算

给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。

时间限制:1000

内存限制:65536

输入

一行,一个01字符串。

输出

对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序

从小到大依次输出,每行一个。

样例输入

10101

样例输出

0 2

01 2

1 3

10 2

101 2

试题编号:20211205_3_02

试题类型:编程题

试题难度:一般

试题解析:

#include

#include

using namespace std;

char a[105],s[101];

void dfs(int n)

{

int h=0;

for(int i=0;i<=strlen(a)-n;i++)

{

int f=1;

for(int j=0;j

{

if(a[i+j]!=s[j])

{

f=0;

break;

}

}

h+=f;

}

if(h<=1)

return;

for(int i=0;i

{

cout<

}

cout<<' '<

s[n]='0';

dfs(n+1);

s[n]='1';

dfs(n+1);

}

int main()

{

cin>>a;

s[0]='0';

dfs(1);

s[0]='1';

dfs(1);

}

3. 吃糖果

吃糖果

名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 >

N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少

种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,

则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名

第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2+1=3种方案;如果N=4,

则名名可以第1天吃1块,剩3块,也可以第1天吃2块,剩2块,共有3+2=5种方案。现在给定N,

请你写程序求出名名吃巧克力的方案数目。

时间限制:1000

内存限制:65536

输入

输入只有1行,即整数N。

输出

输出只有1行,即名名吃巧克力的方案数。

样例输入

4


本文标签: 子串 共有 名名 方案