程序设计基础C语言科学出版社第七章函数.docx
- 文档编号:24452158
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:18
- 大小:27.92KB
程序设计基础C语言科学出版社第七章函数.docx
《程序设计基础C语言科学出版社第七章函数.docx》由会员分享,可在线阅读,更多相关《程序设计基础C语言科学出版社第七章函数.docx(18页珍藏版)》请在冰豆网上搜索。
程序设计基础C语言科学出版社第七章函数
程序设计基础,C语言,科学出版社教材版。
第七章——函数
1.0题
(1.0)
#include
intf(intx)
{
staticintk=0;
x+=k++;
returnx;
}
voidmain()
{
printf("%d\n",f(f
(1)));
}
/*staticintk说明k是静态局部变量x+=k++,x=1;k=0;x=x+(k++),k=1,x=1+0=1,f
(1)=x=1,f(f
(1))=1+1=2*/
(2.0)
#include
intc,a=4;
func(inta,intb)
{
c=a*b;
a=b-1;
b++;
return(a+b+1);
}
voidmain()
{
intb=2,p=0;
c=1;
p=func(b,a);
printf("%d,%d,%d,%d\n",a,b,c,p);
}
/*func函数中c=a*b=4*2=8a=b-1=3b=5return(9)*/
/*c,和a,都为全局变量,它的值保留上一次操作后的结果*/
/*main函数中,a=4,b=2,c=8,p=9*/
(3.0)
#include
voidnum()
{
externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
voidmain()
{
inta=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n",x,y);
}
/*x,y即是全局变量,又是num函数里面的局部变量,x,y在num函数中被屏蔽,extern扩大了x,y的作用域,所以x,y的值为上一次操作后的结果,及是num函数里面的值x=15-10=5y=25*/
(4.0)
#include
intn=1;
voidfunc()
{
staticintx=4;
inty=10;
x=x+2;
n=n+10;
y=y+n;
printf("FUNC:
x=%2d,y=%2d,n=%2d\n",x,y,n);
}
voidmain()
{
staticintx=5;
inty=n;
printf("MAIN:
x=%2d,y=%2d,n=%2d\n",x,y,n);
func();
}
/*n为全局变量,x则是main和func函数中的静态全局变量*/
/*main函数中,x=5,y=1,n=1*/
/*func函数,x=6,y=21,n=11*/
(5)
#include
#defineXYZ"String_XYZ"
main()
{
printf("XYZ=%s,%s\n",XYZ,"XYZ");
}
/*XYX=String_XYZ,"XYX"%s结果就是打印“XYZ”,所以就算XYZ.*/
2题编写一个函数求表达式1-1/2+1/3-1/4+1/5-1/6+~~``~~`~~+1/n的值。
#include
#include
floatcount(intn)
{floatsum=0.0;
inti;
for(i=1;i<=n;i++)
{if(i%2==0)
{sum=sum-1.0/(float)i;
}
else
{sum=sum+1.0/(float)i;
}
}
returnsum;
}
voidmain()
{inta;
floatb;
printf("请输入一个整数:
");
scanf("%d",&a);
b=count(a);
printf("表达式的值=%f",b);
printf("\n");
}
3题
#include
intf1(inta,intb);//最大公约数函数
intf2(inta,intb);//最小公倍数函数
intf1(inta,intb)//最大公约数
{
intmax,min,t;
if(a>b)
max=a,min=b;
elsemax=b,min=a;
for(t=b;t!
=0;)
{
t=max%min;
max=min;
min=t;
}
returnmax;
}
intf2(inta,intb)//最小公倍数
{
ints,y;
y=f1(a,b);
s=a*b/y;
returns;
}
voidmain()
{
inta,b,c;
printf("输入二个数,逗号隔开");
scanf("%d,%d",&a,&b);
c=f1(a,b);
printf("最大公约数为:
%d\n",c);
printf("最小公倍数是:
%d\n",f2(a,b));
}
4.0编写一个函数,实现一个给定的4*4的二维数组行列互换。
#include"stdio.h"
#defineM4
#defineN4
voidy(intstr[][N],inta,intb);//变换函数
voidp(intstr[][N],inta,intb);//打印函数
voidmain()
{
inti,j;
intstr[M][N];
printf("输入数组中的数\n");
for(i=0;i for(j=0;j scanf("%d",&str[i][j]); printf("输入的数组是: \n"); p(str,M,N); printf("变化后的数组是: \n"); y(str,M,N); } voidy(intstr[][N],inta,intb)//变换函数 { inti,j; ints[N][M]; for(i=0;i for(j=0;j s[j][i]=str[i][j];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 语言 科学出版社 第七 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)