01 啤酒和饮料
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐酒。
#include <stdio.h>
#include <stdlib.h>
int main()
{int i,j;for(i=1;i<=40;i++){for(j=1;j<=50;j++){if(i*2.3+j*1.9==82.3&&i<j){printf("%d",i);}}}return 0;
}
02 武功秘籍
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
#include <stdio.h>
#include <stdlib.h>
int main()
{int s,i;s=0;for(i=81;i<=92;i++){if(i%2==0)s++;}printf("%d",s+1);return 0;
}
03 序列个数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
请问有多少个序列满足下面的条件:
1.序列的长度为5。
2.序列中的每个数都是1到10之间的整数。
3.序列中后面的数大于等于前面的数。
#include <stdio.h>
#include <stdlib.h>
int main()
{int a,b,c,d,e,ans=0;for(a=1;a<11;a++)for(b=a;b<11;b++)for(c=b;c<11;c++)for(d=c;d<11;d++)for(e=d;e<11;e++)ans++;printf("%d",ans);return 0;
}
04 双阶乘
#include <stdio.h>
#include <stdlib.h>
int main()
{int i;int n=2021;int sum=1;for(i=1;i<=2021;i++){if(i%2)//是奇数{sum*=i;sum%=100000;}}printf("%d",sum);return 0;
}
05 利息计算
题目描述
小李年初在银行存款1千元(一年定期)。他计划每年年底取出100元救助失学儿童。
假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。
下面的代码计算5年后,该账户上有多少存款。
试填写缺失的代码。
源代码
C
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{double money = 1000;int n = 5;int i;for(i=0; i<n; i++){money = _______________;money -= 100; }printf("%.2f\n", money);return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{double money = 1000;int n = 5;int i;for(i=0; i<n; i++){money = money*(1+0.03);money -= 100; }printf("%.2f\n", money);return 0;
}
06 大写
题目描述
给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。
输入描述
输入一行包含一个字符串。
输出描述
输出转换成大写后的字符串。
输入输出样例
示例
输入
LanQiao
输出
LANQIAO
解析
任意一个大写字母与其对应的小写字母之间的ASCIl码值的差值是一个固定值。
#include<stdio.h>
#include<string.h>
int main(){int i,len;char a[256];gets(a);//gets(a) 表示输入一个字符串到数组a,//a表示读取一个字符串存入a中,字符串输入结束标志为换行符。len=strlen(a);for(i=0;i<len;i++){if(a[i]>='a'&&a[i]<='z'){a[i]-=32;}}for(i=0;i<len;i++)printf("%c",a[i]);
}
07 移动
问题描述
小蓝有一个机器人,初始时在坐标(0,0)。
小蓝可以给机器人发送指令,指令如下:
1.指令U,如果当前机器人在(x,y),执行后机器人在(x一1,y);2.指令D,如果当前机器人在(x,y),执行后机器人在(x+1,y);3.指令L,如果当前机器人在(x,y),执行后机器
人在(x,y-1);4.指令R,如果当前机器人在(x,y),执行
后机器人在(x,y+1)。
给定指令序列,请问指令全部执行后,机器人在哪个位置?
输入格式
输入一行包含一个字符串,表示指令序列,字符串中只包含
U,D,L,R四种字符。
输出格式
输出一行包含两个整数,相邻的整数之间使用一个空格分隔,分别表
示机器人的两个坐标值。
样例输入
DDDRRLR
#include <stdio.h>
#include<string.h>
int main()
{int x=0,y=0,i;char n[100];scanf("%s",n);for(i=0;i<strlen(n);i++){if(n[i]=='U')x--;if(n[i]=='D')x++;if(n[i]=='L')y--;if(n[i]=='R')y++;}printf("%d %d",x,y);
}
08 算式900
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明的作业本上有道思考题:
看下面的算式:
小明经过几天的努力,终于做出了答案!如下:
(5012-4987)*36=900
用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
注意:输出格式需要与示例严格一致;括号及运算符号不要用中文输入法;整个算式中不能包含空格。
#include <iostream>
using namespace std;
int main()
{/*int a,b,c,d,x,y,z,w,m,n;for(a=6;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){for(x=1;x<10;x++){for(y=0;y<10;y++){for(z=0;z<10;z++){for(w=0;w<10;w++){for(m=1;m<10;m++){for(n=0;n<10;n++){if(a!=b && a!=c && a!=d && a!=x && a!=y && a!=z && a!=w && a!=m && a!=n && b!=c && b!=d && b!=x && b!=y && b!=z && b!=w && b!=m && b!=n && c!=d && c!=x && c!=y && c!=z && c!=w && c!=m && c!=n && d!=x && d!=y && d!=z && d!=w && d!=m && d!=n && x!=y && x!=z && x!=w && x!=m && x!=n && y!=z && y!=w && y!=m && y!=n && z!=w && z!=m && z!=n && w!=m && w!=n && m!=n){if((a*1000+b*100+c*10+d-(x*1000+y*100+z*10+w))*(m*10+n)==900) {cout <<'('<<a<<b<<c<<d<<'-'<<x<<y<<z<<w<<')'<<"*"<<m<<n<<"="<<"900";}}}}}}}}}}}}*/cout <<'('<<"6048"<<'-'<<"5973"<<')'<<"*"<<"12"<<"="<<"900";return 0;
}
09 斐波那契数列最大公约数
题目描述
斐波那契数列满足F1=F2=1,从F3开始有Fn=Fn-1+Fn-2。
请你计算GCD(F2020,F520),其中GCD(A,B)表示A和B的最大公约数。
解析
斐波那契数列最大公约数定理:gcd(Fn,Fm)=F(gcd(n,m))
#include <stdio.h>
int GCD(int a, int b)
{if (a % b != 0) return GCD(b, a % b);else return b;
}
int fib(int n) {int i, s1, s2;if (n < 1)return -1;if (n == 1 || n == 2)return 1;s1 = 1;s2 = 1;for (i = 3; i <= n; i++) {s2 = s1 + s2; //辗转相加法s1 = s2 - s1; //记录前一项}return s2;
}
int main()
{printf("%d", fib(GCD(2020, 520)));return 0;
}
10 最大距离
输出描述
输出一行包含一个整数,表示答案。
输入输出样例
示例
输入
5
94247
输出
9
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int i,j,n1,n[1000],sum=0,max=-1;scanf("%d",&n1);for(i=0;i<n1;i++){scanf("%d",&n[i]);}for(i=0;i<n1-1;i++){for(j=i+1;j<n1;j++){sum=abs(i-j)+abs(n[i]-n[j]);if(sum>max)max=sum;}}printf("%d",max);return 0;
}