编程题
(编程题在题库中的位置:平时练习->参加平时练习->当前章节:指针,当前难度: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)在函数中输出满足条件的正整数解xy
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 <iostream>
using namespace std;
int f(char x, int N);
int main( )
{
f("*",5);
return 0;
}
10. 编写一个自定义函数:int f( int N) ,f( )的功能是:对给定的正整数N,打印一个N行N列的由"A"、"B"、"C"以及空格" "符号组成的方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。
#include <iostream>
using namespace std;
int f(int N);
void main()
{ f(5); }
11. 编写函数f(),计算具有n个元素的一维数组a中每组相邻两个数的差,出其中的最大差作为函数值返回。
#include <iostream>
using namespace std;
#define M 5
int f(int a[], int n);
void main()
{ int i, a[M];
 for(i=0;i<M;i++)
    cin>>a[i];
 cout<<"The result is "<<f(a,M)<<endl;
}
12. 根据下列要求和提示,编写一个函数f(N)判断某数N是否为“完全数”,N由主函数给出;如果N是“完全数”则函数值返回1,N不是“完全数”则函数值返回0。“完全数”定义如下:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。
#include <iostream>
using namespace std;
int f(int N);
void main()
{ int N;
 cin>>N;
 if(f(N)==1)
   cout<<N<<" Shi Wan Quan Shu!"<<endl;
 else
   cout<<N<<" Bu Shi Wan Quan Shu!"<<endl;
}
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的近似值,直到最后一项的绝对值小于为止,近似公式为:
(本题答案参见:实验指导书p92-93.)
19. 用牛顿迭代法求方程3- 4- 5x + 13 = 0在x=1附近的根,要求精度为
20. 编写一个自定义函数:int f( int M, int N) ,函数f的功能是:对给定的正整数M和N,出满足方程"5x+6y=M"的正整数解中x和y都是偶数的解。要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,且x,y∈[1,N], 才继续求解操作,并用二重循环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)使函数值返回满足条件的正整数解的组数。
#include
<iostream>
using namespace std;
int f( int M,int N);
void main()
{cout<<f(500,650)<<endl;}
21. 编写一个自定义函数:int f( longa[ ], int n, long x) ,f( )的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查数组a中是否存在元素值等于x的元素,若存在,则函数值返回到的下标最大的那个元素的下标;若不存在,则函数值返回-1。
#include <iostream>
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<<f(a,5,x)<<endl; 
}
22. 求s=2+22+222+...+2的和,即第n个加数是一个n位的整数,且各数位上的数字均为2,例如当n=4时,s=2+22+222+2222。要求设计一个函数int f(int n)求每一个加数,在main( )中用累加求和方式求出总和。
#include "stdafx.h"  //这里的蓝语句是试题打开时原有语句,不能改动
#include <iostream.h>
int f(int n); //自定义函数的声明语句(f函数的实现在main函数后面时需要)
int main(int argc, char* argv[])//考试题打开时原有语句不能动
{ //考试题打开时原有语句不能动
int s=0,i,n;
cout<<"Input n:";
cin>>n;
for(i=1;i<=n;i++)
  s=s+f(i);
cout<<"2+22+222+...="<<s<<endl;
return 0; //考试题打开时原有语句不能动
} //考试题打开时原有语句不能动
23. 所有能被13整除又能被17整除且末位不是偶数的三位数有几个?最大的一个?
24. 有一个分数序列:1/2,2/3,3/5,5/8,8/13,13/21。求:
(1)这个序列的前20项之和;
(2)第15项的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。