编程练习题
一、程序控制结构编程练习题
1.有一函数如下所示:
已知x 值时,输出y 值。 2.编程计算:s=∑∑==++20
123
12)2()1(i j j i
3.求sum=a+aa+aaa+aaaa+…+aa …a(表示n 个a)的值。其中a 是一位数字。例如当n=6,a=2时sum=2+22+222+2222+22222+222222。n 和a 的值由键盘输入。
4.求100~230之间所有素数的和。
5.从键盘上输入任意整数,逆序输出其各位数字,同时求出其位数及各位数字之和。
6. 输入某学生成绩,若成绩在90-100输出"excellent ",若成绩在80-89输出"good ",若成绩在70-79输出"general ",若成绩在60-69输出”pass”,若成绩在0-59输出”no pass”。
7.编程计算n!。n 从键盘输入,且n<=15。
8.编程计算1!+2!+……+20!。
9.输入三人数,按从小到大的大顺序输出。
10.在100~200中找出同时满足3除余2,用5除余3和用7除余2的所有整数。
11.找出20~150中所有能被3或被7整除的数。
12.找出1~100这间所有的素数,要求一行输出5个。
13.求20~130之间所有素数的和。
14.求100~999中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153=13+53+33,所以153为水仙花数。
15.求1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如,6=1+2+3,所以6为完数。
14.编一程序显示如下图案:
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
15.编一程序显示如下图案:
*********
*******
*****
***
*
x (x<1) Y= x+5 (1≤x<10) x-5 (x ≥10)
16.编一程序显示如下图案:
*
***
*****
*******
*********
*******
*****
***
*
17.编一程序显示如下图案:
A
A B C
A B C D E
A B C D E F G
18.根据π/4 =1-1/3+1/5-1/7+…求π的近似值,直到最后一项的值小于0.000001为止。
19.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?
20.编写程序输出菲波那切数列的前20项。即前两项为1,以后每一项为前两项之和。
21.分别使用for 、while 、do while 语句编程打印九九乘法表。
22.若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n 年时有多少头母牛?
24.从键盘上输入若干整数,计算并输出其中正整数的平均值,以0作为输入结束标志。(要求分别使用while 语句、do …while 语句编写)
25.分别使用while 、do while 、 for 语句编程实现s=∑=10
2!n n
26.已知xxz+yzz=532,求所有可能的x,y,z 的值
27.编程计算1+2+3+…+100
28.编程计算1~100所有奇数之和。
29.编程计算1~100所有偶数之和。
30.编程实现如下功能:从键盘输入两个正整数m ,n (m 31.编程实现下列功能:从键盘输入x,利用下列公式计算cos(x)的近似值。要求准确度达到10-8。 ....! 8!6!4!21cos 8 642-+-+-=x x x x x 32.从键盘输入任意多个正整数,计算其和。当输入为0时结束输入,并输出计算结果。 33.写一个完整的程序,从键盘读入两个浮点数和一个运算符,根据运算符计算两个浮点数的运算结果,并输出。运算符可能的值是’+’,’-‘,’*’,’/’。 34.编程统计数组a中正数、0、负数的个数 35.从键盘输入10个正数存入数组x中,然后输入要查找的整数a,如找到则输出a及a的下标,如找不到,则把a存入到数组的最后。 36.从键盘输入20个学生的成绩,输出平均分数,并统计优秀、良好、中等、及格和不及格学生的人数。 37.把有序的一两个数组a和b合并,要求合并后的数组依然有序。 二、函数编程练习题 1.编写函数void reverse(int n),将n逆序输出。 2.编写函数int count (char p[])统计字符串p的长度并作为函数值返回。 3.函数int max(int a,int b,int c)是求a、b、c中的最大值,请实现。 4.函数void print_week(int m)是实现根据整型变量m的值,输出其表示的星期几的英语单词。(使用switch语句) 5.编写二个函数:一个函数void sum(n)是求指定范围1-n内所有素数的和;另一个函数int fact是判断一个数是否是素数;要求在sum中调用fact进行判断,然后求素数和。 6.函数void menu()是实现一个简单的菜单程序,运行时显示: Menu: A(阶乘) S(求和) F(找素数) Q(退出) 请选择(A/S/F/Q)? 7.实现函数long fact(n),计算n的阶乘。 8.函数int SUM(int n)是计算1+2+…+n. 9.函数void prim(int n)是找出2-n内的所有素数,每行输出10个素数。 10.函数void sum(int n=100)的功能是找出n以内的所有素数,并求和。 11、函数long fact(int n)是计算1!+2!+3!+..+n!,并将结果作为函数值返回。请实现该函数。 12.函数void sum(int &s,int n)是计算s=1+2+3+…+n。请实现该函数。 13.函数void max(int a[],int n,int &max)是求n个元素的数组a中的最大值,将最值存放在max中。请实现该函数功能。 14.函数void input(foat score[][3],int &n)是要求从键盘输入n个学生的3门成绩,存入score[][3]中。由于学生人数不确定,要求输入为999时结束输入主。最后实际录入的学生人数放入到n中返回调用处。请实现该函数。 15.函数int digit(char str[])的功能是统计字符串str中的数字字符个数和,将统计结果作为函数值。请编程实现该函数。 16.函数void print(int *p,int n)的功能是输出n个整数。这n个整数存放在以p为首地址的内在中。请实现该函数。 17.函数void print(int (*p)[4],int n,int m)功能是输出p 所指向的n行m 列二维数组中所有的元素。 18.有一结构体定义如下: typedef struct date { int day; int month; int year; }DATE; 函数void Luru(DATE xs[],int n)的功能是从键盘上录入n 个学生的生日。请实现该函数。 19.有结构体定义如下: typedef struct stu { char no[12]; char name[20]; float score[4]; float zf;总分// float aver;//平均分 }STUDENT; (1)函数void pp(STUDENT xs[],int n)的功能是按表格的形式输出n 个学生的所有信息。请实现该函数。 (2)函数void jishuan(STUDENT xs[],int n)的功能是计算n 个学生的总分和平均分。请实现该函数。 20.函数void Write(int a[],int n)的功能是将n 个元素的数组a 中的所有元素写入文件data.dat 中。请实现该函数。 21. 函数void Read(int b[],int &n)的功能是文件data.dat 中的所有整数读入到数组b 中,整数个数存入到n 中。请实现该函数。 22.文件file.txt 中存放了若干字符。函数int tongji(int &n)是统计文件file.txt 中数字和字母的个数。将字母个数存入到n 中,数字的个数作为函数值。请实现该函数。 三、递归函数设计 1.计算最大约数gcd(m,n)可用递归形式定义如下: 若m%n 等于0,则gcd(m,n)等于n 否则,gcd(m,n)等于gcd(n,m%n)。 编写一递归函数,求最大约数,并测试。 2.编写一递归函数,计算下面的级数: i i m 1......31211)(++++= 3.编写一递归函数,计算下面的级数: 1 2.....11594735231)(+++++++=i i i m 4.编写一函数,逆序输出一个整数n 。函数头如下: void reverseDisplay(int value) 5.编写一函数,逆序输出一个字符串,函数头如下: void reverseDisplay(const char *s) 6.编写一递归函数,统计一个指定字符在一个字符串中出现的次数,函数头如下: int count(char *,char ) 7.编写一递归函数,计算一个整数中所有数字之和。函数头如下: int sumDigit(long n) 8. 编写一递归函数,计算2n 9. 编写一递归函数,计算1+2+3+4+…+n。n为正整数 10. 编写一递归函数,计算n!