当前位置:文档之家› 实验6函数习题及答案

实验6函数习题及答案

#include "stdio.h"
int prime(int x) //判断x是否为素数,如果x为素数,则返回1,否则返回0
{
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;
{
if(p[i]==ch)
for(j=i;p[j]!='\0';j++)
p[j]=p[j+1];
else
i++;
}
}
void main()
{
char p[80],ch;
scanf("%s",p);
ch=getchar();
scanf("%c",&ch);
dele(p,ch);
printf("%s", p );
for(m=4;m<=50;m=m+2)
for(n=2;n<m-1;n++)
if(prime(n) &&prime(m-n)) //如果n和m-n均为素数,则prime(n)和prime(m-n)返回的值均为1,非零即真
{
printf("%d=%d+%d\n",m,n,m-n);
break;
}
}
(3)b3.cpp
}
(4)b4.cpp
程序说明:在主函数中读入一字符串,再读入一字符,然后调用函数dele在字符串中查找并删除该字符,最后输出该字符串。
#include "stdio.h"
#include <string.h>
void dele(char p[],char ch)
{
int i=0,j;
while(p[i]!='\0')
for(i=1;i<n;i++)
{
if(score[i]>max)
max=score[i];
else if(score[i]<min)
min=score[i];
sum=sum+score[i];
}
ave=sum/10;
returnave;
}
void main()
{
float ave,score[10];
#include "stdio.h"
int swap(int a,int b)
{
int c,s;
c=a;
a=b;
b=c;
s=a+b;
return s;
}
void main()
{
int a,b,s;
a=3;b=4;
s=swap(a,b);
printf("a=%d b=%d s=%d\n",a,b,s);
printf("%d %d %d\n",a,b,c);
}
(4)a4.cpp
递归,将十进制11转换为二进制
#include "stdio.h"
void dtob(int n)
{
int i;
if(n>1)
{
i=n%2;
dtob(n/2);
}
else
i=n;
printf("%d",i);
}
void main()
}
void main()
{
int b,n;
scanf("%d%d", &b,&n);
transfer(n,b);
}
(2)b2.cpp
程序说明:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和,例如4=2+2 6=3+3 8=3+5… 50=3+47。下面程序将4-50之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数prime完成。
}
(2)a2.cpp
将十进制数26的各位数字相乘
#include "stdio.h"
int fun(int num)
{
int k=1;
do
{
k*=num %10;/
num/=10;
}while(num);
return(k);
}
void main()
{
int n=26;
printf("%d\n",fun(n));
程序说明:用一个一维数组存放10个学生的成绩,写一个函数求出平均分、最高分和最低分。
#include "stdio.h"
float max=0,min=0;
float average(float score[],int n)
{
int i;
floaபைடு நூலகம் ave,sum=score[0];
max=min=score[0];
}
(3)a3.cpp
变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽
#include "stdio.h"
int a=3,b=5,c;
void f(int b)
{
c=a+b;
printf("%d %d %d\n",a,b,c);
}
void main()
{
int a=8;
f(3);
{
int a[20],i;
for(i=0; m; i++) //当商m为0时,循环结束,否则继续循环
{
a[i]=m % k;//将m对k的余数存放在数字a中
m/=k; //m=m/k,即将m除k的商放在m中
}
for(i--;i>=0;i--)
printf("%d",a[i]);
printf("\n");
{
int i=11;
printf("%d->",i);
dtob(i);
printf("(2)\n");
}
(5)a5.cpp
静态变量,求1到4的阶乘
#include "stdio.h"
int f1(int n)
{
static int f=1;
f=f*n;
return(f);
}
void main()
{
int i;
int i;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave=average(score,10); //如果形参是数组,则调用时实参应该用数组名,实现的是地址传递
printf("max=%6.2fmin=%6.2faverage=%6.2f\n",max,min,ave);
实验
班级:
学号:
姓名:
日期:
一、
(1)掌握定义函数的方法;
(2)掌握函数实参与形参的对应关系,以及“值传递”的方式;
(3)掌握函数的嵌套调用和递归调用的方法;
(4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法;
(5)学习对多文件的程序编译和运行。
二、
1
(1)a1.cpp
变量的虚实耦合,实现的是值传递,是单向传递
for(i=1;i<=4;i++)
printf("%5d",f1(i));
printf("\n");
}
2
(1)b1.cpp
程序说明:下面程序将输入的十进制数n转换为b进制数,并将转换结果输出。转换的方法是:除b取余法。
#include "stdio.h"
void transfer(int m,int k)
相关主题