C上机练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编程题
题一:取出一个十进制正整数中的所有奇数,用这些数字构成一个最小数。
(1)编写函数long fun(long s),其函数功能是取出十进制整数s中所有的奇数数字,用这些数字构成一个最小数,函数返回该数。
(2)编写main函数,接受键盘输入的一个长整形数,用该整数作为实参调用fun函数,输出得到的最小数。
测试数据:876531429 7 5 3 1 9
运行结果:13579
题二:求符合条件的数
找出符合以下条件的Troitsky数:将该数的首位数字移动到末位数字之后得到的数是原数的整数倍。
例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*142857,因此142857是Troitsky数。
(1)编写函数int Troitsky(long a[]),其功能是求出1000000以内所有的troitsky数(数字从142875开始),并将它们依次放入a指向的数组中,函数返回找到的troitsky 数的个数。
(2)编写main函数,调用troitsky函数,输出运行结果。
题三:找出7个默森尼数。
法国数学家默森尼曾提出下列公式:Mp=2p-1.当p是素数,并且Mp也是素数时,称Mp为默森尼数。
例如p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数。
【编程要求】
1、编写函数void Mersenne(long a[],int m),其功能是求出前m个默森尼数并依次将它们
保存到a指向的数组中。
2、编写main函数,调用Mersenne函数找出并保存前7个默森尼数,将运行结果输出到屏
幕及结果文件“学号myf2.out”中。
最后将学号也保存到结果文件myf2.out中。
【测试数据与运行结果】
3 7 31 127 8191 131071 524287
【要求】
1.源程序的文件名为myf2.c,输出结果文件名为myf2.out
2.数据文件的打开、使用、关闭均用C语言标准库中函数操作
3.源程序文件和运行结果均需保存到相关学号文件夹中。
题四:找出满足下列条件的整数对(m,n)(1)m小于n;(2)φ(m)= φ(n)=m+n+1,其中φ(m)表示m的所有因子和(包括1和m自身),φ(n)表示n的所有因子和(包括1和m自身)。
如,φ(48)=1+2+3+4+6+8+12+16+24+48=124, φ(75)=1+3+5+15+25+75=124,48+75+1=124,因此(48,75)是满足条件的整数对。
【编程要求】
1、编写函数int fun(int n ,int a[][2]),在[1,n]中查找满足上述条件的整数对。
若找到则将这
些整数对依次保存到a指向的数组中,函数返回找到的整数对的个数,若找不到则函数
返回0。
2、编写main函数,声明一个二维数组a,接收键盘输入的一个正整数n,用n和数组a作
为实参调用fun函数,将a数组中的结果数据输出到屏幕及结果文件myf2.out中。
最后将学号也保存到结果文件myf2.out中。
【测试数据与运行结果】
测试数据:n=200
运行结果:(48,75)
(140,195)
【要求】
1.源程序的文件名为myf2.c,输出结果文件名为myf2.out
2.数据文件的打开、使用、关闭均用C语言标准库中函数操作
3.源程序文件和运行结果均需保存到相关学号文件夹中。
题五:验证10以内的正整数都满足Nocomachns定理。
Nocomachns定理:任一个正整数n的立方一定可以表示为n个连续的奇数之和。
例如1^3=1,2^3=3+5, 3^3=7+9+11
【编程要求】
1.编写函数int noco(int n,int *a)。
函数功能是验证n的立方可表示为n个连续奇数之和,
若找到这样的表示则将这些连续奇数按从小到大的顺序存放到a指向的数组中并且函数返回1,否则函数返回0.
2.编写main函数。
函数功能是声明a,分别用整数1~10及整数a作为实参调用noco,并
将结果数据按如下所示形式输出到屏幕及文件myf2.out中。
最后将学号字符串输出到文件myf2.out中。
将源程序以f2.c保存
【运行结果】
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
5^3=21+23+25+27+29
6^3=31+33+35+37+39+41
7^3=43+45+45+49+51+53+55
8^3=57+59+61+63+65+67+69+71
9^3=73+75+77+79+81+83+85+87+89
10^3=91+93+95+97+99+101+103+105+107+109。