第6章+函数文档格式.docx
- 文档编号:17528846
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:19.49KB
第6章+函数文档格式.docx
《第6章+函数文档格式.docx》由会员分享,可在线阅读,更多相关《第6章+函数文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
scanf("
%d"
&
a);
b=prime(a);
if(b==1)
printf("
thenumberisaprimenumber."
else
thenumberisnotaprimenumber."
}
intprime(inta){……}
实验二求最大公约数与最小公倍数
熟练函数的嵌套调用。
编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。
在main函数中实现输入与输出。
以6_2.c命名本程序并上交。
voidmain()
intgongyueshu(inta,intb);
intgongbeishu(inta,intb);
inta,b,c,d;
pleaseinputtwointegernumbers:
"
%d%d"
a,&
b);
c=gongyueshu(a,b);
d=gongbeishu(a.b);
gongyueshuis%d\ngongbeishuis%d"
c,d);
intgongyueshu(inta,intb)
{……}
intgongbeishu(inta,intb)
【实验提示】
可以在最小公倍数中嵌套调用最大公约数函数。
实验三报数问题
掌握数组和函数的应用。
m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。
到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。
若m=6,则输出n=1<
CR>
364251;
若m=10,则输出n=4<
36927185104;
若m=100,则输出n=91<
369……1005891。
函数intfun(intn,intp[])实现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。
以6_3.c命名本程序并上交。
intbaoshu(intn,intp[])
voidmain()
{intm,a[10000],i,num;
scanf("
&
m);
num=fun(m,a);
n=%d\n"
num);
for(i=0;
i<
m;
i++)
%8d"
a[i]);
实验四数组中插入元素的函数
学习在一维数组中插入元素的方法。
参照给定的主函数,编写一个函数voidinsert(inta[],intn,inty),它的功能是:
把y值插入到有n个数的有序的a数组中,y的值从键盘读入。
插入后,数组中的数仍然有序。
以6_4.c命名本程序并上交。
对照下面三种情况运行程序:
1)插在最前2)插在最后3)插在中间。
inta[11]={2,4,6,8,10,12,14,16,18,20};
voidinsert(inta[],intn,intnumber);
inti,x;
originalarrayis:
for(i=0;
10;
%5d"
insertanewnumber:
x);
insert(a,10,x);
11;
%d"
voidinsert(inta[],intn,intnumber)
若输入数11,输出246810111214161820
输入数1,输出12468101214161820
输入数33,输出246810121416182033
1.若x插入数组的中间,插入后此元素之后的数,依次后移一个位置。
例如查找到11应该放置在a[5]的位置上,原来a[5]的数据12以及其后的所有元素后移一位。
2.后移元素的过程,应该注意从数组的末尾开始依次a[n]=a[n-1],a[n-1]=a[n-2]……
实验五从数组中删除数据
深入理解数组做函数参数。
编写函数intdelnum(inta[],intnum,intn),用于在长度是n的数组a中,删除一个值为num的元素。
删除后数组的长度作为函数的返回值返回。
注意,num在数组中可能不只一个。
请以6_5.c命名本程序并上交。
#defineN10
{inta[N],num;
scanf(“%d”,&
num);
输入N个数到数组a中;
调用delnum函数在数组a中删除指定的数num;
输出删除了num后的数组a;
定义并编写delnum函数
实验六求数组逆序的函数
熟练掌握操作数组的方法及数组名作函数参数的使用方法。
从键盘输入int型数组a[20]的20个元素值,编写一个函数实现对数组元素数据的逆序放置。
即第1个元素与第20个元素互换,第2个元素与第19个元素互换,……,第10个元素与第11个元素互换。
请完善下述程序并以6_6.c命名本程序。
voidnixu(inta[],intn);
/*逆序函数声明*/
inta[20],x;
for(x=0;
x<
20;
x++)
a[x]);
Beforeinvert,thearrayis:
a[x]);
printf(“\n”);
nixu(a,20);
/*调用逆序函数,注意实参是什么*/
\nAfterinvert,thearrayis:
voidnixu(inta[],intn)
inti,t;
for(i=0;
________;
i++)
{t=a[i];
________;
a[n-1-i]=t;
}
实验七全局变量与局部变量
掌握全局变量和局部变量在程序中的关系。
下面的程序运行后的结果是_____________。
intx=3,y=5;
intmax(intx,inty)
intz;
z=x>
y?
x:
y;
return(z);
intx=8;
printf("
max=%d\n"
max(x,y));
实验八变量的静态存储方式
熟悉static定义静态变量的用法。
下面程序运行后的输出结果是_____________。
varfunc()
{intvar=0;
staticintstatic_var=0;
\40:
varequal%d\n"
var);
staticvarequal%d\n"
static_var);
var++;
static_var++;
{inti;
3;
varfunc();
实验九宏的使用
掌握宏的定义和使用。
作业1.#define命令练习,写出运行结果。
#include"
stdio.h"
#defineTRUE1
#defineFALSE0
#defineSQ(x)((x)*(x))
intnum;
intagain=1;
Programwillstopifinputvaluelessthan50.\n"
while(again)
{
Pleaseinputnumber==>
Thesquareforthisnumberis%d\n"
SQ(num));
if(num>
=50)
again=TRUE;
else
again=FALSE;
作业2.编写宏,求两个数的最大值。
请以6_9.c命名本程序并上交。
习题
1.有如下程序
longfib(intn)
{if(n>
2) return(fib(n-1)+fib(n-2));
else return
(2);
{printf("
%d\n"
,fib(3));
该程序的输出结果是( )
A、2B、4C、6D、8
2.在C语言中,函数的隐含存储类别是()
A、autoB、staticC、externD、无存储类别
3.以下所列的各函数首部中,正确的是()
A、voidplay(var:
Integer,varb:
Integer)
B、voidplay(inta,b)
C、voidplay(inta,intb)
D、Subplay(aasinteger,basinteger)
4.以下程序的输出结果是()
A、0B、29C、31D、无定值
fun(intx,inty,intz)
{z=x*x+y*y;
main()
{inta=31;
fun(5,2,a);
,a);
5.以下程序的输出结果是()
f(intb[],intm,intn)
{intI,s=0;
for(i=m;
n;
i=i+2)s=s+b[i];
returns;
main()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
x);
A、10B、18C、8D、15
6.以下程序的输出结果是()
A、1B、2C、3D、4
longfun(intn)
{longs;
if(n==1||n==2) s=2;
elses=n-fun(n-1);
returns;
%ld\n"
fun(3));
7.以下程序的输出结果是()
intf()
{staticinti=0;
ints=1;
s+=i;
i++;
returns;
main()
{inti,a=0;
5;
i++) a+=f();
,a);
A、20B、24C、25D、15
8.以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
int
fun(
n)
{
m=0,f=1,i;
for(i=1;
=n;
m+=i*f;
f=
_____________
;
return
main()
m=%d\n"
_________
9.以下程序输出的最后一个值是_____________
intff(intn)
{staticintf=l;
f=f*n;
returnf;
=5;
i++)printf("
,ff(i));
10.以下函数的功能是:
求x的y次方,请填空。
doublefun(doublex,inty)
doublez;
for(i=1,z=x;
i<
i++) z=z*_______;
returnz;
11.以下正确的说法是()
A、用户若需要调用标准库函数,调用前必须重新定义
B、用户可以重新定义标准库函数,如若此,该函数将失去原有定义
C、系统不允许用户重新定义标准库函数
D、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
12.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()
A、地址传递
B、值传递
C、有实参传给形参,再由形参传给实参
D、由用户指定传递方式
13.下面程序的输出是()
inti=2;
printf(“%d%d%d”,i*=2,++i,i++);
A、8,4,2B、8,4,3
C、4,4,5D、4,5,6
14.以下不正确的说法是()
A、register变量可以提高变量使用的执行效率
B、register变量由于使用的是CPU的寄存器,其数目是有限制的
C、extern变量定义的存储空间按变量类型分配
D、全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求
15.C语言函数返回类型的默认定义类型是____________
16.函数的实参传递到形参有两种方式:
____________和____________。
17.C语言变量按其作用域分为____________和____________。
按其生存期分为____________和____________。
18.已知函数定义:
voiddothat(intn,doublex){……},其函数声明的两种写法为____________,____________。
19.C语言变量的存储类别有____________,____________,____________和____________。
20.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为____________。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数