函数:1、以下程序例示了函数参数之间的单向传递,请观察程序的执行结果。
try(int x ,int y,int z)
printf("(2)x=%d y=%d z=%d",x,y,z);
z=x+y;
x=x*x;
y=y*y;
printf("(3)x=%d y=%d z=%d",x,y,z);
main()
int x=2,y=3,z=0;
printf("(1)x=%d y=%d z=%d",x,y,z);
try(x,y,z);
printf("(4)x=%d y=%d z=%d",x,y,z);
2、以下程序企图通过调用swap函数交换主函数中变量x和y中的数据,请观察程序的输出结果。
twr(int a,int b)
int t;
printf("(2)a=%d,b=%d",a,b);
t=a;a=b;b=t;
printf("(3)a=%d,b=%d",a,b);
main()
int a,b;
scanf("%d%d",&a,&b);
printf("(1)a=%d,b=%d",a,b);
ter(a,b);
printf("(4)a=%d,b=%d",a,b);
3、编写函数isprime(int a),用来判断自变量a是否为素数,若是素数函数返回1,否则返回0。
isprime(int a)
int i;
for(i=2;i if(a%i==0)
return 0;
return 1;
main()
int a;
scanf("%d",&a);
if(isprinme(a)) printf("yes");
else printf("no");
4、编写函数验证偶数为两个素数之和,并输出这两个素数。
isprime(int a)
int i;
for(i=2;i if(a%i==0)
return 0;
return 1;
void even(int x)
int i;
for(i=2;i<=x/2;i++)
if(isprime(i))
if(isprime(x-i))
printf("%d=%d+%d",x,i,x-i);
main()
int x;
scanf("%d",&x);
if(x%2==0) even(x);
else printf("no");
4、编写函数统计输入字符个数。
#include ""
int fun()
char ch;
int x=0;
while((ch=getchar())eof)
x++;return x;
main()
int n=0;
n=fun();
printf("%d",n);
5、编写函数myupper(ch),把ch中的小写字母转换成大写字母作为函数值返回,其它字符不变,用@结束输入。
#include ""
#include ""
myupper(char ch)
if(islower(ch)) ch=ch-32;
else return ch;
main()
char ch;
clrscr();
while((ch=getchar
6、编写函数用以求表达式x2-5x+4,x作为参数传递给函数。
#include ""
#include ""
double fun(double x)
return x*x-5*x+4;
main()
double x,y;
scanf("%lf",&x);
y=fun(x);
printf("%lf",y);
7、编写函数1-1/2+1/3-1/4+1/5···1/n。
double fun(int x)
int i,n=1;
double s=0;
for(i=1;i<=x;i++)
return s;
main()
double s;
int n;
scanf("%d",&n);
s=fun(n);
printf("%lf",s);
8、编写函数返回pi的值满足精度。
pi/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)··最后一项的值要小于输入精度。
double pi(double eps)
int i=1;
double p=0,t=1;
while(t>=eps)
return p*2;
main()
double p,eps;
clrscr();
scanf("%lf",&eps);
p=pi(eps);
printf("%lf",p);
9、编写函数,判断字符串是否是回文。若是回文函数返回值为1,否则返回值为0.回文是顺读和倒读都一样的字符串。如:abcba
fun(char *s)
int i,k;
k=strlen(s);
for(i=0,j=k-1;i if(s[i]!=s[j])
return 0;
return 1;
main()
10、编写函数,删除字符串中指定位置上的字符。删除成功,函数返回被删字符,否则返回空值。
fun(char *a,int n)
int i,k,j;
k=strlen(a);
for(i=0;a[i];i++)
if(i==n)
return 0;
main()
递归:1、求n!
double fun(int n)
if(n==1) return 1;
else return n*fun(n-1);
main()
int n;
double s;
scanf("%d",&n);
s=fun(n);
printf("%lf",s);}
2、用递归算法根据以下求平方根的迭代公式,求某数a的平方根。
x1=1/2(x0+1/x0)
double mysqrt(double a,double x0)
double x1;
x1=(x0+a/x0)/2.0;
if(fabs(x1-x0)>0.00001) 要求的精度。
return mysqrt(a,x1);
else return x1;
main()
double a;
scanf("%lf",&a);
printf("the sqrt of %f=%f",a,mysqrt(a,1.0));
3、请写递归函数,把输入的一个整数转换成二进制数输出。
fun(int x)
if(x/2==0) return 1;
elseprintf("%d",fun(x/2));
return x%2;
main()
int x;
scanf("%d",&x);
printf("%d",fun(x));
1. 编写下列数学表达式的函数fun(x),并利用main()实现输入输出。
#include <>
#include <>
double fun(double x)
if(x<2) return 3.0;
if(x==2) return sin(x)+2*x;
if(x>2) return pow(x,4)/(log(fabs(x+1))+3.0);
void main()
double x,f;
clrscr();
scanf("%lf",&x);
printf("%lf", fun(x));
3. 编写下列数学表达式的函数p(x,n),并利用main()实现输入输出。
#include <>
#include <>
double p(int n,int x)
if(n==0) return 1;
else if(n==1) return x;
else return (2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x)/n;
void main()
int x;int n;
clrscr();
scanf("%d%d",&n,&x);
printf("%lf", p(n,x));
2. 输入一字符串长度为n的字符数组,在不另定义辅助数组的情况下,实现将该字符串的内容循环左移m个字符(例如:输入的字符串为:
char str=abcdefghij”,m=3,左移后的结果是:“defghijabc”。)
方法一:main()
char str[100], t;
int i, j, n, m;
gets(str);
scanf("%d", m);
n=strlen(str);
for (i=0; i include include definen5 inthcf intu,int v intdaffodilnumber int m intisprimenumber inti voidleapyear int year voidyanghui intdatasorting intstr 10 vo... 西安邮电大学。计算机学院。课内实验报告。实验名称函数。专业名称通信工程。班级通工 1302 学生姓名刘攀岩。学号 8位 03131035 指导教师梁琛。实验日期 2014年5月29日。一 实验目的及实验环境。学习c语言中函数章节,在vc 6.0环境下编程。二 实验内容及实验结果。1.编写一函数,求1... 0n n 1,2,3.宽度至少为n位,不够左边以0填充 格式列表中,下一个参数还是width prec 用于控制小数点后面的位数。无按缺省精度显示 0 当type d,i,o,u,x时,没有影响 当type e,e,f时,不显示小数点。n n 1,2,3.当type e,e,f时,表示的最大小数位数...C语言函数作业
c语言函数作业
C语言printf函数详解