《c++经典编程题目.doc》由会员分享,可在线阅读,更多相关《c++经典编程题目.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本题序号:89能被19整除又能被31整除且末位不是奇数的四位数有几个?最小的一个是多少?#includeusing namespace std;void main()int n,min=9999,count=0;for(n=1000;n=9999;n+)if(n%19=0&n%31=0&n%2=0) count+;coutcount.nn) min=n;coutmin=minendl;本题序号:90有一个分数序列:1/2,2/3,3/5,5/8,8/13,13/21。求:(1)这个序列的前20项之和;(2)第15项的值。#includeusing namespace std;float a(i
2、nt);float b(int);void main()int n;coutn;float sum=0,fn;for(int i=1;i=n;i+)fn=a(i)/b(i);coutf(i)=fnendl;sum+=fn;coutsum(n)=sum1) return b(n-1);float b(int n)if(n=1) return 2;else if(n1) return a(n-1)+b(n-1);本题序号:91所有能被13整除又能被17整除且末位不是偶数的三位数有几个?最大的一个?#includeusing namespace std;void main()int n,max=10
3、0,count=0;for(n=100;n=999;n+)if(n%13=0&n%17=0&n%2!=0) count+;coutcount.nendl;if(maxn) max=n;coutmax=maxendl;本题序号:92 有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏,求:塔底灯数?第几层的灯数为48?#includeusing namespace std;int f(int,int);void main()for(int m=1;m0;i-) fn=f(i,m); fli-1=fn; sum+=fn; if(sum=381) for(int i=6;i=0;
4、i-) cout第i+1层:fliendl;int f(int n,int m)if(n=7) return m;if(n7) return f(n+1,m)*2; 本题序号:93设某四位数的各位数字的平方和等于100,求最大和最小的4位数是多少?共多少个?#include using namespace std;int main(void) int count=0,min=9999,max; for (int i=1000; imax) min = max; cout sum = count endl; cout max = max ; min = min endl; return 0;本题
5、序号:94一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?#include using namespace std;int main(void) float h=100.0,sum=100.0; for (int i=1; i10; i+) h = h/2; sum += h*2; cout The tenth height: h endl; cout Total covered: sum endl; return 0;本题序号:95 求出1,1000间有奇数个因子的数有多少个,其中最大的一个?#include using
6、namespace std;int main(void) int sum=0,max; for (int i=1; i=1000; i+) int count=0; for (int j=1; ji; j+) if (i%j=0) count+; if (count%2) sum+; max = i; cout sum = sum endl; cout max = max endl; return 0;本题序号:96有一个分数系列:2/1,3/2,5/3,8/5,13/8,21/13,请求出这一数列的前20项之和。#include using namespace std;int main(vo
7、id) int fib(int); float sum=0; for (int i=1; i=20; i+) sum += (float)fib(i+1)/fib(i); cout sum = sum endl; return 0;int fib(int n) if (n = 1) return 1; else if (n = 2) return 2; else return fib(n-1)+fib(n-2);本题序号:97有3个红球,5个白球,6个黑球,从中任意取出8个球,且其中必须有白球,请求出共有多少种取法?#include using namespace std;int main(v
8、oid) int count=0; for (int i=0; i=3; i+) for (int j=1; j=5; j+) for (int k=0; k=6; k+) if (i+j+k=8) count+; cout total = count (9+8)。#include using namespace std;int main(void) int count=0; for (int i=10; i(gw+sw) count+; for (int j=100; j(gw+sw+bw) count+; cout total = count endl; return 0;本题序号:99若
9、用0至9之间不同的三个数构成一个三位数,请问共有多少种方法?#include using namespace std;int main(void) cout total = 9*9*8 endl; return 0;本题序号:100鸡兔共30只,脚共有90个,请计算鸡兔各多少只?#include using namespace std;int main(void) for (int ra=1; ra=22; ra+) for (int ch=1; ch=30; ch+) if (ra+ch=30 & ra*4+ch*2=90) cout chicken = ch endl; cout rabb
10、it = ra endl; return 0;本题序号:101编写程序,求1-3+5-7+.+-99+101的值。#include using namespace std;int main(void) int sum=0; for (int j=1,i=1; i=101; i+=2,j+) if (j%2) sum += i; else sum -= i; cout sum = sum endl; return 0;本题序号:102有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后能卖完?#include using namespace std;int main(voi
11、d) int total=1020,count=0; while (total0) int tmp; tmp = total/2+2; total -= tmp; count+; cout count days sell out. endl; return 0;本题序号:103求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7。求:第40项的值;值为17的第1个数是数列中第几项?#include using namespace std;int main(void) int val=0,i=1; while (1) val += i; if (val40) cout The 4
12、0th value is: i endl; break; i += 2; while (1) i += 2; if (i=17) cout The first 17 is: val+1 th. endl; break; val += i; return 0;本题序号:104求方程: 在(0,1)区间内的解,精度为。本题序号:105编写函数int f(char *s),判断s所指的串是否为“回文串”,即前后对称的串,如:“a131a”、“a1bb1a”,若是则返回1,否则返回0。其中main()的定义如下:int main() char a=a131a; if (f(a) couta是回文end
13、l; else couta不是回文endl; return 0; #include #include using namespace std;int main(void) int f(char *s); char a=a131a; if (f(a) cout a 是回文 endl; else cout a 不是回文 endl; return 0;int f(char *s) int n=strlen(s); for (int i=0; in/2; i+) if (si != sn-i-1) return 0; return 1;int main()char a=a131a;if (f(a) c
14、outa是回文endl;else couta不是回文endl;return 0;本题序号:137求s=2+22+222+.+222.2的和,即第n个加数是一个n位的整数,且各数位上的数字均为2,例如当n=4时,s=2+22+222+2222。要求设计一个函数int f(int n)求每一个加数,在main()中用累加求和方式求出总和。#include stdafx.h#include int f(int n);int main(int argc, char* argv) int s=0,i,n; coutn; for(i=1;i=n;i+) s=s+f(i); cout2+22+222+.=s
15、endl; return 0;int f(int n)int i,sum = 0;int temp = 2;for(i=1;i=n;i+)sum += temp;temp *= 10;temp +=2;return sum;本题序号:138完成以下主函数,在具有n个元素的一维数组a(a0,a1,.,an-1)中查找等于y的元素的个数与下标。若有多个相等的元素,则输出最后一个相等元素的下标。其中,y的值由键盘输入,变量c存贮个数, 变量m存放下标。例如, 在a10=21,33,22,33,45,46,32,21,33,4查找33, 个数为3,下标为8。#include using namespa
16、ce std;void main() int a10=21,33,22,33,45,46,32,21,33,4; int y,c,m; /-以下开始自编代码- /-以上为自编代码- couta中值为y的元素个数 c 最后一个下标为 mendl;本题序号:5求1000,2000之间最小的素数和最大的素数。 要求判断一个数是否为素数的函数原型为: int isprime(int x); 若x是素数,则返回1,否则返回0。#include using namespace std;int main(void) int isprime(int x); int i=1000,j=2000; while (
17、!isprime(i+) ; cout min prime: i-1 endl; while (!isprime(j-) ; cout max prime: j+1 endl; return 0;int isprime(int x) for (int i=2; ix; i+) if (x%i=0) return 0; return 1;本题序号:6计算以下表达式的值: 即第n个加数是一个n位的整数,且各数位上的数字均为3。要求n由主函数输入,设计一个函数实现求每一个加数,其原型为:int f(int i);,然后用累加求和方式求出总和。#include using namespace std;int main(void) int f(int i); int n,sum=0; cout n; for (int i=1; i=n; i+) sum += f(i); cout sum = sum endl; return 0;int f(int i) int val=0; for (int j=0; ji; j+) val = val*10 + 3; return val;