内容发布更新时间 : 2025/6/11 6:40:06星期一 下面是文章的全部内容请认真阅读。
黔南民族师范学院数学系 C程序设计实验
void main() {
int i=11;
printf(\ dtob(i);
printf(\}
该函数是将十进制的数转为二进制。结果如下:
2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整,并上机进行调试验证)
1) 程序说明:下面程序将输入的十进制数 n 转换为 b 进制数,并将转换结果输出。转换的方法是:除 b 取余法。
#include \
void transfer(int m,int k) {
int a[20],i;
for(i=0; m; i++) a[i]= m%k ; m/=k; }
for(;i>=0;i--)
printf(\}
void main() {
int b,n;
scanf(\ transfer ( b,n); ; }
班级: 13级数学系数应(2)班 姓名:韩侣 学号:13050152061 - 6 -
黔南民族师范学院数学系 C程序设计实验
2) 程序说明:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和,例如 4=2+2 6=3+3 8=3+5 ? 50=3+47。下面程序将 4-50 之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数 prime 完成。
#include \int prime(int x) {
int k,flag=1;
for(k=2;k<=x/2;k++)
if( x%k==0 ) {
flag=0; break; }
return( flag ); }
void main() {
int m,n,k;
for(m=4;m<=50;m++) for(n=2;n
if(prime(n)&&(m%2==0)&&(k=m-n)&&(prime(k)) )
{
printf(\ break; } }
3) 程序说明:用一个一维数组存放 10 个学生的成绩,写一个函数求出平均分、最高分和最低分。
#include \ float max=0,min=0;
float average(float score[],int n)
班级: 13级数学系数应(2)班 姓名:韩侣 学号:13050152061 - 7 -
黔南民族师范学院数学系 C程序设计实验
{
int i;
float ave,sum=score[0];
max=min= score[0] ; for(i=1;i
ave=sum/10;
return (ave) ; }
void main() {
float ave,score[10]; int i;
for(i=0;i<10;i++) scanf(\ &score[i] ); ave=average( score,10 );
printf(\n”,max,min,ave); }
4) 程序说明:在主函数中读入一字符串,再读入一字符,然后调用函数delete在字符串中查找并删除该字符,最后输出该字符串。
#include \
void delete(char p[],char ch) {
int i=0,j;
while( ) { if(p[i]==ch) for(j=i;j< ;j++) p[i]=p[i+1]; else i++; } }
班级: 13级数学系数应(2)班 姓名:韩侣 学号:13050152061 - 8 -
黔南民族师范学院数学系 C程序设计实验
void main() {
char p[80],ch; int i=0,j;
scanf(\ scanf(\
delete( ); printf(\ ); }
5) 程序说明:输入10 个学生的学号及单科成绩,然后求出最高分的学号、最低分的学号以及超过平均分的人数。
#include \
int high_num, low_num;
int over_aver(int score[],int n) {
int i, imax, imin, over_num; float aver;
imax=0; imin=0; aver=0; for(i=0;i
aver/=n;
over_num=0; for(i=0;i
void main() {
int i, over_num, a[10]; printf(\ input a:\ for(i=0;i<10;i++) scanf(\
over_num=__over_aver(a,10)_________________;
班级: 13级数学系数应(2)班 姓名:韩侣 学号:13050152061 - 9 -
黔南民族师范学院数学系 C程序设计实验
printf(\ high_num,low_num=%d,%d\ low_num); printf(\ over_num=%d\ }
3.程序设计(根据题意编写程序并上机进行调试)
1) 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。
#include
void c(long int m); long int n;
printf(\请输入一个任意整数\\n\ scanf(\
printf(\用递归法将其转换成字符串是:\\n\ if(n<0) {putchar('-'); n*=-1; } c(n);
printf(\}
void c(long int m) {
long int x;x=m/10; if(x!=0) c(x);
putchar(m+'0'); }
2) 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。
要求:求最大公约数用递归方法实现,递归公式为(r=m%n):
r?0,?n, gcd(n,m)???gcd(n,r), r?0.①不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大
班级: 13级数学系数应(2)班 姓名:韩侣 学号:13050152061 - 10 -