C++编程题24道 下载本文

内容发布更新时间 : 2024/11/9 3:00:57星期一 下面是文章的全部内容请认真阅读。

编程题

(编程题在题库中的位置:平时练习->参加平时练习->当前章节:指针,当前难度:1) 01. 求Sn=a+aa+aaa+aaaa+…+aa…a(n个a)之值,其中a是一个数字,n表示a的位数。 例如:2+22+222+2222 (此时a=2, n=4)。 02. 从键盘上输入一个正整数,判别它是否为一回文数。如:123321

03. n一个整数(小于10万),它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

04. 求1000之内的完全数。说明:完全数就是:除了它本身以外所有因子之和等于其本身,例如:6=1+2+3。

05. 求出[900, 1000]间有偶数个因子(这里因子不含1和自身)的数有多少个,其中最小的一个?

06. 编写一个自定义函数:int f( int M, int N),f( )的功能是:对给定的正整数M和N,找出满足方程“7x+4y=M”的正整数解中x是偶数且y是奇数的解,其中:x,y属于[1,N]的范围。 要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,才继续求解操作,用二重循环进行求解:

(1)在函数中输出满足条件的正整数解x和y, (2)并且使函数值返回满足条件的正整数解的组数。 07. 写一个函数找出一个整数数组中,第二大的数。

08. 写一个函数,找出给定字符串中数字字符(即’0’—‘9’这10个数字)的个数(如字符串“olympic2000”中数字字符的个数为4个。函数的原型为:

int CalcDigital(char *str);

函数参数:str为所要处理的字符串。

函数返回值:所给字符串中数字字符的个数。 09. 编写一个自定义函数:int f( char x, int N) ,f( )的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。比如,当c为\且N为5时,打印的图案如本题图所示。且函数值返回1。

#include using namespace std; int f(char x, int N); int main( ) {

f(\ return 0; }

10. 编写一个自定义函数:int f( int N) ,f( )的功能是:对给定的正整数N,打印一个N行N列的由\、\、\以及空格\符号组成的方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。

#include

using namespace std; int f(int N); void main() { f(5); }

11. 编写函数f(),计算具有n个元素的一维数组a中每组相邻两个数的差,找出其中的最大差作为函数值返回。

#include using namespace std; #define M 5

int f(int a[], int n); void main() { int i, a[M];

for(i=0;i>a[i];

cout<<\ }

12. 根据下列要求和提示,编写一个函数f(N)判断某数N是否为“完全数”,N由主函数给出;如果N是“完全数”则函数值返回1,N不是“完全数”则函数值返回0。“完全数”定义如下:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。

#include using namespace std; int f(int N); void main() { int N; cin>>N; if(f(N)==1)

cout<

cout<

13. 编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+...,最后一项的值小于1e-6。

14. 有十进制数字a,b,c,d和e,求满足式子:abcd*e=dcba(a非0,e非0非1)的四位数中:

(1)共有多少个? (2)最小的abcd; (3)与之相对应的e。

15. 有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏,求:塔底灯数?第几层的灯数为48?

16. 有3个红球,5个白球,6个黑球,从中任意取出8个球,且其中必须有白球,请求出共有多少种取法?

17. 求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7……。求:第40项的值;

值为17的第1个数是数列中第几项?

18. 计算pai的近似值,直到最后一项的绝对值小于10为止,近似公式为:

?8??4?(1?1/3?1/5?1/7?...)

(本题答案参见:实验指导书p92-93.)

19. 用牛顿迭代法求方程3x- 4x- 5x + 13 = 0在x=1附近的根,要求精度为10。 20. 编写一个自定义函数:int f( int M, int N) ,函数f的功能是:对给定的正整数M和N,找出满足方程\的正整数解中x和y都是偶数的解。要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,且x,y∈[1,N], 才继续求解操作,并用二重循环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)使函数值返回满足条件的正整数解的组数。

32?6#include

using namespace std; int f( int M,int N); void main()

{cout<

21. 编写一个自定义函数:int f( longa[ ], int n, long x) ,f( )的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最大的那个元素的下标;若不存在,则函数值返回-1。

#include using namespace std;

int f(long a[],int n, long x); void main() { long x=7;

long a[5]={3,5,2,7,9}; cout<

22. 求s=2+22+222+...+222...2的和,即第n个加数是一个n位的整数,且各数位上的数字均为2,例如当n=4时,s=2+22+222+2222。要求设计一个函数int f(int n)求每一个加数,在main( )中用累加求和方式求出总和。

#include \ //这里的蓝色语句是试题打开时原有语句,不能改动 #include

int f(int n); //自定义函数的声明语句(f函数的实现在main函数后面时需要) int main(int argc, char* argv[])//考试题打开时原有语句不能动 { //考试题打开时原有语句不能动 int s=0,i,n;

cout<<\cin>>n;

for(i=1;i<=n;i++)