一、A类程序设计题
1、编写一个求梯形面积的函数,在主函数中调用
2、编写函数,求sinh(x)的值,sinh(x)=(ex-e-x)/2
3、已知三角形的三边,求三角形面积,将其编写成一个函数。 4、编写一个函数实现求10个数的最大值函数
5、编写一个函数来检验输入的一个字符是大写字母还是小写字母英文字母。
6、使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和浮点型数的两点间距离。
7、编写函数将化氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。 8、编写一个函数来检验输入的一个字符是0-9。
9、利用重载编写求整数绝对值和求实数绝对值两个函数。
10、使用静态局部变量,编写一个函数计算1~3的阶乘。
11、重载求平方的函数,实现求整数、单精度浮点数和双精度浮点数的平方值。
12、完成函数,参数为两个unsigned short int 型数,返回值为第一个参数除以第二个参数的结果,数据类型为short int;如果第二个参数为0,则返回值为-1。在主程序中实现输入输出。
13、编写一个函数求长方体的体积,长方体的长、宽、高的默认值分别为30、20、10。在主函数中进行输入输出。
?1??1???16arctan?4arctan????14、编写程序求π的值,
5239????其中arctan用如下形式的级数计算:(编写函数)
? (?1)nx2n?1xx3x5arctan(x)??????? 2n?1135n?0直到级数某项绝对值不大于10-10为止;π和x均为double型。
15、编写三个名为add的重载函数,分别实现两整数相加、两实数相加和两个复数相加的功能。
16、求方程的根,用三个函数分别求当、和是的根,并输出结果。从主函数输入系数。 17、写一个判别素数的函数,从主函数输入一个整数,输出是否为素数的信息。 18、定义一个带参数的宏,求三角形的周长。在主程序中,使用它 19、定义一个参数的宏,求梯形的面积。在主程序中,使用它
20、编写带默认参数的函数,求2个或3个整数中的最大数。并在组程序中实现 二、B类程序设计题 1、编写两个函数,输入的整数按字符串形式逆序输出,要求分别用递归算法和非递归算法实现。如:输入12345,输出:5 4 3 2 1
2、编写函数利用递归的方法计算x的n阶勒让德多项式的值。该公式如下:
//jpk.sdju.edu.cn/cplus/xiti/5.files/image002.gif\
【第 1 页 共 4 页】
3、利用函数调用求组合数 //jpk.sdju.edu.cn/cplus/ceshi/2.files/image005.gif\\\* MERGEFORMATINET |。
4、在主程序中,输入n,用递归方法编写函数,求1+2+3+?+n
5、在主程序中,输入n,用递归方法编写函数求n!
6、将一个整数的各个位上的数字加起来(用函数完成),并输出结果。
7、分别利用非递归和递归的方法编写函数求斐波那契数列第n项。 8、编程计算 1k + 2k + 3k + ? + nk,用带两个参数的函数实现
9、input函数输入10个整数,并求出它们的最大值、最小值和总和。主函数main调用input函数,并输出这10个整数的最大值、最小值和总和。
10、设计一个递归函数,计算一个整数的各位数字之和。
11、用内联函数实现求出一维数组的最大值。在主函数中输入数组元素值,调用求最大值函数,并输出数组最大值。
12、用弦截法,求方程的根,用函数实现 13、用牛顿迭代法,求方程在1附近的根,,用函数实现
14、编写函数,计算,当最后一项小于0.00001时,累加结束。
111s?1??2?3???x?1?xxxX在主函数中,通过从键盘输入
15、编无参函数,void print(),并结合使用全局变量k与n,使每调用一次该函数,总显示出k行“+”符号来,且每行均显示连续的n个“+”符号。并编制主函数 main,对该函数进行具体调用。
16、编写两个数的最大公约数的函数,在主程序中调用。
17、设f(x) = x*x + x/2.1 – 8; g(x) = 2*f(x) – 3.5*f(2*x) + 5.5;编程序,对x=-5,-4,-3,?,3,4,5,计算各g(x)之值并输出这11个计算结果。
18、编写递归和非递归两种函数power(a,n),用于求出实数a的n次方。并编制主函数,输入不同的实数a及正整数n,而后通过调用power函数来进行求解。 提示:可按如下公式来编制递归处理函数 power(a,n)=a; 若n等于1
power(a,n)=a * power(a,n-1); 若n大于1。
19、设f(x) = a0x9 + a1x8 + ? + a8x + a9 ;(其中的各ai 为常数),编制计算上述f 值的自定义函数,并编出main 函数,对任意输入的x,计算出y=f(x)之值并显示在屏幕上。
假设各系数ai 存放于一个a 数组中,并通过如下语句来说明a 数组并置初值。double a[10]={1, 2, 0.3, -2, 3.5, 0, -8.1, 3.3, -6, 1.68};
要求按照如下三种处理方法来编制函数f(如依次称为f1、f2、f3),并编制main,用同一个实参x 去调用它们(应该得到三个相同的函数返回值y)。
f1 函数:通过调用标准库函数pow(x,n)来计算x 的n 次方,而后通过循环累加出y。 f2 函数:通过调用自定义函数myPow(x,n)来计算x 的n 次方,而后通过循环累加出y。 f3 函数:分析并构造如下形式的循环来计算y y = a[0]; for ( ... )
y = y*x + a[i];
【第 2 页 共 4 页】
三、C类程序设计题
1、编制具有如下原型的函数prime,用来判断整数n 是否为素数。bool prime(int n); 而后编写主函数main,输入任意一个大于4 的偶数d,找出满足d=d1+d2 的所有数对,其中要求d1 与d2 均为素数(通过调用prime 来判断素数)。如偶数80 可以分解为:7+73、13+67、19+61、37+43。
2、编写一个函数求满足以下条件的最大的n: 12+22+32+?+n2<1000
3、编制具有如下原型的函数long dif(int y1, int m1, int d1, int y2, int m2, int d2);它负责计算出两个日期的间隔天数并返回。其中的y1、m1、d1表示第一个日期的年、月、日;而y2、m2、d2表示第二个日期的年、月、日。而后编制主函数,对dif进行调用,以验证它的正确性。
4、在主程序中提示输入n,编写函数用递归的方法求1+2+…+n的和。 5、编写一个将x进制正整数n化为10进制数并输出结果的函数(x为2或8),具有如下原型: void ChgXTo10 (int n, int x);并编写主函数对它进行调用来验证其正确性。
6、编写判断勾股数的函数。打印出100内的所有的勾股数。勾股数就是满足x2+y2=z2的自然数。最小是勾股数5,4,3。
7、编写一个函数countk(long k,count[10]),求出证书k中数字0到9出现的次数,并计入count[10]中。
8、编写求最大公约数和最小公倍数的函数,输入m,n(要求输入数均大于0),输出它们的最大公约数和最小公倍数。其中,写最小公倍数的函数时,要求调用求最大公约数的函数
9、寻找四位数的超级素数。超级素数的定义为:若一个素数从低位到高位依次去掉一位数后仍然是素数,则此数为超级素数。例如,数2333是素数,且233、23、2均是素数,所以2333是一个超级素数,用定义函数的方式实现。主程序中,输入位数。
10、寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。回文:各位数字左右对称的整数,用定义函数的方式实现。主程序中,输入范围(两个参数)。
11、编一个返回真假值(布尔值)的函数symm,实现如下功能:若正整数n为“回文数”(正读与反读为相同大小的数)的话,返回true,否则返false。
其函数原型为:bool symm(long n); 并编主函数,通过调用symm,求出1000以内所有满足下述特征的m: m和7*m以及3*m*m都是“回文数”,如1,11,88,? ( 因为m=1,7*m=7,3*m*m=3; m=11,7*m=77,3*m*m=363; m=88,7*m=616,3*m*m=23232; ? )。 12、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方之和等于该数本身。例如,153是一个水仙花数,因为153 = 13 + 53 +33。用函数来判断时否是“水仙花数”。
13、用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。 思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。主程序中输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期)
【第 3 页 共 4 页】
14、编一个返回真假值(布尔值)的函数p,其函数原型为:bool p(int x);具有如下功能:若正整数x的各位数字之积等于x2-10x-22的话,返回true,否则返false。并编主函数,通过调用p,找出1000以内的满足上述关系的所有x。
15、编写具有如下原型的函数:bool f(long x); 其功能为:若整数x仅由偶数字(0、2、4、6、8)组成时(如x=26480),函数返回true,否则返回false(如当x=22034时)。并编制主函数对它进行调用。
16、输入两个二进制正整数(两个非“0”即“1”的字符串),而后输入一个运算符(“+”、“-”、“*”、“/”),按int型整数运算方式求出这两个二进制整数的运算结果并输出。提示:设计将2进制数化为10进制数、以及将10进制数化为2进制数的函数“int Chg2To10(char a[]);”和“ void Chg10To2(int n, char result[]);”,而后在主函数中通过调用Chg2To10先将两个输入串转化为10进制数,而后对这两个10进制数进行指定运算,再将运算结果通过Chg10To2转化为2进制数(结果在result)而后输出。
17、编写一个将x进制正整数化为10进制数并输出结果的函数,具有如下原型:void ChgxTo10(char a[], int x);参数a中放的是x进制正整数的各位数字字符(如x可为2或8或16等),要将其化为10进制数并输出。并编写主函数对它进行调用以验证其正确性。
【第 4 页 共 4 页】