您好,欢迎访问三七文档
/*1.本题分值:10题目描述:马克思曾经出过这样一道趣味数学题:有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。每个男人花了3先今,每个女人花了2先令,每个小孩花了1先令,一共花去50先令。问男人、女人以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。代码:*/#includeiostreamusingnamespacestd;intmain(){intn;//n记录解的个数inta,b,c;//分别记录男、女、小孩的人数n=0;//初始化n的值for(a=1;a=30;a++){for(b=1;b=30;b++){c=30-a-b;if(3*a+2*b+c==50){cout男人有:a个;女人有:b个;小孩有:c个。endl;n++;}}}cout共有n种方案endl;return0;}/*本题分值:10题目描述:下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。代码:*/#includeiostreamusingnamespacestd;intmain(){intn,k=1,s=0,m;for(n=1;n=100;n++){k=1;s=0;m=n;while(m!=0){k*=m%10;s+=m%10;m=m/10;}if(ks)coutn'';}return0;}/*3.本题分值:10题目描述:一个数如果恰好等于除它本身的所有因子之和,这个数就称为完数。例如,6=1+2+3,6就称为完数。输出1000以内所有满足完数条件的数及其个数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。代码:*/#includeiostreamusingnamespacestd;intmain(){intn,s,i,count=0;cout1000以内的完数为:;for(n=1;n1000;n++){s=0;for(i=1;in;i++)//计算小于n的因数和if(n%i==0)s=s+i;//如果i是n的因数if(s==n)//判断是否满足完数的条件{coutn;count=count+1;//完数的个数+1}}coutendl1000以内完数的个数为:countendl;return0;}/*4.本题分值:10题目描述:求100以内能被3整除且个位数字为9的所有正整数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。代码:*/#includeiostreamusingnamespacestd;intmain(){inti;for(i=1;i100;i++){if(i%3==0&&i%10==9)couti;}return0;}/*5.本题分值:10题目描述:求输入的两个正整数的最大公约数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。代码:*/#includeiostreamusingnamespacestd;intmain(){intx,m,n;cinmn;if(mn)x=m;elsex=n;//x取m和n中的较小值//x从m和n的较小值开始到1的范围内递减寻找公约数while(x=1){if(m%x==0&&n%x==0)//如果x是m和n的约数,x的值即为最大公约数break;x=x-1;}coutxendl;return0;}/*6.本题分值:10题目标题:数字求和。时间限制:1000MS内存限制:32768KB题目描述:给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?输入描述:输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。输出描述:输出一行,给出一个正整数,是5个数中小于a的数的和。样例输入:10123411样例输出:10*/#includeiostreamusingnamespacestd;intmain(){inta,b,i,s=0;cout请输入a和其他5个整数:endl;cina;for(i=0;i5;i++){cinb;if(ba)s=s+b;}cout小于a的数的和为:sendl;return0;}/*7.本题分值:10题目标题:球弹跳高度的计算。时间限制:1000MS内存限制:32768KB题目描述:一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?输入描述:输入一个整数h0,表示球的初始高度。输出描述:两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开。注意:结果可能是实数,结果用double类型保存。提示:输出时不需要对精度特殊控制,用coutANSWER即可。样例输入:10样例输出:28.750.3125*/#includeiostreamusingnamespacestd;intmain(){inth0,i;doubles,h;cinh0;s=h=h0;for(i=0;i4;i++){h=h/2;s=s+2*h;}cout第五次落地时经过s米endl第五次反弹高度为h/2米endl;return0;}/*8.本题分值:10题目标题:求分数序列和。时间限制:1000MS内存限制:32768KB题目描述:有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。输入描述:输入有一行:正整数n。输出描述:输出有一行:分数序列的和(浮点数,精确到小数点后4位)。【提示】1.最好在程序中使用双精度浮点数(double)记录求得的和。2.要输出浮点数、双精度数小数点后4位数字,可以用下面这种形式:coutfixedsetprecision(4)resultendl;按上面的形式控制输出格式时,需在源程序最开始加上一行:#includeiomanip。样例输入:99样例输出:160.4849*/#includeiostream#includeiomanipusingnamespacestd;intmain(){doublea=2,b=1,count,n,j;doublem,s;cinn;for(count=0,s=0;count=n;count++){m=a/b;j=a;a=a+b;b=j;s=s+m;}coutfixedsetprecision(4)sendl;return0;}/*9.本题分值:10题目标题:点和正方形的关系。时间限制:1000MS内存限制:32768KB题目描述:在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。输入描述:多组数据,每行包含两个浮点型数据,分别表示一个点的横、纵坐标,输入坐标为0,0时表示输入结束。(注意,输入的数据不止3组)输出描述:对每组输入的点进行判断,显示yes或no,表示是否在正方形中,最后输入的原点也要显示yes,然后才不再继续输入点坐标。(当点在正方形的边上时,也认为在正方形内)样例输入:340.5100样例输出:noyesyes*/#includeiostreamusingnamespacestd;intmain(){floata,b;while(a!=0&&b!=0){cout请输入坐标endl;cinab;coutendl;if(a=-1&&a=1&&b=1&&b=-1)coutyesendl;elsecoutnoendl;}return0;}/*10.本题分值:10题目标题:抓交通肇事犯。时间限制:3000MS内存限制:32768KB题目描述:一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。输入描述:无。输出描述:直接显示一个四位整数表示肇事车号样例输入:样例输出:*/#includeiostream#includemath.husingnamespacestd;intmain(){intm=1000,a,b,c,d;floatk;do{a=m/1000;b=m%1000/100;c=m%100/10;d=m%10;for(k=32;k=99;k++){if(k*k==m&&a==b&&c==d&&b!=c){coutmendl;break;}}m++;}while(m=9999);return0;}/*1.本题分值:10题目描述:随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出不存在。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。代码:*/#includeiostreamusingnamespacestd;intmain(){inta[101],k,x;for(k=1;k=10;k++)//从数组中下标1的元素开始存放数据{a[k]=rand()%101;//产生0~100之间的的整数couta[k];}coutendl;cinx;//输入待查找数xfor(k=1;k=10;k++)if(a[k]==x)break;//若发现了x,则不用继续循环、继续查找if(k=10)coutx存在,它的位置序号是:kendl;elsecout不存在!endl;return0;}/*2.本题分值:10题目描述:编写一个程序,可以根据用户输入的不同值,建立不同长度的整型数组。给这个数组赋值,并求其所有元素之和。请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。代码:*/#includeiostreamusingnamespacestd;intmain(){intn,i,sum=0,*p;cinn;//输入一个整数np=newint[n];//创建一个含有n个整数的整数数组for(i=0;in;i++)//输入n个整数存于动态数组p中cinp[i];for(i=0;in;i++)//求动态数组中的所有整数之和sum=sum+*(p+i);coutsumendl;//显示结果delete[]p;//删除动态数组preturn0;}*3.本题分值:10题目描述:输入5个整数依次存放到数组a中(从下标1开始存放),再输入待插入的整数x以及它要插入到数组中的位置下标k(1≤k≤5),要求插入后不影响a中原来下标为k到5的所有元素的先后顺序。请按照数组中的元素顺序,输出插入前的5个整数和插入后的这6个整数。提示:插入时,应该先从后往前地(从下标5到下标k)将每个数组元素都后移1个位置,最后再将x存放到下标k的元素中。请在计算机上调试以下程序以补足其中的空格。代码:*/#includeiostreamusingnamespacestd;intmain(){inta[101],k,j,x;//分别输入5个整数for(j=1;j=5;j++)cina[j];cinxk;//输入待插入的数x和插入的位置下标kif(k1||k5)return0;f
本文标题:c++1-5
链接地址:https://www.777doc.com/doc-2918960 .html